nossr50 4 năm trước cách đây
mục cha
commit
4005c21810
3 tập tin đã thay đổi với 14 bổ sung12 xóa
  1. 1 1
      Changelog.txt
  2. 1 1
      pom.xml
  3. 12 10
      src/main/java/com/gmail/nossr50/util/EventUtils.java

+ 1 - 1
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)

+ 1 - 1
pom.xml

@@ -2,7 +2,7 @@
     <modelVersion>4.0.0</modelVersion>
     <groupId>com.gmail.nossr50.mcMMO</groupId>
     <artifactId>mcMMO</artifactId>
-    <version>2.1.147-SNAPSHOT</version>
+    <version>2.1.147</version>
     <name>mcMMO</name>
     <url>https://github.com/mcMMO-Dev/mcMMO</url>
     <scm>

+ 12 - 10
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);
-
-                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.getSkillLevel(primarySkillType) < 0) {
-                    playerProfile.modifySkill(primarySkillType, 0);
+                int threshold = Config.getInstance().getHardcoreDeathStatPenaltyLevelThreshold();
+                if(playerSkillLevel > threshold) {
+                    playerProfile.modifySkill(primarySkillType, Math.max(threshold, playerSkillLevel - levelChanged.get(skillName)));
+                    playerProfile.removeXp(primarySkillType, experienceChanged.get(skillName));
+
+                    if (playerProfile.getSkillXpLevel(primarySkillType) < 0) {
+                        playerProfile.setSkillXpLevel(primarySkillType, 0);
+                    }
+
+                    if (playerProfile.getSkillLevel(primarySkillType) < 0) {
+                        playerProfile.modifySkill(primarySkillType, 0);
+                    }
                 }
             }
         }