diff options
Diffstat (limited to 'TF2 Crates/src/main/java/tf2crates/handler/AnvilHandler.java')
| -rwxr-xr-x | TF2 Crates/src/main/java/tf2crates/handler/AnvilHandler.java | 118 |
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 |
