summaryrefslogtreecommitdiff
path: root/TF2 Crates/src/main/java/tf2crates/handler/AnvilHandler.java
diff options
context:
space:
mode:
authorbculkin2442 <bjculkin@mix.wvu.edu>2018-05-24 15:52:43 -0400
committerbculkin2442 <bjculkin@mix.wvu.edu>2018-05-24 15:52:43 -0400
commita11c98c6cad501e081837ec8fa2e323edaeb1ca3 (patch)
treeab97a3e81bfa3eec2ff530ec55ff4a69e48f49e3 /TF2 Crates/src/main/java/tf2crates/handler/AnvilHandler.java
Initial commitmaster
Diffstat (limited to 'TF2 Crates/src/main/java/tf2crates/handler/AnvilHandler.java')
-rwxr-xr-xTF2 Crates/src/main/java/tf2crates/handler/AnvilHandler.java118
1 files changed, 118 insertions, 0 deletions
diff --git a/TF2 Crates/src/main/java/tf2crates/handler/AnvilHandler.java b/TF2 Crates/src/main/java/tf2crates/handler/AnvilHandler.java
new file mode 100755
index 0000000..f846696
--- /dev/null
+++ b/TF2 Crates/src/main/java/tf2crates/handler/AnvilHandler.java
@@ -0,0 +1,118 @@
+package tf2crates.handler;
+
+import cpw.mods.fml.common.eventhandler.SubscribeEvent;
+import net.minecraft.item.ItemArmor;
+import net.minecraft.item.ItemStack;
+import net.minecraft.item.ItemTool;
+import net.minecraft.nbt.NBTTagCompound;
+import net.minecraft.util.EnumChatFormatting;
+import net.minecraftforge.event.AnvilUpdateEvent;
+import tf2crates.ServerProxyTC;
+import tf2crates.crate.RandomLoot;
+import tf2crates.item.ItemUnusualEffect;
+
+public class AnvilHandler {
+ public static boolean repairHat, makeUnbreakable;
+
+ public static int strangeCost, unusualCost, descriptionCost;
+
+ @SubscribeEvent
+ public void anvilUpdate(AnvilUpdateEvent event) {
+ ItemStack left = event.left;
+ ItemStack right = event.right;
+
+ if (left != null && right != null) {
+ String leftN = left.getItem().getUnlocalizedName();
+
+ if (left.getItem() instanceof ItemTool
+ || leftN.contains("sword") || leftN.contains("Sword")
+ || leftN.contains("hoe") || leftN.contains("Hoe")) {
+ if (left.getItemDamage() > 0) {
+ if (right.stackSize == 1
+ && right.getItem() == ServerProxyTC.scrap) {
+ ItemStack res = left.copy();
+
+ double amt = 0.1111D;
+ int dmg = right.getItemDamage();
+
+ if (dmg == 1) {
+ amt = 0.3333D;
+ } else if (dmg == 2) {
+ amt = 1D;
+ }
+
+ res.setItemDamage((int) (res.getItemDamage()
+ - (res.getMaxDamage() * amt)));
+
+ event.output = res;
+ event.cost = 2;
+
+ return;
+ }
+ }
+ }
+
+ NBTTagCompound lNbt = left.getTagCompound();
+
+ if (lNbt == null) {
+ left.setTagCompound(lNbt = new NBTTagCompound());
+ }
+
+ if (RandomLoot.WEAPONS.contains(left.getItem())
+ && !lNbt.getBoolean("Golden")) {
+ if (right.getItem() == ServerProxyTC.paint
+ && right.getItemDamage() == 11) {
+ ItemStack res = left.copy();
+
+ res.getTagCompound().setBoolean("Golden", true);
+ res.setItemDamage(0);
+
+ res.setStackDisplayName(EnumChatFormatting.YELLOW
+ + "Strange Minecraftium "
+ + res.getDisplayName());
+
+ event.output = res;
+ event.cost = 1;
+ }
+ }
+
+ if (!lNbt.hasKey("UnusualEffect")) {
+ if (left.getItem() instanceof ItemArmor) {
+ ItemArmor armor = (ItemArmor) left.getItem();
+
+ if (armor.armorType == 0) {
+ if (right.getItem() instanceof ItemUnusualEffect) {
+ ItemStack result = left.copy();
+
+ result.getTagCompound().setInteger(
+ "UnusualEffect",
+ right.getItemDamage());
+
+ if (makeUnbreakable) {
+ result.getTagCompound()
+ .setBoolean("Unbreakable", true);
+ } else if (repairHat) {
+ result.setItemDamage(0);
+ }
+
+ event.output = result;
+ event.cost = unusualCost;
+ }
+
+ }
+ }
+ }
+
+ if (!lNbt.hasKey("Strange") && left.stackSize == 1) {
+ if (right.getItem() == ServerProxyTC.strangifier) {
+ ItemStack result = left.copy();
+
+ result.getTagCompound().setInteger("Strange", 0);
+
+ event.output = result;
+ event.cost = strangeCost;
+ }
+ }
+ }
+ }
+} \ No newline at end of file