From 62a767db898c70746a02c9507ee141b2c32da95a Mon Sep 17 00:00:00 2001 From: TfT-02 Date: Wed, 13 Aug 2014 09:25:19 -0600 Subject: [PATCH] Add enable toggle and per skill thresholds --- Changelog.txt | 1 + .../config/experience/ExperienceConfig.java | 3 ++- .../gmail/nossr50/listeners/SelfListener.java | 4 ++-- src/main/java/com/gmail/nossr50/mcMMO.java | 2 +- src/main/resources/experience.yml | 18 +++++++++++++++++- 5 files changed, 23 insertions(+), 5 deletions(-) diff --git a/Changelog.txt b/Changelog.txt index 082c80d2b..7dff1109a 100644 --- a/Changelog.txt +++ b/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 diff --git a/src/main/java/com/gmail/nossr50/config/experience/ExperienceConfig.java b/src/main/java/com/gmail/nossr50/config/experience/ExperienceConfig.java index e38de8fa9..833b3e4b0 100644 --- a/src/main/java/com/gmail/nossr50/config/experience/ExperienceConfig.java +++ b/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 */ diff --git a/src/main/java/com/gmail/nossr50/listeners/SelfListener.java b/src/main/java/com/gmail/nossr50/listeners/SelfListener.java index 91875c946..0b7d651e2 100644 --- a/src/main/java/com/gmail/nossr50/listeners/SelfListener.java +++ b/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; diff --git a/src/main/java/com/gmail/nossr50/mcMMO.java b/src/main/java/com/gmail/nossr50/mcMMO.java index 341979b1a..a4389ab21 100644 --- a/src/main/java/com/gmail/nossr50/mcMMO.java +++ b/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); } } diff --git a/src/main/resources/experience.yml b/src/main/resources/experience.yml index b44e1034d..c62f72c7a 100644 --- a/src/main/resources/experience.yml +++ b/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 #