From c95f388d8d416c23d0bd62ec5f76f98c833ec48f Mon Sep 17 00:00:00 2001 From: GJ Date: Tue, 1 May 2012 15:56:09 -0400 Subject: [PATCH] Allow for checking if ALL double drops are disabled via config. --- .../commands/skills/HerbalismCommand.java | 22 ++++--- .../commands/skills/MiningCommand.java | 12 ++-- .../commands/skills/WoodcuttingCommand.java | 12 ++-- .../java/com/gmail/nossr50/config/Config.java | 62 +++++++++++++++++++ 4 files changed, 91 insertions(+), 17 deletions(-) diff --git a/src/main/java/com/gmail/nossr50/commands/skills/HerbalismCommand.java b/src/main/java/com/gmail/nossr50/commands/skills/HerbalismCommand.java index e93b64554..e23eec910 100644 --- a/src/main/java/com/gmail/nossr50/commands/skills/HerbalismCommand.java +++ b/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(); + Config configInstance = Config.getInstance(); - canGreenTerra = permInstance.greenTerra(player); - canGreenThumbWheat = permInstance.greenThumbWheat(player); - canGreenThumbBlocks = permInstance.greenThumbBlocks(player); - canFarmersDiet = permInstance.farmersDiet(player); - canDoubleDrop = permInstance.herbalismDoubleDrops(player); + canGreenTerra = permInstance.greenTerra(player); + canGreenThumbWheat = permInstance.greenThumbWheat(player); + canGreenThumbBlocks = permInstance.greenThumbBlocks(player); + canFarmersDiet = permInstance.farmersDiet(player); + canDoubleDrop = permInstance.herbalismDoubleDrops(player); + doubleDropsDisabled = configInstance.herbalismDoubleDropsDisabled(); } } diff --git a/src/main/java/com/gmail/nossr50/commands/skills/MiningCommand.java b/src/main/java/com/gmail/nossr50/commands/skills/MiningCommand.java index f1f46fdc6..803e884f3 100644 --- a/src/main/java/com/gmail/nossr50/commands/skills/MiningCommand.java +++ b/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(); } } diff --git a/src/main/java/com/gmail/nossr50/commands/skills/WoodcuttingCommand.java b/src/main/java/com/gmail/nossr50/commands/skills/WoodcuttingCommand.java index 29667b511..3048f4713 100644 --- a/src/main/java/com/gmail/nossr50/commands/skills/WoodcuttingCommand.java +++ b/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(); } } diff --git a/src/main/java/com/gmail/nossr50/config/Config.java b/src/main/java/com/gmail/nossr50/config/Config.java index 5b65496ed..a2a3170e2 100644 --- a/src/main/java/com/gmail/nossr50/config/Config.java +++ b/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 keys = section.getKeys(false); + Iterator 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 keys = section.getKeys(false); + Iterator 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 keys = section.getKeys(false); + Iterator 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); }