diff options
author | Alkalus <3060479+draknyte1@users.noreply.github.com> | 2018-10-26 04:25:46 +0100 |
---|---|---|
committer | Alkalus <3060479+draknyte1@users.noreply.github.com> | 2018-10-26 04:25:46 +0100 |
commit | e9dbe58c39b56d562bcdc17b1100a7c26ce7c10e (patch) | |
tree | bf5f67798e71596a17cbaf624e55e11036446378 /src/Java/gtPlusPlus/preloader/asm | |
parent | 4a6c41795cca07bd68c6e26852b357ee648168e6 (diff) | |
download | GT5-Unofficial-e9dbe58c39b56d562bcdc17b1100a7c26ce7c10e.tar.gz GT5-Unofficial-e9dbe58c39b56d562bcdc17b1100a7c26ce7c10e.tar.bz2 GT5-Unofficial-e9dbe58c39b56d562bcdc17b1100a7c26ce7c10e.zip |
$ Fixed DevHelper.java.
$ Fixed ASM not working outside of Dev.
$ Fixed Thermal Centrifuge recipes generated for custom ores.
Diffstat (limited to 'src/Java/gtPlusPlus/preloader/asm')
10 files changed, 76 insertions, 50 deletions
diff --git a/src/Java/gtPlusPlus/preloader/asm/AsmConfig.java b/src/Java/gtPlusPlus/preloader/asm/AsmConfig.java index fe77420803..884d2a47fe 100644 --- a/src/Java/gtPlusPlus/preloader/asm/AsmConfig.java +++ b/src/Java/gtPlusPlus/preloader/asm/AsmConfig.java @@ -16,6 +16,7 @@ public class AsmConfig { public static boolean enableGtTooltipFix; public static boolean enableGtNbtFix; public static boolean enableChunkDebugging; + public static boolean enableCofhPatch; public AsmConfig(File file) { if (!loaded) { @@ -40,7 +41,7 @@ public class AsmConfig { prop = config.get("debug", "enableChunkDebugging", false); prop.comment = "Enable/Disable Chunk Debugging Features, Must Be enabled on Client and Server."; prop.setLanguageKey("gtpp.enableChunkDebugging").setRequiresMcRestart(true); - enableChunkDebugging = prop.getBoolean(true); + enableChunkDebugging = prop.getBoolean(false); propOrderDebug.add(prop.getName()); prop = config.get("debug", "enableGtNbtFix", true); @@ -49,6 +50,14 @@ public class AsmConfig { enableGtNbtFix = prop.getBoolean(true); propOrderDebug.add(prop.getName()); + prop = config.get("debug", "enableCofhPatch", false); + prop.comment = "Enable/Disable COFH OreDictionaryArbiter Patch (Useful for Development)"; + prop.setLanguageKey("gtpp.enableCofhPatch").setRequiresMcRestart(true); + enableCofhPatch = prop.getBoolean(false); + propOrderDebug.add(prop.getName()); + + + //General Features prop = config.get("general", "enableTiConFluidLighting", true); @@ -74,6 +83,7 @@ public class AsmConfig { 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]); } 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/transformers/ClassTransformer_COFH_OreDictionaryArbiter.java b/src/Java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_COFH_OreDictionaryArbiter.java index 9443da2ccc..50ba79bfe0 100644 --- a/src/Java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_COFH_OreDictionaryArbiter.java +++ b/src/Java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_COFH_OreDictionaryArbiter.java @@ -38,14 +38,16 @@ public class ClassTransformer_COFH_OreDictionaryArbiter { private final boolean isObfuscated; public ClassTransformer_COFH_OreDictionaryArbiter(byte[] basicClass, boolean obfuscated) { + ClassReader aTempReader = null; ClassWriter aTempWriter = null; + isObfuscated = obfuscated; - try { - aTempReader = new ClassReader(className); - aTempWriter = new ClassWriter(aTempReader, ClassWriter.COMPUTE_FRAMES); - new ClassReader(basicClass).accept(new localClassVisitor(aTempWriter), 0); - } catch (IOException e) {} + + aTempReader = new ClassReader(basicClass); + aTempWriter = new ClassWriter(aTempReader, ClassWriter.COMPUTE_FRAMES); + aTempReader.accept(new localClassVisitor(aTempWriter), 0); + if (aTempReader != null && aTempWriter != null) { isValid = true; } @@ -77,7 +79,7 @@ public class ClassTransformer_COFH_OreDictionaryArbiter { String aItemStack = isObfuscated ? DevHelper.getObfuscated("net/minecraft/item/ItemStack") : "net/minecraft/item/ItemStack"; MethodVisitor mv; if (aMethodName.equals("registerOreDictionaryEntry")) { - FMLRelaunchLog.log("[GT++ ASM] COFH OreDictionaryArbiter Patch", Level.INFO, "Injecting "+aMethodName+" into "+className+"."); + FMLRelaunchLog.log("[GT++ ASM] COFH OreDictionaryArbiter Patch", Level.INFO, "Injecting "+aMethodName+" into "+className+". ItemStack: "+aItemStack); mv = getWriter().visitMethod(ACC_PUBLIC + ACC_STATIC, "registerOreDictionaryEntry", "(L"+aItemStack+";Ljava/lang/String;)V", null, null); mv.visitCode(); Label l0 = new Label(); diff --git a/src/Java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_Forge_ChunkLoading.java b/src/Java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_Forge_ChunkLoading.java index 024cba9d7b..19648ae60c 100644 --- a/src/Java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_Forge_ChunkLoading.java +++ b/src/Java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_Forge_ChunkLoading.java @@ -31,13 +31,14 @@ public class ClassTransformer_Forge_ChunkLoading { private static boolean doesMethodAlreadyExist = false; public ClassTransformer_Forge_ChunkLoading(byte[] basicClass, boolean obfuscated) { + ClassReader aTempReader = null; ClassWriter aTempWriter = null; - try { - aTempReader = new ClassReader(className); - aTempWriter = new ClassWriter(aTempReader, ClassWriter.COMPUTE_FRAMES); - new ClassReader(basicClass).accept(new localClassVisitor(aTempWriter), 0); - } catch (IOException e) {} + + aTempReader = new ClassReader(basicClass); + aTempWriter = new ClassWriter(aTempReader, ClassWriter.COMPUTE_FRAMES); + aTempReader.accept(new localClassVisitor(aTempWriter), 0); + if (aTempReader != null && aTempWriter != null) { isValid = true; } diff --git a/src/Java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_GC_EntityAutoRocket.java b/src/Java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_GC_EntityAutoRocket.java index 5cc6bb8aa9..1e58cbbe9b 100644 --- a/src/Java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_GC_EntityAutoRocket.java +++ b/src/Java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_GC_EntityAutoRocket.java @@ -26,16 +26,16 @@ public class ClassTransformer_GC_EntityAutoRocket { private final boolean isObfuscated; public ClassTransformer_GC_EntityAutoRocket(byte[] basicClass, boolean obfuscated) { + ClassReader aTempReader = null; ClassWriter aTempWriter = null; + isObfuscated = obfuscated; - try { - aTempReader = new ClassReader(className); - aTempWriter = new ClassWriter(aTempReader, ClassWriter.COMPUTE_FRAMES); - new ClassReader(basicClass).accept(new localClassVisitor(aTempWriter), 0); - } catch (IOException e) { - e.printStackTrace(); - } + + aTempReader = new ClassReader(basicClass); + aTempWriter = new ClassWriter(aTempReader, ClassWriter.COMPUTE_FRAMES); + aTempReader.accept(new localClassVisitor(aTempWriter), 0); + if (aTempReader != null && aTempWriter != null) { isValid = true; } diff --git a/src/Java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_GC_FluidUtil.java b/src/Java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_GC_FluidUtil.java index a54ed79e35..13681e7e3a 100644 --- a/src/Java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_GC_FluidUtil.java +++ b/src/Java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_GC_FluidUtil.java @@ -24,13 +24,14 @@ public class ClassTransformer_GC_FluidUtil { private final ClassWriter writer; public ClassTransformer_GC_FluidUtil(byte[] basicClass, boolean obfuscated) { + ClassReader aTempReader = null; ClassWriter aTempWriter = null; - try { - aTempReader = new ClassReader(className); - aTempWriter = new ClassWriter(aTempReader, ClassWriter.COMPUTE_FRAMES); - new ClassReader(basicClass).accept(new localClassVisitor(aTempWriter), 0); - } catch (IOException e) {} + + aTempReader = new ClassReader(basicClass); + aTempWriter = new ClassWriter(aTempReader, ClassWriter.COMPUTE_FRAMES); + aTempReader.accept(new localClassVisitor(aTempWriter), 0); + if (aTempReader != null && aTempWriter != null) { isValid = true; } diff --git a/src/Java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_GC_FuelLoader.java b/src/Java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_GC_FuelLoader.java index ae24546f0a..5ef5b75505 100644 --- a/src/Java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_GC_FuelLoader.java +++ b/src/Java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_GC_FuelLoader.java @@ -26,16 +26,16 @@ public class ClassTransformer_GC_FuelLoader { private final boolean isObfuscated; public ClassTransformer_GC_FuelLoader(byte[] basicClass, boolean obfuscated) { + ClassReader aTempReader = null; ClassWriter aTempWriter = null; + isObfuscated = obfuscated; - try { - aTempReader = new ClassReader(className); - aTempWriter = new ClassWriter(aTempReader, ClassWriter.COMPUTE_FRAMES); - new ClassReader(basicClass).accept(new localClassVisitor(aTempWriter), 0); - } catch (IOException e) { - e.printStackTrace(); - } + + aTempReader = new ClassReader(basicClass); + aTempWriter = new ClassWriter(aTempReader, ClassWriter.COMPUTE_FRAMES); + aTempReader.accept(new localClassVisitor(aTempWriter), 0); + if (aTempReader != null && aTempWriter != null) { isValid = true; } diff --git a/src/Java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_GT_BlockMachines_NBT.java b/src/Java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_GT_BlockMachines_NBT.java index 0d2fcc70a4..b746a949f6 100644 --- a/src/Java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_GT_BlockMachines_NBT.java +++ b/src/Java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_GT_BlockMachines_NBT.java @@ -30,27 +30,34 @@ public class ClassTransformer_GT_BlockMachines_NBT { private static boolean doesMethodAlreadyExist = false; public ClassTransformer_GT_BlockMachines_NBT(byte[] basicClass, boolean obfuscated) { + ClassReader aTempReader = null; ClassWriter aTempWriter = null; - try { - aTempReader = new ClassReader(className); - aTempWriter = new ClassWriter(aTempReader, ClassWriter.COMPUTE_FRAMES); - new ClassReader(basicClass).accept(new localClassVisitor(aTempWriter), 0); - } catch (IOException e) {} + + FMLRelaunchLog.log("[GT++ ASM] Gregtech NBT Persistency Patch", Level.INFO, "Attempting to patch "+className+"."); + + aTempReader = new ClassReader(basicClass); + aTempWriter = new ClassWriter(aTempReader, ClassWriter.COMPUTE_FRAMES); + aTempReader.accept(new localClassVisitor(aTempWriter), 0); + if (aTempReader != null && aTempWriter != null) { isValid = true; } else { isValid = false; } + FMLRelaunchLog.log("[GT++ ASM] Gregtech NBT Persistency Patch", Level.INFO, "Valid patch? "+isValid+"."); reader = aTempReader; writer = aTempWriter; - if (reader != null && writer != null && !doesMethodAlreadyExist) { + if (reader != null && writer != null && !doesMethodAlreadyExist) { + FMLRelaunchLog.log("[GT++ ASM] Gregtech NBT Persistency Patch", Level.INFO, "Getting Valid MC Class names. "+"."); aEntityPlayer = obfuscated ? DevHelper.getObfuscated("net/minecraft/entity/player/EntityPlayer") : "net/minecraft/entity/player/EntityPlayer"; aEntityPlayerMP = obfuscated ? DevHelper.getObfuscated("net/minecraft/entity/player/EntityPlayerMP") : "net/minecraft/entity/player/EntityPlayerMP"; aWorld = obfuscated ? DevHelper.getObfuscated("net/minecraft/world/World") : "net/minecraft/world/World"; - + + FMLRelaunchLog.log("[GT++ ASM] Gregtech NBT Persistency Patch", Level.INFO, "Found: "+aEntityPlayer+", "+aEntityPlayerMP+", "+aWorld+"."); + FMLRelaunchLog.log("[GT++ ASM] Gregtech NBT Persistency Patch", Level.INFO, "Attempting Method Injection."); injectMethod("removedByPlayer"); injectMethod("harvestBlock"); } diff --git a/src/Java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_GT_ItemMachines_Tooltip.java b/src/Java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_GT_ItemMachines_Tooltip.java index 49981d134e..4b2a10df07 100644 --- a/src/Java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_GT_ItemMachines_Tooltip.java +++ b/src/Java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_GT_ItemMachines_Tooltip.java @@ -30,13 +30,14 @@ public class ClassTransformer_GT_ItemMachines_Tooltip { private static boolean doesMethodAlreadyExist = false; public ClassTransformer_GT_ItemMachines_Tooltip(byte[] basicClass, boolean obfuscated) { + ClassReader aTempReader = null; ClassWriter aTempWriter = null; - try { - aTempReader = new ClassReader(className); - aTempWriter = new ClassWriter(aTempReader, ClassWriter.COMPUTE_FRAMES); - new ClassReader(basicClass).accept(new localClassVisitor(aTempWriter), 0); - } catch (IOException e) {} + + aTempReader = new ClassReader(basicClass); + aTempWriter = new ClassWriter(aTempReader, ClassWriter.COMPUTE_FRAMES); + aTempReader.accept(new localClassVisitor(aTempWriter), 0); + if (aTempReader != null && aTempWriter != null) { isValid = true; } diff --git a/src/Java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_TiConFluids.java b/src/Java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_TiConFluids.java index c14a4809ba..083041050d 100644 --- a/src/Java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_TiConFluids.java +++ b/src/Java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_TiConFluids.java @@ -32,14 +32,16 @@ public class ClassTransformer_TiConFluids { public ClassTransformer_TiConFluids(String aMethodName, boolean obfuscated, byte[] basicClass) { isObfuscated = obfuscated; + methodName = obfuscated ? DevHelper.getSRG(aMethodName) : aMethodName; + ClassReader aTempReader = null; ClassWriter aTempWriter = null; - try { - aTempReader = new ClassReader(className); - aTempWriter = new ClassWriter(aTempReader, ClassWriter.COMPUTE_FRAMES); - new ClassReader(basicClass).accept(new localClassVisitir(aTempWriter, isObfuscated), 0); - } catch (IOException e) {} + + aTempReader = new ClassReader(basicClass); + aTempWriter = new ClassWriter(aTempReader, ClassWriter.COMPUTE_FRAMES); + aTempReader.accept(new localClassVisitir(aTempWriter, isObfuscated), 0); + if (aTempReader != null && aTempWriter != null) { isValid = true; } diff --git a/src/Java/gtPlusPlus/preloader/asm/transformers/Preloader_Transformer_Handler.java b/src/Java/gtPlusPlus/preloader/asm/transformers/Preloader_Transformer_Handler.java index 6954e286ae..269289c608 100644 --- a/src/Java/gtPlusPlus/preloader/asm/transformers/Preloader_Transformer_Handler.java +++ b/src/Java/gtPlusPlus/preloader/asm/transformers/Preloader_Transformer_Handler.java @@ -20,9 +20,11 @@ public class Preloader_Transformer_Handler implements IClassTransformer { private final boolean mEnabled = false; public static final AsmConfig mConfig; + static { mConfig = new AsmConfig(new File("config/GTplusplus/asm.cfg")); - System.out.println("Asm Config Location: "+mConfig.config.getConfigFile().getAbsolutePath()); + System.out.println("[GT++ ASM] Asm Config Location: "+mConfig.config.getConfigFile().getAbsolutePath()); + System.out.println("[GT++ ASM] Is DevHelper Valid? "+gtPlusPlus.preloader.DevHelper.mIsValidHelper); } public byte[] transform(String name, String transformedName, byte[] basicClass) { @@ -62,7 +64,7 @@ public class Preloader_Transformer_Handler implements IClassTransformer { return classWriter.toByteArray(); } // Fix the OreDictionary COFH - if (transformedName.equals("cofh.core.util.oredict.OreDictionaryArbiter")) { + if (transformedName.equals("cofh.core.util.oredict.OreDictionaryArbiter") && mConfig.enableCofhPatch) { FMLRelaunchLog.log("[GT++ ASM] COFH", Level.INFO, "Transforming %s", transformedName); return new ClassTransformer_COFH_OreDictionaryArbiter(basicClass, obfuscated).getWriter().toByteArray(); } |