From 4005c218101b2cb3967aac5eeb0c5910f333371b Mon Sep 17 00:00:00 2001 From: nossr50 Date: Mon, 28 Sep 2020 17:36:33 -0700 Subject: [PATCH] 2.1.147 --- Changelog.txt | 2 +- pom.xml | 2 +- .../com/gmail/nossr50/util/EventUtils.java | 18 ++++++++++-------- 3 files changed, 12 insertions(+), 10 deletions(-) diff --git a/Changelog.txt b/Changelog.txt index 7f67c15e8..2b1ac3612 100644 --- a/Changelog.txt +++ b/Changelog.txt @@ -1,5 +1,5 @@ Version 2.1.147 - + Fixed a bug where players below the level threshold on a hardcore mode enabled server would gain levels on death in certain circumstances Version 2.1.146 A bug where players would disconnect from mcMMO messages has been fixed (thanks kashike / read notes) diff --git a/pom.xml b/pom.xml index a3d6c5776..b0125040b 100755 --- a/pom.xml +++ b/pom.xml @@ -2,7 +2,7 @@ 4.0.0 com.gmail.nossr50.mcMMO mcMMO - 2.1.147-SNAPSHOT + 2.1.147 mcMMO https://github.com/mcMMO-Dev/mcMMO diff --git a/src/main/java/com/gmail/nossr50/util/EventUtils.java b/src/main/java/com/gmail/nossr50/util/EventUtils.java index 3065bc5cb..b75dcd197 100644 --- a/src/main/java/com/gmail/nossr50/util/EventUtils.java +++ b/src/main/java/com/gmail/nossr50/util/EventUtils.java @@ -331,16 +331,18 @@ public class EventUtils { for (PrimarySkillType primarySkillType : PrimarySkillType.NON_CHILD_SKILLS) { String skillName = primarySkillType.toString(); int playerSkillLevel = playerProfile.getSkillLevel(primarySkillType); + int threshold = Config.getInstance().getHardcoreDeathStatPenaltyLevelThreshold(); + if(playerSkillLevel > threshold) { + playerProfile.modifySkill(primarySkillType, Math.max(threshold, playerSkillLevel - levelChanged.get(skillName))); + playerProfile.removeXp(primarySkillType, experienceChanged.get(skillName)); - playerProfile.modifySkill(primarySkillType, Math.max(Config.getInstance().getHardcoreDeathStatPenaltyLevelThreshold(), playerSkillLevel - levelChanged.get(skillName))); - playerProfile.removeXp(primarySkillType, experienceChanged.get(skillName)); + if (playerProfile.getSkillXpLevel(primarySkillType) < 0) { + playerProfile.setSkillXpLevel(primarySkillType, 0); + } - if (playerProfile.getSkillXpLevel(primarySkillType) < 0) { - playerProfile.setSkillXpLevel(primarySkillType, 0); - } - - if (playerProfile.getSkillLevel(primarySkillType) < 0) { - playerProfile.modifySkill(primarySkillType, 0); + if (playerProfile.getSkillLevel(primarySkillType) < 0) { + playerProfile.modifySkill(primarySkillType, 0); + } } } }