Merge pull request #49 from Diet-Cola/bound-fixes

Check anvil if the second item has armour bound pdc
This commit is contained in:
AngrySoundTech authored and GitHub committed 2022-09-05 10:44:58 -04:00
commit 68dd8e0267
1 file changed
+28
@@ -15,7 +15,9 @@ import org.bukkit.NamespacedKey;
import org.bukkit.entity.HumanEntity;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.inventory.PrepareAnvilEvent;
import org.bukkit.event.inventory.PrepareItemCraftEvent;
import org.bukkit.inventory.AnvilInventory;
import org.bukkit.inventory.CraftingInventory;
import org.bukkit.inventory.EquipmentSlot;
import org.bukkit.inventory.ItemStack;
@@ -114,6 +116,32 @@ public class ArmourBound extends BasicHack {
}
}
@EventHandler
public void onAnvilRepair(PrepareAnvilEvent event) {
AnvilInventory inventory = event.getInventory();
ItemStack first = inventory.getFirstItem();
if (first == null || first.getType() == Material.AIR) {
return;
}
ItemStack second = inventory.getSecondItem();
if (second == null || second.getType() == Material.AIR) {
return;
}
if (!second.hasItemMeta()) {
return;
}
PersistentDataContainer container = second.getItemMeta().getPersistentDataContainer();
if (!container.has(this.key, PersistentDataType.STRING)) {
return;
}
ItemStack result = event.getResult();
if (result == null || result.getType() == Material.AIR) {
return;
}
result.setItemMeta(second.getItemMeta());
event.setResult(result);
}
private EquipmentSlot getRealSlot(PlayerArmorChangeEvent.SlotType slotType) {
switch (slotType) {
case HEAD: