blob: f8466964f155505884f718bc1ce7478dfb602137 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
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;
}
}
}
}
}
|