Quellcode durchsuchen

Fix ScoreboardManager NPE and added locale messages relating to scoreboards

nossr50 vor 3 Jahren
Ursprung
Commit
ddc9a69f4b

+ 5 - 2
Changelog.txt

@@ -1,6 +1,9 @@
 Version 2.1.207
-    Added unicode support to locale files (no more UTF-16 codes)
-    Temporarily rolling required Java version back to 16 until 1.18 is stable and everyone can migrate to it safely
+    Temporarily rolling required Java version back to 16
+    Added unicode (UTF-8) support to locale files (no more UTF-16 codes needed)
+    Added locale key 'Scoreboard.Disabled' to en_US
+    Added locale key 'Scoreboard.NotSetupYet' to en_US
+    Fixed a bug where Salvage sent messages even though the event was cancelled (Thanks TheBusyBiscuit)
 
 Version 2.1.206
     Fixed a memory leak involving Herbalism under specific circumstances

+ 10 - 0
src/main/java/com/gmail/nossr50/commands/McscoreboardCommand.java

@@ -23,6 +23,16 @@ public class McscoreboardCommand implements TabExecutor {
             return true;
         }
 
+        if(!mcMMO.p.getGeneralConfig().getScoreboardsEnabled()) {
+            sender.sendMessage(LocaleLoader.getString("Scoreboard.Disabled"));
+            return true;
+        }
+
+        if(!ScoreboardManager.isPlayerBoardSetup(sender.getName())) {
+            sender.sendMessage(LocaleLoader.getString("Scoreboard.NotSetupYet"));
+            return true;
+        }
+
         switch (args.length) {
             case 1:
                 if (args[0].equalsIgnoreCase("clear") || args[0].equalsIgnoreCase("reset")) {

+ 4 - 0
src/main/java/com/gmail/nossr50/util/scoreboards/ScoreboardManager.java

@@ -574,6 +574,10 @@ public class ScoreboardManager {
         PLAYER_SCOREBOARDS.get(playerName).showBoardAndScheduleRevert(seconds * Misc.TICK_CONVERSION_FACTOR);
     }
 
+    public static boolean isPlayerBoardSetup(@NotNull String playerName) {
+        return PLAYER_SCOREBOARDS.get(playerName) != null;
+    }
+
     public static @Nullable ScoreboardWrapper makeNewScoreboard(Player player) {
         if(getScoreboardManager() == null)
             return null;

+ 3 - 1
src/main/resources/locale/locale_en_US.properties

@@ -1142,4 +1142,6 @@ Chat.Channel.Off=&6(&amcMMO-Chat&6) &7Your chat messages will no longer be autom
 Chat.Spy.Party=&6[&eSPY&6-&a{2}&6] &r{0} &b\u2192 &r{1}
 Broadcasts.LevelUpMilestone=&6(&amcMMO&6) {0}&7 has reached level &a{1}&7 in &3{2}&7!
 Broadcasts.PowerLevelUpMilestone=&6(&amcMMO&6) {0}&7 has reached a Power level of &a{1}&7!
-Scoreboard.Recovery=Attempting to recover mcMMO scoreboard...
+Scoreboard.Recovery=Attempting to recover mcMMO scoreboard...
+Scoreboard.Disabled=The mcMMO scoreboards for this server are disabled, this setting is found in mcMMO/config.yml
+Scoreboard.NotSetupYet=Your mcMMO scoreboard has not been setup yet, try again later.