From f39e8134fcef5da8bd04503c5233b2b6de249b3a Mon Sep 17 00:00:00 2001 From: Alkalus Date: Sat, 28 Mar 2020 02:09:24 +0000 Subject: + Added more 'Special Behaviour' items for my multiblocks as Examples. + Added '/gtpp hand' command. + Added TungstenSteel & Neutronium tool variants to NEI while in dev. + Added Large Semifluid Generator and a crafting recipe for it. + Added Placeholder for Adv. Assembly Line. + Added Distillus Upgrade Chip and a crafting recipe for it. % Updated build.gradle. % Reworked a few recipes. $ Fixed ULV Overflow Covers using 0L Water in assembler. (https://github.com/GTNewHorizons/NewHorizons/issues/5700) $ Fixed Integral Encasement I using 0L Steel in assembler. (https://github.com/GTNewHorizons/NewHorizons/issues/5617) $ Fixed Thaumcraft based FakePlayer's triggering Fluorite drops. (https://github.com/GTNewHorizons/NewHorizons/issues/5744) $ Fixed bad handling of hatch textures on a few multiblocks. $ Semi-Fixed Distillus. $ Fixed Semifluid Generator recipes. $ Fixed Semifluid Generators crashing the game when mined. $ Fixed bad handling of calls to ItemList.java. $ Began work fixing all ASM to be more compatible with ProGuard. $ Fixed compiler complaining about varargs. ^ Bumped version to 1.7.05.x. --- src/Java/gtPlusPlus/preloader/CORE_Preloader.java | 24 +- src/Java/gtPlusPlus/preloader/DevHelper.java | 181 +++++++---- .../gtPlusPlus/preloader/Preloader_Logger.java | 60 ++++ src/Java/gtPlusPlus/preloader/asm/AsmConfig.java | 29 +- .../preloader/asm/ClassesToTransform.java | 74 +++++ .../preloader/asm/Preloader_DummyContainer.java | 43 ++- .../preloader/asm/Preloader_FMLLoadingPlugin.java | 35 +- .../preloader/asm/Preloader_SetupClass.java | 23 ++ .../preloader/asm/helpers/MethodHelper_GT.java | 25 ++ ...ransformer_GT_BlockMachines_MetaPipeEntity.java | 3 +- .../transformers/ClassTransformer_GT_BusPatch.java | 105 +++--- .../transformers/ClassTransformer_GT_Client.java | 13 +- .../ClassTransformer_GT_MetaGenerated_Tool.java | 116 +++++++ .../transformers/ClassTransformer_GT_Utility.java | 6 +- .../transformers/Preloader_ClassTransformer2.java | 352 --------------------- .../Preloader_Transformer_Handler.java | 213 ++++++------- 16 files changed, 702 insertions(+), 600 deletions(-) create mode 100644 src/Java/gtPlusPlus/preloader/Preloader_Logger.java create mode 100644 src/Java/gtPlusPlus/preloader/asm/ClassesToTransform.java create mode 100644 src/Java/gtPlusPlus/preloader/asm/Preloader_SetupClass.java create mode 100644 src/Java/gtPlusPlus/preloader/asm/helpers/MethodHelper_GT.java create mode 100644 src/Java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_GT_MetaGenerated_Tool.java (limited to 'src/Java/gtPlusPlus/preloader') diff --git a/src/Java/gtPlusPlus/preloader/CORE_Preloader.java b/src/Java/gtPlusPlus/preloader/CORE_Preloader.java index b8ebdaf49c..e7101bc025 100644 --- a/src/Java/gtPlusPlus/preloader/CORE_Preloader.java +++ b/src/Java/gtPlusPlus/preloader/CORE_Preloader.java @@ -1,14 +1,32 @@ package gtPlusPlus.preloader; +import java.io.File; import java.util.ArrayList; -import java.util.Arrays; +import java.util.Collections; import java.util.List; +import cpw.mods.fml.common.versioning.ArtifactVersion; + public class CORE_Preloader { + public static final String NAME = "GT++ Preloader"; public static final String MODID = "GT++_Preloader"; - public static final String VERSION = "0.4-Beta"; + public static final String VERSION = "0.5-Beta"; + public static final List DEPENDENCIES; + public static final String JAVA_VERSION = System.getProperty("java.version"); + + public static File MC_DIR; + public static boolean DEV_ENVIRONMENT = false; public static boolean enableOldGTcircuits = false; public static int enableWatchdogBGM = 0; - public static List DEPENDENCIES = new ArrayList<>(Arrays.asList(new String[] {"required-before:gregtech;"})); + + public static void setMinecraftDirectory(File aDir) { + MC_DIR = aDir; + } + + static { + ArrayList deps = new ArrayList(); + //deps.add("required-before:gregtech;"); + DEPENDENCIES = Collections.unmodifiableList(deps); + } } diff --git a/src/Java/gtPlusPlus/preloader/DevHelper.java b/src/Java/gtPlusPlus/preloader/DevHelper.java index 81d36d591b..70a3c53073 100644 --- a/src/Java/gtPlusPlus/preloader/DevHelper.java +++ b/src/Java/gtPlusPlus/preloader/DevHelper.java @@ -5,7 +5,6 @@ import java.lang.reflect.Method; import java.util.HashMap; import java.util.Map; -import gtPlusPlus.api.objects.Logger; import gtPlusPlus.api.objects.data.Pair; import gtPlusPlus.api.objects.data.weakref.WeakAutoMap; import gtPlusPlus.core.util.reflect.ReflectionUtils; @@ -118,7 +117,7 @@ public class DevHelper { String aForgeName = DevHelperInternals.srgToForge.get(mSrgName); return aForgeName != null ? aForgeName : "BAD_FORGE_NAME"; } - + public static String getMinecraftClassName(String adeObName, boolean obfuscated) { if (obfuscated) { return getObfuscated(adeObName); @@ -130,7 +129,7 @@ public class DevHelper { String obfuscatedClassname = DevHelperInternals.deObToOb.get(mDeob); obfuscatedClassname = obfuscatedClassname != null ? obfuscatedClassname : "BAD_OBFUSCATED_CLASS_NAME"; if (obfuscatedClassname.equals("BAD_OBFUSCATED_CLASS_NAME")) { - Logger.INFO("[Fix] Failed to Get Deobfuscated name for "+mDeob); + Preloader_Logger.INFO("[Fix] Failed to Get Deobfuscated name for "+mDeob); } return obfuscatedClassname; } @@ -139,15 +138,15 @@ public class DevHelper { String deobfuscatedClassname = DevHelperInternals.obToDeOb.get(mOb); return deobfuscatedClassname != null ? deobfuscatedClassname : "BAD_DEOBFUSCATED_CLASS_NAME"; } - + public static class DevHelperInternals { - public static Map srgToForge = new HashMap(); - public static Map forgeToSrg = new HashMap(); + public static final Map srgToForge = new HashMap(); + public static final Map forgeToSrg = new HashMap(); private static WeakAutoMap> mInitMap = new WeakAutoMap>(); //Obfuscation - public static Map obToDeOb = new HashMap(); - public static Map deObToOb = new HashMap(); + public static final Map obToDeOb = new HashMap(); + public static final Map deObToOb = new HashMap(); private static WeakAutoMap> mObInitMap = new WeakAutoMap>(); private static boolean init() { @@ -176,14 +175,90 @@ public class DevHelper { } } } - Logger.INFO("[DevHelper] mInitMap size: "+mInitMap.size()); - Logger.INFO("[DevHelper] mObInitMap size: "+mObInitMap.size()); + Preloader_Logger.INFO("[DevHelper] mInitMap size: "+mInitMap.size()); + Preloader_Logger.INFO("[DevHelper] mObInitMap size: "+mObInitMap.size()); + + Preloader_Logger.INFO("[DevHelper] srgToForge size: "+srgToForge.size()); + Preloader_Logger.INFO("[DevHelper] forgeToSrg size: "+forgeToSrg.size()); + Preloader_Logger.INFO("[DevHelper] obToDeOb size: "+obToDeOb.size()); + Preloader_Logger.INFO("[DevHelper] deObToOb size: "+deObToOb.size()); + + if (srgToForge.size() > 0 && forgeToSrg.size() > 0 && obToDeOb.size() > 0 && deObToOb.size() > 0) { + if (srgToForge.size() == forgeToSrg.size() && obToDeOb.size() == deObToOb.size()) { + return true; + } + else { + if (srgToForge.size() != forgeToSrg.size()) { + int aKey1 = 0; + int aKey2 = 0; + HashMap aMissingForgeNames = new HashMap(); + HashMap aMissingSrgNames = new HashMap(); + Preloader_Logger.INFO("Mismatch between mapped Forge and Srg names, finding missing values."); + if (srgToForge.size() > forgeToSrg.size()) { + Preloader_Logger.INFO("More SRG Keys detected."); + for (String aKey : srgToForge.keySet()) { + if (!forgeToSrg.containsValue(aKey)) { + aMissingSrgNames.put(aKey1++, aKey); + } + } + } + else if (srgToForge.size() < forgeToSrg.size()) { + Preloader_Logger.INFO("More Forge Keys detected."); + for (String aKey : forgeToSrg.keySet()) { + if (!srgToForge.containsValue(aKey)) { + aMissingForgeNames.put(aKey2++, aKey); + } + } + } + if (!aMissingForgeNames.isEmpty()) { + for (String missingVal : aMissingForgeNames.values()) { + //Preloader_Logger.WARNING("Missing Forge value: "+missingVal); + } + } + if (!aMissingSrgNames.isEmpty()) { + for (String missingVal : aMissingSrgNames.values()) { + //Preloader_Logger.WARNING("Missing SRG value: "+missingVal); + } + } + } + if (obToDeOb.size() != deObToOb.size()) { + int aKey1 = 0; + int aKey2 = 0; + HashMap aMissingObfNames = new HashMap(); + HashMap aMissingDeObfNames = new HashMap(); + Preloader_Logger.INFO("Mismatch between mapped Obfuscated and Deobfuscated names, finding missing values."); + if (obToDeOb.size() > deObToOb.size()) { + Preloader_Logger.INFO("More Obfuscated Keys detected."); + for (String aKey : obToDeOb.keySet()) { + if (!deObToOb.containsValue(aKey)) { + aMissingObfNames.put(aKey1++, aKey); + } + } + } + else if (obToDeOb.size() < deObToOb.size()) { + Preloader_Logger.INFO("More Deobfuscated Keys detected."); + for (String aKey : deObToOb.keySet()) { + if (!obToDeOb.containsValue(aKey)) { + aMissingDeObfNames.put(aKey2++, aKey); + } + } + } + if (!aMissingObfNames.isEmpty()) { + for (String missingVal : aMissingObfNames.values()) { + Preloader_Logger.WARNING("Missing Obfuscated value: "+missingVal); + } + } + if (!aMissingDeObfNames.isEmpty()) { + for (String missingVal : aMissingDeObfNames.values()) { + Preloader_Logger.WARNING("Missing Deobfuscated value: "+missingVal); + } + } + } + } + } - Logger.INFO("[DevHelper] srgToForge size: "+srgToForge.size()); - Logger.INFO("[DevHelper] forgeToSrg size: "+forgeToSrg.size()); - Logger.INFO("[DevHelper] obToDeOb size: "+obToDeOb.size()); - Logger.INFO("[DevHelper] deObToOb size: "+deObToOb.size()); - return srgToForge.size() > 0 && forgeToSrg.size() > 0 && obToDeOb.size() > 0 && deObToOb.size() > 0; + // return true anyway as some keys will mismatch. + return true; } private static void init1() { @@ -5029,7 +5104,7 @@ public class DevHelper { mObInitMap.put(new Pair("bmg", "net/minecraft/client/shader/Framebuffer")); mObInitMap.put(new Pair("na", "net/minecraft/client/network/NetHandlerHandshakeMemory")); mObInitMap - .put(new Pair("jb", "net/minecraft/network/play/client/C02PacketUseEntity$Action")); + .put(new Pair("jb", "net/minecraft/network/play/client/C02PacketUseEntity$Action")); mObInitMap.put(new Pair("fc", "net/minecraft/util/MessageDeserializer2")); mObInitMap.put(new Pair("bd", "net/minecraft/command/server/CommandPardonIp")); mObInitMap.put(new Pair("amw", "net/minecraft/block/BlockPumpkin")); @@ -5104,7 +5179,7 @@ public class DevHelper { mObInitMap.put(new Pair("tl", "net/minecraft/entity/ai/attributes/BaseAttributeMap")); mObInitMap.put(new Pair("pm", "net/minecraft/stats/IStatType")); mObInitMap - .put(new Pair("atc", "net/minecraft/world/gen/structure/StructureMineshaftStart")); + .put(new Pair("atc", "net/minecraft/world/gen/structure/StructureMineshaftStart")); mObInitMap.put(new Pair("apd", "net/minecraft/tileentity/TileEntityEnchantmentTable")); mObInitMap.put(new Pair("ale", "net/minecraft/block/BlockFurnace")); mObInitMap.put(new Pair("adg", "net/minecraft/item/ItemLeaves")); @@ -5112,7 +5187,7 @@ public class DevHelper { mObInitMap.put(new Pair("axb", "net/minecraft/world/gen/layer/GenLayerAddIsland")); mObInitMap.put(new Pair("bpg", "net/minecraft/client/util/JsonBlendingMode")); mObInitMap - .put(new Pair("net/minecraft/realms/RealmsMth", "net/minecraft/realms/RealmsMth")); + .put(new Pair("net/minecraft/realms/RealmsMth", "net/minecraft/realms/RealmsMth")); mObInitMap.put(new Pair("qa", "net/minecraft/util/IntHashMap$Entry")); mObInitMap.put(new Pair("mb", "net/minecraft/server/gui/MinecraftServerGui$3")); mObInitMap.put( @@ -5262,13 +5337,13 @@ public class DevHelper { mObInitMap.put(new Pair("aaw", "net/minecraft/inventory/InventoryCraftResult")); mObInitMap.put(new Pair("w", "net/minecraft/client/audio/SoundCategory")); mObInitMap - .put(new Pair("bqv", "net/minecraft/client/resources/IReloadableResourceManager")); + .put(new Pair("bqv", "net/minecraft/client/resources/IReloadableResourceManager")); mObInitMap.put(new Pair("baz", "net/minecraft/client/Minecraft$3")); mObInitMap.put(new Pair("bey", "net/minecraft/client/gui/GuiRepair")); mObInitMap.put(new Pair("bix", "net/minecraft/client/model/ModelRenderer")); mObInitMap.put(new Pair("bmw", "net/minecraft/client/renderer/culling/ClippingHelperImpl")); mObInitMap - .put(new Pair("fs", "net/minecraft/util/ChatComponentTranslationFormatException")); + .put(new Pair("fs", "net/minecraft/util/ChatComponentTranslationFormatException")); mObInitMap.put(new Pair("bt", "net/minecraft/command/server/CommandStop")); mObInitMap.put(new Pair("yy", "net/minecraft/entity/player/InventoryPlayer$1")); mObInitMap.put(new Pair("uz", "net/minecraft/entity/ai/EntityAIPanic")); @@ -5290,7 +5365,7 @@ public class DevHelper { mObInitMap.put( new Pair("np", "net/minecraft/server/network/NetHandlerLoginServer$LoginState")); mObInitMap - .put(new Pair("jq", "net/minecraft/network/handshake/INetHandlerHandshakeServer")); + .put(new Pair("jq", "net/minecraft/network/handshake/INetHandlerHandshakeServer")); mObInitMap.put(new Pair("fr", "net/minecraft/util/ChatComponentTranslation")); mObInitMap.put(new Pair("arf", "net/minecraft/world/gen/feature/WorldGenBlockBlob")); mObInitMap.put(new Pair("ang", "net/minecraft/block/BlockRotatedPillar")); @@ -5300,7 +5375,7 @@ public class DevHelper { mObInitMap.put(new Pair("ave", "net/minecraft/world/gen/structure/MapGenStructure")); mObInitMap.put(new Pair("azd", "net/minecraft/client/AnvilConverterException")); mObInitMap - .put(new Pair("net/minecraft/client/main/Main", "net/minecraft/client/main/Main")); + .put(new Pair("net/minecraft/client/main/Main", "net/minecraft/client/main/Main")); mObInitMap.put(new Pair("bri", "net/minecraft/client/resources/SimpleResource")); mObInitMap.put(new Pair("bfl", "net/minecraft/client/gui/inventory/GuiContainerCreative")); mObInitMap.put(new Pair("bjk", "net/minecraft/client/entity/EntityClientPlayerMP")); @@ -5310,7 +5385,7 @@ public class DevHelper { mObInitMap.put(new Pair("od", "net/minecraft/server/management/PreYggdrasilConverter$4")); mObInitMap.put(new Pair("ke", "net/minecraft/network/ServerStatusResponse$Serializer")); mObInitMap - .put(new Pair("gf", "net/minecraft/network/play/server/S35PacketUpdateTileEntity")); + .put(new Pair("gf", "net/minecraft/network/play/server/S35PacketUpdateTileEntity")); mObInitMap.put(new Pair("cg", "net/minecraft/command/PlayerNotFoundException")); mObInitMap.put(new Pair("ary", "net/minecraft/world/gen/feature/WorldGenGlowStone1")); mObInitMap.put(new Pair("anz", "net/minecraft/block/BlockTallGrass")); @@ -5353,7 +5428,7 @@ public class DevHelper { mObInitMap.put(new Pair("btc", "net/minecraft/client/network/LanServerDetector$ThreadLanServerFind")); mObInitMap - .put(new Pair("bpd", "net/minecraft/client/renderer/tileentity/RenderWitherSkull")); + .put(new Pair("bpd", "net/minecraft/client/renderer/tileentity/RenderWitherSkull")); mObInitMap.put(new Pair("bhf", "net/minecraft/client/model/ModelBook")); mObInitMap.put(new Pair("ble", "net/minecraft/client/particle/EntityFishWakeFX")); mObInitMap.put(new Pair("ea", "net/minecraft/nbt/NBTException")); @@ -5397,11 +5472,11 @@ public class DevHelper { mObInitMap.put(new Pair("aye", "net/minecraft/pathfinding/PathPoint")); mObInitMap.put(new Pair("bbc", "net/minecraft/client/Minecraft$6")); mObInitMap - .put(new Pair("bfb", "net/minecraft/client/gui/inventory/GuiBeacon$ConfirmButton")); + .put(new Pair("bfb", "net/minecraft/client/gui/inventory/GuiBeacon$ConfirmButton")); mObInitMap.put(new Pair("bui", "net/minecraft/client/stream/IngestServerTester")); mObInitMap.put(new Pair("bqj", "net/minecraft/client/renderer/texture/ITickable")); mObInitMap - .put(new Pair("zb", "net/minecraft/entity/player/EntityPlayer$EnumChatVisibility")); + .put(new Pair("zb", "net/minecraft/entity/player/EntityPlayer$EnumChatVisibility")); mObInitMap.put(new Pair("vc", "net/minecraft/entity/ai/EntityAIWander")); mObInitMap.put(new Pair("rd", "net/minecraft/world/EnumDifficulty")); mObInitMap.put(new Pair("ne", "net/minecraft/network/NetworkSystem$2")); @@ -5428,7 +5503,7 @@ public class DevHelper { mObInitMap.put(new Pair("brq", "net/minecraft/client/resources/Language")); mObInitMap.put(new Pair("bbu", "net/minecraft/client/gui/FontRenderer")); mObInitMap - .put(new Pair("bft", "net/minecraft/client/gui/inventory/GuiScreenHorseInventory")); + .put(new Pair("bft", "net/minecraft/client/gui/inventory/GuiScreenHorseInventory")); mObInitMap.put(new Pair("bjs", "net/minecraft/client/network/OldServerPinger$2")); mObInitMap.put(new Pair("bnr", "net/minecraft/client/renderer/entity/RenderFireball")); mObInitMap.put(new Pair("sk", "net/minecraft/command/IEntitySelector$1")); @@ -5554,14 +5629,14 @@ public class DevHelper { "net/minecraft/world/gen/structure/StructureStrongholdPieces$Straight")); mObInitMap.put(new Pair("bnz", "net/minecraft/client/renderer/entity/RenderItem$1")); mObInitMap - .put(new Pair("gv", "net/minecraft/network/play/server/S2BPacketChangeGameState")); + .put(new Pair("gv", "net/minecraft/network/play/server/S2BPacketChangeGameState")); mObInitMap.put(new Pair("cw", "net/minecraft/util/RegistryNamespaced")); mObInitMap.put(new Pair("net/minecraft/realms/RealmsScrolledSelectionList", "net/minecraft/realms/RealmsScrolledSelectionList")); mObInitMap.put(new Pair("aru", "net/minecraft/world/gen/feature/WorldGenBigMushroom")); mObInitMap.put(new Pair("anv", "net/minecraft/block/BlockStone")); mObInitMap - .put(new Pair("afx", "net/minecraft/enchantment/EnchantmentHelper$DamageIterator")); + .put(new Pair("afx", "net/minecraft/enchantment/EnchantmentHelper$DamageIterator")); mObInitMap.put(new Pair("ajw", "net/minecraft/block/BlockCauldron")); mObInitMap.put( new Pair("avt", "net/minecraft/world/gen/structure/StructureVillagePieces$Torch")); @@ -5569,7 +5644,7 @@ public class DevHelper { mObInitMap.put(new Pair("bcq", "net/minecraft/client/gui/GuiScreenRealmsProxy")); mObInitMap.put(new Pair("bgp", "net/minecraft/client/gui/stream/GuiStreamUnavailable")); mObInitMap - .put(new Pair("brx", "net/minecraft/client/resources/data/IMetadataSerializer$1")); + .put(new Pair("brx", "net/minecraft/client/resources/data/IMetadataSerializer$1")); mObInitMap.put(new Pair("wq", "net/minecraft/entity/passive/EntitySheep$1")); mObInitMap.put(new Pair("sr", "net/minecraft/entity/EntityFlying")); mObInitMap.put(new Pair("os", "net/minecraft/server/management/UserListWhitelistEntry")); @@ -5635,7 +5710,7 @@ public class DevHelper { "net/minecraft/world/gen/structure/ComponentScatteredFeaturePieces$JunglePyramid")); mObInitMap.put(new Pair("ayb", "net/minecraft/world/gen/layer/GenLayerVoronoiZoom")); mObInitMap - .put(new Pair("buf", "net/minecraft/client/stream/ChatController$SwitchChatState")); + .put(new Pair("buf", "net/minecraft/client/stream/ChatController$SwitchChatState")); mObInitMap.put(new Pair("bqg", "net/minecraft/client/renderer/texture/TextureManager$1")); mObInitMap.put(new Pair("bii", "net/minecraft/client/model/PositionTextureVertex")); mObInitMap.put(new Pair("bmh", "net/minecraft/client/renderer/Tessellator")); @@ -5670,7 +5745,7 @@ public class DevHelper { mObInitMap.put(new Pair("net/minecraft/realms/RealmsLevelSummary", "net/minecraft/realms/RealmsLevelSummary")); mObInitMap - .put(new Pair("gk", "net/minecraft/network/play/server/S22PacketMultiBlockChange")); + .put(new Pair("gk", "net/minecraft/network/play/server/S22PacketMultiBlockChange")); mObInitMap.put(new Pair("cl", "net/minecraft/block/BlockSourceImpl")); mObInitMap.put(new Pair("vr", "net/minecraft/entity/ai/EntityAITargetNonTamed")); mObInitMap.put(new Pair("rs", "net/minecraft/potion/PotionAttackDamage")); @@ -5688,7 +5763,7 @@ public class DevHelper { mObInitMap.put(new Pair("gj", "net/minecraft/network/play/server/S02PacketChat")); mObInitMap.put(new Pair("acb", "net/minecraft/creativetab/CreativeTabs$5")); mObInitMap - .put(new Pair("aga", "net/minecraft/enchantment/EnchantmentHelper$ModifierLiving")); + .put(new Pair("aga", "net/minecraft/enchantment/EnchantmentHelper$ModifierLiving")); mObInitMap.put( new Pair("bsa", "net/minecraft/client/resources/data/AnimationMetadataSection")); mObInitMap.put(new Pair("bkc", "net/minecraft/client/particle/EntityFireworkOverlayFX")); @@ -5710,7 +5785,7 @@ public class DevHelper { mObInitMap.put(new Pair("po", "net/minecraft/util/IJsonSerializable")); mObInitMap.put(new Pair("lp", "net/minecraft/scoreboard/ServerScoreboard")); mObInitMap - .put(new Pair("hq", "net/minecraft/network/play/server/S13PacketDestroyEntities")); + .put(new Pair("hq", "net/minecraft/network/play/server/S13PacketDestroyEntities")); mObInitMap.put(new Pair("dr", "net/minecraft/nbt/NBTTagLong")); mObInitMap.put(new Pair("adi", "net/minecraft/item/ItemBucketMilk")); mObInitMap.put(new Pair("ahh", "net/minecraft/world/IWorldAccess")); @@ -5812,7 +5887,7 @@ public class DevHelper { mObInitMap.put(new Pair("acj", "net/minecraft/item/ItemDye")); mObInitMap.put(new Pair("agi", "net/minecraft/enchantment/EnchantmentProtection")); mObInitMap - .put(new Pair("bsi", "net/minecraft/client/resources/data/TextureMetadataSection")); + .put(new Pair("bsi", "net/minecraft/client/resources/data/TextureMetadataSection")); mObInitMap.put(new Pair("bcm", "net/minecraft/client/gui/GuiSlot")); mObInitMap.put(new Pair("bgl", "net/minecraft/client/gui/GuiResourcePackSelected")); mObInitMap.put(new Pair("bkk", "net/minecraft/client/particle/EntityLavaFX")); @@ -5832,7 +5907,7 @@ public class DevHelper { mObInitMap.put(new Pair("xa", "net/minecraft/entity/boss/EntityDragon")); mObInitMap.put(new Pair("tb", "net/minecraft/entity/item/EntityPainting")); mObInitMap - .put(new Pair("asx", "net/minecraft/world/gen/structure/StructureMineshaftPieces")); + .put(new Pair("asx", "net/minecraft/world/gen/structure/StructureMineshaftPieces")); mObInitMap.put(new Pair("aoy", "net/minecraft/tileentity/TileEntityCommandBlock$1")); mObInitMap.put(new Pair("akz", "net/minecraft/block/BlockFence")); mObInitMap.put(new Pair("aww", "net/minecraft/block/material/MaterialPortal")); @@ -5861,7 +5936,7 @@ public class DevHelper { "net/minecraft/realms/RealmsServerStatusPinger")); mObInitMap.put(new Pair("mk", "net/minecraft/world/demo/DemoWorldServer")); mObInitMap - .put(new Pair("il", "net/minecraft/network/play/server/S20PacketEntityProperties")); + .put(new Pair("il", "net/minecraft/network/play/server/S20PacketEntityProperties")); mObInitMap.put(new Pair("em", "net/minecraft/network/NetworkManager$3")); mObInitMap.put(new Pair("an", "net/minecraft/command/server/CommandEmote")); mObInitMap.put(new Pair("aqa", "net/minecraft/world/chunk/storage/NibbleArrayReader")); @@ -5997,12 +6072,12 @@ public class DevHelper { mObInitMap.put(new Pair("axr", "net/minecraft/world/gen/layer/GenLayerHills")); mObInitMap.put(new Pair("bap", "net/minecraft/client/Minecraft$1")); mObInitMap - .put(new Pair("beo", "net/minecraft/client/gui/achievement/GuiStats$StatsItem$1")); + .put(new Pair("beo", "net/minecraft/client/gui/achievement/GuiStats$StatsItem$1")); mObInitMap.put(new Pair("bin", "net/minecraft/client/model/ModelWither")); mObInitMap.put(new Pair("bmm", "net/minecraft/client/renderer/tileentity/TileEntityChestRenderer")); mObInitMap - .put(new Pair("jh", "net/minecraft/network/play/client/C13PacketPlayerAbilities")); + .put(new Pair("jh", "net/minecraft/network/play/client/C13PacketPlayerAbilities")); mObInitMap.put(new Pair("fi", "net/minecraft/event/ClickEvent$Action")); mObInitMap.put(new Pair("bj", "net/minecraft/command/server/CommandSaveOn")); mObInitMap.put(new Pair("yo", "net/minecraft/entity/monster/EntitySpider$GroupData")); @@ -6058,7 +6133,7 @@ public class DevHelper { mObInitMap.put(new Pair("avm", "net/minecraft/world/gen/structure/StructureStart")); mObInitMap.put(new Pair("bcj", "net/minecraft/client/gui/GuiOptionButton")); mObInitMap - .put(new Pair("bgi", "net/minecraft/client/resources/ResourcePackListEntryFound")); + .put(new Pair("bgi", "net/minecraft/client/resources/ResourcePackListEntryFound")); mObInitMap.put(new Pair("bkh", "net/minecraft/client/particle/EntityHeartFX")); mObInitMap.put(new Pair("bog", "net/minecraft/client/renderer/entity/RenderLightningBolt")); mObInitMap.put(new Pair("lb", "net/minecraft/client/util/JsonException")); @@ -6153,7 +6228,7 @@ public class DevHelper { mObInitMap.put(new Pair("sa", "net/minecraft/entity/Entity")); mObInitMap.put(new Pair("ob", "net/minecraft/server/management/PreYggdrasilConverter$2")); mObInitMap - .put(new Pair("kc", "net/minecraft/network/ServerStatusResponse$PlayerCountData")); + .put(new Pair("kc", "net/minecraft/network/ServerStatusResponse$PlayerCountData")); mObInitMap.put(new Pair("gd", "net/minecraft/network/play/server/S37PacketStatistics")); mObInitMap.put(new Pair("ce", "net/minecraft/command/NumberInvalidException")); mObInitMap.put(new Pair("net/minecraft/realms/Realms", "net/minecraft/realms/Realms")); @@ -6223,7 +6298,7 @@ public class DevHelper { mObInitMap.put(new Pair("axo", "net/minecraft/world/gen/layer/GenLayer$1")); mObInitMap.put(new Pair("bam", "net/minecraft/client/renderer/RenderHelper")); mObInitMap - .put(new Pair("bel", "net/minecraft/client/gui/achievement/GuiStats$StatsBlock$1")); + .put(new Pair("bel", "net/minecraft/client/gui/achievement/GuiStats$StatsBlock$1")); mObInitMap.put(new Pair("bik", "net/minecraft/client/model/ModelVillager")); mObInitMap.put(new Pair("bmj", "net/minecraft/client/renderer/tileentity/TileEntityBeaconRenderer")); @@ -6289,12 +6364,12 @@ public class DevHelper { mObInitMap.put(new Pair("wg", "net/minecraft/entity/passive/EntityChicken")); mObInitMap.put(new Pair("sh", "net/minecraft/entity/EntityList$EntityEggInfo")); mObInitMap - .put(new Pair("oi", "net/minecraft/server/management/ServerConfigurationManager")); + .put(new Pair("oi", "net/minecraft/server/management/ServerConfigurationManager")); mObInitMap.put(new Pair("kj", "net/minecraft/network/status/client/C00PacketServerQuery")); mObInitMap.put(new Pair("aka", "net/minecraft/block/BlockColored")); mObInitMap.put(new Pair("acc", "net/minecraft/creativetab/CreativeTabs$6")); mObInitMap - .put(new Pair("agb", "net/minecraft/enchantment/EnchantmentHelper$ModifierDamage")); + .put(new Pair("agb", "net/minecraft/enchantment/EnchantmentHelper$ModifierDamage")); mObInitMap.put(new Pair("bsb", "net/minecraft/client/resources/data/AnimationMetadataSectionSerializer")); mObInitMap.put(new Pair("bkd", "net/minecraft/client/particle/EntityFireworkSparkFX")); @@ -6333,7 +6408,7 @@ public class DevHelper { mObInitMap.put( new Pair("net/minecraft/realms/Tezzelator", "net/minecraft/realms/Tezzelator")); mObInitMap - .put(new Pair("ate", "net/minecraft/world/gen/structure/MapGenNetherBridge$Start")); + .put(new Pair("ate", "net/minecraft/world/gen/structure/MapGenNetherBridge$Start")); mObInitMap.put(new Pair("apf", "net/minecraft/tileentity/TileEntityFlowerPot")); mObInitMap.put(new Pair("alg", "net/minecraft/block/BlockGlowstone")); mObInitMap.put(new Pair("axd", "net/minecraft/world/gen/layer/GenLayerAddSnow")); @@ -6370,7 +6445,7 @@ public class DevHelper { mObInitMap.put(new Pair("vi", "net/minecraft/entity/ai/EntityAICreeperSwell")); mObInitMap.put(new Pair("rj", "net/minecraft/profiler/PlayerUsageSnooper$1")); mObInitMap - .put(new Pair("nk", "net/minecraft/network/NetHandlerPlayServer$SwitchEnumState")); + .put(new Pair("nk", "net/minecraft/network/NetHandlerPlayServer$SwitchEnumState")); mObInitMap.put(new Pair("jl", "net/minecraft/network/play/client/C09PacketHeldItemChange")); mObInitMap.put(new Pair("fm", "net/minecraft/event/HoverEvent$Action")); mObInitMap.put(new Pair("bn", "net/minecraft/command/server/CommandSetDefaultSpawnpoint")); @@ -6438,7 +6513,7 @@ public class DevHelper { mObInitMap.put(new Pair("bdb", "net/minecraft/client/gui/GuiCreateWorld")); mObInitMap.put(new Pair("ly", "net/minecraft/server/gui/MinecraftServerGui")); mObInitMap - .put(new Pair("hz", "net/minecraft/network/play/server/S04PacketEntityEquipment")); + .put(new Pair("hz", "net/minecraft/network/play/server/S04PacketEntityEquipment")); mObInitMap.put(new Pair("asy", "net/minecraft/world/gen/structure/StructureMineshaftPieces$Corridor")); mObInitMap.put(new Pair("aoz", "net/minecraft/tileentity/TileEntityComparator")); @@ -6482,7 +6557,7 @@ public class DevHelper { mObInitMap.put(new Pair("bud", "net/minecraft/client/stream/BroadcastController$BroadcastListener")); mObInitMap - .put(new Pair("bqe", "net/minecraft/client/renderer/texture/TextureAtlasSprite$1")); + .put(new Pair("bqe", "net/minecraft/client/renderer/texture/TextureAtlasSprite$1")); mObInitMap.put(new Pair("beh", "net/minecraft/client/gui/achievement/GuiAchievement")); mObInitMap.put(new Pair("big", "net/minecraft/client/model/ModelSpider")); mObInitMap.put(new Pair("ja", "net/minecraft/network/play/client/C02PacketUseEntity")); @@ -6662,7 +6737,7 @@ public class DevHelper { mObInitMap.put(new Pair("bgj", "net/minecraft/client/gui/GuiResourcePackAvailable")); mObInitMap.put(new Pair("bki", "net/minecraft/client/particle/EntityLargeExplodeFX")); mObInitMap - .put(new Pair("boh", "net/minecraft/client/renderer/entity/RendererLivingEntity")); + .put(new Pair("boh", "net/minecraft/client/renderer/entity/RendererLivingEntity")); mObInitMap.put(new Pair("lc", "net/minecraft/client/util/JsonException$1")); mObInitMap.put(new Pair("hd", "net/minecraft/network/play/server/S01PacketJoinGame")); mObInitMap.put(new Pair("de", "net/minecraft/util/StringTranslate")); @@ -6731,7 +6806,7 @@ public class DevHelper { mObInitMap.put(new Pair("bbm", "net/minecraft/client/settings/GameSettings$Options")); mObInitMap.put(new Pair("bus", "net/minecraft/realms/RealmsConnect$1")); mObInitMap - .put(new Pair("bqt", "net/minecraft/client/resources/FoliageColorReloadListener")); + .put(new Pair("bqt", "net/minecraft/client/resources/FoliageColorReloadListener")); mObInitMap.put(new Pair("zl", "net/minecraft/entity/projectile/EntityEgg")); mObInitMap.put(new Pair("vm", "net/minecraft/entity/ai/EntityAIDefendVillage")); mObInitMap.put(new Pair("rn", "net/minecraft/util/CombatTracker")); @@ -6795,7 +6870,7 @@ public class DevHelper { mObInitMap.put(new Pair("pi", "net/minecraft/stats/StatBase$1")); mObInitMap.put(new Pair("lj", "net/minecraft/server/MinecraftServer$3")); mObInitMap - .put(new Pair("hk", "net/minecraft/network/play/server/S39PacketPlayerAbilities")); + .put(new Pair("hk", "net/minecraft/network/play/server/S39PacketPlayerAbilities")); mObInitMap.put(new Pair("dl", "net/minecraft/nbt/NBTTagEnd")); mObInitMap.put(new Pair("ala", "net/minecraft/block/BlockFenceGate")); mObInitMap.put(new Pair("adc", "net/minecraft/item/Item$ToolMaterial")); @@ -6829,7 +6904,7 @@ public class DevHelper { mObInitMap.put(new Pair("axp", "net/minecraft/world/gen/layer/GenLayer$2")); mObInitMap.put(new Pair("ban", "net/minecraft/client/renderer/GLAllocation")); mObInitMap - .put(new Pair("bem", "net/minecraft/client/gui/achievement/GuiStats$StatsGeneral")); + .put(new Pair("bem", "net/minecraft/client/gui/achievement/GuiStats$StatsGeneral")); mObInitMap.put(new Pair("bil", "net/minecraft/client/model/ModelZombieVillager")); mObInitMap.put(new Pair("bmk", "net/minecraft/client/renderer/tileentity/TileEntityRendererDispatcher")); @@ -6846,7 +6921,7 @@ public class DevHelper { mObInitMap.put(new Pair("ayd", "net/minecraft/pathfinding/Path")); mObInitMap.put(new Pair("bbb", "net/minecraft/client/Minecraft$5")); mObInitMap - .put(new Pair("bfa", "net/minecraft/client/gui/inventory/GuiBeacon$CancelButton")); + .put(new Pair("bfa", "net/minecraft/client/gui/inventory/GuiBeacon$CancelButton")); mObInitMap.put(new Pair("buh", "net/minecraft/client/stream/ChatController$ChatListener")); mObInitMap.put(new Pair("bqi", "net/minecraft/client/renderer/texture/TextureUtil")); mObInitMap.put(new Pair("za", "net/minecraft/entity/player/EntityPlayer$EnumStatus")); diff --git a/src/Java/gtPlusPlus/preloader/Preloader_Logger.java b/src/Java/gtPlusPlus/preloader/Preloader_Logger.java new file mode 100644 index 0000000000..84f0fab012 --- /dev/null +++ b/src/Java/gtPlusPlus/preloader/Preloader_Logger.java @@ -0,0 +1,60 @@ +package gtPlusPlus.preloader; + +import org.apache.logging.log4j.Level; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; + +public class Preloader_Logger { + + private Preloader_Logger() { + + } + + // Logging Functions + public static final Logger MODLOGGER = Preloader_Logger.makeLogger(); + + // Generate GT++ Logger + public static Logger makeLogger() { + final Logger gtPlusPlusLogger = LogManager.getLogger("GT++ ASM"); + return gtPlusPlusLogger; + } + + public static final org.apache.logging.log4j.Logger getLogger(){ + return MODLOGGER; + } + + // Non-Dev Comments + + public static void INFO(final String s, final String s2) { + INFO(s); + INFO(s2); + } + + public static void INFO(final String s) { + MODLOGGER.info(s); + } + + // Developer Comments + public static void WARNING(final String s) { + MODLOGGER.warn(s); + } + + // Errors + public static void ERROR(final String s) { + MODLOGGER.fatal(s); + } + + public static void LOG(String string, Level info, String string2) { + if (info.equals(Level.INFO)) { + INFO("["+string+"] "+string2); + } + if (info.equals(Level.WARN)) { + WARNING("["+string+"] "+string2); + } + if (info.equals(Level.ERROR)) { + ERROR("["+string+"] "+string2); + } + + } + +} diff --git a/src/Java/gtPlusPlus/preloader/asm/AsmConfig.java b/src/Java/gtPlusPlus/preloader/asm/AsmConfig.java index 87ac77d5da..476d07b674 100644 --- a/src/Java/gtPlusPlus/preloader/asm/AsmConfig.java +++ b/src/Java/gtPlusPlus/preloader/asm/AsmConfig.java @@ -1,6 +1,8 @@ package gtPlusPlus.preloader.asm; import cpw.mods.fml.common.FMLLog; +import gtPlusPlus.preloader.Preloader_Logger; + import java.io.File; import java.util.ArrayList; import net.minecraftforge.common.config.Configuration; @@ -11,7 +13,8 @@ public class AsmConfig { public static boolean loaded; public static Configuration config; - + + public static boolean enableOreDictPatch; public static boolean enableTiConFluidLighting; public static boolean enableGtTooltipFix; public static boolean enableGtNbtFix; @@ -80,6 +83,12 @@ public class AsmConfig { enableCofhPatch = prop.getBoolean(false); propOrderDebug.add(prop.getName()); + prop = config.get("debug", "enableOreDictPatch", false); + prop.comment = "Enable/Disable Forge OreDictionary Patch (Useful for Development)"; + prop.setLanguageKey("gtpp.enableOreDictPatch").setRequiresMcRestart(true); + enableOreDictPatch = prop.getBoolean(false); + propOrderDebug.add(prop.getName()); + @@ -168,15 +177,15 @@ public class AsmConfig { config.save(); } - FMLLog.log(Level.INFO, "[GT++ ASM] Chunk Debugging - Enabled: "+enableChunkDebugging, new Object[0]); - FMLLog.log(Level.INFO, "[GT++ ASM] Gt Nbt Fix - Enabled: "+enableGtNbtFix, new Object[0]); - FMLLog.log(Level.INFO, "[GT++ ASM] TiCon Fluid Lighting - Enabled: "+enableTiConFluidLighting, new Object[0]); - FMLLog.log(Level.INFO, "[GT++ ASM] Gt Tooltip Fix - Enabled: "+enableGtTooltipFix, new Object[0]); - FMLLog.log(Level.INFO, "[GT++ ASM] COFH Patch - Enabled: "+enableCofhPatch, new Object[0]); - FMLLog.log(Level.INFO, "[GT++ ASM] Gc Fuel Changes Patch - Enabled: "+enableGcFuelChanges, new Object[0]); - FMLLog.log(Level.INFO, "[GT++ ASM] Railcraft Fluid Flow Patch - Enabled: "+enableRcFlowFix, new Object[0]); - FMLLog.log(Level.INFO, "[GT++ ASM] Thaumcraft Aspect Safety Patch - Enabled: "+enableTcAspectSafety, new Object[0]); - FMLLog.log(Level.INFO, "[GT++ ASM] Fix bad usage of EntityLivingBase.setHealth Patch - Enabled: "+enabledFixEntitySetHealth, new Object[0]); + Preloader_Logger.INFO("Chunk Debugging - Enabled: "+enableChunkDebugging); + Preloader_Logger.INFO("Gt Nbt Fix - Enabled: "+enableGtNbtFix); + Preloader_Logger.INFO("TiCon Fluid Lighting - Enabled: "+enableTiConFluidLighting); + Preloader_Logger.INFO("Gt Tooltip Fix - Enabled: "+enableGtTooltipFix); + Preloader_Logger.INFO("COFH Patch - Enabled: "+enableCofhPatch); + Preloader_Logger.INFO("Gc Fuel Changes Patch - Enabled: "+enableGcFuelChanges); + Preloader_Logger.INFO("Railcraft Fluid Flow Patch - Enabled: "+enableRcFlowFix); + Preloader_Logger.INFO("Thaumcraft Aspect Safety Patch - Enabled: "+enableTcAspectSafety); + Preloader_Logger.INFO("Fix bad usage of EntityLivingBase.setHealth Patch - Enabled: "+enabledFixEntitySetHealth); } catch (Exception var3) { FMLLog.log(Level.ERROR, var3, "GT++ ASM had a problem loading it's config", new Object[0]); diff --git a/src/Java/gtPlusPlus/preloader/asm/ClassesToTransform.java b/src/Java/gtPlusPlus/preloader/asm/ClassesToTransform.java new file mode 100644 index 0000000000..84593f6597 --- /dev/null +++ b/src/Java/gtPlusPlus/preloader/asm/ClassesToTransform.java @@ -0,0 +1,74 @@ +package gtPlusPlus.preloader.asm; + +public class ClassesToTransform { + + + public static final String LWJGL_KEYBOARD = "org.lwjgl.input.Keyboard"; + + + public static final String MINECRAFT_GAMESETTINGS = "net.minecraft.client.settings.GameSettings"; + public static final String MINECRAFT_GAMESETTINGS_OBF = "bbj"; + + + public static final String FORGE_CHUNK_MANAGER = "net.minecraftforge.common.ForgeChunkManager"; + public static final String FORGE_ORE_DICTIONARY = "net.minecraftforge.oredict.OreDictionary"; + + + public static final String COFH_ORE_DICTIONARY_ARBITER = "cofh.core.util.oredict.OreDictionaryArbiter"; + + + public static final String TINKERS_FLUID_BLOCK = "tconstruct.smeltery.blocks.TConstructFluid"; + + + public static final String RAILCRAFT_FLUID_HELPER = "mods.railcraft.common.fluids.FluidHelper"; + public static final String RAILCRAFT_TILE_FLUID_LOADER = "mods.railcraft.common.blocks.machine.gamma.TileFluidLoader"; + public static final String RAILCRAFT_INVENTORY_TOOLS = "mods.railcraft.common.util.inventory.InvTools"; + + + public static final String GALACTICRAFT_FLUID_UTILS = "micdoodle8.mods.galacticraft.core.util.FluidUtil"; + public static final String GALACTICRAFT_TILE_ENTITY_FUEL_LOADER = "micdoodle8.mods.galacticraft.core.tile.TileEntityFuelLoader"; + public static final String GALACTICRAFT_ENTITY_AUTO_ROCKET = "micdoodle8.mods.galacticraft.api.prefab.entity.EntityAutoRocket"; + + + public static final String GT_UTILITY = "gregtech.api.util.GT_Utility"; + public static final String GT_ACHIEVEMENTS = "gregtech.loaders.misc.GT_Achievements"; + public static final String GT_CLIENT_PROXY = "gregtech.common.GT_Client"; + public static final String GT_PACKET_TILE_ENTITY = "gregtech.api.net.GT_Packet_TileEntity"; + public static final String GT_BASE_META_TILE_ENTITY = "gregtech.api.metatileentity.BaseMetaTileEntity"; + public static final String GT_MTE_CHARCOAL_PIT = "gregtech.common.tileentities.machines.multi.GT_MetaTileEntity_Charcoal_Pit"; + public static final String GT_ITEM_MACHINES = "gregtech.common.blocks.GT_Item_Machines"; + public static final String GT_METAGENERATED_TOOL = "gregtech.api.items.GT_MetaGenerated_Tool"; + public static final String GT_BLOCK_MACHINES = "gregtech.common.blocks.GT_Block_Machines"; + public static final String GT_MTE_HATCH_INPUTBUS = "gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_InputBus"; + public static final String GT_MTE_HATCH_OUTPUTBUS = "gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_OutputBus"; + public static final String GT_METAPIPE_ITEM = "gregtech.api.metatileentity.implementations.GT_MetaPipeEntity_Item"; + public static final String GT_METAPIPE_FLUID = "gregtech.api.metatileentity.implementations.GT_MetaPipeEntity_Fluid"; + public static final String GT_METAPIPE_FRAME = "gregtech.api.metatileentity.implementations.GT_MetaPipeEntity_Frame"; + + + public static final String GTPP_MTE_HATCH_SUPER_INPUT_BUS = "gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.GT_MetaTileEntity_SuperBus_Input"; + public static final String GTPP_MTE_HATCH_SUPER_OUTPUT_BUS = "gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.GT_MetaTileEntity_SuperBus_Output"; + public static final String NAME = ""; + + + public static final String THAUMCRAFT_ITEM_WISP_ESSENCE = "thaumcraft.common.items.ItemWispEssence"; + + public static final String IC2_ITEM_ARMOUR_HAZMAT = "ic2.core.item.armor.ItemArmorHazmat"; + public static final String IC2_BLOCK_BASE_TILE_ENTITY = "ic2.core.block.BlockTileEntity"; + public static final String IC2_BLOCK_MACHINE1 = "ic2.core.block.machine.BlockMachine"; + public static final String IC2_BLOCK_MACHINE2 = "ic2.core.block.machine.BlockMachine2"; + public static final String IC2_BLOCK_MACHINE3 = "ic2.core.block.machine.BlockMachine3"; + public static final String IC2_BLOCK_KINETIC_GENERATOR = "ic2.core.block.kineticgenerator.block.BlockKineticGenerator"; + public static final String IC2_BLOCK_HEAT_GENERATOR = "ic2.core.block.heatgenerator.block.BlockHeatGenerator"; + public static final String IC2_BLOCK_GENERATOR = "ic2.core.block.generator.block.BlockGenerator"; + public static final String IC2_BLOCK_REACTOR_ACCESS_HATCH = "ic2.core.block.reactor.block.BlockReactorAccessHatch"; + public static final String IC2_BLOCK_REACTOR_CHAMBER = "ic2.core.block.reactor.block.BlockReactorChamber"; + public static final String IC2_BLOCK_REACTOR_FLUID_PORT = "ic2.core.block.reactor.block.BlockReactorFluidPort"; + public static final String IC2_BLOCK_REACTOR_REDSTONE_PORT = "ic2.core.block.reactor.block.BlockReactorRedstonePort"; + public static final String IC2_BLOCK_REACTOR_VESSEL = "ic2.core.block.reactor.block.BlockReactorVessel"; + public static final String IC2_BLOCK_PERSONAL = "ic2.core.block.personal.BlockPersonal.class"; + public static final String IC2_BLOCK_CHARGEPAD = "ic2.core.block.wiring.BlockChargepad.class"; + public static final String IC2_BLOCK_ELECTRIC = "ic2.core.block.wiring.BlockElectric.class"; + public static final String IC2_BLOCK_LUMINATOR = "ic2.core.block.wiring.BlockLuminator.class"; + +} diff --git a/src/Java/gtPlusPlus/preloader/asm/Preloader_DummyContainer.java b/src/Java/gtPlusPlus/preloader/asm/Preloader_DummyContainer.java index d8a4bf96f5..2a0082754a 100644 --- a/src/Java/gtPlusPlus/preloader/asm/Preloader_DummyContainer.java +++ b/src/Java/gtPlusPlus/preloader/asm/Preloader_DummyContainer.java @@ -2,27 +2,24 @@ package gtPlusPlus.preloader.asm; import java.io.File; import java.util.Arrays; -import java.util.List; import com.google.common.eventbus.EventBus; import com.google.common.eventbus.Subscribe; import cpw.mods.fml.common.DummyModContainer; import cpw.mods.fml.common.LoadController; -import cpw.mods.fml.common.Mod.EventHandler; import cpw.mods.fml.common.ModMetadata; -import cpw.mods.fml.common.event.*; -import cpw.mods.fml.common.versioning.ArtifactVersion; - -import gtPlusPlus.api.objects.Logger; -import gtPlusPlus.core.util.Utils; +import cpw.mods.fml.common.event.FMLConstructionEvent; +import cpw.mods.fml.common.event.FMLInitializationEvent; +import cpw.mods.fml.common.event.FMLPostInitializationEvent; +import cpw.mods.fml.common.event.FMLPreInitializationEvent; import gtPlusPlus.preloader.CORE_Preloader; +import gtPlusPlus.preloader.Preloader_Logger; import net.minecraftforge.common.config.Configuration; public class Preloader_DummyContainer extends DummyModContainer { public Preloader_DummyContainer() { - super(new ModMetadata()); ModMetadata meta = getMetadata(); meta.modId = CORE_Preloader.MODID; @@ -35,7 +32,8 @@ public class Preloader_DummyContainer extends DummyModContainer { meta.updateUrl = ""; meta.screenshots = new String[0]; meta.logoFile = ""; - meta.dependencies = (List) CORE_Preloader.DEPENDENCIES; + //meta.dependencies = (List) CORE_Preloader.DEPENDENCIES; + Preloader_Logger.INFO("Initializing DummyModContainer"); } @@ -47,29 +45,26 @@ public class Preloader_DummyContainer extends DummyModContainer { @Subscribe public void modConstruction(FMLConstructionEvent evt){ - - } - - @Subscribe - public void init(FMLInitializationEvent evt) { + Preloader_Logger.INFO("Constructing DummyModContainer"); } - @EventHandler - public void load(final FMLInitializationEvent e) { - Logger.INFO("[GT++ ASM] Begin resource allocation for " + CORE_Preloader.MODID + " V" + CORE_Preloader.VERSION); - } - @Subscribe public void preInit(FMLPreInitializationEvent event) { - Logger.INFO("[GT++ ASM] Loading " + CORE_Preloader.MODID + " V" + CORE_Preloader.VERSION); + Preloader_Logger.INFO("Loading " + CORE_Preloader.MODID + " V" + CORE_Preloader.VERSION); // Handle GT++ Config handleConfigFile(event); } + @Subscribe + public void init(FMLInitializationEvent evt) { + Preloader_Logger.INFO("Begin resource allocation for " + CORE_Preloader.MODID + " V" + CORE_Preloader.VERSION); + + } + @Subscribe public void postInit(FMLPostInitializationEvent evt) { - Logger.INFO("[GT++ ASM] Finished loading GT++ Pre-Loader."); + Preloader_Logger.INFO("Finished loading."); } public static void handleConfigFile(final FMLPreInitializationEvent event) { @@ -84,17 +79,17 @@ public class Preloader_DummyContainer extends DummyModContainer { } public static boolean getConfig(){ - final Configuration config = new Configuration( new File(Utils.getMcDir(), "config/GTplusplus/GTplusplus.cfg")); + final Configuration config = new Configuration( new File(gtPlusPlus.preloader.CORE_Preloader.MC_DIR, "config/GTplusplus/GTplusplus.cfg")); if (config != null){ config.load(); // Circuits CORE_Preloader.enableOldGTcircuits = config.getBoolean("enableOldGTcircuits", "gregtech", false, "Restores circuits and their recipes from Pre-5.09.28 times."); CORE_Preloader.enableWatchdogBGM = config.getInt("enableWatchdogBGM", "features", 0, 0, Short.MAX_VALUE, "Set to a value greater than 0 to reduce the ticks taken to delay between BGM tracks. Acceptable Values are 1-32767, where 0 is disabled. Vanilla Uses 12,000 & 24,000. 200 is 10s."); - Logger.INFO("GT++ Preloader - Loaded the configuration file."); + Preloader_Logger.INFO("Loaded the configuration file."); return true; } - Logger.INFO("GT++ Preloader - Failed loading the configuration file."); + Preloader_Logger.INFO("Failed loading the configuration file."); return false; } } \ No newline at end of file diff --git a/src/Java/gtPlusPlus/preloader/asm/Preloader_FMLLoadingPlugin.java b/src/Java/gtPlusPlus/preloader/asm/Preloader_FMLLoadingPlugin.java index b208c2f8f0..8a9258f07d 100644 --- a/src/Java/gtPlusPlus/preloader/asm/Preloader_FMLLoadingPlugin.java +++ b/src/Java/gtPlusPlus/preloader/asm/Preloader_FMLLoadingPlugin.java @@ -1,12 +1,15 @@ package gtPlusPlus.preloader.asm; +import java.io.File; import java.util.Map; import cpw.mods.fml.relauncher.IFMLLoadingPlugin; import cpw.mods.fml.relauncher.IFMLLoadingPlugin.MCVersion; import cpw.mods.fml.relauncher.IFMLLoadingPlugin.SortingIndex; - +import gtPlusPlus.preloader.CORE_Preloader; +import gtPlusPlus.preloader.Preloader_Logger; import gtPlusPlus.preloader.asm.transformers.Preloader_Transformer_Handler; +import net.minecraft.launchwrapper.Launch; @SortingIndex(10097) @MCVersion(value = "1.7.10") @@ -14,6 +17,10 @@ public class Preloader_FMLLoadingPlugin implements IFMLLoadingPlugin { //-Dfml.coreMods.load=gtPlusPlus.preloader.asm.Preloader_FMLLoadingPlugin + static { + Preloader_Logger.INFO("Initializing IFMLLoadingPlugin"); + } + @Override public String getAccessTransformerClass() { return null; @@ -22,7 +29,9 @@ public class Preloader_FMLLoadingPlugin implements IFMLLoadingPlugin { @Override public String[] getASMTransformerClass() { //This will return the name of the class - return new String[]{Preloader_Transformer_Handler.class.getName()}; + return new String[]{ + Preloader_Transformer_Handler.class.getName() + }; } @Override @@ -33,12 +42,32 @@ public class Preloader_FMLLoadingPlugin implements IFMLLoadingPlugin { @Override public String getSetupClass() { + //return Preloader_SetupClass.class.getName(); return null; } @Override public void injectData(Map data) { - + boolean isDeObf = (boolean) data.get("runtimeDeobfuscationEnabled"); + File mcDir = (File) data.get("mcLocation"); + //LaunchClassLoader classLoader = (LaunchClassLoader) data.get("classLoader"); + File coremodLocation = (File) data.get("coremodLocation"); + String deobfuscationFileName = (String) data.get("deobfuscationFileName"); + if (mcDir != null && mcDir.exists()) { + CORE_Preloader.setMinecraftDirectory(mcDir); + Preloader_Logger.INFO("Set McDir via Preloader_SetupClass"); + } + Preloader_Logger.INFO("runtimeDeobfuscationEnabled: "+isDeObf); + Preloader_Logger.INFO("deobfuscationFileName: "+deobfuscationFileName); + if (coremodLocation != null && coremodLocation.exists()) { + Preloader_Logger.INFO("coremodLocation: "+coremodLocation.getPath()); + } + else { + Preloader_Logger.INFO("coremodLocation: null"); + Preloader_Logger.ERROR("Unable to determine CoreMod location"); + } + CORE_Preloader.DEV_ENVIRONMENT = (Boolean) Launch.blackboard.get("fml.deobfuscatedEnvironment"); + Preloader_Logger.INFO("Running on "+gtPlusPlus.preloader.CORE_Preloader.JAVA_VERSION+" | Development Environment: "+CORE_Preloader.DEV_ENVIRONMENT); } } \ No newline at end of file diff --git a/src/Java/gtPlusPlus/preloader/asm/Preloader_SetupClass.java b/src/Java/gtPlusPlus/preloader/asm/Preloader_SetupClass.java new file mode 100644 index 0000000000..a6d2b6c863 --- /dev/null +++ b/src/Java/gtPlusPlus/preloader/asm/Preloader_SetupClass.java @@ -0,0 +1,23 @@ +package gtPlusPlus.preloader.asm; + +import java.io.File; +import java.util.Map; + +import cpw.mods.fml.relauncher.IFMLCallHook; +import gtPlusPlus.preloader.CORE_Preloader; +import gtPlusPlus.preloader.Preloader_Logger; + +public class Preloader_SetupClass implements IFMLCallHook { + + @Override + public Void call() throws Exception { + Preloader_Logger.INFO("Executing IFMLCallHook"); + return null; + } + + @Override + public void injectData(Map data) { + + } + +} diff --git a/src/Java/gtPlusPlus/preloader/asm/helpers/MethodHelper_GT.java b/src/Java/gtPlusPlus/preloader/asm/helpers/MethodHelper_GT.java new file mode 100644 index 0000000000..8120df81fa --- /dev/null +++ b/src/Java/gtPlusPlus/preloader/asm/helpers/MethodHelper_GT.java @@ -0,0 +1,25 @@ +package gtPlusPlus.preloader.asm.helpers; + +import java.util.List; + +import gregtech.api.enums.Materials; +import gregtech.api.items.GT_MetaGenerated_Tool; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; + +public class MethodHelper_GT { + + public static final void getSubItems(GT_MetaGenerated_Tool aTool, Item var1, CreativeTabs aCreativeTab, List aList) { + for (int i = 0; i < 32766; i += 2) { + if (aTool.getToolStats(new ItemStack(aTool, 1, i)) != null) { + ItemStack tStack = new ItemStack(aTool, 1, i); + aTool.isItemStackUsable(tStack); + aList.add(tStack); + aList.add(aTool.getToolWithStats(i,1,Materials.TungstenSteel,Materials.TungstenSteel,null)); + aList.add(aTool.getToolWithStats(i,1,Materials.Neutronium,Materials.Neutronium,null)); + } + } + } + +} diff --git a/src/Java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_GT_BlockMachines_MetaPipeEntity.java b/src/Java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_GT_BlockMachines_MetaPipeEntity.java index f71615b7c1..dce1fa15d2 100644 --- a/src/Java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_GT_BlockMachines_MetaPipeEntity.java +++ b/src/Java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_GT_BlockMachines_MetaPipeEntity.java @@ -21,7 +21,6 @@ import gregtech.api.GregTech_API; import gregtech.api.enums.Materials; import gregtech.api.enums.SubTag; import gregtech.api.metatileentity.BaseMetaPipeEntity; -import gtPlusPlus.api.objects.Logger; import gtPlusPlus.xmod.gregtech.common.Meta_GT_Proxy; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; @@ -149,7 +148,7 @@ public class ClassTransformer_GT_BlockMachines_MetaPipeEntity { int mMode; - public ClassTransformer_GT_BlockMachines_MetaPipeEntity(byte[] basicClass, boolean obfuscated, int aMode) { + public ClassTransformer_GT_BlockMachines_MetaPipeEntity(byte[] basicClass, int aMode) { mMode = aMode; ClassReader aTempReader = null; ClassWriter aTempWriter = null; diff --git a/src/Java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_GT_BusPatch.java b/src/Java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_GT_BusPatch.java index 4394aa0f04..e123c6a9e0 100644 --- a/src/Java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_GT_BusPatch.java +++ b/src/Java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_GT_BusPatch.java @@ -1,6 +1,28 @@ package gtPlusPlus.preloader.asm.transformers; -import static org.objectweb.asm.Opcodes.*; +import static org.objectweb.asm.Opcodes.AALOAD; +import static org.objectweb.asm.Opcodes.AASTORE; +import static org.objectweb.asm.Opcodes.ACC_PUBLIC; +import static org.objectweb.asm.Opcodes.ACONST_NULL; +import static org.objectweb.asm.Opcodes.ALOAD; +import static org.objectweb.asm.Opcodes.ANEWARRAY; +import static org.objectweb.asm.Opcodes.ASM5; +import static org.objectweb.asm.Opcodes.DUP; +import static org.objectweb.asm.Opcodes.F_FULL; +import static org.objectweb.asm.Opcodes.GOTO; +import static org.objectweb.asm.Opcodes.ICONST_0; +import static org.objectweb.asm.Opcodes.ICONST_1; +import static org.objectweb.asm.Opcodes.ICONST_2; +import static org.objectweb.asm.Opcodes.IF_ICMPLT; +import static org.objectweb.asm.Opcodes.ILOAD; +import static org.objectweb.asm.Opcodes.INTEGER; +import static org.objectweb.asm.Opcodes.INVOKESPECIAL; +import static org.objectweb.asm.Opcodes.INVOKESTATIC; +import static org.objectweb.asm.Opcodes.INVOKEVIRTUAL; +import static org.objectweb.asm.Opcodes.NEW; +import static org.objectweb.asm.Opcodes.PUTFIELD; +import static org.objectweb.asm.Opcodes.RETURN; +import static org.objectweb.asm.Opcodes.UNINITIALIZED_THIS; import org.apache.logging.log4j.Level; import org.objectweb.asm.ClassReader; @@ -10,13 +32,14 @@ import org.objectweb.asm.Label; import org.objectweb.asm.MethodVisitor; import cpw.mods.fml.relauncher.FMLRelaunchLog; +import gtPlusPlus.preloader.asm.ClassesToTransform; public class ClassTransformer_GT_BusPatch { - public static final String aSuperInput = "gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.GT_MetaTileEntity_SuperBus_Input"; - public static final String aSuperOutput = "gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.GT_MetaTileEntity_SuperBus_Output"; - public static final String aInput = "gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_InputBus"; - public static final String aOutput = "gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_OutputBus"; + private static final String aSuperInputFormatted = ClassesToTransform.GTPP_MTE_HATCH_SUPER_INPUT_BUS.replace(".", "/"); + private static final String aSuperOutputFormatted = ClassesToTransform.GTPP_MTE_HATCH_SUPER_OUTPUT_BUS.replace(".", "/"); + private static final String aInputFormatted = ClassesToTransform.GT_MTE_HATCH_INPUTBUS.replace(".", "/"); + private static final String aOutputFormatted = ClassesToTransform.GT_MTE_HATCH_OUTPUTBUS.replace(".", "/"); private final boolean isValid; private final ClassReader reader; @@ -74,7 +97,7 @@ public class ClassTransformer_GT_BusPatch { //GT_MetaTileEntity_Hatch_InputBus //Constructor - if (aClassName.equals(aInput)){ + if (aClassName.equals(ClassesToTransform.GT_MTE_HATCH_INPUTBUS)){ //Constructor 1 { @@ -131,14 +154,14 @@ public class ClassTransformer_GT_BusPatch { mv.visitLineNumber(16, l4); mv.visitVarInsn(ALOAD, 0); mv.visitInsn(ACONST_NULL); - mv.visitFieldInsn(PUTFIELD, "gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_InputBus", "mRecipeMap", "Lgregtech/api/util/GT_Recipe$GT_Recipe_Map;"); + mv.visitFieldInsn(PUTFIELD, ""+aInputFormatted+"", "mRecipeMap", "Lgregtech/api/util/GT_Recipe$GT_Recipe_Map;"); Label l5 = new Label(); mv.visitLabel(l5); mv.visitLineNumber(21, l5); mv.visitInsn(RETURN); Label l6 = new Label(); mv.visitLabel(l6); - mv.visitLocalVariable("this", "Lgregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_InputBus;", null, l0, l6, 0); + mv.visitLocalVariable("this", "L"+aInputFormatted+";", null, l0, l6, 0); mv.visitLocalVariable("aID", "I", null, l0, l6, 1); mv.visitLocalVariable("aName", "Ljava/lang/String;", null, l0, l6, 2); mv.visitLocalVariable("aNameRegional", "Ljava/lang/String;", null, l0, l6, 3); @@ -168,14 +191,14 @@ public class ClassTransformer_GT_BusPatch { mv.visitLineNumber(16, l1); mv.visitVarInsn(ALOAD, 0); mv.visitInsn(ACONST_NULL); - mv.visitFieldInsn(PUTFIELD, "gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_InputBus", "mRecipeMap", "Lgregtech/api/util/GT_Recipe$GT_Recipe_Map;"); + mv.visitFieldInsn(PUTFIELD, ""+aInputFormatted+"", "mRecipeMap", "Lgregtech/api/util/GT_Recipe$GT_Recipe_Map;"); Label l2 = new Label(); mv.visitLabel(l2); mv.visitLineNumber(30, l2); mv.visitInsn(RETURN); Label l3 = new Label(); mv.visitLabel(l3); - mv.visitLocalVariable("this", "Lgregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_InputBus;", null, l0, l3, 0); + mv.visitLocalVariable("this", "L"+aInputFormatted+";", null, l0, l3, 0); mv.visitLocalVariable("aName", "Ljava/lang/String;", null, l0, l3, 1); mv.visitLocalVariable("aTier", "I", null, l0, l3, 2); mv.visitLocalVariable("aSlots", "I", null, l0, l3, 3); @@ -205,14 +228,14 @@ public class ClassTransformer_GT_BusPatch { mv.visitLineNumber(16, l1); mv.visitVarInsn(ALOAD, 0); mv.visitInsn(ACONST_NULL); - mv.visitFieldInsn(PUTFIELD, "gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_InputBus", "mRecipeMap", "Lgregtech/api/util/GT_Recipe$GT_Recipe_Map;"); + mv.visitFieldInsn(PUTFIELD, ""+aInputFormatted+"", "mRecipeMap", "Lgregtech/api/util/GT_Recipe$GT_Recipe_Map;"); Label l2 = new Label(); mv.visitLabel(l2); mv.visitLineNumber(34, l2); mv.visitInsn(RETURN); Label l3 = new Label(); mv.visitLabel(l3); - mv.visitLocalVariable("this", "Lgregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_InputBus;", null, l0, l3, 0); + mv.visitLocalVariable("this", "L"+aInputFormatted+";", null, l0, l3, 0); mv.visitLocalVariable("aName", "Ljava/la