diff --git a/src/main/java/com/gmail/nossr50/skills/Repair.java b/src/main/java/com/gmail/nossr50/skills/Repair.java index c80791e8e..cc6f396c2 100644 --- a/src/main/java/com/gmail/nossr50/skills/Repair.java +++ b/src/main/java/com/gmail/nossr50/skills/Repair.java @@ -249,7 +249,26 @@ public class Repair { //CLANG CLANG if(LoadProperties.spoutEnabled) SpoutStuff.playRepairNoise(player); - } + } + + //BOW + else if(isBow(is) && hasItem(player, rString)){ + removeItem(player, rString); + repairItem(player, enchants, enchantsLevel); + + durabilityAfter = player.getItemInHand().getDurability(); + dif = (short) (durabilityBefore - durabilityAfter); + + //STRING NERF + dif = (short) (dif / 2); + + PP.addXP(SkillType.REPAIR, dif*10, player); + + + //CLANG CLANG + if(LoadProperties.spoutEnabled) + SpoutStuff.playRepairNoise(player); + } //UNABLE TO REPAIR else { @@ -401,7 +420,8 @@ public class Repair { is.getTypeId() == 276 || is.getTypeId() == 277 || is.getTypeId() == 278 || is.getTypeId() == 279 || is.getTypeId() == 293 || //DIAMOND is.getTypeId() == 283 || is.getTypeId() == 285 || is.getTypeId() == 286 || is.getTypeId() == 284 || is.getTypeId() == 294 || //GOLD is.getTypeId() == 268 || is.getTypeId() == 269 || is.getTypeId() == 270 || is.getTypeId() == 271 || is.getTypeId() == 290 ||//WOOD - is.getTypeId() == 272 || is.getTypeId() == 273 || is.getTypeId() == 274 || is.getTypeId() == 275|| is.getTypeId() == 291; //STONE + is.getTypeId() == 272 || is.getTypeId() == 273 || is.getTypeId() == 274 || is.getTypeId() == 275|| is.getTypeId() == 291 || //STONE + is.getTypeId() == 261; //BOW } public static boolean isStoneTools(ItemStack is){ return is.getTypeId() == 272 || is.getTypeId() == 273 || is.getTypeId() == 274 || is.getTypeId() == 275 || is.getTypeId() == 291; @@ -418,6 +438,9 @@ public class Repair { public static boolean isDiamondTools(ItemStack is){ return is.getTypeId() == 276 || is.getTypeId() == 277 || is.getTypeId() == 278 || is.getTypeId() == 279 || is.getTypeId() == 293; } + public static boolean isBow(ItemStack is){ + return is.getTypeId() == 261; + } public static void removeItem(Player player, int typeid) { ItemStack[] inventory = player.getInventory().getContents(); @@ -472,6 +495,11 @@ public class Repair { ramt = Material.SHEARS.getMaxDurability() / 2; break; + //BOW + case 261: + ramt = Material.BOW.getMaxDurability() / 3; + break; + /* WOOD TOOLS */ //WOOD SWORD @@ -646,6 +674,25 @@ public class Repair { case 317: ramt = Material.GOLD_BOOTS.getMaxDurability() / 4; break; + + /* LEATHER ARMOR */ + + //LEATHER HELMET + case 298: + ramt = Material.LEATHER_HELMET.getMaxDurability() / 5; + break; + //LEATHER CHESTPLATE + case 299: + ramt = Material.LEATHER_CHESTPLATE.getMaxDurability() / 8; + break; + //LEATHER LEGGINGS + case 300: + ramt = Material.LEATHER_LEGGINGS.getMaxDurability() / 7; + break; + //LEATHER BOOTS + case 301: + ramt = Material.LEATHER_BOOTS.getMaxDurability() / 4; + break; } return repairCalculate(player, durability, ramt); @@ -676,6 +723,8 @@ public class Repair { player.sendMessage(mcLocale.getString("Skills.NeedMore")+" "+ChatColor.GOLD+ nGold); } else if (isLeatherArmor(is) && !hasItem(player, rLeather)){ player.sendMessage(mcLocale.getString("Skills.NeedMore")+" "+ChatColor.YELLOW+ nLeather); + } else if (isBow(is) && !hasItem(player, rString)){ + player.sendMessage(mcLocale.getString("Skills.NeedMore")+" "+ChatColor.YELLOW+ nString); } else if (is.getAmount() > 1) player.sendMessage(mcLocale.getString("Skills.StackedItems")); }