Browse Source

fix xp multiplier not getting applied

nossr50 1 year ago
parent
commit
e509876658

+ 3 - 0
Changelog.txt

@@ -1,3 +1,6 @@
+Version 2.2.004
+    Fixed bug where values from Experience_Formula.Skill_Multiplier were not being used
+
 Version 2.2.003
 Version 2.2.003
     (SQLDB) Fixed a bug where lastlogin was using a value that was too large
     (SQLDB) Fixed a bug where lastlogin was using a value that was too large
     (SQLDB) Fixed bug where crossbows was not getting added to SQL schema for some users
     (SQLDB) Fixed bug where crossbows was not getting added to SQL schema for some users

+ 1 - 1
pom.xml

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

+ 1 - 1
src/main/java/com/gmail/nossr50/config/experience/ExperienceConfig.java

@@ -260,7 +260,7 @@ public class ExperienceConfig extends BukkitConfig {
 
 
     /* Skill modifiers */
     /* Skill modifiers */
     public double getFormulaSkillModifier(PrimarySkillType skill) {
     public double getFormulaSkillModifier(PrimarySkillType skill) {
-        return config.getDouble("Experience_Formula.Modifier." + StringUtils.getCapitalized(skill.toString()), 1);
+        return config.getDouble("Experience_Formula.Skill_Multiplier." + StringUtils.getCapitalized(skill.toString()), 1);
     }
     }
 
 
     /* Custom XP perk */
     /* Custom XP perk */

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

@@ -65,6 +65,7 @@ import org.bukkit.plugin.Plugin;
 import org.checkerframework.checker.nullness.qual.NonNull;
 import org.checkerframework.checker.nullness.qual.NonNull;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;
 import org.jetbrains.annotations.Nullable;
+import org.jetbrains.annotations.VisibleForTesting;
 
 
 import java.util.EnumMap;
 import java.util.EnumMap;
 import java.util.Map;
 import java.util.Map;
@@ -840,14 +841,15 @@ public class McMMOPlayer implements Identified {
      * @param xp Experience amount to process
      * @param xp Experience amount to process
      * @return Modified experience
      * @return Modified experience
      */
      */
-    private float modifyXpGain(PrimarySkillType primarySkillType, float xp) {
+    @VisibleForTesting
+    float modifyXpGain(PrimarySkillType primarySkillType, float xp) {
         //TODO: A rare situation can occur where the default Power Level cap can prevent a player with one skill edited to something silly like Integer.MAX_VALUE from gaining XP in any skill, we may need to represent power level with another data type
         //TODO: A rare situation can occur where the default Power Level cap can prevent a player with one skill edited to something silly like Integer.MAX_VALUE from gaining XP in any skill, we may need to represent power level with another data type
         if ((mcMMO.p.getSkillTools().getLevelCap(primarySkillType) <= getSkillLevel(primarySkillType))
         if ((mcMMO.p.getSkillTools().getLevelCap(primarySkillType) <= getSkillLevel(primarySkillType))
                 || (mcMMO.p.getGeneralConfig().getPowerLevelCap() <= getPowerLevel())) {
                 || (mcMMO.p.getGeneralConfig().getPowerLevelCap() <= getPowerLevel())) {
             return 0;
             return 0;
         }
         }
 
 
-        xp = (float) (xp * ExperienceConfig.getInstance().getFormulaSkillModifier(primarySkillType) * ExperienceConfig.getInstance().getExperienceGainsGlobalMultiplier());
+        xp = (float) ((xp * ExperienceConfig.getInstance().getFormulaSkillModifier(primarySkillType)) * ExperienceConfig.getInstance().getExperienceGainsGlobalMultiplier());
 
 
         if (mcMMO.p.getGeneralConfig().getToolModsEnabled()) {
         if (mcMMO.p.getGeneralConfig().getToolModsEnabled()) {
             CustomTool tool = mcMMO.getModManager().getTool(player.getInventory().getItemInMainHand());
             CustomTool tool = mcMMO.getModManager().getTool(player.getInventory().getItemInMainHand());

+ 2 - 2
src/main/java/com/gmail/nossr50/datatypes/skills/PrimarySkillType.java

@@ -132,12 +132,12 @@ public enum PrimarySkillType {
     /**
     /**
      * WARNING: Being removed in an upcoming update, you should be using mcMMO.getSkillTools() instead
      * WARNING: Being removed in an upcoming update, you should be using mcMMO.getSkillTools() instead
      * @return the max level of this skill
      * @return the max level of this skill
-     * @see SkillTools#getXpModifier(com.gmail.nossr50.datatypes.skills.PrimarySkillType)
+     * @see SkillTools#getXpMultiplier(com.gmail.nossr50.datatypes.skills.PrimarySkillType)
      * @deprecated this is being removed in an upcoming update, you should be using mcMMO.getSkillTools() instead
      * @deprecated this is being removed in an upcoming update, you should be using mcMMO.getSkillTools() instead
      */
      */
     @Deprecated
     @Deprecated
     public double getXpModifier() {
     public double getXpModifier() {
-        return mcMMO.p.getSkillTools().getXpModifier(this);
+        return mcMMO.p.getSkillTools().getXpMultiplier(this);
     }
     }
 
 
     /**
     /**

+ 1 - 1
src/main/java/com/gmail/nossr50/util/skills/SkillTools.java

@@ -331,7 +331,7 @@ public class SkillTools {
         return primarySkillChildrenMap.get(primarySkillType);
         return primarySkillChildrenMap.get(primarySkillType);
     }
     }
 
 
-    public double getXpModifier(PrimarySkillType primarySkillType) {
+    public double getXpMultiplier(PrimarySkillType primarySkillType) {
         return ExperienceConfig.getInstance().getFormulaSkillModifier(primarySkillType);
         return ExperienceConfig.getInstance().getFormulaSkillModifier(primarySkillType);
     }
     }
 
 

+ 1 - 0
src/test/java/com/gmail/nossr50/skills/woodcutting/WoodcuttingTest.java

@@ -17,6 +17,7 @@ import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.Test;
 import org.mockito.Mockito;
 import org.mockito.Mockito;
 
 
+import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.ArgumentMatchers.eq;
 import static org.mockito.ArgumentMatchers.eq;