Move Salvage functions into Repair

This commit is contained in:
GJ 2013-03-06 11:31:51 -05:00
parent 3e084b3b5d
commit f6a18ef777
7 changed files with 93 additions and 105 deletions

View File

@ -7,7 +7,6 @@ import com.gmail.nossr50.datatypes.skills.SkillType;
import com.gmail.nossr50.locale.LocaleLoader; import com.gmail.nossr50.locale.LocaleLoader;
import com.gmail.nossr50.skills.repair.Repair; import com.gmail.nossr50.skills.repair.Repair;
import com.gmail.nossr50.skills.repair.Repairable; import com.gmail.nossr50.skills.repair.Repairable;
import com.gmail.nossr50.skills.repair.Salvage;
import com.gmail.nossr50.util.Permissions; import com.gmail.nossr50.util.Permissions;
import com.gmail.nossr50.util.player.UserManager; import com.gmail.nossr50.util.player.UserManager;
@ -123,8 +122,8 @@ public class RepairCommand extends SkillCommand {
player.sendMessage(LocaleLoader.getString("Effects.Template", LocaleLoader.getString("Repair.Effect.6", diamondLevel), LocaleLoader.getString("Repair.Effect.7"))); player.sendMessage(LocaleLoader.getString("Effects.Template", LocaleLoader.getString("Repair.Effect.6", diamondLevel), LocaleLoader.getString("Repair.Effect.7")));
} }
if (canSalvage && Salvage.salvageUnlockLevel > 0) { if (canSalvage && Repair.salvageUnlockLevel > 0) {
player.sendMessage(LocaleLoader.getString("Effects.Template", LocaleLoader.getString("Repair.Effect.16", Salvage.salvageUnlockLevel), LocaleLoader.getString("Repair.Effect.17"))); player.sendMessage(LocaleLoader.getString("Effects.Template", LocaleLoader.getString("Repair.Effect.16", Repair.salvageUnlockLevel), LocaleLoader.getString("Repair.Effect.17")));
} }
if (canArcaneForge) { if (canArcaneForge) {

View File

@ -30,7 +30,6 @@ import com.gmail.nossr50.skills.herbalism.HerbalismManager;
import com.gmail.nossr50.skills.mining.MiningManager; import com.gmail.nossr50.skills.mining.MiningManager;
import com.gmail.nossr50.skills.repair.Repair; import com.gmail.nossr50.skills.repair.Repair;
import com.gmail.nossr50.skills.repair.RepairManager; import com.gmail.nossr50.skills.repair.RepairManager;
import com.gmail.nossr50.skills.repair.Salvage;
import com.gmail.nossr50.skills.smelting.SmeltingManager; import com.gmail.nossr50.skills.smelting.SmeltingManager;
import com.gmail.nossr50.skills.swords.SwordsManager; import com.gmail.nossr50.skills.swords.SwordsManager;
import com.gmail.nossr50.skills.taming.TamingManager; import com.gmail.nossr50.skills.taming.TamingManager;
@ -316,11 +315,11 @@ public class McMMOPlayer {
*/ */
public boolean getPlacedAnvil(int anvilId) { public boolean getPlacedAnvil(int anvilId) {
if (anvilId == Repair.anvilID) { if (anvilId == Repair.repairAnvilId) {
return placedRepairAnvil; return placedRepairAnvil;
} }
if (anvilId == Salvage.anvilID) { if (anvilId == Repair.salvageAnvilId) {
return placedSalvageAnvil; return placedSalvageAnvil;
} }
@ -328,11 +327,11 @@ public class McMMOPlayer {
} }
public void togglePlacedAnvil(int anvilId) { public void togglePlacedAnvil(int anvilId) {
if (anvilId == Repair.anvilID) { if (anvilId == Repair.repairAnvilId) {
placedRepairAnvil = !placedRepairAnvil; placedRepairAnvil = !placedRepairAnvil;
} }
if (anvilId == Salvage.anvilID) { if (anvilId == Repair.salvageAnvilId) {
placedSalvageAnvil = !placedSalvageAnvil; placedSalvageAnvil = !placedSalvageAnvil;
} }
} }

View File

@ -35,7 +35,6 @@ import com.gmail.nossr50.skills.excavation.ExcavationManager;
import com.gmail.nossr50.skills.herbalism.HerbalismManager; import com.gmail.nossr50.skills.herbalism.HerbalismManager;
import com.gmail.nossr50.skills.mining.MiningManager; import com.gmail.nossr50.skills.mining.MiningManager;
import com.gmail.nossr50.skills.repair.Repair; import com.gmail.nossr50.skills.repair.Repair;
import com.gmail.nossr50.skills.repair.Salvage;
import com.gmail.nossr50.skills.smelting.SmeltingManager; import com.gmail.nossr50.skills.smelting.SmeltingManager;
import com.gmail.nossr50.skills.unarmed.Unarmed; import com.gmail.nossr50.skills.unarmed.Unarmed;
import com.gmail.nossr50.skills.woodcutting.Woodcutting; import com.gmail.nossr50.skills.woodcutting.Woodcutting;
@ -116,7 +115,7 @@ public class BlockListener implements Listener {
mcMMO.placeStore.setTrue(blockState); mcMMO.placeStore.setTrue(blockState);
} }
if (Repair.anvilMessagesEnabled && (blockId == Repair.anvilID || blockId == Salvage.anvilID)) { if (Repair.anvilMessagesEnabled && (blockId == Repair.repairAnvilId || blockId == Repair.salvageAnvilId)) {
UserManager.getPlayer(player).getRepairManager().placedAnvilCheck(blockId); UserManager.getPlayer(player).getRepairManager().placedAnvilCheck(blockId);
} }
} }

View File

@ -39,7 +39,6 @@ import com.gmail.nossr50.skills.fishing.FishingManager;
import com.gmail.nossr50.skills.herbalism.HerbalismManager; import com.gmail.nossr50.skills.herbalism.HerbalismManager;
import com.gmail.nossr50.skills.mining.MiningManager; import com.gmail.nossr50.skills.mining.MiningManager;
import com.gmail.nossr50.skills.repair.Repair; import com.gmail.nossr50.skills.repair.Repair;
import com.gmail.nossr50.skills.repair.Salvage;
import com.gmail.nossr50.skills.taming.TamingManager; import com.gmail.nossr50.skills.taming.TamingManager;
import com.gmail.nossr50.util.BlockUtils; import com.gmail.nossr50.util.BlockUtils;
import com.gmail.nossr50.util.ChimaeraWing; import com.gmail.nossr50.util.ChimaeraWing;
@ -285,13 +284,13 @@ public class PlayerListener implements Listener {
int blockID = block.getTypeId(); int blockID = block.getTypeId();
/* REPAIR CHECKS */ /* REPAIR CHECKS */
if (blockID == Repair.anvilID && Permissions.skillEnabled(player, SkillType.REPAIR) && mcMMO.repairableManager.isRepairable(heldItem)) { if (blockID == Repair.repairAnvilId && Permissions.skillEnabled(player, SkillType.REPAIR) && mcMMO.repairableManager.isRepairable(heldItem)) {
UserManager.getPlayer(player).getRepairManager().handleRepair(heldItem); UserManager.getPlayer(player).getRepairManager().handleRepair(heldItem);
event.setCancelled(true); event.setCancelled(true);
player.updateInventory(); player.updateInventory();
} }
/* SALVAGE CHECKS */ /* SALVAGE CHECKS */
else if (blockID == Salvage.anvilID && Permissions.salvage(player) && Salvage.isSalvageable(heldItem)) { else if (blockID == Repair.salvageAnvilId && Permissions.salvage(player) && Repair.isSalvageable(heldItem)) {
UserManager.getPlayer(player).getRepairManager().handleSalvage(block.getLocation(), heldItem); UserManager.getPlayer(player).getRepairManager().handleSalvage(block.getLocation(), heldItem);
event.setCancelled(true); event.setCancelled(true);
player.updateInventory(); player.updateInventory();

View File

@ -1,11 +1,13 @@
package com.gmail.nossr50.skills.repair; package com.gmail.nossr50.skills.repair;
import org.bukkit.Material;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.PlayerInventory; import org.bukkit.inventory.PlayerInventory;
import com.gmail.nossr50.config.AdvancedConfig; import com.gmail.nossr50.config.AdvancedConfig;
import com.gmail.nossr50.config.Config; import com.gmail.nossr50.config.Config;
import com.gmail.nossr50.locale.LocaleLoader; import com.gmail.nossr50.locale.LocaleLoader;
import com.gmail.nossr50.util.ItemUtils;
public class Repair { public class Repair {
// The order of the values is extremely important, a few methods depend on it to work properly // The order of the values is extremely important, a few methods depend on it to work properly
@ -51,9 +53,30 @@ public class Repair {
public static boolean arcaneForgingDowngrades = AdvancedConfig.getInstance().getArcaneForgingDowngradeEnabled(); public static boolean arcaneForgingDowngrades = AdvancedConfig.getInstance().getArcaneForgingDowngradeEnabled();
public static boolean arcaneForgingEnchantLoss = AdvancedConfig.getInstance().getArcaneForgingEnchantLossEnabled(); public static boolean arcaneForgingEnchantLoss = AdvancedConfig.getInstance().getArcaneForgingEnchantLossEnabled();
public static int anvilID = Config.getInstance().getRepairAnvilId(); 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 boolean anvilMessagesEnabled = Config.getInstance().getRepairAnvilMessagesEnabled();
/**
* Checks if the item is salvageable.
*
* @param item Item to check
* @return true if the item is salvageable, false otherwise
*/
public static boolean isSalvageable(ItemStack item) {
if (Config.getInstance().getSalvageTools() && (ItemUtils.isMinecraftTool(item) || ItemUtils.isStringTool(item) || item.getType() == Material.BUCKET)) {
return true;
}
if (Config.getInstance().getSalvageArmor() && ItemUtils.isMinecraftArmor(item)) {
return true;
}
return false;
}
/** /**
* Search the inventory for an item and return the index. * Search the inventory for an item and return the index.
* *
@ -114,11 +137,11 @@ public class Repair {
} }
protected static String[] getSpoutAnvilMessages(int blockId) { protected static String[] getSpoutAnvilMessages(int blockId) {
if (blockId == Repair.anvilID) { if (blockId == repairAnvilId) {
return new String[] {LocaleLoader.getString("Repair.AnvilPlaced.Spout1"), LocaleLoader.getString("Repair.AnvilPlaced.Spout2")}; return new String[] {LocaleLoader.getString("Repair.AnvilPlaced.Spout1"), LocaleLoader.getString("Repair.AnvilPlaced.Spout2")};
} }
if (blockId == Salvage.anvilID) { if (blockId == salvageAnvilId) {
return new String[] {"[mcMMO] Anvil Placed", "Right click to salvage!"}; return new String[] {"[mcMMO] Anvil Placed", "Right click to salvage!"};
} }
@ -126,14 +149,68 @@ public class Repair {
} }
protected static String getAnvilMessage(int blockId) { protected static String getAnvilMessage(int blockId) {
if (blockId == Repair.anvilID) { if (blockId == repairAnvilId) {
return LocaleLoader.getString("Repair.Listener.Anvil"); return LocaleLoader.getString("Repair.Listener.Anvil");
} }
if (blockId == Salvage.anvilID) { if (blockId == salvageAnvilId) {
return LocaleLoader.getString("Repair.Listener.Anvil2"); return LocaleLoader.getString("Repair.Listener.Anvil2");
} }
return ""; return "";
} }
protected static Material getSalvagedItem(ItemStack inHand) {
if (ItemUtils.isDiamondTool(inHand) || ItemUtils.isDiamondArmor(inHand)) {
return Material.DIAMOND;
}
else if (ItemUtils.isGoldTool(inHand) || ItemUtils.isGoldArmor(inHand)) {
return Material.GOLD_INGOT;
}
else if (ItemUtils.isIronTool(inHand) || ItemUtils.isIronArmor(inHand)) {
return Material.IRON_INGOT;
}
else if (ItemUtils.isStoneTool(inHand)) {
return Material.COBBLESTONE;
}
else if (ItemUtils.isWoodTool(inHand)) {
return Material.WOOD;
}
else if (ItemUtils.isLeatherArmor(inHand)) {
return Material.LEATHER;
}
else if (ItemUtils.isStringTool(inHand)) {
return Material.STRING;
}
else {
return null;
}
}
protected static int getSalvagedAmount(ItemStack inHand) {
if (ItemUtils.isPickaxe(inHand) || ItemUtils.isAxe(inHand) || inHand.getType() == Material.BOW || inHand.getType() == Material.BUCKET) {
return 3;
}
else if (ItemUtils.isShovel(inHand) || inHand.getType() == Material.FLINT_AND_STEEL) {
return 1;
}
else if (ItemUtils.isSword(inHand) || ItemUtils.isHoe(inHand) || inHand.getType() == Material.CARROT_STICK || inHand.getType() == Material.FISHING_ROD || inHand.getType() == Material.SHEARS) {
return 2;
}
else if (ItemUtils.isHelmet(inHand)) {
return 5;
}
else if (ItemUtils.isChestplate(inHand)) {
return 8;
}
else if (ItemUtils.isLeggings(inHand)) {
return 7;
}
else if (ItemUtils.isBoots(inHand)) {
return 4;
}
else {
return 0;
}
}
} }

View File

@ -179,7 +179,7 @@ public class RepairManager extends SkillManager {
return; return;
} }
if (getSkillLevel() < Salvage.salvageUnlockLevel) { if (getSkillLevel() < Repair.salvageUnlockLevel) {
player.sendMessage(LocaleLoader.getString("Repair.Skills.AdeptSalvage")); player.sendMessage(LocaleLoader.getString("Repair.Skills.AdeptSalvage"));
return; return;
} }
@ -188,7 +188,7 @@ public class RepairManager extends SkillManager {
player.setItemInHand(new ItemStack(Material.AIR)); player.setItemInHand(new ItemStack(Material.AIR));
location.setY(location.getY() + 1); location.setY(location.getY() + 1);
Misc.dropItems(location, new ItemStack(Salvage.getSalvagedItem(item)), Salvage.getSalvagedAmount(item)); Misc.dropItems(location, new ItemStack(Repair.getSalvagedItem(item)), Repair.getSalvagedAmount(item));
player.playSound(player.getLocation(), Sound.ANVIL_USE, Misc.ANVIL_USE_VOLUME, Misc.ANVIL_USE_PITCH); player.playSound(player.getLocation(), Sound.ANVIL_USE, Misc.ANVIL_USE_VOLUME, Misc.ANVIL_USE_PITCH);
player.sendMessage(LocaleLoader.getString("Repair.Skills.SalvageSuccess")); player.sendMessage(LocaleLoader.getString("Repair.Skills.SalvageSuccess"));

View File

@ -1,85 +0,0 @@
package com.gmail.nossr50.skills.repair;
import org.bukkit.Material;
import org.bukkit.inventory.ItemStack;
import com.gmail.nossr50.config.AdvancedConfig;
import com.gmail.nossr50.config.Config;
import com.gmail.nossr50.util.ItemUtils;
public class Salvage {
public static int salvageUnlockLevel = AdvancedConfig.getInstance().getSalvageUnlockLevel();
public static int anvilID = Config.getInstance().getSalvageAnvilId();
/**
* Checks if the item is salvageable.
*
* @param is Item to check
* @return true if the item is salvageable, false otherwise
*/
public static boolean isSalvageable(final ItemStack is) {
if (Config.getInstance().getSalvageTools() && (ItemUtils.isMinecraftTool(is) || ItemUtils.isStringTool(is) || is.getType() == Material.BUCKET)) {
return true;
}
if (Config.getInstance().getSalvageArmor() && ItemUtils.isMinecraftArmor(is)) {
return true;
}
return false;
}
protected static Material getSalvagedItem(final ItemStack inHand) {
if (ItemUtils.isDiamondTool(inHand) || ItemUtils.isDiamondArmor(inHand)) {
return Material.DIAMOND;
}
else if (ItemUtils.isGoldTool(inHand) || ItemUtils.isGoldArmor(inHand)) {
return Material.GOLD_INGOT;
}
else if (ItemUtils.isIronTool(inHand) || ItemUtils.isIronArmor(inHand)) {
return Material.IRON_INGOT;
}
else if (ItemUtils.isStoneTool(inHand)) {
return Material.COBBLESTONE;
}
else if (ItemUtils.isWoodTool(inHand)) {
return Material.WOOD;
}
else if (ItemUtils.isLeatherArmor(inHand)) {
return Material.LEATHER;
}
else if (ItemUtils.isStringTool(inHand)) {
return Material.STRING;
}
else {
return null;
}
}
protected static int getSalvagedAmount(final ItemStack inHand) {
if (ItemUtils.isPickaxe(inHand) || ItemUtils.isAxe(inHand) || inHand.getType() == Material.BOW || inHand.getType() == Material.BUCKET) {
return 3;
}
else if (ItemUtils.isShovel(inHand) || inHand.getType() == Material.FLINT_AND_STEEL) {
return 1;
}
else if (ItemUtils.isSword(inHand) || ItemUtils.isHoe(inHand) || inHand.getType() == Material.CARROT_STICK || inHand.getType() == Material.FISHING_ROD || inHand.getType() == Material.SHEARS) {
return 2;
}
else if (ItemUtils.isHelmet(inHand)) {
return 5;
}
else if (ItemUtils.isChestplate(inHand)) {
return 8;
}
else if (ItemUtils.isLeggings(inHand)) {
return 7;
}
else if (ItemUtils.isBoots(inHand)) {
return 4;
}
else {
return 0;
}
}
}