Преглед на файлове

Allow for checking if ALL double drops are disabled via config.

GJ преди 13 години
родител
ревизия
c95f388d8d

+ 14 - 10
src/main/java/com/gmail/nossr50/commands/skills/HerbalismCommand.java

@@ -8,6 +8,7 @@ import org.bukkit.command.CommandSender;
 import org.bukkit.entity.Player;
 
 import com.gmail.nossr50.commands.CommandHelper;
+import com.gmail.nossr50.config.Config;
 import com.gmail.nossr50.datatypes.PlayerProfile;
 import com.gmail.nossr50.datatypes.SkillType;
 import com.gmail.nossr50.locale.LocaleLoader;
@@ -28,6 +29,7 @@ public class HerbalismCommand implements CommandExecutor {
     private boolean canGreenThumbBlocks;
     private boolean canFarmersDiet;
     private boolean canDoubleDrop;
+    private boolean doubleDropsDisabled;
 
     @Override
     public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
@@ -50,7 +52,7 @@ public class HerbalismCommand implements CommandExecutor {
         player.sendMessage(LocaleLoader.getString("Commands.XPGain", new Object[] { LocaleLoader.getString("Commands.XPGain.Herbalism") }));
         player.sendMessage(LocaleLoader.getString("Effects.Level", new Object[] { PP.getSkillLevel(SkillType.HERBALISM), PP.getSkillXpLevel(SkillType.HERBALISM), PP.getXpToLevel(SkillType.HERBALISM) }));
 
-        if (canGreenTerra || canDoubleDrop || canFarmersDiet || canGreenThumbBlocks || canGreenThumbWheat) {
+        if (canGreenTerra || (canDoubleDrop && !doubleDropsDisabled )|| canFarmersDiet || canGreenThumbBlocks || canGreenThumbWheat) {
             player.sendMessage(LocaleLoader.getString("Skills.Header", new Object[] { LocaleLoader.getString("Effects.Effects") }));
         }
 
@@ -70,11 +72,11 @@ public class HerbalismCommand implements CommandExecutor {
             player.sendMessage(LocaleLoader.getString("Effects.Template", new Object[] { LocaleLoader.getString("Herbalism.Effect.6"), LocaleLoader.getString("Herbalism.Effect.7") }));
         }
 
-        if (canDoubleDrop) {
+        if (canDoubleDrop && !doubleDropsDisabled) {
             player.sendMessage(LocaleLoader.getString("Effects.Template", new Object[] { LocaleLoader.getString("Herbalism.Effect.8"), LocaleLoader.getString("Herbalism.Effect.9") }));
         }
 
-        if (canGreenTerra || canDoubleDrop || canFarmersDiet || canGreenThumbBlocks || canGreenThumbWheat) {
+        if (canGreenTerra || (canDoubleDrop && !doubleDropsDisabled ) || canFarmersDiet || canGreenThumbBlocks || canGreenThumbWheat) {
             player.sendMessage(LocaleLoader.getString("Skills.Header", new Object[] { LocaleLoader.getString("Commands.Stats.Self") }));
         }
 
@@ -94,7 +96,7 @@ public class HerbalismCommand implements CommandExecutor {
             player.sendMessage(LocaleLoader.getString("Herbalism.Ability.FD", new Object[] { farmersDietRank } ));
         }
 
-        if (canDoubleDrop) {
+        if (canDoubleDrop && !doubleDropsDisabled) {
             player.sendMessage(LocaleLoader.getString("Herbalism.Ability.DoubleDropChance", new Object[] { doubleDropChance }));
         }
 
@@ -154,11 +156,13 @@ public class HerbalismCommand implements CommandExecutor {
 
     private void permissionsCheck(Player player) {
         Permissions permInstance = Permissions.getInstance();
-
-         canGreenTerra = permInstance.greenTerra(player);
-         canGreenThumbWheat = permInstance.greenThumbWheat(player);
-         canGreenThumbBlocks = permInstance.greenThumbBlocks(player);
-         canFarmersDiet = permInstance.farmersDiet(player);
-         canDoubleDrop = permInstance.herbalismDoubleDrops(player);
+        Config configInstance = Config.getInstance();
+
+        canGreenTerra = permInstance.greenTerra(player);
+        canGreenThumbWheat = permInstance.greenThumbWheat(player);
+        canGreenThumbBlocks = permInstance.greenThumbBlocks(player);
+        canFarmersDiet = permInstance.farmersDiet(player);
+        canDoubleDrop = permInstance.herbalismDoubleDrops(player);
+        doubleDropsDisabled = configInstance.herbalismDoubleDropsDisabled();
     }
 }

+ 8 - 4
src/main/java/com/gmail/nossr50/commands/skills/MiningCommand.java

@@ -8,6 +8,7 @@ import org.bukkit.command.CommandSender;
 import org.bukkit.entity.Player;
 
 import com.gmail.nossr50.commands.CommandHelper;
+import com.gmail.nossr50.config.Config;
 import com.gmail.nossr50.datatypes.PlayerProfile;
 import com.gmail.nossr50.datatypes.SkillType;
 import com.gmail.nossr50.locale.LocaleLoader;
@@ -29,6 +30,7 @@ public class MiningCommand implements CommandExecutor {
     private boolean canBlast;
     private boolean canBiggerBombs;
     private boolean canDemoExpert;
+    private boolean doubleDropsDisabled;
 
     @Override
     public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
@@ -51,7 +53,7 @@ public class MiningCommand implements CommandExecutor {
         player.sendMessage(LocaleLoader.getString("Commands.XPGain", new Object[] { LocaleLoader.getString("Commands.XPGain.Mining") }));
         player.sendMessage(LocaleLoader.getString("Effects.Level", new Object[] { PP.getSkillLevel(SkillType.MINING), PP.getSkillXpLevel(SkillType.MINING), PP.getXpToLevel(SkillType.MINING) }));
 
-        if (canBiggerBombs || canBlast || canDemoExpert || canDoubleDrop || canSuperBreaker) {
+        if (canBiggerBombs || canBlast || canDemoExpert || (canDoubleDrop && !doubleDropsDisabled ) || canSuperBreaker) {
             player.sendMessage(LocaleLoader.getString("Skills.Header", new Object[] { LocaleLoader.getString("Effects.Effects") }));
         }
 
@@ -59,7 +61,7 @@ public class MiningCommand implements CommandExecutor {
             player.sendMessage(LocaleLoader.getString("Effects.Template", new Object[] { LocaleLoader.getString("Mining.Effect.0"), LocaleLoader.getString("Mining.Effect.1") }));
         }
 
-        if (canDoubleDrop) {
+        if (canDoubleDrop && !doubleDropsDisabled) {
             player.sendMessage(LocaleLoader.getString("Effects.Template", new Object[] { LocaleLoader.getString("Mining.Effect.2"), LocaleLoader.getString("Mining.Effect.3") }));
         }
 
@@ -75,11 +77,11 @@ public class MiningCommand implements CommandExecutor {
             player.sendMessage(LocaleLoader.getString("Effects.Template", new Object[] { LocaleLoader.getString("Mining.Effect.8"), LocaleLoader.getString("Mining.Effect.9") }));
         }
 
-        if (canBiggerBombs || canBlast || canDemoExpert || canDoubleDrop || canSuperBreaker) {
+        if (canBiggerBombs || canBlast || canDemoExpert || (canDoubleDrop && !doubleDropsDisabled ) || canSuperBreaker) {
             player.sendMessage(LocaleLoader.getString("Skills.Header", new Object[] { LocaleLoader.getString("Commands.Stats.Self") }));
         }
 
-        if (canDoubleDrop) {
+        if (canDoubleDrop && !doubleDropsDisabled) {
             player.sendMessage(LocaleLoader.getString("Mining.Effect.DropChance", new Object[] { doubleDropChance }));
         }
 
@@ -182,11 +184,13 @@ public class MiningCommand implements CommandExecutor {
 
     private void permissionsCheck(Player player) {
         Permissions permInstance = Permissions.getInstance();
+        Config configInstance = Config.getInstance();
 
         canBiggerBombs = permInstance.biggerBombs(player);
         canBlast = permInstance.blastMining(player);
         canDemoExpert = permInstance.demolitionsExpertise(player);
         canDoubleDrop = permInstance.miningDoubleDrops(player);
         canSuperBreaker = permInstance.superBreaker(player);
+        doubleDropsDisabled = configInstance.miningDoubleDropsDisabled();
     }
 }

+ 8 - 4
src/main/java/com/gmail/nossr50/commands/skills/WoodcuttingCommand.java

@@ -8,6 +8,7 @@ import org.bukkit.command.CommandSender;
 import org.bukkit.entity.Player;
 
 import com.gmail.nossr50.commands.CommandHelper;
+import com.gmail.nossr50.config.Config;
 import com.gmail.nossr50.datatypes.PlayerProfile;
 import com.gmail.nossr50.datatypes.SkillType;
 import com.gmail.nossr50.locale.LocaleLoader;
@@ -23,6 +24,7 @@ public class WoodcuttingCommand implements CommandExecutor {
     private boolean canTreeFell;
     private boolean canLeafBlow;
     private boolean canDoubleDrop;
+    private boolean doubleDropsDisabled;
 
     @Override
     public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
@@ -45,7 +47,7 @@ public class WoodcuttingCommand implements CommandExecutor {
         player.sendMessage(LocaleLoader.getString("Commands.XPGain", new Object[] { LocaleLoader.getString("Commands.XPGain.WoodCutting") }));
         player.sendMessage(LocaleLoader.getString("Effects.Level", new Object[] { PP.getSkillLevel(SkillType.WOODCUTTING), PP.getSkillXpLevel(SkillType.WOODCUTTING), PP.getXpToLevel(SkillType.WOODCUTTING) }));
 
-        if (canDoubleDrop || canLeafBlow || canTreeFell) {
+        if ((canDoubleDrop && !doubleDropsDisabled ) || canLeafBlow || canTreeFell) {
             player.sendMessage(LocaleLoader.getString("Skills.Header", new Object[] { LocaleLoader.getString("Effects.Effects") }));
         }
 
@@ -57,11 +59,11 @@ public class WoodcuttingCommand implements CommandExecutor {
             player.sendMessage(LocaleLoader.getString("Effects.Template", new Object[] { LocaleLoader.getString("Woodcutting.Effect.2"), LocaleLoader.getString("Woodcutting.Effect.3") }));
         }
 
-        if (canDoubleDrop) {
+        if (canDoubleDrop && !doubleDropsDisabled) {
             player.sendMessage(LocaleLoader.getString("Effects.Template", new Object[] { LocaleLoader.getString("Woodcutting.Effect.4"), LocaleLoader.getString("Woodcutting.Effect.5") }));
         }
 
-        if (canDoubleDrop || canLeafBlow || canTreeFell) {
+        if ((canDoubleDrop && !doubleDropsDisabled ) || canLeafBlow || canTreeFell) {
             player.sendMessage(LocaleLoader.getString("Skills.Header", new Object[] { LocaleLoader.getString("Commands.Stats.Self") }));
         }
 
@@ -75,7 +77,7 @@ public class WoodcuttingCommand implements CommandExecutor {
             }
         }
 
-        if (canDoubleDrop) {
+        if (canDoubleDrop && !doubleDropsDisabled) {
             player.sendMessage(LocaleLoader.getString("Woodcutting.Ability.Chance.DDrop", new Object[] { doubleDropChance }));
         }
 
@@ -103,9 +105,11 @@ public class WoodcuttingCommand implements CommandExecutor {
 
     private void permissionsCheck(Player player) {
         Permissions permInstance = Permissions.getInstance();
+        Config configInstance = Config.getInstance();
 
         canTreeFell = permInstance.treeFeller(player);
         canDoubleDrop = permInstance.woodcuttingDoubleDrops(player);
         canLeafBlow = permInstance.leafBlower(player);
+        doubleDropsDisabled = configInstance.woodcuttingDoubleDropsDisabled();
     }
 }

+ 62 - 0
src/main/java/com/gmail/nossr50/config/Config.java

@@ -1,5 +1,10 @@
 package com.gmail.nossr50.config;
 
+import java.util.Iterator;
+import java.util.Set;
+
+import org.bukkit.configuration.ConfigurationSection;
+
 import com.gmail.nossr50.mcMMO;
 import com.gmail.nossr50.datatypes.HUDType;
 
@@ -156,6 +161,25 @@ public class Config extends ConfigLoader {
     public boolean getWaterLiliesDoubleDropsEnabled() { return config.getBoolean("Double_Drops.Herbalism.Water_Lilies", true); }
     public boolean getYellowFlowersDoubleDropsEnabled() { return config.getBoolean("Double_Drops.Herbalism.Yellow_Flowers", true); }
 
+    public boolean herbalismDoubleDropsDisabled() {
+        ConfigurationSection section = config.getConfigurationSection("Double_Drops.Herbalism");
+        Set<String> keys = section.getKeys(false);
+        Iterator<String> iterator = keys.iterator();
+
+        boolean disabled = true;
+
+        while (iterator.hasNext()) {
+            String key = iterator.next();
+
+            if (config.getBoolean("Double_Drops.Herbalism." + key)) {
+                disabled = false;
+                break;
+            }
+        }
+
+        return disabled;
+    }
+
     /* Mining */
     public int getMiningXPGoldOre() { return config.getInt("Experience.Mining.Gold", 250); } 
     public int getMiningXPDiamondOre() { return config.getInt("Experience.Mining.Diamond", 750); }
@@ -185,6 +209,25 @@ public class Config extends ConfigLoader {
     public boolean getSandstoneDoubleDropsEnabled() { return config.getBoolean("Double_Drops.Mining.Sandstone", true); }
     public boolean getStoneDoubleDropsEnabled() { return config.getBoolean("Double_Drops.Mining.Stone", true); }
 
+    public boolean miningDoubleDropsDisabled() {
+        ConfigurationSection section = config.getConfigurationSection("Double_Drops.Mining");
+        Set<String> keys = section.getKeys(false);
+        Iterator<String> iterator = keys.iterator();
+
+        boolean disabled = true;
+
+        while (iterator.hasNext()) {
+            String key = iterator.next();
+
+            if (config.getBoolean("Double_Drops.Mining." + key)) {
+                disabled = false;
+                break;
+            }
+        }
+
+        return disabled;
+    }
+
     public int getDetonatorItemID() { return config.getInt("Skills.Mining.Detonator_ID", 259); }
 
     /* Repair */
@@ -221,6 +264,25 @@ public class Config extends ConfigLoader {
     public boolean getSpruceDoubleDropsEnabled() { return config.getBoolean("Double_Drops.Woodcutting.Spruce", true); }
     public boolean getJungleDoubleDropsEnabled() { return config.getBoolean("Double_Drops.Woodcutting.Jungle", true); }
 
+    public boolean woodcuttingDoubleDropsDisabled() {
+        ConfigurationSection section = config.getConfigurationSection("Double_Drops.Woodcutting");
+        Set<String> keys = section.getKeys(false);
+        Iterator<String> iterator = keys.iterator();
+
+        boolean disabled = true;
+
+        while (iterator.hasNext()) {
+            String key = iterator.next();
+
+            if (config.getBoolean("Double_Drops.Woodcutting." + key)) {
+                disabled = false;
+                break;
+            }
+        }
+
+        return disabled;
+    }
+
     /* Arcane Forging */
     public boolean getArcaneForgingDowngradeEnabled() { return config.getBoolean("Arcane_Forging.Downgrades.Enabled", true); }
     public int getArcaneForgingDowngradeChanceRank1() { return config.getInt("Arcane_Forging.Downgrades.Chance.Rank_1", 75); }