From e9dbe58c39b56d562bcdc17b1100a7c26ce7c10e Mon Sep 17 00:00:00 2001 From: Alkalus <3060479+draknyte1@users.noreply.github.com> Date: Fri, 26 Oct 2018 04:25:46 +0100 Subject: $ Fixed DevHelper.java. $ Fixed ASM not working outside of Dev. $ Fixed Thermal Centrifuge recipes generated for custom ores. --- .../ClassTransformer_COFH_OreDictionaryArbiter.java | 14 ++++++++------ .../ClassTransformer_Forge_ChunkLoading.java | 11 ++++++----- .../ClassTransformer_GC_EntityAutoRocket.java | 14 +++++++------- .../transformers/ClassTransformer_GC_FluidUtil.java | 11 ++++++----- .../ClassTransformer_GC_FuelLoader.java | 14 +++++++------- .../ClassTransformer_GT_BlockMachines_NBT.java | 21 ++++++++++++++------- .../ClassTransformer_GT_ItemMachines_Tooltip.java | 11 ++++++----- .../transformers/ClassTransformer_TiConFluids.java | 12 +++++++----- .../transformers/Preloader_Transformer_Handler.java | 6 ++++-- 9 files changed, 65 insertions(+), 49 deletions(-) (limited to 'src/Java/gtPlusPlus/preloader/asm/transformers') 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(); } -- cgit