Ver código fonte

Add enable toggle and per skill thresholds

TfT-02 10 anos atrás
pai
commit
62a767db89

+ 1 - 0
Changelog.txt

@@ -11,6 +11,7 @@ Version 1.5.01-dev
  + Added new child skill; Salvage
  + Added UUID support!
  + Added SQL connection pooling and async loading!
+ + Added the long awaited Diminished Returns feature
  + Added new feature to Herbalism. Instantly-regrown crops are protected from being broken for 1 second
  + Added option to config.yml to show the /mcstats scoreboard automatically after logging in
  + Added option to config.yml for Alchemy. Skills.Alchemy.Prevent_Hopper_Transfer_Bottles

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

@@ -180,7 +180,8 @@ public class ExperienceConfig extends AutoUpdateConfigLoader {
     public double getCustomXpPerkBoost() { return config.getDouble("Experience_Formula.Custom_XP_Perk.Boost", 1.25); }
 
     /* Deminished Returns */
-    public int getDiminishedReturnsThreshold() { return config.getInt("Diminished_Returns.Threshold", 20000); }
+    public boolean getDiminishedReturnsEnabled() { return config.getBoolean("Diminished_Returns.Enabled", false); }
+    public int getDiminishedReturnsThreshold(SkillType skill) { return config.getInt("Diminished_Returns.Threshold." + StringUtils.getCapitalized(skill.toString()), 20000); }
     public int getDiminishedReturnsTimeInterval() { return config.getInt("Diminished_Returns.Time_Interval", 10); }
 
     /* Conversion */

+ 2 - 2
src/main/java/com/gmail/nossr50/listeners/SelfListener.java

@@ -44,7 +44,8 @@ public class SelfListener implements Listener {
 
     @EventHandler(priority = EventPriority.NORMAL, ignoreCancelled = true)
     public void onPlayerXpGain(McMMOPlayerXpGainEvent event) {
-        int threshold = ExperienceConfig.getInstance().getDiminishedReturnsThreshold();
+        SkillType skillType = event.getSkill();
+        int threshold = ExperienceConfig.getInstance().getDiminishedReturnsThreshold(skillType);
 
         if (threshold <= 0) {
             // Diminished returns is turned off
@@ -59,7 +60,6 @@ public class SelfListener implements Listener {
 
         Player player = event.getPlayer();
         McMMOPlayer mcMMOPlayer = UserManager.getPlayer(player);
-        SkillType skillType = event.getSkill();
 
         if (skillType.isChildSkill()) {
             return;

+ 1 - 1
src/main/java/com/gmail/nossr50/mcMMO.java

@@ -496,7 +496,7 @@ public class mcMMO extends JavaPlugin {
         }
 
         // Clear the registered XP data so players can earn XP again
-        if (ExperienceConfig.getInstance().getDiminishedReturnsThreshold() > 0) {
+        if (ExperienceConfig.getInstance().getDiminishedReturnsEnabled()) {
             new ClearRegisteredXPGainTask().runTaskTimer(this, 60, 60);
         }
     }

+ 17 - 1
src/main/resources/experience.yml

@@ -63,9 +63,25 @@ Experience_Formula:
 # Settings for Diminished Returns
 ###
 Diminished_Returns:
+    Enabled: false
+
     # Limit the amount of experience a player can earn:
     # Threshold (amount of experience) per Time_Interval (in minutes)
-    Threshold: 20000
+    Threshold:
+        Swords: 20000
+        Taming: 20000
+        Acrobatics: 20000
+        Excavation: 20000
+        Herbalism: 20000
+        Unarmed: 20000
+        Woodcutting: 20000
+        Mining: 20000
+        Archery: 20000
+        Axes: 20000
+        Repair: 20000
+        Fishing: 20000
+        Alchemy: 20000
+
     Time_Interval: 10
 
 #