From ef714f98c9bffc5440628101854b91ca6cc05e1a Mon Sep 17 00:00:00 2001 From: nossr50 Date: Mon, 27 Dec 2021 11:22:16 -0800 Subject: [PATCH] Fix parties at level cap gaining XP and thus spamming messages Fixes #4686 --- Changelog.txt | 2 ++ src/main/java/com/gmail/nossr50/datatypes/party/Party.java | 4 ++-- .../java/com/gmail/nossr50/datatypes/player/McMMOPlayer.java | 2 +- src/main/java/com/gmail/nossr50/util/EventUtils.java | 1 - 4 files changed, 5 insertions(+), 4 deletions(-) diff --git a/Changelog.txt b/Changelog.txt index 4d90c234d..b8384fc0d 100644 --- a/Changelog.txt +++ b/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 diff --git a/src/main/java/com/gmail/nossr50/datatypes/party/Party.java b/src/main/java/com/gmail/nossr50/datatypes/party/Party.java index 40c684234..edf661791 100644 --- a/src/main/java/com/gmail/nossr50/datatypes/party/Party.java +++ b/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() { diff --git a/src/main/java/com/gmail/nossr50/datatypes/player/McMMOPlayer.java b/src/main/java/com/gmail/nossr50/datatypes/player/McMMOPlayer.java index f60583457..3e0b6018f 100644 --- a/src/main/java/com/gmail/nossr50/datatypes/player/McMMOPlayer.java +++ b/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; } diff --git a/src/main/java/com/gmail/nossr50/util/EventUtils.java b/src/main/java/com/gmail/nossr50/util/EventUtils.java index 4dd661aba..acec911dd 100644 --- a/src/main/java/com/gmail/nossr50/util/EventUtils.java +++ b/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); }