From c589c5556b2f4be19417a3690bbac3d90a250d25 Mon Sep 17 00:00:00 2001 From: GJ Date: Wed, 20 Feb 2013 16:44:15 -0500 Subject: [PATCH] MASSIVE config overhaul - most keys are now based on the "proper" name given to a material or entity by Bukkit. This WILL wipe some custom values you may have set, so please verify that your values are what you want them to be after the new config file is generated. --- .../java/com/gmail/nossr50/config/Config.java | 386 +++++------------- .../com/gmail/nossr50/mods/ModChecks.java | 27 +- .../nossr50/skills/acrobatics/Acrobatics.java | 3 - .../gmail/nossr50/skills/archery/Archery.java | 4 - .../com/gmail/nossr50/skills/axes/Axes.java | 4 - .../nossr50/skills/excavation/Excavation.java | 36 +- .../nossr50/skills/herbalism/Herbalism.java | 1 - .../skills/herbalism/HerbalismBlock.java | 49 ++- .../skills/herbalism/HerbalismCommand.java | 2 +- .../gmail/nossr50/skills/mining/Mining.java | 220 +++------- .../nossr50/skills/mining/MiningCommand.java | 2 +- .../smelting/SmeltResourceEventHandler.java | 36 +- .../gmail/nossr50/skills/swords/Swords.java | 4 - .../gmail/nossr50/skills/taming/Taming.java | 3 - .../gmail/nossr50/skills/unarmed/Unarmed.java | 3 - .../nossr50/skills/utilities/AbilityType.java | 34 +- .../nossr50/skills/utilities/CombatTools.java | 107 ++--- .../nossr50/skills/utilities/SkillType.java | 56 ++- .../woodcutting/WoodcuttingCommand.java | 11 +- .../com/gmail/nossr50/util/StringUtils.java | 20 +- src/main/resources/config.yml | 128 +++--- 21 files changed, 356 insertions(+), 780 deletions(-) diff --git a/src/main/java/com/gmail/nossr50/config/Config.java b/src/main/java/com/gmail/nossr50/config/Config.java index 18014ed78..a0b3f9bae 100644 --- a/src/main/java/com/gmail/nossr50/config/Config.java +++ b/src/main/java/com/gmail/nossr50/config/Config.java @@ -2,7 +2,13 @@ package com.gmail.nossr50.config; import java.util.Set; +import org.bukkit.Material; import org.bukkit.configuration.ConfigurationSection; +import org.bukkit.entity.EntityType; + +import com.gmail.nossr50.skills.utilities.AbilityType; +import com.gmail.nossr50.skills.utilities.SkillType; +import com.gmail.nossr50.util.StringUtils; public class Config extends ConfigLoader { private static Config instance; @@ -63,10 +69,14 @@ public class Config extends ConfigLoader { private static String getStringIncludingInts(ConfigurationSection cfg, String key) { String str = cfg.getString(key); - if (str == null) + + if (str == null) { str = String.valueOf(cfg.getInt(key)); - if (str == null) + } + + if (str == "0") { str = "No value set for '" + key + "'"; + } return str; } @@ -119,30 +129,13 @@ public class Config extends ConfigLoader { public boolean getAbilitiesEnabled() { return config.getBoolean("Abilities.Enabled", true); } public boolean getAbilitiesOnlyActivateWhenSneaking() { return config.getBoolean("Abilities.Activation.Only_Activate_When_Sneaking", false); } + public int getCooldown(AbilityType ability) { return config.getInt("Abilities.Cooldowns." + ability.toString()); } + public int getMaxTicks(AbilityType ability) { return config.getInt("Abilities.Max_Seconds." + ability.toString()); } + /* Durability Settings */ public boolean getAbilitiesDamageTools() { return config.getBoolean("Abilities.Tools.Durability_Loss_Enabled", true); } public int getAbilityToolDamage() { return config.getInt("Abilities.Tools.Durability_Loss", 2); } - /* Cooldowns */ - public int getAbilityCooldownGreenTerra() { return config.getInt("Abilities.Cooldowns.Green_Terra", 240); } - public int getAbilityCooldownSuperBreaker() { return config.getInt("Abilities.Cooldowns.Super_Breaker", 240); } - public int getAbilityCooldownGigaDrillBreaker() { return config.getInt("Abilities.Cooldowns.Giga_Drill_Breaker", 240); } - public int getAbilityCooldownTreeFeller() { return config.getInt("Abilities.Cooldowns.Tree_Feller", 240); } - public int getAbilityCooldownBerserk() { return config.getInt("Abilities.Cooldowns.Berserk", 240); } - public int getAbilityCooldownSerratedStrikes() { return config.getInt("Abilities.Cooldowns.Serrated_Strikes", 240); } - public int getAbilityCooldownSkullSplitter() { return config.getInt("Abilities.Cooldowns.Skull_Splitter", 240); } - public int getAbilityCooldownBlastMining() { return config.getInt("Abilities.Cooldowns.Blast_Mining", 60); } - - /* Max ticks */ - public int getAbilityMaxTicksGreenTerra() { return config.getInt("Abilities.Max_Seconds.Green_Terra", 0); } - public int getAbilityMaxTicksSuperBreaker() { return config.getInt("Abilities.Max_Seconds.Super_Breaker", 0); } - public int getAbilityMaxTicksGigaDrillBreaker() { return config.getInt("Abilities.Max_Seconds.Giga_Drill_Breaker", 0); } - public int getAbilityMaxTicksTreeFeller() { return config.getInt("Abilities.Max_Seconds.Tree_Feller", 0); } - public int getAbilityMaxTicksBerserk() { return config.getInt("Abilities.Max_Seconds.Berserk", 0); } - public int getAbilityMaxTicksSerratedStrikes() { return config.getInt("Abilities.Max_Seconds.Serrated_Strikes", 0); } - public int getAbilityMaxTicksSkullSplitter() { return config.getInt("Abilities.Max_Seconds.Skull_Splitter", 0); } - public int getAbilityMaxTicksBlastMining() { return config.getInt("Abilities.Max_Seconds.Blast_Mining", 0); } - /* Thresholds */ public int getTreeFellerThreshold() { return config.getInt("Abilities.Limits.Tree_Feller_Threshold", 500); } @@ -150,268 +143,13 @@ public class Config extends ConfigLoader { * SKILL SETTINGS */ - /* Tool Requirements */ - public boolean getWoodcuttingRequiresTool() { return config.getBoolean("Skills.Woodcutting.Requires_Axe", true); } + public int getXp(SkillType skill, Material material) { return config.getInt("Experience." + StringUtils.getCapitalized(skill.toString()) + "." + StringUtils.getPrettyItemString(material).replace(" ", "_")); } + public boolean getDoubleDropsEnabled(SkillType skill, Material material) { return config.getBoolean("Double_Drops." + StringUtils.getCapitalized(skill.toString()) + "." + StringUtils.getPrettyItemString(material).replace(" ", "_")); } - /* Excavation */ - public int getExcavationClayXP() { return config.getInt("Experience.Excavation.Clay", 40); } - public int getExcavationDirtXP() { return config.getInt("Experience.Excavation.Dirt", 40); } - public int getExcavationGrassXP() { return config.getInt("Experience.Excavation.Grass", 40); } - public int getExcavationGravelXP() { return config.getInt("Experience.Excavation.Gravel", 40); } - public int getExcavationMycelXP() { return config.getInt("Experience.Excavation.Mycel", 40); } - public int getExcavationSandXP() { return config.getInt("Experience.Excavation.Sand", 40); } - public int getExcavationSoulSandXP() { return config.getInt("Experience.Excavation.SoulSand", 40); } - - /* Fishing */ - public int getFishingBaseXP() { return config.getInt("Experience.Fishing.Base", 800); } - public boolean getFishingDropsEnabled() { return config.getBoolean("Skills.Fishing.Drops_Enabled", true); } - - /* Herbalism */ - public int getHerbalismXPSugarCane() { return config.getInt("Experience.Herbalism.Sugar_Cane", 30); } - public int getHerbalismXPWheat() { return config.getInt("Experience.Herbalism.Wheat", 50); } - public int getHerbalismXPCactus() { return config.getInt("Experience.Herbalism.Cactus", 30); } - public int getHerbalismXPPumpkin() { return config.getInt("Experience.Herbalism.Pumpkin", 20); } - public int getHerbalismXPFlowers() { return config.getInt("Experience.Herbalism.Flowers", 100); } - public int getHerbalismXPMushrooms() { return config.getInt("Experience.Herbalism.Mushrooms", 150); } - public int getHerbalismXPMelon() { return config.getInt("Experience.Herbalism.Melon", 20); } - public int getHerbalismXPNetherWart() { return config.getInt("Experience.Herbalism.Nether_Wart", 50); } - public int getHerbalismXPLilyPads() { return config.getInt("Experience.Herbalism.Lily_Pads", 100); } - public int getHerbalismXPVines() { return config.getInt("Experience.Herbalism.Vines", 10); } - public int getHerbalismXPCocoa() { return config.getInt("Experience.Herbalism.Cocoa", 30); } - public int getHerbalismXPCarrot() { return config.getInt("Experience.Herbalism.Carrot", 50); } - public int getHerbalismXPPotato() { return config.getInt("Experience.Herbalism.Potato", 50); } - - public boolean getBrownMushroomsDoubleDropsEnabled() { return config.getBoolean("Double_Drops.Herbalism.Brown_Mushrooms", true); } - public boolean getCactiDoubleDropsEnabled() { return config.getBoolean("Double_Drops.Herbalism.Cacti", true); } - public boolean getWheatDoubleDropsEnabled() { return config.getBoolean("Double_Drops.Herbalism.Wheat", true); } - public boolean getMelonsDoubleDropsEnabled() { return config.getBoolean("Double_Drops.Herbalism.Melons", true); } - public boolean getNetherWartsDoubleDropsEnabled() { return config.getBoolean("Double_Drops.Herbalism.Nether_Warts", true); } - public boolean getPumpkinsDoubleDropsEnabled() { return config.getBoolean("Double_Drops.Herbalism.Pumpkins", true); } - public boolean getRedMushroomsDoubleDropsEnabled() { return config.getBoolean("Double_Drops.Herbalism.Red_Mushrooms", true); } - public boolean getRedRosesDoubleDropsEnabled() { return config.getBoolean("Double_Drops.Herbalism.Red_Roses", true); } - public boolean getSugarCaneDoubleDropsEnabled() { return config.getBoolean("Double_Drops.Herbalism.Sugar_Cane", true); } - public boolean getVinesDoubleDropsEnabled() { return config.getBoolean("Double_Drops.Herbalism.Vines", true); } - 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 getCocoaDoubleDropsEnabled() { return config.getBoolean("Double_Drops.Herbalism.Cocoa", true); } - public boolean getCarrotDoubleDropsEnabled() { return config.getBoolean("Double_Drops.Herbalism.Carrot", true); } - public boolean getPotatoDoubleDropsEnabled() { return config.getBoolean("Double_Drops.Herbalism.Potato", true); } - - public boolean herbalismDoubleDropsDisabled() { - return doubleDropsDisabled("Herbalism"); - } - - /* Mining */ - public int getMiningXPGoldOre() { return config.getInt("Experience.Mining.Gold", 250); } - public int getMiningXPDiamondOre() { return config.getInt("Experience.Mining.Diamond", 750); } - public int getMiningXPIronOre() { return config.getInt("Experience.Mining.Iron", 250); } - public int getMiningXPRedstoneOre() { return config.getInt("Experience.Mining.Redstone", 150); } - public int getMiningXPLapisOre() { return config.getInt("Experience.Mining.Lapis", 400); } - public int getMiningXPObsidian() { return config.getInt("Experience.Mining.Obsidian", 150); } - public int getMiningXPNetherrack() { return config.getInt("Experience.Mining.Netherrack", 30); } - public int getMiningXPGlowstone() { return config.getInt("Experience.Mining.Glowstone", 30); } - public int getMiningXPCoalOre() { return config.getInt("Experience.Mining.Coal", 100); } - public int getMiningXPStone() { return config.getInt("Experience.Mining.Stone", 30); } - public int getMiningXPSandstone() { return config.getInt("Experience.Mining.Sandstone", 30); } - public int getMiningXPEndStone() { return config.getInt("Experience.Mining.End_Stone", 150); } - public int getMiningXPMossyStone() { return config.getInt("Experience.Mining.Moss_Stone", 30); } - public int getMiningXPEmeraldOre() { return config.getInt("Experience.Mining.Emerald", 1000); } - - public boolean getCoalDoubleDropsEnabled() { return config.getBoolean("Double_Drops.Mining.Coal", true); } - public boolean getDiamondDoubleDropsEnabled() { return config.getBoolean("Double_Drops.Mining.Diamond", true); } - public boolean getEndStoneDoubleDropsEnabled() { return config.getBoolean("Double_Drops.Mining.End_Stone", true); } - public boolean getGlowstoneDoubleDropsEnabled() { return config.getBoolean("Double_Drops.Mining.Glowstone", true); } - public boolean getGoldDoubleDropsEnabled() { return config.getBoolean("Double_Drops.Mining.Gold", true); } - public boolean getIronDoubleDropsEnabled() { return config.getBoolean("Double_Drops.Mining.Iron", true); } - public boolean getLapisDoubleDropsEnabled() { return config.getBoolean("Double_Drops.Mining.Lapis", true); } - public boolean getMossyCobblestoneDoubleDropsEnabled() { return config.getBoolean("Double_Drops.Mining.Moss_Stone", true); } - public boolean getNetherrackDoubleDropsEnabled() { return config.getBoolean("Double_Drops.Mining.Netherrack", true); } - public boolean getObsidianDoubleDropsEnabled() { return config.getBoolean("Double_Drops.Mining.Obsidian", true); } - public boolean getRedstoneDoubleDropsEnabled() { return config.getBoolean("Double_Drops.Mining.Redstone", true); } - public boolean getSandstoneDoubleDropsEnabled() { return config.getBoolean("Double_Drops.Mining.Sandstone", true); } - public boolean getStoneDoubleDropsEnabled() { return config.getBoolean("Double_Drops.Mining.Stone", true); } - public boolean getEmeraldDoubleDropsEnabled() { return config.getBoolean("Double_Drops.Mining.Emerald", true); } - - public boolean miningDoubleDropsDisabled() { - return doubleDropsDisabled("Mining"); - } - - public int getDetonatorItemID() { return config.getInt("Skills.Mining.Detonator_ID", 259); } - - /* Repair */ - public boolean getRepairAnvilMessagesEnabled() { return config.getBoolean("Skills.Repair.Anvil_Messages", true); } - public int getRepairAnvilId() { return config.getInt("Skills.Repair.Anvil_ID", 42); } - public boolean getSalvageEnabled() { return config.getBoolean("Skills.Repair.Salvage_enabled", true); } - public int getSalvageAnvilId() { return config.getInt("Skills.Repair.Salvage_Anvil_ID", 41); } - public int getSalvageUnlockLevel() { return config.getInt("Skills.Repair.Salvage_UnlockLevel", 600); } - public boolean getSalvageTools() { return config.getBoolean("Skills.Repair.Salvage_tools", true); } - public boolean getSalvageArmor() { return config.getBoolean("Skills.Repair.Salvage_armor", true); } - - /* Smelting */ - public int getSmeltingXPCoal() { return config.getInt("Experience.Smelting.Coal", 10); } - public int getSmeltingXPRedstone() { return config.getInt("Experience.Smelting.Redstone", 15); } - public int getSmeltingXPIron() { return config.getInt("Experience.Smelting.Iron", 25); } - public int getSmeltingXPGold() { return config.getInt("Experience.Smelting.Gold", 35); } - public int getSmeltingXPDiamond() { return config.getInt("Experience.Smelting.Diamond", 75); } - public int getSmeltingXPLapis() { return config.getInt("Experience.Smelting.Lapis", 40); } - public int getSmeltingXPEmerald() { return config.getInt("Experience.Smelting.Emerald", 100); } - - /* Unarmed */ - public boolean getUnarmedBlockCrackerSmoothbrickToCracked() { return config.getBoolean("Skills.Unarmed.Block_Cracker.SmoothBrick_To_CrackedBrick", true); } - - /* Taming */ - public int getTamingXPWolf() { return config.getInt("Experience.Taming.Animal_Taming.Wolf", 250); } - public int getTamingXPOcelot() { return config.getInt("Experience.Taming.Animal_Taming.Ocelot", 500); } - public int getTamingCOTWWolfCost() { return config.getInt("Skills.Taming.Call_Of_The_Wild.Bones_Required", 10); } - public int getTamingCOTWOcelotCost() { return config.getInt("Skills.Taming.Call_Of_The_Wild.Fish_Required", 10); } - - /* Woodcutting */ - public int getWoodcuttingXPOak() { return config.getInt("Experience.Woodcutting.Oak", 70); } - public int getWoodcuttingXPBirch() { return config.getInt("Experience.Woodcutting.Birch", 90); } - public int getWoodcuttingXPSpruce() { return config.getInt("Experience.Woodcutting.Spruce", 80); } - public int getWoodcuttingXPJungle() { return config.getInt("Experience.Woodcutting.Jungle", 100); } - public int getWoodcuttingXPHugeBrownMushroom() { return config.getInt("Experience.Woodcutting.Huge_Mushroom_Brown", 70); } - public int getWoodcuttingXPHugeRedMushroom() { return config.getInt("Experience.Woodcutting.Huge_Mushroom_Red", 70); } - - - public boolean getOakDoubleDropsEnabled() { return config.getBoolean("Double_Drops.Woodcutting.Oak", true); } - public boolean getBirchDoubleDropsEnabled() { return config.getBoolean("Double_Drops.Woodcutting.Birch", true); } - 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() { - return doubleDropsDisabled("Woodcutting"); - } - - /* AFK Leveling */ - public boolean getAcrobaticsAFKDisabled() { return config.getBoolean("Skills.Acrobatics.Prevent_AFK_Leveling", true); } - public boolean getHerbalismAFKDisabled() { return config.getBoolean("Skills.Herbalism.Prevent_AFK_Leveling", true); } - - /* Dogde Lightning */ - public boolean getDodgeLightningDisabled() { return config.getBoolean("Skills.Acrobatics.Prevent_Dodge_Lightning", false); } - - /* Level Caps */ - public int getLevelCapAcrobatics() { - return getLevelCap("Skills.Acrobatics.Level_Cap"); - } - - public int getLevelCapArchery() { - return getLevelCap("Skills.Archery.Level_Cap"); - } - - public int getLevelCapAxes() { - return getLevelCap("Skills.Axes.Level_Cap"); - } - - public int getLevelCapExcavation() { - return getLevelCap("Skills.Excavation.Level_Cap"); - } - - public int getLevelCapFishing() { - return getLevelCap("Skills.Fishing.Level_Cap"); - } - - public int getLevelCapHerbalism() { - return getLevelCap("Skills.Herbalism.Level_Cap"); - } - - public int getLevelCapMining() { - return getLevelCap("Skills.Mining.Level_Cap"); - } - - public int getLevelCapRepair() { - return getLevelCap("Skills.Repair.Level_Cap"); - } - - public int getLevelCapSmelting() { - return getLevelCap("Skills.Smelting.Level_Cap"); - } - - public int getLevelCapSwords() { - return getLevelCap("Skills.Swords.Level_Cap"); - } - - public int getLevelCapTaming() { - return getLevelCap("Skills.Taming.Level_Cap"); - } - - public int getLevelCapUnarmed() { - return getLevelCap("Skills.Unarmed.Level_Cap"); - } - - public int getLevelCapWoodcutting() { - return getLevelCap("Skills.Woodcutting.Level_Cap"); - } - - public int getPowerLevelCap() { - return getLevelCap("General.Power_Level_Cap"); - } - - /* PVP & PVE Settings */ - public boolean getAcrobaticsPVP() { return config.getBoolean("Skills.Acrobatics.Enabled_For_PVP", true); } - public boolean getAcrobaticsPVE() { return config.getBoolean("Skills.Acrobatics.Enabled_For_PVE", true); } - public boolean getArcheryPVP() { return config.getBoolean("Skills.Archery.Enabled_For_PVP", true); } - public boolean getArcheryPVE() { return config.getBoolean("Skills.Archery.Enabled_For_PVE", true); } - public boolean getAxesPVP() { return config.getBoolean("Skills.Axes.Enabled_For_PVP", true); } - public boolean getAxesPVE() { return config.getBoolean("Skills.Axes.Enabled_For_PVE", true); } - public boolean getSwordsPVP() { return config.getBoolean("Skills.Swords.Enabled_For_PVP", true); } - public boolean getSwordsPVE() { return config.getBoolean("Skills.Swords.Enabled_For_PVE", true); } - public boolean getTamingPVP() { return config.getBoolean("Skills.Taming.Enabled_For_PVP", true); } - public boolean getTamingPVE() { return config.getBoolean("Skills.Taming.Enabled_For_PVE", true); } - public boolean getUnarmedPVP() { return config.getBoolean("Skills.Unarmed.Enabled_For_PVP", true); } - public boolean getUnarmedPVE() { return config.getBoolean("Skills.Unarmed.Enabled_For_PVE", true); } - - /* - * XP SETTINGS - */ - - /* General Settings */ - public boolean getExperienceGainsMobspawnersEnabled() { return config.getBoolean("Experience.Gains.Mobspawners.Enabled", false); } - public boolean getExperienceGainsPlayerVersusPlayerEnabled() { return config.getBoolean("Experience.PVP.Rewards", true); } - public double getExperienceGainsGlobalMultiplier() { return config.getDouble("Experience.Gains.Multiplier.Global", 1.0); } - public void setExperienceGainsGlobalMultiplier(double value) { config.set("Experience.Gains.Multiplier.Global", value); } - - /* Combat XP Multipliers */ - public double getPlayerVersusPlayerXP() { return config.getDouble("Experience.Gains.Multiplier.PVP", 1.0); } - public double getAnimalsXP() { return config.getDouble("Experience.Combat.Multiplier.Animals", 1.0); } - public double getCreeperXP() { return config.getDouble("Experience.Combat.Multiplier.Creeper", 4.0); } - public double getSkeletonXP() { return config.getDouble("Experience.Combat.Multiplier.Skeleton", 2.0); } - public double getSpiderXP() { return config.getDouble("Experience.Combat.Multiplier.Spider", 3.0); } - public double getGhastXP() { return config.getDouble("Experience.Combat.Multiplier.Ghast", 3.0); } - public double getSlimeXP() { return config.getDouble("Experience.Combat.Multiplier.Slime", 2.0); } - public double getZombieXP() { return config.getDouble("Experience.Combat.Multiplier.Zombie", 2.0); } - public double getPigZombieXP() { return config.getDouble("Experience.Combat.Multiplier.Pig_Zombie", 3.0); } - public double getEndermanXP() { return config.getDouble("Experience.Combat.Multiplier.Enderman", 1.0); } - public double getCaveSpiderXP() { return config.getDouble("Experience.Combat.Multiplier.Cave_Spider", 3.0); } - public double getSilverfishXP() { return config.getDouble("Experience.Combat.Multiplier.Silverfish", 3.0); } - public double getBlazeXP() { return config.getDouble("Experience.Combat.Multiplier.Blaze", 3.0); } - public double getMagmaCubeXP() { return config.getDouble("Experience.Combat.Multiplier.Magma_Cube", 2.0); } - public double getEnderDragonXP() { return config.getDouble("Experience.Combat.Multiplier.Ender_Dragon", 8.0); } - public double getIronGolemXP() { return config.getDouble("Experience.Combat.Multiplier.Iron_Golem", 2.0); } - public double getGiantXP() { return config.getDouble("Experience.Combat.Multiplier.Giant", 4.0); } - public double getWitherXP() { return config.getDouble("Experience.Combat.Multiplier.Wither", 7.0); } - public double getWitherSkeletonXP() { return config.getDouble("Experience.Combat.Multiplier.Wither_Skeleton", 4.0); } - public double getWitchXP() { return config.getDouble("Experience.Combat.Multiplier.Witch", 4.0); } - - /* XP Formula Multiplier */ - public int getFormulaMultiplierCurve() { return config.getInt("Experience.Formula.Curve_Modifier", 20); } - public double getFormulaMultiplierTaming() { return config.getDouble("Experience.Formula.Multiplier.Taming", 1.0); } - public double getFormulaMultiplierMining() { return config.getDouble("Experience.Formula.Multiplier.Mining", 1.0); } - public double getFormulaMultiplierRepair() { return config.getDouble("Experience.Formula.Multiplier.Repair", 1.0); } - public double getFormulaMultiplierWoodcutting() { return config.getDouble("Experience.Formula.Multiplier.Woodcutting", 1.0); } - public double getFormulaMultiplierUnarmed() { return config.getDouble("Experience.Formula.Multiplier.Unarmed", 1.0); } - public double getFormulaMultiplierHerbalism() { return config.getDouble("Experience.Formula.Multiplier.Herbalism", 1.0); } - public double getFormulaMultiplierExcavation() { return config.getDouble("Experience.Formula.Multiplier.Excavation", 1.0); } - public double getFormulaMultiplierArchery() { return config.getDouble("Experience.Formula.Multiplier.Archery", 1.0); } - public double getFormulaMultiplierSwords() { return config.getDouble("Experience.Formula.Multiplier.Swords", 1.0); } - public double getFormulaMultiplierAxes() { return config.getDouble("Experience.Formula.Multiplier.Axes", 1.0); } - public double getFormulaMultiplierAcrobatics() { return config.getDouble("Experience.Formula.Multiplier.Acrobatics", 1.0); } - public double getFormulaMultiplierFishing() { return config.getDouble("Experience.Formula.Multiplier.Fishing", 1.0); } - - private boolean doubleDropsDisabled(String skillName) { + public boolean getDoubleDropsDisabled(SkillType skill) { + String skillName = StringUtils.getCapitalized(skill.toString()); ConfigurationSection section = config.getConfigurationSection("Double_Drops." + skillName); Set keys = section.getKeys(false); - boolean disabled = true; for (String key : keys) { @@ -424,8 +162,88 @@ public class Config extends ConfigLoader { return disabled; } - private int getLevelCap(String configString) { - int cap = config.getInt(configString, 0); - return ((cap <= 0) ? Integer.MAX_VALUE : cap); + /* Acrobatics */ + public boolean getDodgeLightningDisabled() { return config.getBoolean("Skills.Acrobatics.Prevent_Dodge_Lightning", false); } + + /* Fishing */ + public int getFishingBaseXP() { return config.getInt("Experience.Fishing.Base", 800); } + public boolean getFishingDropsEnabled() { return config.getBoolean("Skills.Fishing.Drops_Enabled", true); } + + /* Mining */ + public int getDetonatorItemID() { return config.getInt("Skills.Mining.Detonator_ID", 259); } + + /* Repair */ + public boolean getRepairAnvilMessagesEnabled() { return config.getBoolean("Skills.Repair.Anvil_Messages", true); } + public int getRepairAnvilId() { return config.getInt("Skills.Repair.Anvil_ID", 42); } + public boolean getSalvageEnabled() { return config.getBoolean("Skills.Repair.Salvage_enabled", true); } + public int getSalvageAnvilId() { return config.getInt("Skills.Repair.Salvage_Anvil_ID", 41); } + public int getSalvageUnlockLevel() { return config.getInt("Skills.Repair.Salvage_UnlockLevel", 600); } + public boolean getSalvageTools() { return config.getBoolean("Skills.Repair.Salvage_tools", true); } + public boolean getSalvageArmor() { return config.getBoolean("Skills.Repair.Salvage_armor", true); } + + /* Unarmed */ + public boolean getUnarmedBlockCrackerSmoothbrickToCracked() { return config.getBoolean("Skills.Unarmed.Block_Cracker.SmoothBrick_To_CrackedBrick", true); } + + /* Taming */ + public int getTamingXPWolf() { return config.getInt("Experience.Taming.Animal_Taming.Wolf", 250); } + public int getTamingXPOcelot() { return config.getInt("Experience.Taming.Animal_Taming.Ocelot", 500); } + public int getTamingCOTWWolfCost() { return config.getInt("Skills.Taming.Call_Of_The_Wild.Bones_Required", 10); } + public int getTamingCOTWOcelotCost() { return config.getInt("Skills.Taming.Call_Of_The_Wild.Fish_Required", 10); } + + /* Woodcutting */ + public boolean getWoodcuttingRequiresTool() { return config.getBoolean("Skills.Woodcutting.Requires_Axe", true); } + + public int getWoodcuttingXPOak() { return config.getInt("Experience.Woodcutting.Oak", 70); } + public int getWoodcuttingXPBirch() { return config.getInt("Experience.Woodcutting.Birch", 90); } + public int getWoodcuttingXPSpruce() { return config.getInt("Experience.Woodcutting.Spruce", 80); } + public int getWoodcuttingXPJungle() { return config.getInt("Experience.Woodcutting.Jungle", 100); } + public int getWoodcuttingXPHugeBrownMushroom() { return config.getInt("Experience.Woodcutting.Huge_Mushroom_Brown", 70); } + public int getWoodcuttingXPHugeRedMushroom() { return config.getInt("Experience.Woodcutting.Huge_Mushroom_Red", 70); } + + public boolean getOakDoubleDropsEnabled() { return config.getBoolean("Double_Drops.Woodcutting.Oak", true); } + public boolean getBirchDoubleDropsEnabled() { return config.getBoolean("Double_Drops.Woodcutting.Birch", true); } + public boolean getSpruceDoubleDropsEnabled() { return config.getBoolean("Double_Drops.Woodcutting.Spruce", true); } + public boolean getJungleDoubleDropsEnabled() { return config.getBoolean("Double_Drops.Woodcutting.Jungle", true); } + + /* AFK Leveling */ + public boolean getAcrobaticsAFKDisabled() { return config.getBoolean("Skills.Acrobatics.Prevent_AFK_Leveling", true); } + public boolean getHerbalismAFKDisabled() { return config.getBoolean("Skills.Herbalism.Prevent_AFK_Leveling", true); } + + /* Level Caps */ + public int getPowerLevelCap() { + int cap = config.getInt("General.Power_Level_Cap", 0); + return (cap <= 0) ? Integer.MAX_VALUE : cap; } + + public int getLevelCap(SkillType skill) { + int cap = config.getInt("Skills." + StringUtils.getCapitalized(skill.toString()) + ".Level_Cap"); + return (cap <= 0) ? Integer.MAX_VALUE : cap; + } + + /* PVP & PVE Settings */ + public boolean getPVPEnabled(SkillType skill) { return config.getBoolean("Skills." + StringUtils.getCapitalized(skill.toString()) + ".Enabled_For_PVP", true); } + public boolean getPVEEnabled(SkillType skill) { return config.getBoolean("Skills." + StringUtils.getCapitalized(skill.toString()) + ".Enabled_For_PVE", true); } + + /* + * XP SETTINGS + */ + + /* General Settings */ + public boolean getExperienceGainsMobspawnersEnabled() { return config.getBoolean("Experience.Gains.Mobspawners.Enabled", false); } + public boolean getExperienceGainsPlayerVersusPlayerEnabled() { return config.getBoolean("Experience.PVP.Rewards", true); } + + public double getExperienceGainsGlobalMultiplier() { return config.getDouble("Experience.Gains.Multiplier.Global", 1.0); } + public void setExperienceGainsGlobalMultiplier(double value) { config.set("Experience.Gains.Multiplier.Global", value); } + + /* Combat XP Multipliers */ + public double getPlayerVersusPlayerXP() { return config.getDouble("Experience.Gains.Multiplier.PVP", 1.0); } + public double getCombatXP(EntityType entity) { return config.getDouble("Experience.Combat.Multiplier." + StringUtils.getPrettyEntityTypeString(entity).replace(" ", "_")); } + + public double getAnimalsXP() { return config.getDouble("Experience.Combat.Multiplier.Animals", 1.0); } + public double getWitherSkeletonXP() { return config.getDouble("Experience.Combat.Multiplier.Wither_Skeleton", 4.0); } + + + /* XP Formula Multiplier */ + public int getFormulaMultiplierCurve() { return config.getInt("Experience.Formula.Curve_Modifier", 20); } + public double getForumulaMultiplier(SkillType skill) { return config.getDouble("Experience.Formula.Multiplier." + StringUtils.getCapitalized(skill.toString())); } } diff --git a/src/main/java/com/gmail/nossr50/mods/ModChecks.java b/src/main/java/com/gmail/nossr50/mods/ModChecks.java index 414fea40e..7f81f06a2 100644 --- a/src/main/java/com/gmail/nossr50/mods/ModChecks.java +++ b/src/main/java/com/gmail/nossr50/mods/ModChecks.java @@ -51,6 +51,10 @@ public final class ModChecks { * @return the block if it exists, null otherwise */ public static CustomBlock getCustomBlock(Block block) { + if (!Config.getInstance().getBlockModsEnabled()) { + return null; + } + ItemStack item = (new MaterialData(block.getTypeId(), block.getData())).toItemStack(1); if (!CustomBlocksConfig.getInstance().customItems.contains(item)) { @@ -79,8 +83,9 @@ public final class ModChecks { return null; } + /** - * Check if a custom block is a custom block. + * Check if a custom block is a mining block. * * @param block The block to check * @return true if the block is custom, false otherwise @@ -99,6 +104,26 @@ public final class ModChecks { return false; } + /** + * Check if a custom block is a mining block. + * + * @param block The block to check + * @return true if the block is custom, false otherwise + */ + public static boolean isCustomExcavationBlock(Block block) { + ItemStack item = (new MaterialData(block.getTypeId(), block.getData())).toItemStack(1); + + if (customBlocksEnabled && CustomBlocksConfig.getInstance().customExcavationBlocks.contains(item)) { + for (CustomBlock b : CustomBlocksConfig.getInstance().customBlocks) { + if ((b.getItemID() == block.getTypeId()) && (b.getDataValue() == block.getData())) { + return true; + } + } + } + + return false; + } + /** * Check if a custom block is a leaf block. * diff --git a/src/main/java/com/gmail/nossr50/skills/acrobatics/Acrobatics.java b/src/main/java/com/gmail/nossr50/skills/acrobatics/Acrobatics.java index 49b6cf57b..a085632f7 100644 --- a/src/main/java/com/gmail/nossr50/skills/acrobatics/Acrobatics.java +++ b/src/main/java/com/gmail/nossr50/skills/acrobatics/Acrobatics.java @@ -17,9 +17,6 @@ public class Acrobatics { public static int rollXpModifier = AdvancedConfig.getInstance().getRollXPModifier(); public static int fallXpModifier = AdvancedConfig.getInstance().getFallXPModifier(); - public static boolean pvpEnabled = Config.getInstance().getAcrobaticsPVP(); - public static boolean pveEnabled = Config.getInstance().getAcrobaticsPVE(); - public static boolean afkLevelingDisabled = Config.getInstance().getAcrobaticsAFKDisabled(); public static boolean dodgeLightningDisabled = Config.getInstance().getDodgeLightningDisabled(); } \ No newline at end of file diff --git a/src/main/java/com/gmail/nossr50/skills/archery/Archery.java b/src/main/java/com/gmail/nossr50/skills/archery/Archery.java index 65f495f1c..df000e1d8 100644 --- a/src/main/java/com/gmail/nossr50/skills/archery/Archery.java +++ b/src/main/java/com/gmail/nossr50/skills/archery/Archery.java @@ -9,7 +9,6 @@ import org.bukkit.entity.LivingEntity; import org.bukkit.inventory.ItemStack; import com.gmail.nossr50.config.AdvancedConfig; -import com.gmail.nossr50.config.Config; import com.gmail.nossr50.util.Misc; public class Archery { @@ -26,9 +25,6 @@ public class Archery { public static double dazeMaxBonus = AdvancedConfig.getInstance().getDazeBonusMax(); public static int dazeModifier = AdvancedConfig.getInstance().getDazeModifier(); - public static boolean pvpEnabled = Config.getInstance().getArcheryPVP(); - public static boolean pveEnabled = Config.getInstance().getArcheryPVE(); - public static double distanceXpModifer = 0.025; protected static void incrementTrackerValue(LivingEntity livingEntity) { diff --git a/src/main/java/com/gmail/nossr50/skills/axes/Axes.java b/src/main/java/com/gmail/nossr50/skills/axes/Axes.java index 122727cb6..0fd7d60a5 100644 --- a/src/main/java/com/gmail/nossr50/skills/axes/Axes.java +++ b/src/main/java/com/gmail/nossr50/skills/axes/Axes.java @@ -1,7 +1,6 @@ package com.gmail.nossr50.skills.axes; import com.gmail.nossr50.config.AdvancedConfig; -import com.gmail.nossr50.config.Config; public class Axes { public static int bonusDamageMaxBonus = AdvancedConfig.getInstance().getBonusDamageAxesBonusMax(); @@ -20,7 +19,4 @@ public class Axes { public static int greaterImpactBonusDamage = AdvancedConfig.getInstance().getGreaterImpactBonusDamage(); public static int skullSplitterModifier = AdvancedConfig.getInstance().getSkullSplitterModifier(); - - public static boolean pvpEnabled = Config.getInstance().getAxesPVP(); - public static boolean pveEnabled = Config.getInstance().getAxesPVE(); } diff --git a/src/main/java/com/gmail/nossr50/skills/excavation/Excavation.java b/src/main/java/com/gmail/nossr50/skills/excavation/Excavation.java index e24b21fcb..0e7cd88a4 100644 --- a/src/main/java/com/gmail/nossr50/skills/excavation/Excavation.java +++ b/src/main/java/com/gmail/nossr50/skills/excavation/Excavation.java @@ -28,40 +28,10 @@ public class Excavation { */ public static void excavationProcCheck(Block block, McMMOPlayer mcMMOPlayer) { Material material = block.getType(); - int xp; + int xp = Config.getInstance().getXp(SkillType.EXCAVATION, material); - switch (material) { - case CLAY: - xp = Config.getInstance().getExcavationClayXP(); - break; - - case DIRT: - xp = Config.getInstance().getExcavationDirtXP(); - break; - - case GRASS: - xp = Config.getInstance().getExcavationGrassXP(); - break; - - case GRAVEL: - xp = Config.getInstance().getExcavationGravelXP(); - break; - - case MYCEL: - xp = Config.getInstance().getExcavationMycelXP(); - break; - - case SAND: - xp = Config.getInstance().getExcavationSandXP(); - break; - - case SOUL_SAND: - xp = Config.getInstance().getExcavationSoulSandXP(); - break; - - default: - xp = ModChecks.getCustomBlock(block).getXpGain();; - break; + if (xp == 0 && ModChecks.isCustomExcavationBlock(block)) { + xp = ModChecks.getCustomBlock(block).getXpGain(); } Player player = mcMMOPlayer.getPlayer(); diff --git a/src/main/java/com/gmail/nossr50/skills/herbalism/Herbalism.java b/src/main/java/com/gmail/nossr50/skills/herbalism/Herbalism.java index 82ab64a3c..6fa900c99 100644 --- a/src/main/java/com/gmail/nossr50/skills/herbalism/Herbalism.java +++ b/src/main/java/com/gmail/nossr50/skills/herbalism/Herbalism.java @@ -45,7 +45,6 @@ public class Herbalism { public static double doubleDropsMaxChance = AdvancedConfig.getInstance().getHerbalismDoubleDropsChanceMax(); public static int doubleDropsMaxLevel = AdvancedConfig.getInstance().getHerbalismDoubleDropsMaxLevel(); - public static boolean doubleDropsDisabled = Config.getInstance().herbalismDoubleDropsDisabled(); public static double hylianLuckMaxChance = AdvancedConfig.getInstance().getHylianLuckChanceMax(); public static int hylianLuckMaxLevel = AdvancedConfig.getInstance().getHylianLucksMaxLevel(); diff --git a/src/main/java/com/gmail/nossr50/skills/herbalism/HerbalismBlock.java b/src/main/java/com/gmail/nossr50/skills/herbalism/HerbalismBlock.java index f088c2e37..1d47ea7b1 100644 --- a/src/main/java/com/gmail/nossr50/skills/herbalism/HerbalismBlock.java +++ b/src/main/java/com/gmail/nossr50/skills/herbalism/HerbalismBlock.java @@ -8,46 +8,43 @@ import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; import com.gmail.nossr50.config.Config; +import com.gmail.nossr50.skills.utilities.SkillType; import com.gmail.nossr50.util.Permissions; import com.google.common.collect.Maps; public enum HerbalismBlock { - BROWN_MUSHROOM(Material.BROWN_MUSHROOM, Config.getInstance().getHerbalismXPMushrooms(), Config.getInstance().getBrownMushroomsDoubleDropsEnabled()), - CACTUS(Material.CACTUS, Config.getInstance().getHerbalismXPCactus(), Config.getInstance().getCactiDoubleDropsEnabled()), - CARROT(Material.CARROT, Material.CARROT_ITEM, Config.getInstance().getHerbalismXPCarrot(), Config.getInstance().getCarrotDoubleDropsEnabled()), - COCOA(Material.COCOA, new ItemStack(Material.INK_SACK, 1, DyeColor.BROWN.getDyeData()), Config.getInstance().getHerbalismXPCocoa(), Config.getInstance().getCocoaDoubleDropsEnabled()), - CROPS(Material.CROPS, Material.WHEAT, Config.getInstance().getHerbalismXPWheat(), Config.getInstance().getWheatDoubleDropsEnabled()), - MELON_BLOCK(Material.MELON_BLOCK, Material.MELON, Config.getInstance().getHerbalismXPMelon(), Config.getInstance().getMelonsDoubleDropsEnabled()), - NETHER_WARTS(Material.NETHER_WARTS, Material.NETHER_STALK, Config.getInstance().getHerbalismXPNetherWart(), Config.getInstance().getNetherWartsDoubleDropsEnabled()), - POTATO(Material.POTATO, Material.POTATO_ITEM, Config.getInstance().getHerbalismXPPotato(), Config.getInstance().getPotatoDoubleDropsEnabled()), - PUMPKIN(Material.PUMPKIN, Config.getInstance().getHerbalismXPPumpkin(), Config.getInstance().getPumpkinsDoubleDropsEnabled()), - RED_MUSHROOM(Material.RED_MUSHROOM, Config.getInstance().getHerbalismXPMushrooms(), Config.getInstance().getRedMushroomsDoubleDropsEnabled()), - RED_ROSE(Material.RED_ROSE, Config.getInstance().getHerbalismXPFlowers(), Config.getInstance().getRedRosesDoubleDropsEnabled()), - SUGAR_CANE_BLOCK(Material.SUGAR_CANE_BLOCK, Material.SUGAR_CANE, Config.getInstance().getHerbalismXPSugarCane(), Config.getInstance().getSugarCaneDoubleDropsEnabled()), - VINE(Material.VINE, Config.getInstance().getHerbalismXPVines(), Config.getInstance().getVinesDoubleDropsEnabled()), - WATER_LILY(Material.WATER_LILY, Config.getInstance().getHerbalismXPLilyPads(), Config.getInstance().getWaterLiliesDoubleDropsEnabled()), - YELLOW_FLOWER(Material.YELLOW_FLOWER, Config.getInstance().getHerbalismXPFlowers(), Config.getInstance().getYellowFlowersDoubleDropsEnabled()); + BROWN_MUSHROOM(Material.BROWN_MUSHROOM), + CACTUS(Material.CACTUS), + CARROT(Material.CARROT, Material.CARROT_ITEM), + COCOA(Material.COCOA, new ItemStack(Material.INK_SACK, 1, DyeColor.BROWN.getDyeData())), + CROPS(Material.CROPS, Material.WHEAT), + MELON_BLOCK(Material.MELON_BLOCK, Material.MELON), + NETHER_WARTS(Material.NETHER_WARTS, Material.NETHER_STALK), + POTATO(Material.POTATO, Material.POTATO_ITEM), + PUMPKIN(Material.PUMPKIN), + RED_MUSHROOM(Material.RED_MUSHROOM), + RED_ROSE(Material.RED_ROSE), + SUGAR_CANE_BLOCK(Material.SUGAR_CANE_BLOCK, Material.SUGAR_CANE), + VINE(Material.VINE), + WATER_LILY(Material.WATER_LILY), + YELLOW_FLOWER(Material.YELLOW_FLOWER); private Material blockType; private ItemStack dropItem; - private int xpGain; - private boolean doubleDropsEnabled; private final static Map BY_MATERIAL = Maps.newHashMap(); - private HerbalismBlock(Material blockType, int xpGain, boolean doubleDropsEnabled) { - this(blockType, new ItemStack(blockType), xpGain, doubleDropsEnabled); + private HerbalismBlock(Material blockType) { + this(blockType, new ItemStack(blockType)); } - private HerbalismBlock(Material blockType, Material dropType, int xpGain, boolean doubleDropsEnabled) { - this(blockType, new ItemStack(dropType), xpGain, doubleDropsEnabled); + private HerbalismBlock(Material blockType, Material dropType) { + this(blockType, new ItemStack(dropType)); } - private HerbalismBlock(Material blockType, ItemStack dropItem, int xpGain, boolean doubleDropsEnabled) { + private HerbalismBlock(Material blockType, ItemStack dropItem) { this.blockType = blockType; this.dropItem = dropItem; - this.xpGain = xpGain; - this.doubleDropsEnabled = doubleDropsEnabled; } static { @@ -61,11 +58,11 @@ public enum HerbalismBlock { } public int getXpGain() { - return xpGain; + return Config.getInstance().getXp(SkillType.HERBALISM, blockType); } public boolean canDoubleDrop() { - return doubleDropsEnabled; + return Config.getInstance().getDoubleDropsEnabled(SkillType.HERBALISM, blockType); } public boolean hasGreenThumbPermission(Player player) { diff --git a/src/main/java/com/gmail/nossr50/skills/herbalism/HerbalismCommand.java b/src/main/java/com/gmail/nossr50/skills/herbalism/HerbalismCommand.java index e5898918a..104c99c81 100644 --- a/src/main/java/com/gmail/nossr50/skills/herbalism/HerbalismCommand.java +++ b/src/main/java/com/gmail/nossr50/skills/herbalism/HerbalismCommand.java @@ -67,7 +67,7 @@ public class HerbalismCommand extends SkillCommand { canGreenThumbBlocks = (Permissions.greenThumbBlock(player, Material.DIRT) || Permissions.greenThumbBlock(player, Material.COBBLESTONE) || Permissions.greenThumbBlock(player, Material.COBBLE_WALL) || Permissions.greenThumbBlock(player, Material.SMOOTH_BRICK)); canFarmersDiet = Permissions.farmersDiet(player); canDoubleDrop = Permissions.doubleDrops(player, skill); - doubleDropsDisabled = Herbalism.doubleDropsDisabled; + doubleDropsDisabled = skill.getDoubleDropsDisabled(); } @Override diff --git a/src/main/java/com/gmail/nossr50/skills/mining/Mining.java b/src/main/java/com/gmail/nossr50/skills/mining/Mining.java index 3e5e0efc7..5402134af 100644 --- a/src/main/java/com/gmail/nossr50/skills/mining/Mining.java +++ b/src/main/java/com/gmail/nossr50/skills/mining/Mining.java @@ -6,7 +6,6 @@ import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.block.Block; import org.bukkit.inventory.ItemStack; -import org.bukkit.material.MaterialData; import com.gmail.nossr50.config.AdvancedConfig; import com.gmail.nossr50.config.Config; @@ -18,12 +17,9 @@ import com.gmail.nossr50.util.Misc; public class Mining { private static AdvancedConfig advancedConfig = AdvancedConfig.getInstance(); - private static Config config = Config.getInstance(); public static int doubleDropsMaxLevel = advancedConfig.getMiningDoubleDropMaxLevel(); public static double doubleDropsMaxChance = advancedConfig.getMiningDoubleDropChance(); - public static boolean doubleDropsDisabled = config.miningDoubleDropsDisabled(); - public static final int DIAMOND_TOOL_TIER = 4; public static final int IRON_TOOL_TIER = 3; @@ -36,71 +32,13 @@ public class Mining { * @param block The block to award XP for */ protected static void miningXP(McMMOPlayer mcMMOPlayer, Block block, Material type) { - int xp = 0; + int xp = Config.getInstance().getXp(SkillType.MINING, type); - switch (type) { - case COAL_ORE: - xp += config.getMiningXPCoalOre(); - break; - - case DIAMOND_ORE: - xp += config.getMiningXPDiamondOre(); - break; - - case ENDER_STONE: - xp += config.getMiningXPEndStone(); - break; - - case GLOWING_REDSTONE_ORE: - case REDSTONE_ORE: - xp += config.getMiningXPRedstoneOre(); - break; - - case GLOWSTONE: - xp += config.getMiningXPGlowstone(); - break; - - case GOLD_ORE: - xp += config.getMiningXPGoldOre(); - break; - - case IRON_ORE: - xp += config.getMiningXPIronOre(); - break; - - case LAPIS_ORE: - xp += config.getMiningXPLapisOre(); - break; - - case MOSSY_COBBLESTONE: - xp += config.getMiningXPMossyStone(); - break; - - case NETHERRACK: - xp += config.getMiningXPNetherrack(); - break; - - case OBSIDIAN: - xp += config.getMiningXPObsidian(); - break; - - case SANDSTONE: - xp += config.getMiningXPSandstone(); - break; - - case STONE: - xp += config.getMiningXPStone(); - break; - - case EMERALD_ORE: - xp += config.getMiningXPEmeraldOre(); - break; - - default: - if (ModChecks.isCustomMiningBlock(block)) { - xp += ModChecks.getCustomBlock(block).getXpGain(); - } - break; + if (type == Material.GLOWING_REDSTONE_ORE) { + xp = Config.getInstance().getXp(SkillType.MINING, Material.REDSTONE_ORE); + } + else if (xp == 0 && ModChecks.isCustomMiningBlock(block)) { + xp = ModChecks.getCustomBlock(block).getXpGain(); } mcMMOPlayer.beginXpGain(SkillType.MINING, xp); @@ -116,6 +54,10 @@ public class Mining { protected static void silkTouchDrops(Block block, Location location, Material type) { ItemStack item = new ItemStack(type); + if (type != Material.GLOWING_REDSTONE_ORE && !Config.getInstance().getDoubleDropsEnabled(SkillType.MINING, type)) { + return; + } + switch (type) { case ENDER_STONE: case GOLD_ORE: @@ -127,52 +69,25 @@ public class Mining { miningDrops(block, location, type); break; - case COAL_ORE: - if (config.getCoalDoubleDropsEnabled()) { - Misc.dropItem(location, item); - } - break; - - case DIAMOND_ORE: - if (config.getDiamondDoubleDropsEnabled()) { - Misc.dropItem(location, item); - } - break; - case GLOWING_REDSTONE_ORE: + if (Config.getInstance().getDoubleDropsEnabled(SkillType.MINING, Material.REDSTONE_ORE)) { + Misc.dropItem(location, item); + } + break; + + case COAL_ORE: + case DIAMOND_ORE: case REDSTONE_ORE: - if (config.getRedstoneDoubleDropsEnabled()) { - Misc.dropItem(location, item); - } - break; - case GLOWSTONE: - if (config.getGlowstoneDoubleDropsEnabled()) { - Misc.dropItem(location, item); - } - break; - case LAPIS_ORE: - if (config.getLapisDoubleDropsEnabled()) { - Misc.dropItem(location, item); - } - break; - case STONE: - if (config.getStoneDoubleDropsEnabled()) { - Misc.dropItem(location, item); - } - break; - case EMERALD_ORE: - if (config.getEmeraldDoubleDropsEnabled()) { - Misc.dropItem(location, item); - } + Misc.dropItem(location, item); break; default: if (ModChecks.isCustomMiningBlock(block)) { - ItemStack dropItem = (new MaterialData(block.getTypeId(), block.getData())).toItemStack(1); + ItemStack dropItem = new ItemStack(block.getTypeId(), 1, block.getData()); Misc.dropItem(location, dropItem); } @@ -188,33 +103,31 @@ public class Mining { * @param type The material type of the block */ protected static void miningDrops(Block block, Location location, Material type) { + if (type != Material.GLOWING_REDSTONE_ORE && !Config.getInstance().getDoubleDropsEnabled(SkillType.MINING, type)) { + return; + } + ItemStack item = new ItemStack(type); switch (type) { case COAL_ORE: - if (config.getCoalDoubleDropsEnabled()) { - item = (new MaterialData(Material.COAL, CoalType.COAL.getData())).toItemStack(1); - - Misc.dropItem(location, item); - } + item = new ItemStack(Material.COAL, 1, CoalType.COAL.getData()); + Misc.dropItem(location, item); break; case DIAMOND_ORE: - if (config.getDiamondDoubleDropsEnabled()) { - item = new ItemStack(Material.DIAMOND); - Misc.dropItem(location, item); - } + item = new ItemStack(Material.DIAMOND); + Misc.dropItem(location, item); break; - case ENDER_STONE: - if (config.getEndStoneDoubleDropsEnabled()) { - Misc.dropItem(location, item); - } + case EMERALD_ORE: + item = new ItemStack(Material.EMERALD); + Misc.dropItem(location, item); break; case GLOWING_REDSTONE_ORE: case REDSTONE_ORE: - if (config.getRedstoneDoubleDropsEnabled()) { + if (Config.getInstance().getDoubleDropsEnabled(SkillType.MINING, Material.REDSTONE_ORE)) { item = new ItemStack(Material.REDSTONE); Misc.dropItems(location, item, 4); Misc.randomDropItem(location, item, 50); @@ -222,69 +135,30 @@ public class Mining { break; case GLOWSTONE: - if (config.getGlowstoneDoubleDropsEnabled()) { - item = new ItemStack(Material.GLOWSTONE_DUST); - Misc.dropItems(location, item, 2); - Misc.randomDropItems(location, item, 2); - } - break; - - case GOLD_ORE: - if (config.getGoldDoubleDropsEnabled()) { - Misc.dropItem(location, item); - } - break; - - case IRON_ORE: - if (config.getIronDoubleDropsEnabled()) { - Misc.dropItem(location, item); - } + item = new ItemStack(Material.GLOWSTONE_DUST); + Misc.dropItems(location, item, 2); + Misc.randomDropItems(location, item, 2); break; case LAPIS_ORE: - if (config.getLapisDoubleDropsEnabled()) { - item = new ItemStack(Material.INK_SACK, 1, DyeColor.BLUE.getDyeData()); - Misc.dropItems(location, item, 4); - Misc.randomDropItems(location, item, 4); - } - break; - - case MOSSY_COBBLESTONE: - if (config.getMossyCobblestoneDoubleDropsEnabled()) { - Misc.dropItem(location, item); - } - break; - - case NETHERRACK: - if (config.getNetherrackDoubleDropsEnabled()) { - Misc.dropItem(location, item); - } - break; - - case OBSIDIAN: - if (config.getObsidianDoubleDropsEnabled()) { - Misc.dropItem(location, item); - } - break; - - case SANDSTONE: - if (config.getSandstoneDoubleDropsEnabled()) { - Misc.dropItem(location, item); - } + item = new ItemStack(Material.INK_SACK, 1, DyeColor.BLUE.getDyeData()); + Misc.dropItems(location, item, 4); + Misc.randomDropItems(location, item, 4); break; case STONE: - if (config.getStoneDoubleDropsEnabled()) { - item = new ItemStack(Material.COBBLESTONE); - Misc.dropItem(location, item); - } + item = new ItemStack(Material.COBBLESTONE); + Misc.dropItem(location, item); break; - case EMERALD_ORE: - if (config.getEmeraldDoubleDropsEnabled()) { - item = new ItemStack(Material.EMERALD); - Misc.dropItem(location, item); - } + case ENDER_STONE: + case GOLD_ORE: + case IRON_ORE: + case MOSSY_COBBLESTONE: + case NETHERRACK: + case OBSIDIAN: + case SANDSTONE: + Misc.dropItem(location, item); break; default: diff --git a/src/main/java/com/gmail/nossr50/skills/mining/MiningCommand.java b/src/main/java/com/gmail/nossr50/skills/mining/MiningCommand.java index 40df8ba5d..2bee93bd9 100644 --- a/src/main/java/com/gmail/nossr50/skills/mining/MiningCommand.java +++ b/src/main/java/com/gmail/nossr50/skills/mining/MiningCommand.java @@ -92,7 +92,7 @@ public class MiningCommand extends SkillCommand { canDemoExpert = Permissions.demolitionsExpertise(player); canDoubleDrop = Permissions.doubleDrops(player, skill); canSuperBreaker = Permissions.superBreaker(player); - doubleDropsDisabled = Mining.doubleDropsDisabled; + doubleDropsDisabled = skill.getDoubleDropsDisabled(); } @Override diff --git a/src/main/java/com/gmail/nossr50/skills/smelting/SmeltResourceEventHandler.java b/src/main/java/com/gmail/nossr50/skills/smelting/SmeltResourceEventHandler.java index af3c92ca1..835b3ba0c 100644 --- a/src/main/java/com/gmail/nossr50/skills/smelting/SmeltResourceEventHandler.java +++ b/src/main/java/com/gmail/nossr50/skills/smelting/SmeltResourceEventHandler.java @@ -28,40 +28,10 @@ public class SmeltResourceEventHandler { protected void handleXPGain() { Material sourceType = event.getSource().getType(); - int xp = 0; + int xp = Config.getInstance().getXp(SkillType.SMELTING, sourceType); - switch (sourceType) { - case COAL_ORE: - xp = Config.getInstance().getSmeltingXPCoal(); - break; - - case GLOWING_REDSTONE_ORE: - case REDSTONE_ORE: - xp = Config.getInstance().getSmeltingXPRedstone(); - break; - - case IRON_ORE: - xp = Config.getInstance().getSmeltingXPIron(); - break; - - case GOLD_ORE: - xp = Config.getInstance().getSmeltingXPGold(); - break; - - case DIAMOND_ORE: - xp = Config.getInstance().getSmeltingXPDiamond(); - break; - - case LAPIS_ORE: - xp = Config.getInstance().getSmeltingXPLapis(); - break; - - case EMERALD_ORE: - xp = Config.getInstance().getSmeltingXPEmerald(); - break; - - default: - break; + if (sourceType == Material.GLOWING_REDSTONE_ORE) { + xp = Config.getInstance().getXp(SkillType.SMELTING, Material.REDSTONE_ORE); } McMMOPlayer mcMMOPlayer = manager.getMcMMOPlayer(); diff --git a/src/main/java/com/gmail/nossr50/skills/swords/Swords.java b/src/main/java/com/gmail/nossr50/skills/swords/Swords.java index 8c28bb1c5..a84fc5936 100644 --- a/src/main/java/com/gmail/nossr50/skills/swords/Swords.java +++ b/src/main/java/com/gmail/nossr50/skills/swords/Swords.java @@ -1,7 +1,6 @@ package com.gmail.nossr50.skills.swords; import com.gmail.nossr50.config.AdvancedConfig; -import com.gmail.nossr50.config.Config; public class Swords { public static double bleedMaxChance = AdvancedConfig.getInstance().getBleedChanceMax(); @@ -15,8 +14,5 @@ public class Swords { public static int serratedStrikesModifier = AdvancedConfig.getInstance().getSerratedStrikesModifier(); public static int serratedStrikesBleedTicks = AdvancedConfig.getInstance().getSerratedStrikesTicks(); - - public static boolean pvpEnabled = Config.getInstance().getSwordsPVP(); - public static boolean pveEnabled = Config.getInstance().getSwordsPVE(); } diff --git a/src/main/java/com/gmail/nossr50/skills/taming/Taming.java b/src/main/java/com/gmail/nossr50/skills/taming/Taming.java index 751ec546e..0bffe5419 100644 --- a/src/main/java/com/gmail/nossr50/skills/taming/Taming.java +++ b/src/main/java/com/gmail/nossr50/skills/taming/Taming.java @@ -25,7 +25,4 @@ public class Taming { public static int wolfXp = Config.getInstance().getTamingXPWolf(); public static int ocelotXp = Config.getInstance().getTamingXPOcelot(); - - public static boolean pvpEnabled = Config.getInstance().getTamingPVP(); - public static boolean pveEnabled = Config.getInstance().getTamingPVE(); } diff --git a/src/main/java/com/gmail/nossr50/skills/unarmed/Unarmed.java b/src/main/java/com/gmail/nossr50/skills/unarmed/Unarmed.java index 307d3400c..8ae527735 100644 --- a/src/main/java/com/gmail/nossr50/skills/unarmed/Unarmed.java +++ b/src/main/java/com/gmail/nossr50/skills/unarmed/Unarmed.java @@ -23,9 +23,6 @@ public class Unarmed { public static boolean blockCrackerSmoothBrick = Config.getInstance().getUnarmedBlockCrackerSmoothbrickToCracked(); - public static boolean pvpEnabled = Config.getInstance().getUnarmedPVP(); - public static boolean pveEnabled = Config.getInstance().getUnarmedPVE(); - public static double berserkDamageModifier = 1.5; public static void blockCracker(Player player, Block block) { diff --git a/src/main/java/com/gmail/nossr50/skills/utilities/AbilityType.java b/src/main/java/com/gmail/nossr50/skills/utilities/AbilityType.java index c0106714f..9f8787469 100644 --- a/src/main/java/com/gmail/nossr50/skills/utilities/AbilityType.java +++ b/src/main/java/com/gmail/nossr50/skills/utilities/AbilityType.java @@ -12,8 +12,6 @@ import com.gmail.nossr50.util.StringUtils; public enum AbilityType { BERSERK( - Config.getInstance().getAbilityCooldownBerserk(), - Config.getInstance().getAbilityMaxTicksBerserk(), "Unarmed.Skills.Berserk.On", "Unarmed.Skills.Berserk.Off", "Unarmed.Skills.Berserk.Other.On", @@ -21,8 +19,6 @@ public enum AbilityType { "Unarmed.Skills.Berserk.Other.Off"), SUPER_BREAKER( - Config.getInstance().getAbilityCooldownSuperBreaker(), - Config.getInstance().getAbilityMaxTicksSuperBreaker(), "Mining.Skills.SuperBreaker.On", "Mining.Skills.SuperBreaker.Off", "Mining.Skills.SuperBreaker.Other.On", @@ -30,8 +26,6 @@ public enum AbilityType { "Mining.Skills.SuperBreaker.Other.Off"), GIGA_DRILL_BREAKER( - Config.getInstance().getAbilityCooldownGigaDrillBreaker(), - Config.getInstance().getAbilityMaxTicksGigaDrillBreaker(), "Excavation.Skills.GigaDrillBreaker.On", "Excavation.Skills.GigaDrillBreaker.Off", "Excavation.Skills.GigaDrillBreaker.Other.On", @@ -39,8 +33,6 @@ public enum AbilityType { "Excavation.Skills.GigaDrillBreaker.Other.Off"), GREEN_TERRA( - Config.getInstance().getAbilityCooldownGreenTerra(), - Config.getInstance().getAbilityMaxTicksGreenTerra(), "Herbalism.Skills.GTe.On", "Herbalism.Skills.GTe.Off", "Herbalism.Skills.GTe.Other.On", @@ -48,8 +40,6 @@ public enum AbilityType { "Herbalism.Skills.GTe.Other.Off"), SKULL_SPLITTER( - Config.getInstance().getAbilityCooldownSkullSplitter(), - Config.getInstance().getAbilityMaxTicksSkullSplitter(), "Axes.Skills.SS.On", "Axes.Skills.SS.Off", "Axes.Skills.SS.Other.On", @@ -57,8 +47,6 @@ public enum AbilityType { "Axes.Skills.SS.Other.Off"), TREE_FELLER( - Config.getInstance().getAbilityCooldownTreeFeller(), - Config.getInstance().getAbilityMaxTicksTreeFeller(), "Woodcutting.Skills.TreeFeller.On", "Woodcutting.Skills.TreeFeller.Off", "Woodcutting.Skills.TreeFeller.Other.On", @@ -66,8 +54,6 @@ public enum AbilityType { "Woodcutting.Skills.TreeFeller.Other.Off"), SERRATED_STRIKES( - Config.getInstance().getAbilityCooldownSerratedStrikes(), - Config.getInstance().getAbilityMaxTicksSerratedStrikes(), "Swords.Skills.SS.On", "Swords.Skills.SS.Off", "Swords.Skills.SS.Other.On", @@ -75,8 +61,6 @@ public enum AbilityType { "Swords.Skills.SS.Other.Off"), BLAST_MINING( - Config.getInstance().getAbilityCooldownBlastMining(), - Config.getInstance().getAbilityMaxTicksBlastMining(), null, null, "Mining.Blast.Other.On", @@ -84,25 +68,19 @@ public enum AbilityType { null), LEAF_BLOWER( - 0, - 0, null, null, null, null, null); - private int cooldown; - private int maxTicks; private String abilityOn; private String abilityOff; private String abilityPlayer; private String abilityRefresh; private String abilityPlayerOff; - private AbilityType(int cooldown, int maxTicks, String abilityOn, String abilityOff, String abilityPlayer, String abilityRefresh, String abilityPlayerOff) { - this.cooldown = cooldown; - this.maxTicks = maxTicks; + private AbilityType(String abilityOn, String abilityOff, String abilityPlayer, String abilityRefresh, String abilityPlayerOff) { this.abilityOn = abilityOn; this.abilityOff = abilityOff; this.abilityPlayer = abilityPlayer; @@ -111,7 +89,11 @@ public enum AbilityType { } public int getCooldown() { - return this.cooldown; + return Config.getInstance().getCooldown(this); + } + + public int getMaxTicks() { + return Config.getInstance().getMaxTicks(this); } public String getAbilityOn() { @@ -134,10 +116,6 @@ public enum AbilityType { return LocaleLoader.getString(this.abilityRefresh); } - public int getMaxTicks() { - return this.maxTicks; - } - @Override public String toString() { String baseString = name(); diff --git a/src/main/java/com/gmail/nossr50/skills/utilities/CombatTools.java b/src/main/java/com/gmail/nossr50/skills/utilities/CombatTools.java index 8a12c9553..8f6f40d07 100644 --- a/src/main/java/com/gmail/nossr50/skills/utilities/CombatTools.java +++ b/src/main/java/com/gmail/nossr50/skills/utilities/CombatTools.java @@ -31,17 +31,14 @@ import com.gmail.nossr50.mods.ModChecks; import com.gmail.nossr50.party.PartyManager; import com.gmail.nossr50.skills.acrobatics.Acrobatics; import com.gmail.nossr50.skills.acrobatics.AcrobaticsManager; -import com.gmail.nossr50.skills.archery.Archery; import com.gmail.nossr50.skills.archery.ArcheryManager; import com.gmail.nossr50.skills.axes.AxeManager; -import com.gmail.nossr50.skills.axes.Axes; import com.gmail.nossr50.skills.runnables.BleedTimer; import com.gmail.nossr50.skills.runnables.CombatXpGiver; import com.gmail.nossr50.skills.swords.Swords; import com.gmail.nossr50.skills.swords.SwordsManager; import com.gmail.nossr50.skills.taming.Taming; import com.gmail.nossr50.skills.taming.TamingManager; -import com.gmail.nossr50.skills.unarmed.Unarmed; import com.gmail.nossr50.skills.unarmed.UnarmedManager; import com.gmail.nossr50.util.ItemChecks; import com.gmail.nossr50.util.Misc; @@ -79,11 +76,11 @@ public final class CombatTools { if (ItemChecks.isSword(heldItem) && damageCause == DamageCause.ENTITY_ATTACK) { if (targetIsPlayer || targetIsTamedPet) { - if (!Swords.pvpEnabled) { + if (!SkillType.SWORDS.getPVPEnabled()) { return; } } - else if (!Swords.pveEnabled) { + else if (!SkillType.SWORDS.getPVEEnabled()) { return; } @@ -110,11 +107,11 @@ public final class CombatTools { } else if (ItemChecks.isAxe(heldItem) && damageCause == DamageCause.ENTITY_ATTACK) { if (targetIsPlayer || targetIsTamedPet) { - if (!Axes.pvpEnabled) { + if (!SkillType.AXES.getPVPEnabled()) { return; } } - else if (!Axes.pveEnabled) { + else if (!SkillType.AXES.getPVEEnabled()) { return; } @@ -148,11 +145,11 @@ public final class CombatTools { } else if (heldItemType == Material.AIR && damageCause == DamageCause.ENTITY_ATTACK) { if (targetIsPlayer || targetIsTamedPet) { - if (!configInstance.getUnarmedPVP()) { + if (!SkillType.UNARMED.getPVPEnabled()) { return; } } - else if (!configInstance.getUnarmedPVE()) { + else if (!SkillType.UNARMED.getPVEEnabled()) { return; } @@ -202,11 +199,11 @@ public final class CombatTools { } if (targetIsPlayer || targetIsTamedPet) { - if (!Taming.pvpEnabled) { + if (!SkillType.TAMING.getPVPEnabled()) { return; } } - else if (!Taming.pveEnabled) { + else if (!SkillType.TAMING.getPVEEnabled()) { return; } @@ -242,11 +239,11 @@ public final class CombatTools { } if (targetIsPlayer || targetIsTamedPet) { - if (!Archery.pvpEnabled) { + if (!SkillType.ARCHERY.getPVPEnabled()) { return; } } - else if (!Archery.pveEnabled) { + else if (!SkillType.ARCHERY.getPVEEnabled()) { return; } @@ -267,23 +264,23 @@ public final class CombatTools { ItemStack heldItem = player.getItemInHand(); if (damager instanceof Player) { - if (Swords.pvpEnabled && ItemChecks.isSword(heldItem) && Permissions.counterAttack(player)) { + if (SkillType.SWORDS.getPVPEnabled() && ItemChecks.isSword(heldItem) && Permissions.counterAttack(player)) { SwordsManager swordsManager = new SwordsManager(Users.getPlayer(player)); swordsManager.counterAttackChecks((LivingEntity) damager, event.getDamage()); } - if (Acrobatics.pvpEnabled && Permissions.dodge(player)) { + if (SkillType.ACROBATICS.getPVPEnabled() && Permissions.dodge(player)) { AcrobaticsManager acrobaticsManager = new AcrobaticsManager(Users.getPlayer(player)); acrobaticsManager.dodgeCheck(event); } } else { - if (Swords.pveEnabled && damager instanceof LivingEntity && ItemChecks.isSword(heldItem) && Permissions.counterAttack(player)) { + if (SkillType.SWORDS.getPVEEnabled() && damager instanceof LivingEntity && ItemChecks.isSword(heldItem) && Permissions.counterAttack(player)) { SwordsManager swordsManager = new SwordsManager(Users.getPlayer(player)); swordsManager.counterAttackChecks((LivingEntity) damager, event.getDamage()); } - if (Acrobatics.pveEnabled && !(damager instanceof LightningStrike && Acrobatics.dodgeLightningDisabled) && Permissions.dodge(player)) { + if (SkillType.ACROBATICS.getPVEEnabled() && !(damager instanceof LightningStrike && Acrobatics.dodgeLightningDisabled) && Permissions.dodge(player)) { AcrobaticsManager acrobaticsManager = new AcrobaticsManager(Users.getPlayer(player)); acrobaticsManager.dodgeCheck(event); } @@ -309,7 +306,7 @@ public final class CombatTools { archeryManager.skillShot(event); if (target instanceof Player) { - if (Unarmed.pvpEnabled && ((Player) target).getItemInHand().getType() == Material.AIR && Permissions.arrowDeflect((Player) target)) { + if (SkillType.UNARMED.getPVPEnabled() && ((Player) target).getItemInHand().getType() == Material.AIR && Permissions.arrowDeflect((Player) target)) { UnarmedManager unarmedManager = new UnarmedManager(Users.getPlayer((Player) target)); unarmedManager.deflectCheck(event); } @@ -478,50 +475,26 @@ public final class CombatTools { break; case BLAZE: - baseXP = configInstance.getBlazeXP(); - break; - case CAVE_SPIDER: - baseXP = configInstance.getCaveSpiderXP(); - break; - case CREEPER: - baseXP = configInstance.getCreeperXP(); - break; - case ENDER_DRAGON: - baseXP = configInstance.getEnderDragonXP(); - break; - case ENDERMAN: - baseXP = configInstance.getEndermanXP(); - break; - case GHAST: - baseXP = configInstance.getGhastXP(); - break; - case GIANT: - baseXP = configInstance.getGiantXP(); - break; - case MAGMA_CUBE: - baseXP = configInstance.getMagmaCubeXP(); - break; - - case IRON_GOLEM: - if (!((IronGolem) target).isPlayerCreated()) { - baseXP = configInstance.getIronGolemXP(); - } - - break; - case PIG_ZOMBIE: - baseXP = configInstance.getPigZombieXP(); + case SILVERFISH: + case SLIME: + case SPIDER: + case WITCH: + case WITHER: + case ZOMBIE: + baseXP = Config.getInstance().getCombatXP(type); break; - case SILVERFISH: - baseXP = configInstance.getSilverfishXP(); + // Temporary workaround for custom entities + case UNKNOWN: + baseXP = 1.0; break; case SKELETON: @@ -530,41 +503,21 @@ public final class CombatTools { baseXP = configInstance.getWitherSkeletonXP(); break; default: - baseXP = configInstance.getSkeletonXP(); + baseXP = Config.getInstance().getCombatXP(type); break; } break; - case SLIME: - baseXP = configInstance.getSlimeXP(); - break; - - case SPIDER: - baseXP = configInstance.getSpiderXP(); - break; - - case WITCH: - baseXP = configInstance.getWitchXP(); - break; - - case WITHER: - baseXP = configInstance.getWitherXP(); - break; - - case ZOMBIE: - baseXP = configInstance.getZombieXP(); - break; - - // Temporary workaround for custom entities - case UNKNOWN: - baseXP = 1.0; + case IRON_GOLEM: + if (!((IronGolem) target).isPlayerCreated()) { + baseXP = Config.getInstance().getCombatXP(type); + } break; default: if (ModChecks.isCustomEntity(target)) { baseXP = ModChecks.getCustomEntity(target).getXpMultiplier(); } - break; } } diff --git a/src/main/java/com/gmail/nossr50/skills/utilities/SkillType.java b/src/main/java/com/gmail/nossr50/skills/utilities/SkillType.java index 3c82e203e..e16ea35e6 100644 --- a/src/main/java/com/gmail/nossr50/skills/utilities/SkillType.java +++ b/src/main/java/com/gmail/nossr50/skills/utilities/SkillType.java @@ -6,41 +6,31 @@ import com.gmail.nossr50.locale.LocaleLoader; import com.gmail.nossr50.util.StringUtils; public enum SkillType { - ACROBATICS(Config.getInstance().getLevelCapAcrobatics(), Config.getInstance().getFormulaMultiplierAcrobatics()), - ARCHERY(Config.getInstance().getLevelCapArchery(), Config.getInstance().getFormulaMultiplierArchery()), - AXES(AbilityType.SKULL_SPLITTER, Config.getInstance().getLevelCapAxes(), ToolType.AXE, Config.getInstance().getFormulaMultiplierAxes()), - EXCAVATION(AbilityType.GIGA_DRILL_BREAKER, Config.getInstance().getLevelCapExcavation(), ToolType.SHOVEL, Config.getInstance().getFormulaMultiplierExcavation()), - FISHING(Config.getInstance().getLevelCapFishing(), Config.getInstance().getFormulaMultiplierFishing()), - HERBALISM(AbilityType.GREEN_TERRA, Config.getInstance().getLevelCapHerbalism(), ToolType.HOE, Config.getInstance().getFormulaMultiplierHerbalism()), - MINING(AbilityType.SUPER_BREAKER, Config.getInstance().getLevelCapMining(), ToolType.PICKAXE, Config.getInstance().getFormulaMultiplierMining()), - REPAIR(Config.getInstance().getLevelCapRepair(), Config.getInstance().getFormulaMultiplierRepair()), - SMELTING(Config.getInstance().getLevelCapSmelting(), 0), - SWORDS(AbilityType.SERRATED_STRIKES, Config.getInstance().getLevelCapSwords(), ToolType.SWORD, Config.getInstance().getFormulaMultiplierSwords()), - TAMING(Config.getInstance().getLevelCapTaming(), Config.getInstance().getFormulaMultiplierTaming()), - UNARMED(AbilityType.BERSERK, Config.getInstance().getLevelCapUnarmed(), ToolType.FISTS, Config.getInstance().getFormulaMultiplierUnarmed()), - WOODCUTTING(AbilityType.TREE_FELLER, Config.getInstance().getLevelCapWoodcutting(), ToolType.AXE, Config.getInstance().getFormulaMultiplierWoodcutting()); + ACROBATICS, + ARCHERY, + AXES(AbilityType.SKULL_SPLITTER, ToolType.AXE), + EXCAVATION(AbilityType.GIGA_DRILL_BREAKER, ToolType.SHOVEL), + FISHING, + HERBALISM(AbilityType.GREEN_TERRA, ToolType.HOE), + MINING(AbilityType.SUPER_BREAKER, ToolType.PICKAXE), + REPAIR, + SMELTING, + SWORDS(AbilityType.SERRATED_STRIKES, ToolType.SWORD), + TAMING, + UNARMED(AbilityType.BERSERK, ToolType.FISTS), + WOODCUTTING(AbilityType.TREE_FELLER, ToolType.AXE); private AbilityType ability; - private int maxLevel; private ToolType tool; - private double xpModifier; private SkillType() { this.ability = null; - this.maxLevel = 0; this.tool = null; - this.xpModifier = 0; } - private SkillType(AbilityType ability, int maxLevel, ToolType tool, double xpModifier) { + private SkillType(AbilityType ability, ToolType tool) { this.ability = ability; - this.maxLevel = maxLevel; this.tool = tool; - this.xpModifier = xpModifier; - } - - private SkillType(int maxLevel, double xpModifier) { - this(null, maxLevel, null, xpModifier); } public AbilityType getAbility() { @@ -53,11 +43,19 @@ public enum SkillType { * @return the max level of this skill */ public int getMaxLevel() { - if (maxLevel > 0) { - return maxLevel; - } + return Config.getInstance().getLevelCap(this); + } - return Integer.MAX_VALUE; + public boolean getPVPEnabled() { + return Config.getInstance().getPVPEnabled(this); + } + + public boolean getPVEEnabled() { + return Config.getInstance().getPVEEnabled(this); + } + + public boolean getDoubleDropsDisabled() { + return Config.getInstance().getDoubleDropsDisabled(this); } public ToolType getTool() { @@ -65,7 +63,7 @@ public enum SkillType { } public double getXpModifier() { - return xpModifier; + return Config.getInstance().getForumulaMultiplier(this); } public static SkillType getSkill(String skillName) { diff --git a/src/main/java/com/gmail/nossr50/skills/woodcutting/WoodcuttingCommand.java b/src/main/java/com/gmail/nossr50/skills/woodcutting/WoodcuttingCommand.java index 9d9c5d775..0b9afc664 100644 --- a/src/main/java/com/gmail/nossr50/skills/woodcutting/WoodcuttingCommand.java +++ b/src/main/java/com/gmail/nossr50/skills/woodcutting/WoodcuttingCommand.java @@ -1,7 +1,6 @@ package com.gmail.nossr50.skills.woodcutting; import com.gmail.nossr50.config.AdvancedConfig; -import com.gmail.nossr50.config.Config; import com.gmail.nossr50.locale.LocaleLoader; import com.gmail.nossr50.skills.SkillCommand; import com.gmail.nossr50.skills.utilities.SkillType; @@ -16,6 +15,7 @@ public class WoodcuttingCommand extends SkillCommand { private boolean canTreeFell; private boolean canLeafBlow; private boolean canDoubleDrop; + private boolean doubleDropsDisabled; public WoodcuttingCommand() { super(SkillType.WOODCUTTING); @@ -40,11 +40,12 @@ public class WoodcuttingCommand extends SkillCommand { canTreeFell = Permissions.treeFeller(player); canDoubleDrop = Permissions.doubleDrops(player, skill); canLeafBlow = Permissions.leafBlower(player); + doubleDropsDisabled = skill.getDoubleDropsDisabled(); } @Override protected boolean effectsHeaderPermissions() { - return (canDoubleDrop && !Config.getInstance().woodcuttingDoubleDropsDisabled()) || canLeafBlow || canTreeFell; + return (canDoubleDrop && !doubleDropsDisabled) || canLeafBlow || canTreeFell; } @Override @@ -59,14 +60,14 @@ public class WoodcuttingCommand extends SkillCommand { player.sendMessage(LocaleLoader.getString("Effects.Template", LocaleLoader.getString("Woodcutting.Effect.2"), LocaleLoader.getString("Woodcutting.Effect.3"))); } - if (canDoubleDrop && !Config.getInstance().woodcuttingDoubleDropsDisabled()) { + if (canDoubleDrop && !doubleDropsDisabled) { player.sendMessage(LocaleLoader.getString("Effects.Template", LocaleLoader.getString("Woodcutting.Effect.4"), LocaleLoader.getString("Woodcutting.Effect.5"))); } } @Override protected boolean statsHeaderPermissions() { - return (canDoubleDrop && !Config.getInstance().woodcuttingDoubleDropsDisabled()) || canLeafBlow || canTreeFell; + return (canDoubleDrop && !doubleDropsDisabled) || canLeafBlow || canTreeFell; } @Override @@ -82,7 +83,7 @@ public class WoodcuttingCommand extends SkillCommand { } } - if (canDoubleDrop && !Config.getInstance().woodcuttingDoubleDropsDisabled()) { + if (canDoubleDrop && !doubleDropsDisabled) { if (isLucky) { player.sendMessage(LocaleLoader.getString("Woodcutting.Ability.Chance.DDrop", doubleDropChance) + LocaleLoader.getString("Perks.lucky.bonus", doubleDropChanceLucky)); } diff --git a/src/main/java/com/gmail/nossr50/util/StringUtils.java b/src/main/java/com/gmail/nossr50/util/StringUtils.java index b2b5944e9..2d324cf5d 100644 --- a/src/main/java/com/gmail/nossr50/util/StringUtils.java +++ b/src/main/java/com/gmail/nossr50/util/StringUtils.java @@ -1,6 +1,7 @@ package com.gmail.nossr50.util; import org.bukkit.Material; +import org.bukkit.entity.EntityType; public class StringUtils { @@ -22,16 +23,27 @@ public class StringUtils { * Gets a nicely formatted string version of an item name from a given item ID. * * @param itemID The ID of the item to convert to string. - * @return the nicely formatting string + * @return the nicely formatted string */ public static String getPrettyItemString(int itemID) { - String baseString = Material.getMaterial(itemID).toString(); + return createPrettyEnumString(Material.getMaterial(itemID).toString()); + } + + public static String getPrettyItemString(Material material) { + return createPrettyEnumString(material.toString()); + } + + public static String getPrettyEntityTypeString(EntityType entity) { + return createPrettyEnumString(entity.toString()); + } + + private static String createPrettyEnumString(String baseString) { String[] substrings = baseString.split("_"); String prettyString = ""; int size = 1; - for (String s : substrings) { - prettyString = prettyString.concat(getCapitalized(s)); + for (String string : substrings) { + prettyString = prettyString.concat(getCapitalized(string)); if (size < substrings.length) { prettyString = prettyString.concat(" "); diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml index d027dc6fd..4047ad80c 100644 --- a/src/main/resources/config.yml +++ b/src/main/resources/config.yml @@ -101,23 +101,23 @@ Abilities: Activation: Only_Activate_When_Sneaking: false Cooldowns: + Berserk: 240 Blast_Mining: 60 Giga_Drill_Breaker: 240 - Berserk: 240 Green_Terra: 240 - Skull_Splitter: 240 Serrated_Strikes: 240 - Tree_Feller: 240 + Skull_Splitter: 240 Super_Breaker: 240 + Tree_Feller: 240 Max_Seconds: + Berserk: 0 Blast_Mining: 0 Giga_Drill_Breaker: 0 - Berserk: 0 Green_Terra: 0 - Skull_Splitter: 0 Serrated_Strikes: 0 - Tree_Feller: 0 + Skull_Splitter: 0 Super_Breaker: 0 + Tree_Feller: 0 Limits: Tree_Feller_Threshold: 500 Tools: @@ -191,36 +191,36 @@ Skills: ### Double_Drops: Herbalism: - Brown_Mushrooms: true - Cacti: true - Melons: true - Nether_Warts: true - Pumpkins: true - Red_Mushrooms: true - Red_Roses: true - Sugar_Cane: true - Vines: true - Water_Lilies: true - Wheat: true - Yellow_Flowers: true - Cocoa: true + Brown_Mushroom: true + Cactus: true Carrot: true + Cocoa: true + Crops: true + Melon_Block: true + Nether_Warts: true Potato: true + Pumpkin: true + Red_Mushroom: true + Red_Rose: true + Sugar_Cane_Block: true + Vine: true + Water_Lily: true + Yellow_Flower: true Mining: - Coal: true - Diamond: true - End_Stone: true + Coal_Ore: true + Diamond_Ore: true + Emerald_Ore: true + Ender_Stone: true Glowstone: true - Gold: true - Iron: true - Lapis: true - Moss_Stone: true + Gold_Ore: true + Iron_Ore: true + Lapis_Ore: true + Mossy_Cobblestone: true Netherrack: true Obsidian: true - Redstone: true + Redstone_Ore: true Sandstone: true Stone: true - Emerald: true Woodcutting: Oak: true Birch: true @@ -263,7 +263,7 @@ Experience: Gravel: 40 Mycel: 40 Sand: 40 - SoulSand: 40 + Soul_Sand: 40 Woodcutting: Oak: 70 Spruce: 80 @@ -272,42 +272,44 @@ Experience: Huge_Mushroom_Red: 70 Huge_Mushroom_Brown: 70 Herbalism: - Sugar_Cane: 30 + Brown_Mushroom: 150 Cactus: 30 - Flowers: 100 - Pumpkin: 20 - Mushrooms: 150 - Wheat: 50 - Melon: 20 - Nether_Wart: 50 - Lily_Pads: 100 - Vines: 10 - Cocoa: 30 Carrot: 50 + Cocoa: 30 + Crops: 50 + Melon_Block: 20 + Nether_Warts: 50 Potato: 50 + Pumpkin: 20 + Red_Mushroom: 150 + Red_Rose: 100 + Sugar_Cane_Block: 30 + Vine: 10 + Water_Lily: 100 + Yellow_Flower: 100 Mining: - Sandstone: 30 + Coal_Ore: 100 + Diamond_Ore: 750 + Emerald_Ore: 1000 + Ender_Stone: 150 Glowstone: 30 - Lapis: 400 - Obsidian: 150 - Stone: 30 + Gold_Ore: 350 + Iron_Ore: 250 + Lapis_Ore: 400 + Mossy_Cobblestone: 30 Netherrack: 30 - Gold: 350 - Redstone: 150 - Coal: 100 - Diamond: 750 - Iron: 250 - End_Stone: 150 - Moss_Stone: 30 - Emerald: 1000 + Obsidian: 150 + Redstone_Ore: 150 + Sandstone: 30 + Stone: 30 Smelting: - Coal: 10 - Redstone: 15 - Iron: 25 - Gold: 35 - Lapis: 40 - Diamond: 75 - Emerald: 100 + Coal_Ore: 10 + Diamond_Ore: 75 + Emerald_Ore: 100 + Gold_Ore: 35 + Iron_Ore: 25 + Lapis_Ore: 40 + Redstone_Ore: 15 Taming: Animal_Taming: Wolf: 250 @@ -318,7 +320,10 @@ Experience: Creeper: 4.0 Skeleton: 3.0 Spider: 2.0 + Giant: 4.0 Zombie: 2.0 + Slime: 2.0 + Ghast: 3.0 Pig_Zombie: 3.0 Enderman: 1.0 Cave_Spider: 3.0 @@ -326,13 +331,10 @@ Experience: Blaze: 3.0 Magma_Cube: 2.0 Ender_Dragon: 8.0 - Slime: 2.0 - Ghast: 3.0 - Iron_Golem: 2.0 - Giant: 4.0 Wither: 7.0 - Wither_Skeleton: 4.0 Witch: 4.0 + Iron_Golem: 2.0 + Wither_Skeleton: 4.0; # # Settings for commands ###