diff --git a/src/main/java/net/slqmy/template_paper_plugin/custom_item/AbstractCustomItem.java b/src/main/java/net/slqmy/template_paper_plugin/custom_item/AbstractCustomItem.java index 3636f6c7..9c76f654 100644 --- a/src/main/java/net/slqmy/template_paper_plugin/custom_item/AbstractCustomItem.java +++ b/src/main/java/net/slqmy/template_paper_plugin/custom_item/AbstractCustomItem.java @@ -14,18 +14,18 @@ public abstract class AbstractCustomItem implements Listener { protected final TemplatePaperPlugin plugin; - protected final String itemId; + protected final CustomItem itemId; protected final Material material; private final NamespacedKey itemIdKey; - public AbstractCustomItem(TemplatePaperPlugin plugin, String itemId, Material material) { + public AbstractCustomItem(TemplatePaperPlugin plugin, CustomItem itemId, Material material) { this.plugin = plugin; this.itemId = itemId; this.material = material; - itemIdKey = new NamespacedKey(plugin, itemId); + itemIdKey = new NamespacedKey(plugin, itemId.name()); Bukkit.getPluginManager().registerEvents(this, plugin); } @@ -34,7 +34,7 @@ public AbstractCustomItem(TemplatePaperPlugin plugin, String itemId, Material ma public ItemStack getCustomItem(Player player) { ItemStack item = new ItemStack(material); - item.editMeta((meta) -> meta.getPersistentDataContainer().set(itemIdKey, PersistentDataType.STRING, itemId)); + item.editMeta((meta) -> meta.getPersistentDataContainer().set(itemIdKey, PersistentDataType.STRING, itemId.name())); return generateCustomItem(item, player); } @@ -47,6 +47,15 @@ public boolean isItem(ItemStack itemStack) { return false; } - return itemId.equals(itemStack.getItemMeta().getPersistentDataContainer().get(itemIdKey, PersistentDataType.STRING)); + String dataContainerItemIdValue = itemStack.getItemMeta().getPersistentDataContainer().get(itemIdKey, PersistentDataType.STRING); + if (dataContainerItemIdValue == null) { + return false; + } + + try { + return itemId == CustomItem.valueOf(dataContainerItemIdValue); + } catch (IllegalArgumentException exception) { + return false; + } } } diff --git a/src/main/java/net/slqmy/template_paper_plugin/custom_item/CustomItem.java b/src/main/java/net/slqmy/template_paper_plugin/custom_item/CustomItem.java new file mode 100644 index 00000000..6fa99bb9 --- /dev/null +++ b/src/main/java/net/slqmy/template_paper_plugin/custom_item/CustomItem.java @@ -0,0 +1,5 @@ +package net.slqmy.template_paper_plugin.custom_item; + +public enum CustomItem { + +}