Kaynağa Gözat

Fix parties at level cap gaining XP and thus spamming messages
Fixes #4686

nossr50 3 yıl önce
ebeveyn
işleme
ef714f98c9

+ 2 - 0
Changelog.txt

@@ -1,4 +1,6 @@
 Version 2.1.207
+    Fixed an IndexOutOfBounds exception with our BlockTracker
+    Fixed a bug where leveling up a party at level cap would spam the chat with messages
     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

+ 2 - 2
src/main/java/com/gmail/nossr50/datatypes/party/Party.java

@@ -252,10 +252,10 @@ public class Party {
                     SoundManager.sendSound(leader, leader.getLocation(), SoundType.LEVEL_UP);
                 }
             }
-            return;
+        } else {
+            PartyManager.informPartyMembersLevelUp(this, levelsGained, getLevel());
         }
 
-        PartyManager.informPartyMembersLevelUp(this, levelsGained, getLevel());
     }
 
     public boolean hasReachedLevelCap() {

+ 1 - 1
src/main/java/com/gmail/nossr50/datatypes/player/McMMOPlayer.java

@@ -642,7 +642,7 @@ public class McMMOPlayer implements Identified {
 
         applyXpGain(skill, modifyXpGain(skill, xp), xpGainReason, xpGainSource);
 
-        if (party == null) {
+        if (party == null || party.hasReachedLevelCap()) {
             return;
         }
 

+ 0 - 1
src/main/java/com/gmail/nossr50/util/EventUtils.java

@@ -370,7 +370,6 @@ public final class EventUtils {
         boolean isCancelled = event.isCancelled();
 
         if (isCancelled) {
-
             party.setLevel(party.getLevel() + levelsChanged);
             party.addXp(xpRemoved);
         }