From 792ecd6aadc2a05600c24ad1f60a5be7abbeb88f Mon Sep 17 00:00:00 2001 From: GJ Date: Fri, 20 Sep 2013 10:03:02 -0400 Subject: [PATCH] Rework armor.yml to take item names instead of IDs in advance of 1.7 changes. ** YOU WILL NEED TO REDO YOUR armor.yml FILE ** --- .../config/mods/CustomArmorConfig.java | 68 ++++++++++--------- .../nossr50/config/mods/CustomToolConfig.java | 2 +- .../nossr50/datatypes/mods/CustomItem.java | 27 -------- .../nossr50/datatypes/mods/CustomTool.java | 17 ++++- .../nossr50/skills/axes/AxesManager.java | 3 +- .../gmail/nossr50/skills/repair/Repair.java | 21 +++--- .../skills/repair/config/RepairConfig.java | 38 ++--------- .../skills/woodcutting/Woodcutting.java | 2 +- .../com/gmail/nossr50/util/ItemUtils.java | 24 ++++--- .../java/com/gmail/nossr50/util/ModUtils.java | 32 +++------ .../gmail/nossr50/util/skills/SkillUtils.java | 2 +- src/main/resources/armor.yml | 43 +++++------- 12 files changed, 114 insertions(+), 165 deletions(-) delete mode 100644 src/main/java/com/gmail/nossr50/datatypes/mods/CustomItem.java diff --git a/src/main/java/com/gmail/nossr50/config/mods/CustomArmorConfig.java b/src/main/java/com/gmail/nossr50/config/mods/CustomArmorConfig.java index 28faeee04..b033e1298 100644 --- a/src/main/java/com/gmail/nossr50/config/mods/CustomArmorConfig.java +++ b/src/main/java/com/gmail/nossr50/config/mods/CustomArmorConfig.java @@ -1,15 +1,15 @@ package com.gmail.nossr50.config.mods; import java.util.ArrayList; -import java.util.HashMap; import java.util.List; import java.util.Set; import org.bukkit.Material; import org.bukkit.configuration.ConfigurationSection; +import org.bukkit.inventory.ItemStack; import com.gmail.nossr50.config.ConfigLoader; -import com.gmail.nossr50.datatypes.mods.CustomItem; +import com.gmail.nossr50.skills.repair.Repair; import com.gmail.nossr50.skills.repair.Repairable; import com.gmail.nossr50.skills.repair.RepairableFactory; @@ -18,14 +18,11 @@ public class CustomArmorConfig extends ConfigLoader { private List repairables; - public List customBootIDs = new ArrayList(); - public List customChestplateIDs = new ArrayList(); - public List customHelmetIDs = new ArrayList(); - public List customLeggingIDs = new ArrayList(); - public List customIDs = new ArrayList(); - - public List customArmorList = new ArrayList(); - public HashMap customArmor = new HashMap(); + public List customBoots = new ArrayList(); + public List customChestplates = new ArrayList(); + public List customHelmets = new ArrayList(); + public List customLeggings = new ArrayList(); + public List customArmor = new ArrayList(); public CustomArmorConfig() { super("ModConfigs", "armor.yml"); @@ -52,13 +49,13 @@ public class CustomArmorConfig extends ConfigLoader { protected void loadKeys() { repairables = new ArrayList(); - loadArmor("Boots", customBootIDs); - loadArmor("Chestplates", customChestplateIDs); - loadArmor("Helmets", customHelmetIDs); - loadArmor("Leggings", customLeggingIDs); + loadArmor("Boots", customBoots); + loadArmor("Chestplates", customChestplates); + loadArmor("Helmets", customHelmets); + loadArmor("Leggings", customLeggings); } - private void loadArmor(String armorType, List idList) { + private void loadArmor(String armorType, List materialList) { ConfigurationSection armorSection = config.getConfigurationSection(armorType); if (armorSection == null) { @@ -68,35 +65,40 @@ public class CustomArmorConfig extends ConfigLoader { Set armorConfigSet = armorSection.getKeys(false); for (String armorName : armorConfigSet) { - int id = config.getInt(armorType + "." + armorName + ".ID", 0); - boolean repairable = config.getBoolean(armorType + "." + armorName + ".Repairable"); - int repairID = config.getInt(armorType + "." + armorName + ".Repair_Material_ID", 0); - byte repairData = (byte) config.getInt(armorType + "." + armorName + ".Repair_Material_Data_Value", 0); - int repairQuantity = config.getInt(armorType + "." + armorName + ".Repair_Material_Quantity", 0); - short durability = (short) config.getInt(armorType + "." + armorName + ".Durability", 0); + Material armorMaterial = Material.matchMaterial(armorName); - if (id == 0) { - plugin.getLogger().warning("Missing ID. This item will be skipped."); + if (armorMaterial == null) { + plugin.getLogger().warning("Invalid material name. This item will be skipped."); continue; } - if (repairable && (repairID == 0 || repairQuantity == 0 || durability == 0)) { + boolean repairable = config.getBoolean(armorType + "." + armorName + ".Repairable"); + Material repairMaterial = Material.matchMaterial(config.getString(armorType + "." + armorName + ".Repair_Material", "")); + + if (repairMaterial == null) { plugin.getLogger().warning("Incomplete repair information. This item will be unrepairable."); repairable = false; } - CustomItem armor; - if (repairable) { - repairables.add(RepairableFactory.getRepairable(Material.getMaterial(id), Material.getMaterial(repairID), repairData, repairQuantity, durability)); + byte repairData = (byte) config.getInt(armorType + "." + armorName + ".Repair_Material_Data_Value", -1); + int repairQuantity = Repair.getRepairAndSalvageQuantities(new ItemStack(armorMaterial), repairMaterial, repairData); + + if (repairQuantity == 0) { + repairQuantity = config.getInt(armorType + "." + armorName + ".Repair_Material_Data_Quantity", 2); + } + + short durability = armorMaterial.getMaxDurability(); + + if (durability == 0) { + durability = (short) config.getInt(armorType + "." + armorName + ".Durability", 70); + } + + repairables.add(RepairableFactory.getRepairable(armorMaterial, repairMaterial, repairData, repairQuantity, durability)); } - armor = new CustomItem(id, durability); - - idList.add(id); - customIDs.add(id); - customArmorList.add(armor); - customArmor.put(id, armor); + materialList.add(armorMaterial); + customArmor.add(armorMaterial); } } } diff --git a/src/main/java/com/gmail/nossr50/config/mods/CustomToolConfig.java b/src/main/java/com/gmail/nossr50/config/mods/CustomToolConfig.java index c3a3d6f95..433422e35 100644 --- a/src/main/java/com/gmail/nossr50/config/mods/CustomToolConfig.java +++ b/src/main/java/com/gmail/nossr50/config/mods/CustomToolConfig.java @@ -97,7 +97,7 @@ public class CustomToolConfig extends ConfigLoader { repairables.add(RepairableFactory.getRepairable(Material.getMaterial(id), Material.getMaterial(repairID), repairData, repairQuantity, durability)); } - tool = new CustomTool(tier, abilityEnabled, multiplier, durability, id); + tool = new CustomTool(tier, abilityEnabled, multiplier, id); idList.add(id); customIDs.add(id); diff --git a/src/main/java/com/gmail/nossr50/datatypes/mods/CustomItem.java b/src/main/java/com/gmail/nossr50/datatypes/mods/CustomItem.java deleted file mode 100644 index 3bd68e921..000000000 --- a/src/main/java/com/gmail/nossr50/datatypes/mods/CustomItem.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.gmail.nossr50.datatypes.mods; - -public class CustomItem { - protected int itemID; - protected short durability; - - public CustomItem(int itemID, short durability) { - this.itemID = itemID; - this.durability = durability; - } - - public int getItemID() { - return itemID; - } - - public void setItemID(int itemID) { - this.itemID = itemID; - } - - public short getDurability() { - return durability; - } - - public void setDurability(short durability) { - this.durability = durability; - } -} diff --git a/src/main/java/com/gmail/nossr50/datatypes/mods/CustomTool.java b/src/main/java/com/gmail/nossr50/datatypes/mods/CustomTool.java index 00e9d42ae..954f75e7c 100644 --- a/src/main/java/com/gmail/nossr50/datatypes/mods/CustomTool.java +++ b/src/main/java/com/gmail/nossr50/datatypes/mods/CustomTool.java @@ -1,17 +1,28 @@ package com.gmail.nossr50.datatypes.mods; -public class CustomTool extends CustomItem { +import org.bukkit.Material; + +public class CustomTool { + private Material material; private double xpMultiplier; private boolean abilityEnabled; private int tier; - public CustomTool(int tier, boolean abilityEnabled, double xpMultiplier, short durability, int itemID) { - super(itemID, durability); + public CustomTool(int tier, boolean abilityEnabled, double xpMultiplier, int itemID) { + this.material = Material.getMaterial(itemID); this.xpMultiplier = xpMultiplier; this.abilityEnabled = abilityEnabled; this.tier = tier; } + public Material getType() { + return material; + } + + public void setType(Material material) { + this.material = material; + } + public double getXpMultiplier() { return xpMultiplier; } diff --git a/src/main/java/com/gmail/nossr50/skills/axes/AxesManager.java b/src/main/java/com/gmail/nossr50/skills/axes/AxesManager.java index 4976ff9f2..e993ca3a4 100644 --- a/src/main/java/com/gmail/nossr50/skills/axes/AxesManager.java +++ b/src/main/java/com/gmail/nossr50/skills/axes/AxesManager.java @@ -13,7 +13,6 @@ import com.gmail.nossr50.locale.LocaleLoader; import com.gmail.nossr50.skills.SkillManager; import com.gmail.nossr50.util.ItemUtils; import com.gmail.nossr50.util.Misc; -import com.gmail.nossr50.util.ModUtils; import com.gmail.nossr50.util.Permissions; import com.gmail.nossr50.util.player.UserManager; import com.gmail.nossr50.util.skills.CombatUtils; @@ -99,7 +98,7 @@ public class AxesManager extends SkillManager { if (ItemUtils.isArmor(armor) && Axes.impactChance > Misc.getRandom().nextInt(getActivationChance())) { double durabilityModifier = 1 / (armor.getEnchantmentLevel(Enchantment.DURABILITY) + 1); // Modifier to simulate the durability enchantment behavior double modifiedDurabilityDamage = durabilityDamage * durabilityModifier; - short maxDurability = ModUtils.isCustomArmor(armor) ? ModUtils.getArmorFromItemStack(armor).getDurability() : armor.getType().getMaxDurability(); + short maxDurability = armor.getType().getMaxDurability(); double maxDurabilityDamage = maxDurability * Axes.impactMaxDurabilityModifier; armor.setDurability((short) (Math.min(modifiedDurabilityDamage, maxDurabilityDamage) + armor.getDurability())); diff --git a/src/main/java/com/gmail/nossr50/skills/repair/Repair.java b/src/main/java/com/gmail/nossr50/skills/repair/Repair.java index a815f3729..ce9326b18 100644 --- a/src/main/java/com/gmail/nossr50/skills/repair/Repair.java +++ b/src/main/java/com/gmail/nossr50/skills/repair/Repair.java @@ -5,6 +5,7 @@ import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.Recipe; import org.bukkit.inventory.ShapedRecipe; import org.bukkit.inventory.ShapelessRecipe; +import org.bukkit.material.MaterialData; import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.config.AdvancedConfig; @@ -112,25 +113,29 @@ public class Repair { } } - Recipe recipe = mcMMO.p.getServer().getRecipesFor(inHand).get(0); - int salvageAmount = 0; - Material salvageMaterial = getSalvagedItem(inHand); + return getRepairAndSalvageQuantities(inHand, getSalvagedItem(inHand), (byte) -1); + } + public static int getRepairAndSalvageQuantities(ItemStack item, Material repairMaterial, byte repairMetadata) { + int quantity = 0; + MaterialData repairData = new MaterialData(repairMaterial, repairMetadata); + Recipe recipe = mcMMO.p.getServer().getRecipesFor(item).get(0); + if (recipe instanceof ShapelessRecipe) { for (ItemStack ingredient : ((ShapelessRecipe) recipe).getIngredientList()) { - if (ingredient != null && ingredient.getType() == salvageMaterial) { - salvageAmount += ingredient.getAmount(); + if (ingredient != null && ingredient.getType() == repairMaterial && (repairMetadata == -1 || ingredient.getData() == repairData)) { + quantity += ingredient.getAmount(); } } } else if (recipe instanceof ShapedRecipe) { for (ItemStack ingredient : ((ShapedRecipe) recipe).getIngredientMap().values()) { - if (ingredient != null && ingredient.getType() == salvageMaterial) { - salvageAmount += ingredient.getAmount(); + if (ingredient != null && ingredient.getType() == repairMaterial && (repairMetadata == -1 || ingredient.getData() == repairData)) { + quantity += ingredient.getAmount(); } } } - return salvageAmount; + return quantity; } } diff --git a/src/main/java/com/gmail/nossr50/skills/repair/config/RepairConfig.java b/src/main/java/com/gmail/nossr50/skills/repair/config/RepairConfig.java index 2df0f8dd0..8e4beb4a5 100644 --- a/src/main/java/com/gmail/nossr50/skills/repair/config/RepairConfig.java +++ b/src/main/java/com/gmail/nossr50/skills/repair/config/RepairConfig.java @@ -7,13 +7,9 @@ import java.util.Set; import org.bukkit.Material; import org.bukkit.configuration.ConfigurationSection; import org.bukkit.inventory.ItemStack; -import org.bukkit.inventory.Recipe; -import org.bukkit.inventory.ShapedRecipe; -import org.bukkit.inventory.ShapelessRecipe; -import org.bukkit.material.MaterialData; -import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.config.ConfigLoader; +import com.gmail.nossr50.skills.repair.Repair; import com.gmail.nossr50.skills.repair.RepairItemType; import com.gmail.nossr50.skills.repair.RepairMaterialType; import com.gmail.nossr50.skills.repair.Repairable; @@ -100,7 +96,7 @@ public class RepairConfig extends ConfigLoader { } // Maximum Durability - short maximumDurability = (config.contains("Repairables." + key + ".MaximumDurability") ? (short) config.getInt("Repairables." + key + ".MaximumDurability") : (itemMaterial != null ? itemMaterial.getMaxDurability() : 0)); + short maximumDurability = (itemMaterial != null ? itemMaterial.getMaxDurability() : (short) config.getInt("Repairables." + key + ".MaximumDurability")); if (maximumDurability <= 0) { reason.add("Maximum durability of " + key + " must be greater than 0!"); @@ -129,7 +125,7 @@ public class RepairConfig extends ConfigLoader { } } - int repairMetadata = config.getInt("Repairables." + key + ".RepairMaterialMetadata", -1); + byte repairMetadata = (byte) config.getInt("Repairables." + key + ".RepairMaterialMetadata", -1); int minimumLevel = config.getInt("Repairables." + key + ".MinimumLevel"); double xpMultiplier = config.getDouble("Repairables." + key + ".XpMultiplier", 1); @@ -138,38 +134,14 @@ public class RepairConfig extends ConfigLoader { } // Minimum Quantity - int minimumQuantity = 0; - - if (config.contains("Repairables." + key + ".MinimumQuantity")) { - minimumQuantity = config.getInt("Repairables." + key + ".MinimumQuantity"); - } - else if (itemMaterial != null) { - ItemStack item = new ItemStack(itemMaterial); - MaterialData repairData = new MaterialData(repairMaterial, (byte) repairMetadata); - Recipe recipe = mcMMO.p.getServer().getRecipesFor(item).get(0); - - if (recipe instanceof ShapelessRecipe) { - for (ItemStack ingredient : ((ShapelessRecipe) recipe).getIngredientList()) { - if (ingredient != null && ingredient.getType() == repairMaterial && (repairMetadata == -1 || ingredient.getData() == repairData)) { - minimumQuantity += ingredient.getAmount(); - } - } - } - else if (recipe instanceof ShapedRecipe) { - for (ItemStack ingredient : ((ShapedRecipe) recipe).getIngredientMap().values()) { - if (ingredient != null && ingredient.getType() == repairMaterial && (repairMetadata == -1 || ingredient.getData() == repairData)) { - minimumQuantity += ingredient.getAmount(); - } - } - } - } + int minimumQuantity = (itemMaterial != null ? Repair.getRepairAndSalvageQuantities(new ItemStack(itemMaterial), repairMaterial, repairMetadata) : config.getInt("Repairables." + key + ".MinimumQuantity")); if (minimumQuantity <= 0) { reason.add("Minimum quantity of " + key + " must be greater than 0!"); } if (noErrorsInRepairable(reason)) { - Repairable repairable = RepairableFactory.getRepairable(itemMaterial, repairMaterial, (byte) repairMetadata, minimumLevel, minimumQuantity, maximumDurability, repairItemType, repairMaterialType, xpMultiplier); + Repairable repairable = RepairableFactory.getRepairable(itemMaterial, repairMaterial, repairMetadata, minimumLevel, minimumQuantity, maximumDurability, repairItemType, repairMaterialType, xpMultiplier); repairables.add(repairable); } } diff --git a/src/main/java/com/gmail/nossr50/skills/woodcutting/Woodcutting.java b/src/main/java/com/gmail/nossr50/skills/woodcutting/Woodcutting.java index 6b0f0e247..100650480 100644 --- a/src/main/java/com/gmail/nossr50/skills/woodcutting/Woodcutting.java +++ b/src/main/java/com/gmail/nossr50/skills/woodcutting/Woodcutting.java @@ -229,7 +229,7 @@ public final class Woodcutting { } short finalDurability = (short) (inHand.getDurability() + durabilityLoss); - short maxDurability = ModUtils.isCustomTool(inHand) ? ModUtils.getToolFromItemStack(inHand).getDurability() : inHandMaterial.getMaxDurability(); + short maxDurability = inHandMaterial.getMaxDurability(); boolean overMax = (finalDurability >= maxDurability); inHand.setDurability(overMax ? maxDurability : finalDurability); diff --git a/src/main/java/com/gmail/nossr50/util/ItemUtils.java b/src/main/java/com/gmail/nossr50/util/ItemUtils.java index ca6031f4f..c6ef6acef 100644 --- a/src/main/java/com/gmail/nossr50/util/ItemUtils.java +++ b/src/main/java/com/gmail/nossr50/util/ItemUtils.java @@ -121,7 +121,9 @@ public class ItemUtils { * @return true if the item is a helmet, false otherwise */ public static boolean isHelmet(ItemStack item) { - switch (item.getType()) { + Material type = item.getType(); + + switch (type) { case DIAMOND_HELMET: case GOLD_HELMET: case IRON_HELMET: @@ -130,7 +132,7 @@ public class ItemUtils { return true; default: - return Config.getInstance().getArmorModsEnabled() && CustomArmorConfig.getInstance().customHelmetIDs.contains(item.getTypeId()); + return Config.getInstance().getArmorModsEnabled() && CustomArmorConfig.getInstance().customHelmets.contains(type); } } @@ -141,7 +143,9 @@ public class ItemUtils { * @return true if the item is a chestplate, false otherwise */ public static boolean isChestplate(ItemStack item) { - switch (item.getType()) { + Material type = item.getType(); + + switch (type) { case DIAMOND_CHESTPLATE: case GOLD_CHESTPLATE: case IRON_CHESTPLATE: @@ -150,7 +154,7 @@ public class ItemUtils { return true; default: - return Config.getInstance().getArmorModsEnabled() && CustomArmorConfig.getInstance().customChestplateIDs.contains(item.getTypeId()); + return Config.getInstance().getArmorModsEnabled() && CustomArmorConfig.getInstance().customChestplates.contains(type); } } @@ -161,7 +165,9 @@ public class ItemUtils { * @return true if the item is a pair of pants, false otherwise */ public static boolean isLeggings(ItemStack item) { - switch (item.getType()) { + Material type = item.getType(); + + switch (type) { case DIAMOND_LEGGINGS: case GOLD_LEGGINGS: case IRON_LEGGINGS: @@ -170,7 +176,7 @@ public class ItemUtils { return true; default: - return Config.getInstance().getArmorModsEnabled() && CustomArmorConfig.getInstance().customLeggingIDs.contains(item.getTypeId()); + return Config.getInstance().getArmorModsEnabled() && CustomArmorConfig.getInstance().customLeggings.contains(type); } } @@ -181,7 +187,9 @@ public class ItemUtils { * @return true if the item is a pair of boots, false otherwise */ public static boolean isBoots(ItemStack item) { - switch (item.getType()) { + Material type = item.getType(); + + switch (type) { case DIAMOND_BOOTS: case GOLD_BOOTS: case IRON_BOOTS: @@ -190,7 +198,7 @@ public class ItemUtils { return true; default: - return Config.getInstance().getArmorModsEnabled() && CustomArmorConfig.getInstance().customBootIDs.contains(item.getTypeId()); + return Config.getInstance().getArmorModsEnabled() && CustomArmorConfig.getInstance().customBoots.contains(type); } } diff --git a/src/main/java/com/gmail/nossr50/util/ModUtils.java b/src/main/java/com/gmail/nossr50/util/ModUtils.java index 74a4061e0..f7031625b 100644 --- a/src/main/java/com/gmail/nossr50/util/ModUtils.java +++ b/src/main/java/com/gmail/nossr50/util/ModUtils.java @@ -3,6 +3,7 @@ package com.gmail.nossr50.util; import org.bukkit.block.BlockState; import org.bukkit.entity.Entity; import org.bukkit.inventory.ItemStack; +import org.bukkit.material.MaterialData; import com.gmail.nossr50.config.Config; import com.gmail.nossr50.config.mods.CustomArmorConfig; @@ -11,7 +12,6 @@ import com.gmail.nossr50.config.mods.CustomEntityConfig; import com.gmail.nossr50.config.mods.CustomToolConfig; import com.gmail.nossr50.datatypes.mods.CustomBlock; import com.gmail.nossr50.datatypes.mods.CustomEntity; -import com.gmail.nossr50.datatypes.mods.CustomItem; import com.gmail.nossr50.datatypes.mods.CustomTool; public final class ModUtils { @@ -24,16 +24,6 @@ public final class ModUtils { private ModUtils() {} - /** - * Get the custom armor associated with an item. - * - * @param item The item to check - * @return the armor if it exists, null otherwise - */ - public static CustomItem getArmorFromItemStack(ItemStack item) { - return CustomArmorConfig.getInstance().customArmor.get(item.getTypeId()); - } - /** * Get the custom tool associated with an item. * @@ -56,7 +46,7 @@ public final class ModUtils { if (CustomBlockConfig.getInstance().customItems.contains(item)) { for (CustomBlock block : CustomBlockConfig.getInstance().customBlocks) { - if ((block.getItemID() == blockState.getTypeId()) && (block.getDataValue() == blockState.getRawData())) { + if (new MaterialData(block.getItemID(), block.getDataValue()).equals(blockState.getData())) { return block; } } @@ -92,7 +82,7 @@ public final class ModUtils { if (CustomBlockConfig.getInstance().customWoodcuttingBlocks.contains(item)) { for (CustomBlock block : CustomBlockConfig.getInstance().customBlocks) { - if ((block.getItemID() == blockState.getTypeId()) && (block.getDataValue() == blockState.getRawData())) { + if (new MaterialData(block.getItemID(), block.getDataValue()).equals(blockState.getData())) { return true; } } @@ -114,7 +104,7 @@ public final class ModUtils { if (CustomBlockConfig.getInstance().customAbilityBlocks.contains(item)) { for (CustomBlock block : CustomBlockConfig.getInstance().customBlocks) { - if ((block.getItemID() == blockState.getTypeId()) && (block.getDataValue() == blockState.getRawData())) { + if (new MaterialData(block.getItemID(), block.getDataValue()).equals(blockState.getData())) { return true; } } @@ -136,7 +126,7 @@ public final class ModUtils { if (CustomBlockConfig.getInstance().customMiningBlocks.contains(item)) { for (CustomBlock block : CustomBlockConfig.getInstance().customBlocks) { - if ((block.getItemID() == blockState.getTypeId()) && (block.getDataValue() == blockState.getRawData())) { + if (new MaterialData(block.getItemID(), block.getDataValue()).equals(blockState.getData())) { return true; } } @@ -158,7 +148,7 @@ public final class ModUtils { if (CustomBlockConfig.getInstance().customExcavationBlocks.contains(item)) { for (CustomBlock block : CustomBlockConfig.getInstance().customBlocks) { - if ((block.getItemID() == blockState.getTypeId()) && (block.getDataValue() == blockState.getRawData())) { + if (new MaterialData(block.getItemID(), block.getDataValue()).equals(blockState.getData())) { return true; } } @@ -180,7 +170,7 @@ public final class ModUtils { if (CustomBlockConfig.getInstance().customHerbalismBlocks.contains(item)) { for (CustomBlock block : CustomBlockConfig.getInstance().customBlocks) { - if ((block.getItemID() == blockState.getTypeId()) && (block.getDataValue() == blockState.getRawData())) { + if (new MaterialData(block.getItemID(), block.getDataValue()).equals(blockState.getData())) { return true; } } @@ -202,7 +192,7 @@ public final class ModUtils { if (CustomBlockConfig.getInstance().customLeaves.contains(item)) { for (CustomBlock block : CustomBlockConfig.getInstance().customBlocks) { - if ((block.getItemID() == blockState.getTypeId()) && (block.getDataValue() == blockState.getRawData())) { + if (new MaterialData(block.getItemID(), block.getDataValue()).equals(blockState.getData())) { return true; } } @@ -224,7 +214,7 @@ public final class ModUtils { if (CustomBlockConfig.getInstance().customLogs.contains(item)) { for (CustomBlock block : CustomBlockConfig.getInstance().customBlocks) { - if ((block.getItemID() == blockState.getTypeId()) && (block.getDataValue() == blockState.getRawData())) { + if (new MaterialData(block.getItemID(), block.getDataValue()).equals(blockState.getData())) { return true; } } @@ -246,7 +236,7 @@ public final class ModUtils { if (CustomBlockConfig.getInstance().customOres.contains(item)) { for (CustomBlock block : CustomBlockConfig.getInstance().customBlocks) { - if ((block.getItemID() == blockState.getTypeId()) && (block.getDataValue() == blockState.getRawData())) { + if (new MaterialData(block.getItemID(), block.getDataValue()).equals(blockState.getData())) { return true; } } @@ -277,7 +267,7 @@ public final class ModUtils { * @return true if the item is custom armor, false otherwise */ public static boolean isCustomArmor(ItemStack item) { - if (customArmorEnabled && CustomArmorConfig.getInstance().customArmor.containsKey(item.getTypeId())) { + if (customArmorEnabled && CustomArmorConfig.getInstance().customArmor.contains(item.getType())) { return true; } diff --git a/src/main/java/com/gmail/nossr50/util/skills/SkillUtils.java b/src/main/java/com/gmail/nossr50/util/skills/SkillUtils.java index 512b82432..81960387f 100644 --- a/src/main/java/com/gmail/nossr50/util/skills/SkillUtils.java +++ b/src/main/java/com/gmail/nossr50/util/skills/SkillUtils.java @@ -460,7 +460,7 @@ public class SkillUtils { */ public static ItemStack handleDurabilityChange(ItemStack itemStack, int durabilityModifier) { short finalDurability = (short) (itemStack.getDurability() + durabilityModifier); - short maxDurability = ModUtils.isCustomTool(itemStack) ? ModUtils.getToolFromItemStack(itemStack).getDurability() : itemStack.getType().getMaxDurability(); + short maxDurability = itemStack.getType().getMaxDurability(); boolean overMax = (finalDurability >= maxDurability); itemStack.setDurability(overMax ? maxDurability : finalDurability); diff --git a/src/main/resources/armor.yml b/src/main/resources/armor.yml index 5e061a621..1faac5c58 100644 --- a/src/main/resources/armor.yml +++ b/src/main/resources/armor.yml @@ -3,73 +3,62 @@ ### Boots: Boot_1: - ID: 999 Repairable: true - Repair_Material_ID: 99 + Repair_Material: REPAIR_MATERIAL_NAME Repair_Material_Data_Value: 0 Repair_Material_Quantity: 9 - Durability: 9999 + Durability: 999 Boot_2: - ID: 999 Repairable: true - Repair_Material_ID: 99 + Repair_Material: REPAIR_MATERIAL_NAME Repair_Material_Data_Value: 0 Repair_Material_Quantity: 9 - Durability: 9999 - + Durability: 999 # # Settings for Chestplates ### Chestplates: Chestplate_1: - ID: 999 Repairable: true - Repair_Material_ID: 99 + Repair_Material: REPAIR_MATERIAL_NAME Repair_Material_Data_Value: 0 Repair_Material_Quantity: 9 - Durability: 9999 + Durability: 999 Chestplate_2: - ID: 999 Repairable: true - Repair_Material_ID: 99 + Repair_Material: REPAIR_MATERIAL_NAME Repair_Material_Data_Value: 0 Repair_Material_Quantity: 9 - Durability: 9999 - + Durability: 999 # # Settings for Helmets ### Helmets: Helmet_1: - ID: 999 Repairable: true - Repair_Material_ID: 99 + Repair_Material: REPAIR_MATERIAL_NAME Repair_Material_Data_Value: 0 Repair_Material_Quantity: 9 - Durability: 9999 + Durability: 999 Helmet_2: - ID: 999 Repairable: true - Repair_Material_ID: 99 + Repair_Material: REPAIR_MATERIAL_NAME Repair_Material_Data_Value: 0 Repair_Material_Quantity: 9 - Durability: 9999 - + Durability: 999 # # Settings for Leggings ### Leggings: Legging_1: - ID: 999 Repairable: true - Repair_Material_ID: 99 + Repair_Material: REPAIR_MATERIAL_NAME Repair_Material_Data_Value: 0 Repair_Material_Quantity: 9 - Durability: 9999 + Durability: 999 Legging_2: - ID: 999 Repairable: true - Repair_Material_ID: 99 + Repair_Material: REPAIR_MATERIAL_NAME Repair_Material_Data_Value: 0 Repair_Material_Quantity: 9 - Durability: 9999 \ No newline at end of file + Durability: 999 \ No newline at end of file