diff options
author | Johann Bernhardt <johann.bernhardt@tum.de> | 2021-12-12 19:38:06 +0100 |
---|---|---|
committer | Johann Bernhardt <johann.bernhardt@tum.de> | 2021-12-12 19:38:06 +0100 |
commit | 311ab89f93558233a40079f7cb16605b141b5346 (patch) | |
tree | c5f44ef47f441a57c5f57aa801f639c7879ed760 /src/main/java/gtPlusPlus/preloader/Preloader_GT_OreDict.java | |
parent | 896143b96132f5ac54aa8d8f7386f27487e5e530 (diff) | |
download | GT5-Unofficial-311ab89f93558233a40079f7cb16605b141b5346.tar.gz GT5-Unofficial-311ab89f93558233a40079f7cb16605b141b5346.tar.bz2 GT5-Unofficial-311ab89f93558233a40079f7cb16605b141b5346.zip |
Move sources and resources
Diffstat (limited to 'src/main/java/gtPlusPlus/preloader/Preloader_GT_OreDict.java')
-rw-r--r-- | src/main/java/gtPlusPlus/preloader/Preloader_GT_OreDict.java | 173 |
1 files changed, 173 insertions, 0 deletions
diff --git a/src/main/java/gtPlusPlus/preloader/Preloader_GT_OreDict.java b/src/main/java/gtPlusPlus/preloader/Preloader_GT_OreDict.java new file mode 100644 index 0000000000..8e7001903d --- /dev/null +++ b/src/main/java/gtPlusPlus/preloader/Preloader_GT_OreDict.java @@ -0,0 +1,173 @@ +package gtPlusPlus.preloader; + +import org.apache.logging.log4j.Level; + +import cpw.mods.fml.relauncher.FMLRelaunchLog; + +import net.minecraft.item.ItemStack; + +import gregtech.common.items.GT_MetaGenerated_Item_01; + +import gtPlusPlus.core.lib.CORE; +import gtPlusPlus.core.lib.LoadedMods; +import gtPlusPlus.core.util.minecraft.ItemUtils; +import gtPlusPlus.core.util.reflect.ReflectionUtils; + +public class Preloader_GT_OreDict { + + public static boolean shouldPreventRegistration(final String string, final ItemStack bannedItem) { + + if (bannedItem == null) { + return false; + } + else if (!CORE_Preloader.enableOldGTcircuits && !LoadedMods.Mekanism){ + return false; + } + + try { + if (CORE_Preloader.enableOldGTcircuits){ + if ((bannedItem != null) && ItemUtils.getModId(bannedItem).toLowerCase().equals("gregtech")){ + final int damageValue = bannedItem.getItemDamage() - 32000; + if (bannedItem.getItem() instanceof GT_MetaGenerated_Item_01) { // 700-720 + if ((damageValue >= 700) && (damageValue <= 720)) { + return true; + } + } + else { + if (ReflectionUtils.doesClassExist("gregtech.common.items.GT_MetaGenerated_Item_03")) { // 6/11/12/14/16/20/30-57/69-73/79-96 + final Class<?> MetaItem03 = ReflectionUtils.getClass("gregtech.common.items.GT_MetaGenerated_Item_03"); + if (isInstanceOf(MetaItem03, bannedItem.getItem())) { + if ((damageValue == 6) || (damageValue == 7) || (damageValue == 11) || (damageValue == 12) || (damageValue == 14) + || (damageValue == 16) || (damageValue == 20) || (damageValue == 21) || (damageValue == 22)) { + return true; + } + else if ((damageValue >= 30) && (damageValue <= 57)) { + return true; + } + else if ((damageValue >= 69) && (damageValue <= 73)) { + return true; + } + else if ((damageValue >= 78) && (damageValue <= 96)) { + return true; + } + } + } + } + } + } + + //Mekanism Support - Let's not make Mek Osmium useful in GT anymore. + if ((((bannedItem != null) && !LoadedMods.RedTech && (ItemUtils.getModId(bannedItem).toLowerCase().equals("mekanism"))) || (LoadedMods.Mekanism)) && !LoadedMods.RedTech){ + //Circuits + if (ReflectionUtils.doesClassExist("mekanism.common.item.ItemControlCircuit")) { + final Class<?> MekCircuit = ReflectionUtils.getClass("mekanism.common.item.ItemControlCircuit"); + if (isInstanceOf(MekCircuit, bannedItem.getItem())) { + for (int r=0;r<4;r++){ + if (bannedItem.getItemDamage() == r){ + FMLRelaunchLog.log("[GT++ ASM] OreDictTransformer", Level.INFO, "Removing %s from the OreDictionary to balance Mekanism.", bannedItem.getDisplayName()); + return true; + } + } + } + } + //Ingots + if (ReflectionUtils.doesClassExist("mekanism.common.item.ItemIngot")) { + final Class<?> MekIngot = ReflectionUtils.getClass("mekanism.common.item.ItemIngot"); + if (isInstanceOf(MekIngot, bannedItem.getItem())) { + if (bannedItem.getItemDamage() == 1){ + FMLRelaunchLog.log("[GT++ ASM] OreDictTransformer", Level.INFO, "Removing %s from the OreDictionary to balance Mekanism.", bannedItem.getDisplayName()); + return true; + } + } + } + //Dirty Dust + if (ReflectionUtils.doesClassExist("mekanism.common.item.ItemDirtyDust")) { + final Class<?> MekIngot = ReflectionUtils.getClass("mekanism.common.item.ItemDirtyDust"); + if (isInstanceOf(MekIngot, bannedItem.getItem())) { + if (bannedItem.getItemDamage() == 2){ + FMLRelaunchLog.log("[GT++ ASM] OreDictTransformer", Level.INFO, "Removing %s from the OreDictionary to balance Mekanism.", bannedItem.getDisplayName()); + return true; + } + } + } + //Dust + if (ReflectionUtils.doesClassExist("mekanism.common.item.ItemDust")) { + final Class<?> MekIngot = ReflectionUtils.getClass("mekanism.common.item.ItemDust"); + if (isInstanceOf(MekIngot, bannedItem.getItem())) { + if (bannedItem.getItemDamage() == 2){ + FMLRelaunchLog.log("[GT++ ASM] OreDictTransformer", Level.INFO, "Removing %s from the OreDictionary to balance Mekanism.", bannedItem.getDisplayName()); + return true; + } + } + } + //Crystal + if (ReflectionUtils.doesClassExist("mekanism.common.item.ItemCrystal")) { + final Class<?> MekIngot = ReflectionUtils.getClass("mekanism.common.item.ItemCrystal"); + if (isInstanceOf(MekIngot, bannedItem.getItem())) { + if (bannedItem.getItemDamage() == 2){ + FMLRelaunchLog.log("[GT++ ASM] OreDictTransformer", Level.INFO, "Removing %s from the OreDictionary to balance Mekanism.", bannedItem.getDisplayName()); + return true; + } + } + } + //Shard + if (ReflectionUtils.doesClassExist("mekanism.common.item.ItemShard")) { + final Class<?> MekIngot = ReflectionUtils.getClass("mekanism.common.item.ItemShard"); + if (isInstanceOf(MekIngot, bannedItem.getItem())) { + if (bannedItem.getItemDamage() == 2){ + FMLRelaunchLog.log("[GT++ ASM] OreDictTransformer", Level.INFO, "Removing %s from the OreDictionary to balance Mekanism.", bannedItem.getDisplayName()); + return true; + } + } + } + //Clump + if (ReflectionUtils.doesClassExist("mekanism.common.item.ItemClump")) { + final Class<?> MekIngot = ReflectionUtils.getClass("mekanism.common.item.ItemClump"); + if (isInstanceOf(MekIngot, bannedItem.getItem())) { + if (bannedItem.getItemDamage() == 2){ + FMLRelaunchLog.log("[GT++ ASM] OreDictTransformer", Level.INFO, "Removing %s from the OreDictionary to balance Mekanism.", bannedItem.getDisplayName()); + return true; + } + } + } + //Ores + if (ReflectionUtils.doesClassExist("mekanism.common.item.ItemBlockOre")) { + final Class<?> MekOre = ReflectionUtils.getClass("mekanism.common.item.ItemBlockOre"); + if (isInstanceOf(MekOre, bannedItem.getItem()) || (bannedItem == ItemUtils.simpleMetaStack("Mekanism:OreBlock", 0, 1))) { + if (bannedItem.getItemDamage() == 0){ + FMLRelaunchLog.log("[GT++ ASM] OreDictTransformer", Level.INFO, "Removing %s from the OreDictionary to balance Mekanism.", bannedItem.getDisplayName()); + return true; + } + } + } + } + + } catch (final Throwable e) { + if (CORE.ConfigSwitches.showHiddenNEIItems) { + FMLRelaunchLog.log("[GT++ ASM] OreDictTransformer", Level.INFO, "A mod tried to register an invalid item with the OreDictionary."); + if (bannedItem != null){ + FMLRelaunchLog.log("[GT++ ASM] OreDictTransformer", Level.INFO, "Please report this issue to the authors of %s", ItemUtils.getModId(bannedItem)); + try { + if (bannedItem.getItemDamage() <= Short.MAX_VALUE-1) { + FMLRelaunchLog.log("[GT++ ASM] OreDictTransformer", Level.INFO, "Item was not null, but still invalidly registering: %s", bannedItem.getDisplayName() != null ? bannedItem.getDisplayName() : "INVALID ITEM FOUND"); + } + else { + FMLRelaunchLog.log("[GT++ ASM] OreDictTransformer", Level.INFO, "Item was not null, but still invalidly registering: %s", "Found Wildcard item that is being registered too early."); + } + } + catch (Exception h) { + h.printStackTrace(); + } + } + } + //FMLRelaunchLog.log("[GT++ ASM] OreDictTransformer", Level.INFO, "%s", e.getMessage()); + } + return false; + } + + // Simplification of Life. + private static boolean isInstanceOf(final Class<?> clazz, final Object obj) { + return clazz.isInstance(obj); + } + +} |