Explorar o código

Use doubles in config.yml where appropriate. Change item IDs to item names
in light of upcoming Minecraft changes that will remove access to item
IDs.

GJ %!s(int64=11) %!d(string=hai) anos
pai
achega
4eba33a1c6

+ 22 - 23
src/main/java/com/gmail/nossr50/config/Config.java

@@ -92,8 +92,8 @@ public class Config extends AutoUpdateConfigLoader {
             reason.add("Items.Chimaera_Wing.Recipe_Cost only accepts values from 1 to 64!");
         }
 
-        if (getChimaeraItemId() < 1) {
-            reason.add("Items.Chimaera_Wing.Item_ID should be at least 1!");
+        if (getChimaeraItem() == null) {
+            reason.add("Items.Chimaera_Wing.Item_Name is invalid!");
         }
 
         /* Particles */
@@ -135,21 +135,20 @@ public class Config extends AutoUpdateConfigLoader {
             reason.add("Abilities.Limits.Tree_Feller_Threshold should be greater than 0!");
         }
 
-
-        if (getDetonatorItemID() < 1) {
-            reason.add("Skills.Mining.Detonator_ID should be at least 1!");
+        if (getDetonatorItem() == null) {
+            reason.add("Skills.Mining.Detonator_Item is invalid!");
         }
 
-        if (getRepairAnvilId() < 1) {
-            reason.add("Skills.Repair.Anvil_ID should be at least 1!");
+        if (getRepairAnvilMaterial() == null) {
+            reason.add("Skills.Repair.Anvil_Type is invalid!!");
         }
 
-        if (getSalvageAnvilId() < 1) {
-            reason.add("Skills.Repair.Salvage_Anvil_ID should be at least 1!");
+        if (getSalvageAnvilMaterial() == null) {
+            reason.add("Skills.Repair.Salvage_Anvil_Type is invalid!");
         }
 
-        if (getRepairAnvilId() == getSalvageAnvilId()) {
-            reason.add("Cannot use the same item ID for Repair and Salvage anvils!");
+        if (getRepairAnvilMaterial() == getSalvageAnvilMaterial()) {
+            reason.add("Cannot use the same item for Repair and Salvage anvils!");
         }
 
         if (getTamingCOTWWolfCost() < 1) {
@@ -265,13 +264,13 @@ public class Config extends AutoUpdateConfigLoader {
     public boolean getHardcoreStatLossEnabled(SkillType skillType) { return config.getBoolean("Hardcore.Death_Stat_Loss.Enabled." + StringUtils.getCapitalized(skillType.toString()), false); }
     public void setHardcoreStatLossEnabled(SkillType skillType, boolean enabled) { config.set("Hardcore.Death_Stat_Loss.Enabled." + StringUtils.getCapitalized(skillType.toString()), enabled); }
 
-    public double getHardcoreDeathStatPenaltyPercentage() { return config.getDouble("Hardcore.Death_Stat_Loss.Penalty_Percentage", 75.0); }
+    public double getHardcoreDeathStatPenaltyPercentage() { return config.getDouble("Hardcore.Death_Stat_Loss.Penalty_Percentage", 75.0D); }
     public void setHardcoreDeathStatPenaltyPercentage(double value) { config.set("Hardcore.Death_Stat_Loss.Penalty_Percentage", value); }
 
     public boolean getHardcoreVampirismEnabled(SkillType skillType) { return config.getBoolean("Hardcore.Vampirism.Enabled." + StringUtils.getCapitalized(skillType.toString()), false); }
     public void setHardcoreVampirismEnabled(SkillType skillType, boolean enabled) { config.set("Hardcore.Vampirism.Enabled." + StringUtils.getCapitalized(skillType.toString()), enabled); }
 
-    public double getHardcoreVampirismStatLeechPercentage() { return config.getDouble("Hardcore.Vampirism.Leech_Percentage", 5.0); }
+    public double getHardcoreVampirismStatLeechPercentage() { return config.getDouble("Hardcore.Vampirism.Leech_Percentage", 5.0D); }
     public void setHardcoreVampirismStatLeechPercentage(double value) { config.set("Hardcore.Vampirism.Leech_Percentage", value); }
 
     /* SMP Mods */
@@ -283,7 +282,7 @@ public class Config extends AutoUpdateConfigLoader {
     /* Items */
     public int getChimaeraUseCost() { return config.getInt("Items.Chimaera_Wing.Use_Cost", 1); }
     public int getChimaeraRecipeCost() { return config.getInt("Items.Chimaera_Wing.Recipe_Cost", 5); }
-    public int getChimaeraItemId() { return config.getInt("Items.Chimaera_Wing.Item_ID", 288); }
+    public Material getChimaeraItem() { return Material.matchMaterial(config.getString("Items.Chimaera_Wing.Item_Name", "Feather")); }
     public boolean getChimaeraEnabled() { return config.getBoolean("Items.Chimaera_Wing.Enabled", true); }
     public boolean getChimaeraPreventUseUnderground() { return config.getBoolean("Items.Chimaera_Wing.Prevent_Use_Underground", true); }
     public int getChimaeraCooldown() { return config.getInt("Items.Chimaera_Wing.Cooldown", 240); }
@@ -304,11 +303,11 @@ public class Config extends AutoUpdateConfigLoader {
     public int getAutoPartyKickInterval() { return config.getInt("Party.AutoKick_Interval", 12); }
     public int getAutoPartyKickTime() { return config.getInt("Party.Old_Party_Member_Cutoff", 7); }
     public boolean getExpShareEnabled() { return config.getBoolean("Party.Sharing.ExpShare_enabled", true); }
-    public double getPartyShareBonusBase() { return config.getDouble("Party.Sharing.ExpShare_bonus_base", 1.1); }
-    public double getPartyShareBonusIncrease() { return config.getDouble("Party.Sharing.ExpShare_bonus_increase", 0.05); }
-    public double getPartyShareBonusCap() { return config.getDouble("Party.Sharing.ExpShare_bonus_cap", 1.5); }
+    public double getPartyShareBonusBase() { return config.getDouble("Party.Sharing.ExpShare_bonus_base", 1.1D); }
+    public double getPartyShareBonusIncrease() { return config.getDouble("Party.Sharing.ExpShare_bonus_increase", 0.05D); }
+    public double getPartyShareBonusCap() { return config.getDouble("Party.Sharing.ExpShare_bonus_cap", 1.5D); }
     public boolean getItemShareEnabled() { return config.getBoolean("Party.Sharing.ItemShare_enabled", true); }
-    public double getPartyShareRange() { return config.getDouble("Party.Sharing.Range", 75.0); }
+    public double getPartyShareRange() { return config.getDouble("Party.Sharing.Range", 75.0D); }
 
     /* Party Teleport Settings */
     public int getPTPCommandCooldown() { return config.getInt("Commands.ptp.Cooldown", 120); }
@@ -319,7 +318,7 @@ public class Config extends AutoUpdateConfigLoader {
     public boolean getPTPCommandWorldPermissions() { return config.getBoolean("Commands.ptp.World_Based_Permissions", false); }
 
     /* Inspect command distance */
-    public double getInspectDistance() { return config.getDouble("Commands.inspect.Max_Distance", 30); }
+    public double getInspectDistance() { return config.getDouble("Commands.inspect.Max_Distance", 30.0D); }
 
     /*
      * ABILITY SETTINGS
@@ -368,12 +367,12 @@ public class Config extends AutoUpdateConfigLoader {
     public boolean getFishingDropsEnabled() { return config.getBoolean("Skills.Fishing.Drops_Enabled", true); }
 
     /* Mining */
-    public int getDetonatorItemID() { return config.getInt("Skills.Mining.Detonator_ID", 259); }
+    public Material getDetonatorItem() { return Material.matchMaterial(config.getString("Skills.Mining.Detonator_Name", "FLINT_AND_STEEL")); }
 
     /* Repair */
     public boolean getRepairAnvilMessagesEnabled() { return config.getBoolean("Skills.Repair.Anvil_Messages", true); }
-    public int getRepairAnvilId() { return config.getInt("Skills.Repair.Anvil_ID", 42); }
-    public int getSalvageAnvilId() { return config.getInt("Skills.Repair.Salvage_Anvil_ID", 41); }
+    public Material getRepairAnvilMaterial() { return Material.matchMaterial(config.getString("Skills.Repair.Anvil_Material", "IRON_BLOCK")); }
+    public Material getSalvageAnvilMaterial() { return Material.matchMaterial(config.getString("Skills.Repair.Salvage_Anvil_ID", "GOLD_BLOCK")); }
     public boolean getSalvageTools() { return config.getBoolean("Skills.Repair.Salvage_tools", true); }
     public boolean getSalvageArmor() { return config.getBoolean("Skills.Repair.Salvage_armor", true); }
     public boolean getRepairConfirmRequired() { return config.getBoolean("Skills.Repair.Confirm_Required", true); }
@@ -385,7 +384,7 @@ public class Config extends AutoUpdateConfigLoader {
     public int getTamingCOTWHorseCost() { return config.getInt("Skills.Taming.Call_Of_The_Wild.Apples_Required", 10); }
     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); }
-    public double getTamingCOTWRange() { return config.getDouble("Skills.Taming.Call_Of_The_Wild.Range", 40); }
+    public double getTamingCOTWRange() { return config.getDouble("Skills.Taming.Call_Of_The_Wild.Range", 40.0D); }
     public int getTamingCOTWAmount(EntityType type) { return config.getInt("Skills.Taming.Call_Of_The_Wild." + StringUtils.getPrettyEntityTypeString(type)+ "_Amount"); }
 
     /* Woodcutting */

+ 16 - 15
src/main/java/com/gmail/nossr50/datatypes/player/McMMOPlayer.java

@@ -6,6 +6,7 @@ import java.util.Set;
 
 import org.bukkit.GameMode;
 import org.bukkit.Location;
+import org.bukkit.Material;
 import org.bukkit.entity.Player;
 
 import com.gmail.nossr50.mcMMO;
@@ -358,24 +359,24 @@ public class McMMOPlayer {
      * Repair Anvil Placement
      */
 
-    public boolean getPlacedAnvil(int anvilId) {
-        if (anvilId == Repair.repairAnvilId) {
+    public boolean getPlacedAnvil(Material anvilType) {
+        if (anvilType == Repair.repairAnvilMaterial) {
             return placedRepairAnvil;
         }
 
-        if (anvilId == Repair.salvageAnvilId) {
+        if (anvilType == Repair.salvageAnvilMaterial) {
             return placedSalvageAnvil;
         }
 
         return true;
     }
 
-    public void togglePlacedAnvil(int anvilId) {
-        if (anvilId == Repair.repairAnvilId) {
+    public void togglePlacedAnvil(Material anvilType) {
+        if (anvilType == Repair.repairAnvilMaterial) {
             placedRepairAnvil = !placedRepairAnvil;
         }
 
-        if (anvilId == Repair.salvageAnvilId) {
+        if (anvilType == Repair.salvageAnvilMaterial) {
             placedSalvageAnvil = !placedSalvageAnvil;
         }
     }
@@ -384,34 +385,34 @@ public class McMMOPlayer {
      * Repair Anvil Usage
      */
 
-    public int getLastAnvilUse(int anvilId) {
-        if (anvilId == Repair.repairAnvilId) {
+    public int getLastAnvilUse(Material anvilType) {
+        if (anvilType == Repair.repairAnvilMaterial) {
             return lastRepairClick;
         }
 
-        if (anvilId == Repair.salvageAnvilId) {
+        if (anvilType == Repair.salvageAnvilMaterial) {
             return lastSalvageClick;
         }
 
         return 0;
     }
 
-    public void setLastAnvilUse(int anvilId, int value) {
-        if (anvilId == Repair.repairAnvilId) {
+    public void setLastAnvilUse(Material anvilType, int value) {
+        if (anvilType == Repair.repairAnvilMaterial) {
             lastRepairClick = value;
         }
 
-        if (anvilId == Repair.salvageAnvilId) {
+        if (anvilType == Repair.salvageAnvilMaterial) {
             lastSalvageClick = value;
         }
     }
 
-    public void actualizeLastAnvilUse(int anvilId) {
-        if (anvilId == Repair.repairAnvilId) {
+    public void actualizeLastAnvilUse(Material anvilType) {
+        if (anvilType == Repair.repairAnvilMaterial) {
             lastRepairClick = (int) (System.currentTimeMillis() / Misc.TIME_CONVERSION_FACTOR);
         }
 
-        if (anvilId == Repair.salvageAnvilId) {
+        if (anvilType == Repair.salvageAnvilMaterial) {
             lastSalvageClick = (int) (System.currentTimeMillis() / Misc.TIME_CONVERSION_FACTOR);
         }
     }

+ 1 - 1
src/main/java/com/gmail/nossr50/listeners/BlockListener.java

@@ -113,7 +113,7 @@ public class BlockListener implements Listener {
         }
 
         if (Repair.anvilMessagesEnabled && BlockUtils.isMcMMOAnvil(blockState)) {
-            UserManager.getPlayer(player).getRepairManager().placedAnvilCheck(blockState.getTypeId());
+            UserManager.getPlayer(player).getRepairManager().placedAnvilCheck(blockState.getType());
         }
     }
 

+ 13 - 13
src/main/java/com/gmail/nossr50/listeners/PlayerListener.java

@@ -418,27 +418,27 @@ public class PlayerListener implements Listener {
 
         switch (event.getAction()) {
             case RIGHT_CLICK_BLOCK:
-                int blockID = block.getTypeId();
+                Material type = block.getType();
 
                 if (!Config.getInstance().getAbilitiesOnlyActivateWhenSneaking() || player.isSneaking()) {
                     /* REPAIR CHECKS */
-                    if (blockID == Repair.repairAnvilId && Permissions.skillEnabled(player, SkillType.REPAIR) && mcMMO.getRepairableManager().isRepairable(heldItem)) {
+                    if (type == Repair.repairAnvilMaterial && Permissions.skillEnabled(player, SkillType.REPAIR) && mcMMO.getRepairableManager().isRepairable(heldItem)) {
                         RepairManager repairManager = mcMMOPlayer.getRepairManager();
                         event.setCancelled(true);
 
                         // Make sure the player knows what he's doing when trying to repair an enchanted item
-                        if (!(heldItem.getEnchantments().size() > 0) || repairManager.checkConfirmation(blockID, true)) {
+                        if (!(heldItem.getEnchantments().size() > 0) || repairManager.checkConfirmation(type, true)) {
                             repairManager.handleRepair(heldItem);
                             player.updateInventory();
                         }
                     }
                     /* SALVAGE CHECKS */
-                    else if (blockID == Repair.salvageAnvilId && Permissions.salvage(player) && Repair.isSalvageable(heldItem)) {
+                    else if (type == Repair.salvageAnvilMaterial && Permissions.salvage(player) && Repair.isSalvageable(heldItem)) {
                         RepairManager repairManager = mcMMOPlayer.getRepairManager();
                         event.setCancelled(true);
 
                         // Make sure the player knows what he's doing when trying to salvage an enchanted item
-                        if (!(heldItem.getEnchantments().size() > 0) || repairManager.checkConfirmation(blockID, true)) {
+                        if (!(heldItem.getEnchantments().size() > 0) || repairManager.checkConfirmation(type, true)) {
                             repairManager.handleSalvage(block.getLocation(), heldItem);
                             player.updateInventory();
                         }
@@ -446,7 +446,7 @@ public class PlayerListener implements Listener {
                 }
                 /* BLAST MINING CHECK */
                 else if (miningManager.canDetonate()) {
-                    if (block.getType() == Material.TNT) {
+                    if (type == Material.TNT) {
                         event.setCancelled(true); // Don't detonate the TNT if they're too close
                     }
                     else {
@@ -457,26 +457,26 @@ public class PlayerListener implements Listener {
                 break;
 
             case LEFT_CLICK_BLOCK:
-                blockID = block.getTypeId();
+                type = block.getType();
 
                 if ((Config.getInstance().getAbilitiesOnlyActivateWhenSneaking() && player.isSneaking()) || !Config.getInstance().getAbilitiesOnlyActivateWhenSneaking()) {
                     /* REPAIR CHECKS */
-                    if (blockID == Repair.repairAnvilId && Permissions.skillEnabled(player, SkillType.REPAIR) && mcMMO.getRepairableManager().isRepairable(heldItem)) {
+                    if (type == Repair.repairAnvilMaterial && Permissions.skillEnabled(player, SkillType.REPAIR) && mcMMO.getRepairableManager().isRepairable(heldItem)) {
                         RepairManager repairManager = mcMMOPlayer.getRepairManager();
 
                         // Cancel repairing an enchanted item
-                        if (repairManager.checkConfirmation(blockID, false) && Config.getInstance().getRepairConfirmRequired()) {
-                            mcMMOPlayer.setLastAnvilUse(Repair.repairAnvilId, 0);
+                        if (repairManager.checkConfirmation(type, false) && Config.getInstance().getRepairConfirmRequired()) {
+                            mcMMOPlayer.setLastAnvilUse(Repair.repairAnvilMaterial, 0);
                             player.sendMessage(LocaleLoader.getString("Skills.Cancelled", LocaleLoader.getString("Repair.Pretty.Name")));
                         }
                     }
                     /* SALVAGE CHECKS */
-                    else if (blockID == Repair.salvageAnvilId && Permissions.salvage(player) && Repair.isSalvageable(heldItem)) {
+                    else if (type == Repair.salvageAnvilMaterial && Permissions.salvage(player) && Repair.isSalvageable(heldItem)) {
                         RepairManager repairManager = mcMMOPlayer.getRepairManager();
 
                         // Cancel salvaging an enchanted item
-                        if (repairManager.checkConfirmation(blockID, false) && Config.getInstance().getRepairConfirmRequired()) {
-                            mcMMOPlayer.setLastAnvilUse(Repair.salvageAnvilId, 0);
+                        if (repairManager.checkConfirmation(type, false) && Config.getInstance().getRepairConfirmRequired()) {
+                            mcMMOPlayer.setLastAnvilUse(Repair.salvageAnvilMaterial, 0);
                             player.sendMessage(LocaleLoader.getString("Skills.Cancelled", LocaleLoader.getString("Salvage.Pretty.Name")));
                         }
                     }

+ 3 - 1
src/main/java/com/gmail/nossr50/skills/mining/BlastMining.java

@@ -1,5 +1,7 @@
 package com.gmail.nossr50.skills.mining;
 
+import org.bukkit.Material;
+
 import com.gmail.nossr50.config.AdvancedConfig;
 import com.gmail.nossr50.config.Config;
 
@@ -81,7 +83,7 @@ public class BlastMining {
         abstract protected int getDropMultiplier();
     }
 
-    public static int detonatorID = Config.getInstance().getDetonatorItemID();
+    public static Material detonator = Config.getInstance().getDetonatorItem();
 
     public final static int MAXIMUM_REMOTE_DETONATION_DISTANCE = 100;
 }

+ 1 - 1
src/main/java/com/gmail/nossr50/skills/mining/MiningManager.java

@@ -38,7 +38,7 @@ public class MiningManager extends SkillManager {
     public boolean canDetonate() {
         Player player = getPlayer();
 
-        return canUseBlastMining() && player.isSneaking() && player.getItemInHand().getTypeId() == BlastMining.detonatorID && Permissions.remoteDetonation(player);
+        return canUseBlastMining() && player.isSneaking() && player.getItemInHand().getType() == BlastMining.detonator && Permissions.remoteDetonation(player);
     }
 
     public boolean canUseBlastMining() {

+ 10 - 10
src/main/java/com/gmail/nossr50/skills/repair/Repair.java

@@ -19,9 +19,9 @@ public class Repair {
 
     public static int salvageUnlockLevel = AdvancedConfig.getInstance().getSalvageUnlockLevel();
 
-    public static int     salvageAnvilId       = Config.getInstance().getSalvageAnvilId();
-    public static int     repairAnvilId        = Config.getInstance().getRepairAnvilId();
-    public static boolean anvilMessagesEnabled = Config.getInstance().getRepairAnvilMessagesEnabled();
+    public static Material salvageAnvilMaterial = Config.getInstance().getSalvageAnvilMaterial();
+    public static Material repairAnvilMaterial  = Config.getInstance().getRepairAnvilMaterial();
+    public static boolean  anvilMessagesEnabled = Config.getInstance().getRepairAnvilMessagesEnabled();
 
     /**
      * Checks if the item is salvageable.
@@ -41,25 +41,25 @@ public class Repair {
         return false;
     }
 
-    public static String getAnvilMessage(int blockId) {
-        if (blockId == repairAnvilId) {
+    public static String getAnvilMessage(Material type) {
+        if (type == repairAnvilMaterial) {
             return LocaleLoader.getString("Repair.Listener.Anvil");
         }
 
-        if (blockId == salvageAnvilId) {
+        if (type == salvageAnvilMaterial) {
             return LocaleLoader.getString("Repair.Listener.Anvil2");
         }
 
         return "";
     }
 
-    public static String[] getSpoutAnvilMessages(int blockId) {
-        if (blockId == repairAnvilId) {
+    public static String[] getSpoutAnvilMessages(Material type) {
+        if (type == repairAnvilMaterial) {
             return new String[] {LocaleLoader.getString("Repair.AnvilPlaced.Spout1"), LocaleLoader.getString("Repair.AnvilPlaced.Spout2")};
         }
 
-        if (blockId == salvageAnvilId) {
-            return new String[] {"[mcMMO] Anvil Placed", "Right click to salvage!"};
+        if (type == salvageAnvilMaterial) {
+            return new String[] {"[mcMMO] Anvil Placed", "Right click to salvage!"}; //TODO: Localize
         }
 
         return new String[] {"", ""};

+ 10 - 10
src/main/java/com/gmail/nossr50/skills/repair/RepairManager.java

@@ -37,22 +37,22 @@ public class RepairManager extends SkillManager {
      *
      * @param anvilId The item ID of the anvil block
      */
-    public void placedAnvilCheck(int anvilId) {
+    public void placedAnvilCheck(Material anvilType) {
         Player player = getPlayer();
 
-        if (mcMMOPlayer.getPlacedAnvil(anvilId)) {
+        if (mcMMOPlayer.getPlacedAnvil(anvilType)) {
             return;
         }
 
         if (mcMMO.isSpoutEnabled()) {
-            SpoutUtils.sendRepairNotifications(player, anvilId);
+            SpoutUtils.sendRepairNotifications(player, anvilType);
         }
         else {
-            player.sendMessage(Repair.getAnvilMessage(anvilId));
+            player.sendMessage(Repair.getAnvilMessage(anvilType));
         }
 
         player.playSound(player.getLocation(), Sound.ANVIL_LAND, Misc.ANVIL_USE_VOLUME, Misc.ANVIL_USE_PITCH);
-        mcMMOPlayer.togglePlacedAnvil(anvilId);
+        mcMMOPlayer.togglePlacedAnvil(anvilType);
     }
 
     public void handleRepair(ItemStack item) {
@@ -196,10 +196,10 @@ public class RepairManager extends SkillManager {
      *
      * @return true if the player has confirmed using an Anvil
      */
-    public boolean checkConfirmation(int anvilId, boolean actualize) {
+    public boolean checkConfirmation(Material anvilType, boolean actualize) {
         Player player = getPlayer();
         McMMOPlayer mcMMOPlayer = UserManager.getPlayer(player);
-        long lastUse = mcMMOPlayer.getLastAnvilUse(anvilId);
+        long lastUse = mcMMOPlayer.getLastAnvilUse(anvilType);
 
         // Don't use SkillUtils.cooldownOver() here since that also accounts for the cooldown perks
         if ((((lastUse + 3) * Misc.TIME_CONVERSION_FACTOR) >= System.currentTimeMillis()) || !Config.getInstance().getRepairConfirmRequired()) {
@@ -210,12 +210,12 @@ public class RepairManager extends SkillManager {
             return false;
         }
 
-        mcMMOPlayer.actualizeLastAnvilUse(anvilId);
+        mcMMOPlayer.actualizeLastAnvilUse(anvilType);
 
-        if (anvilId == Repair.repairAnvilId) {
+        if (anvilType == Repair.repairAnvilMaterial) {
             player.sendMessage(LocaleLoader.getString("Skills.ConfirmOrCancel", LocaleLoader.getString("Repair.Pretty.Name")));
         }
-        else if (anvilId == Repair.salvageAnvilId) {
+        else if (anvilType == Repair.salvageAnvilMaterial) {
             player.sendMessage(LocaleLoader.getString("Skills.ConfirmOrCancel", LocaleLoader.getString("Salvage.Pretty.Name")));
         }
 

+ 2 - 2
src/main/java/com/gmail/nossr50/util/BlockUtils.java

@@ -318,9 +318,9 @@ public final class BlockUtils {
      * @return true if the block is an mcMMO anvil, false otherwise
      */
     public static boolean isMcMMOAnvil(BlockState blockState) {
-        int blockId = blockState.getTypeId();
+        Material type = blockState.getType();
 
-        return blockId == Repair.repairAnvilId || blockId == Repair.salvageAnvilId;
+        return type == Repair.repairAnvilMaterial || type == Repair.salvageAnvilMaterial;
     }
 
     /**

+ 2 - 2
src/main/java/com/gmail/nossr50/util/ChimaeraWing.java

@@ -142,7 +142,7 @@ public final class ChimaeraWing {
     }
 
     public static ItemStack getChimaeraWing(int amount) {
-        ItemStack itemStack = new ItemStack(Config.getInstance().getChimaeraItemId(), amount);
+        ItemStack itemStack = new ItemStack(Config.getInstance().getChimaeraItem(), amount);
 
         ItemMeta itemMeta = itemStack.getItemMeta();
         itemMeta.setDisplayName(ChatColor.GOLD + LocaleLoader.getString("Item.ChimaeraWing.Name"));
@@ -157,7 +157,7 @@ public final class ChimaeraWing {
     }
 
     public static ShapelessRecipe getChimaeraWingRecipe() {
-        Material ingredient = Material.getMaterial(Config.getInstance().getChimaeraItemId());
+        Material ingredient = Config.getInstance().getChimaeraItem();
         int amount = Config.getInstance().getChimaeraRecipeCost();
         if (amount < 1 || amount > 9) {
             amount = 9;

+ 4 - 4
src/main/java/com/gmail/nossr50/util/spout/SpoutUtils.java

@@ -449,15 +449,15 @@ public class SpoutUtils {
         }
     }
 
-    public static void sendRepairNotifications(Player player, int anvilId) {
+    public static void sendRepairNotifications(Player player, Material anvilType) {
         SpoutPlayer spoutPlayer = SpoutManager.getPlayer(player);
 
         if (spoutPlayer.isSpoutCraftEnabled()) {
-            String[] spoutMessages = Repair.getSpoutAnvilMessages(anvilId);
-            spoutPlayer.sendNotification(spoutMessages[0], spoutMessages[1], Material.getMaterial(anvilId));
+            String[] spoutMessages = Repair.getSpoutAnvilMessages(anvilType);
+            spoutPlayer.sendNotification(spoutMessages[0], spoutMessages[1], anvilType);
         }
         else {
-            player.sendMessage(Repair.getAnvilMessage(anvilId));
+            player.sendMessage(Repair.getAnvilMessage(anvilType));
         }
     }
 

+ 8 - 8
src/main/resources/config.yml

@@ -91,7 +91,7 @@ MySQL:
 ###
 Hardcore:
     Death_Stat_Loss:
-        Penalty_Percentage: 75
+        Penalty_Percentage: 75.0
         Enabled:
             Acrobatics: false
             Archery: false
@@ -105,7 +105,7 @@ Hardcore:
             Unarmed: false
             Woodcutting: false
     Vampirism:
-        Leech_Percentage: 5
+        Leech_Percentage: 5.0
         Enabled:
             Acrobatics: false
             Archery: false
@@ -140,7 +140,7 @@ Items:
         Prevent_Use_Underground: true
         Use_Cost: 1
         Recipe_Cost: 5
-        Item_ID: 288
+        Item_Name: FEATHER
 
 #
 #  Settings for Parties
@@ -223,12 +223,12 @@ Skills:
         Prevent_AFK_Leveling: true
     Mining:
         Level_Cap: 0
-        Detonator_ID: 259
+        Detonator_Name: FLINT_AND_STEEL
     Repair:
         Level_Cap: 0
         Anvil_Messages: true
-        Anvil_ID: 42
-        Salvage_Anvil_ID: 41
+        Anvil_Material: IRON_BLOCK
+        Salvage_Anvil_Material: GOLD_BLOCK
         Salvage_tools: true
         Salvage_armor: true
         # Ask for a confirmation when a player tries to repair an enchanted item
@@ -249,7 +249,7 @@ Skills:
             Apples_Required: 10
 
             # Range to check for nearby pets when using Call Of The Wild, 0 will disable the check
-            Range: 40
+            Range: 40.0
             # Amount of pets to summon when using Call Of The Wild
             Wolf_Amount: 1
             Ocelot_Amount: 1
@@ -312,7 +312,7 @@ Commands:
     mcmmo:
         Donate_Message: true
     inspect:
-        Max_Distance: 30
+        Max_Distance: 30.0
     ptp:
         Cooldown: 120
         Warmup: 5