diff options
author | Mary <33456283+FourIsTheNumber@users.noreply.github.com> | 2024-09-21 02:16:52 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-09-21 06:16:52 +0000 |
commit | 00f1db61dce7a42a6605e117d1f6954967c39784 (patch) | |
tree | 648caf67685a3afeada7fef3e3cecc1eae995ee8 /src/main/java/gregtech/api/enums/OrePrefixes.java | |
parent | c10272e0e358a233ed0ce7d591e9e43ca7ffa26c (diff) | |
download | GT5-Unofficial-00f1db61dce7a42a6605e117d1f6954967c39784.tar.gz GT5-Unofficial-00f1db61dce7a42a6605e117d1f6954967c39784.tar.bz2 GT5-Unofficial-00f1db61dce7a42a6605e117d1f6954967c39784.zip |
Prevent duplicate material registry (#3240)
Diffstat (limited to 'src/main/java/gregtech/api/enums/OrePrefixes.java')
-rw-r--r-- | src/main/java/gregtech/api/enums/OrePrefixes.java | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/main/java/gregtech/api/enums/OrePrefixes.java b/src/main/java/gregtech/api/enums/OrePrefixes.java index 418fe71681..27cf37a2de 100644 --- a/src/main/java/gregtech/api/enums/OrePrefixes.java +++ b/src/main/java/gregtech/api/enums/OrePrefixes.java @@ -15,6 +15,7 @@ import net.minecraft.item.ItemStack; import com.google.common.collect.ImmutableList; +import gregtech.api.GregTechAPI; import gregtech.api.enums.TCAspects.TC_AspectStack; import gregtech.api.interfaces.ICondition; import gregtech.api.interfaces.IOreRecipeRegistrator; @@ -1179,6 +1180,8 @@ public enum OrePrefixes { } else if (name().startsWith("battery")) { new TC_AspectStack(TCAspects.ELECTRUM, 1).addToAspectList(mAspects); } + + GregTechAPI.sGTCompleteLoad.add(this::onLoadComplete); } public static boolean isInstanceOf(String aName, OrePrefixes aPrefix) { @@ -1297,12 +1300,20 @@ public enum OrePrefixes { return mOreProcessing.add(aRegistrator); } + // Hack to prevent duplicate registry of oredicted materials + HashSet<Materials> used = new HashSet<>(); + public void processOre(Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) { if (aMaterial == null) { return; } + if (aMaterial != Materials._NULL && !used.add(aMaterial)) { + GTLog.out.println("Duplicate material registry attempted by " + aModName + " for " + aOreDictName); + return; + } + if (aMaterial.contains(SubTag.NO_RECIPES)) { return; } @@ -1325,6 +1336,10 @@ public enum OrePrefixes { } } + public void onLoadComplete() { + used = null; + } + public Object get(Object aMaterial) { if (aMaterial instanceof Materials) return new ItemData(this, (Materials) aMaterial); return name() + aMaterial; |