From ebfa6ab7f54b26216a407fa3689067bbb605c76d Mon Sep 17 00:00:00 2001 From: wothers Date: Thu, 29 Jun 2023 23:45:41 +0100 Subject: [PATCH] Prevented creating item instances of existing identifiers by checking for duplicates internally --- src/main/java/wothers/ift/ItemRegistry.java | 5 ++++- src/main/java/wothers/ift/ItemsFromText.java | 1 + 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/main/java/wothers/ift/ItemRegistry.java b/src/main/java/wothers/ift/ItemRegistry.java index e1ea908..3a2056f 100644 --- a/src/main/java/wothers/ift/ItemRegistry.java +++ b/src/main/java/wothers/ift/ItemRegistry.java @@ -25,8 +25,11 @@ private ItemRegistry() { fuelMap = new HashMap<>(); } + public static boolean internalContains(String namespaceName, String itemName) { + return Registry.ITEM.containsId(new Identifier(namespaceName, itemName)); + } + public void register(String namespaceName, String itemName, ItemProvider item, String displayName, Boolean isHandheld) { - if (registeredItems.containsKey(namespaceName + ":item/" + itemName)) throw new ItemLoadException(namespaceName, itemName, "Duplicate item"); Registry.register(Registry.ITEM, new Identifier(namespaceName, itemName), item.getItem()); namespaces.add(namespaceName); registeredItems.put(namespaceName + ":item/" + itemName, isHandheld ? "handheld" : "generated"); diff --git a/src/main/java/wothers/ift/ItemsFromText.java b/src/main/java/wothers/ift/ItemsFromText.java index 68c266c..0c97933 100644 --- a/src/main/java/wothers/ift/ItemsFromText.java +++ b/src/main/java/wothers/ift/ItemsFromText.java @@ -35,6 +35,7 @@ private void loadItems(File dir) { String itemName = file.getName().replace(".txt", ""); try { + if (ItemRegistry.internalContains(namespaceName, itemName)) throw new ItemLoadException(namespaceName, itemName, "Duplicate item"); ItemProperties ip = ItemPropertiesFactory.create(newProperties(file), namespaceName, itemName, LOGGER); ItemProvider item = parseItem(ip); registerItem(item, ip, namespaceName, itemName, new File(dir, itemName + ".png").getAbsoluteFile());