aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gtPlusPlus/preloader
diff options
context:
space:
mode:
authormiozune <miozune@gmail.com>2022-08-01 10:31:31 +0900
committerGitHub <noreply@github.com>2022-08-01 08:31:31 +0700
commitc2b74940dc9658373beadd7d2393077fc5210ea0 (patch)
tree95d2988bb73aad53c8d1a169b7ab67216526e9a2 /src/main/java/gtPlusPlus/preloader
parent5915d5ba06c6b71477e092f1e0938872bbcd16dd (diff)
downloadGT5-Unofficial-c2b74940dc9658373beadd7d2393077fc5210ea0.tar.gz
GT5-Unofficial-c2b74940dc9658373beadd7d2393077fc5210ea0.tar.bz2
GT5-Unofficial-c2b74940dc9658373beadd7d2393077fc5210ea0.zip
Fix startup crash with latest GT (#258)
Diffstat (limited to 'src/main/java/gtPlusPlus/preloader')
-rw-r--r--src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_GT_EnergyHatchPatch.java317
-rw-r--r--src/main/java/gtPlusPlus/preloader/asm/transformers/Preloader_Transformer_Handler.java5
2 files changed, 0 insertions, 322 deletions
diff --git a/src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_GT_EnergyHatchPatch.java b/src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_GT_EnergyHatchPatch.java
deleted file mode 100644
index 83560eb6c3..0000000000
--- a/src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_GT_EnergyHatchPatch.java
+++ /dev/null
@@ -1,317 +0,0 @@
-package gtPlusPlus.preloader.asm.transformers;
-
-import static org.objectweb.asm.Opcodes.*;
-
-import org.apache.logging.log4j.Level;
-import org.objectweb.asm.*;
-
-import cpw.mods.fml.relauncher.FMLRelaunchLog;
-import gtPlusPlus.preloader.asm.ClassesToTransform;
-
-public class ClassTransformer_GT_EnergyHatchPatch {
-
- private static final String aRtgInputFormatted = ClassesToTransform.GTPP_MTE_HATCH_RTG.replace(".", "/");
- private static final String aEnergyFormatted = ClassesToTransform.GT_MTE_HATCH_ENERGY.replace(".", "/");
-
- private final boolean isValid;
- private final ClassReader reader;
- private final ClassWriter writer;
-
-
- public ClassTransformer_GT_EnergyHatchPatch(byte[] basicClass, String aClassName) {
- ClassReader aTempReader = null;
- ClassWriter aTempWriter = null;
-
- FMLRelaunchLog.log("[GT++ ASM] Gregtech Energy Hatch Patch", Level.INFO, "Attempting to add slots capabilities to GT Energy Hatches.");
- FMLRelaunchLog.log("[GT++ ASM] Gregtech Energy Hatch Patch", Level.INFO, "Patching "+aClassName+".");
-
- aTempReader = new ClassReader(basicClass);
- aTempWriter = new ClassWriter(aTempReader, ClassWriter.COMPUTE_FRAMES);
- aTempReader.accept(new localClassVisitor(aTempWriter, aClassName), 0);
-
- if (aTempReader != null && aTempWriter != null) {
- isValid = true;
- }
- else {
- isValid = false;
- }
- FMLRelaunchLog.log("[GT++ ASM] Gregtech Energy Hatch Patch", Level.INFO, "Valid patch? "+isValid+".");
- reader = aTempReader;
- writer = aTempWriter;
-
-
- if (reader != null && writer != null) {
- FMLRelaunchLog.log("[GT++ ASM] Gregtech Energy Hatch Patch", Level.INFO, "Attempting Method Injection.");
- injectMethod(aClassName);
- }
-
- }
-
- public boolean isValidTransformer() {
- return isValid;
- }
-
- public ClassReader getReader() {
- return reader;
- }
-
- public ClassWriter getWriter() {
- return writer;
- }
-
-
- public boolean injectMethod(String aClassName) {
-
- boolean didInject = false;
- MethodVisitor mv;
- ClassWriter cw = getWriter();
- int aConID = 1;
-
- //GT_MetaTileEntity_Hatch_Energy
- //Constructor
- if (aClassName.equals(ClassesToTransform.GT_MTE_HATCH_ENERGY)){
-
-
- //Constructor 1
- {
- mv = cw.visitMethod(ACC_PUBLIC, "<init>", "(ILjava/lang/String;Ljava/lang/String;II[Ljava/lang/String;)V", null, null);
- mv.visitCode();
- Label l0 = new Label();
- mv.visitLabel(l0);
- mv.visitLineNumber(26, l0);
- mv.visitVarInsn(ALOAD, 0);
- mv.visitVarInsn(ILOAD, 1);
- mv.visitVarInsn(ALOAD, 2);
- mv.visitVarInsn(ALOAD, 3);
- mv.visitVarInsn(ILOAD, 4);
- mv.visitVarInsn(ILOAD, 5);
- mv.visitVarInsn(ALOAD, 6);
- mv.visitInsn(ICONST_0);
- mv.visitTypeInsn(ANEWARRAY, "gregtech/api/interfaces/ITexture");
- mv.visitMethodInsn(INVOKESPECIAL, "gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch", "<init>", "(ILjava/lang/String;Ljava/lang/String;II[Ljava/lang/String;[Lgregtech/api/interfaces/ITexture;)V", false);
- Label l1 = new Label();
- mv.visitLabel(l1);
- mv.visitLineNumber(27, l1);
- mv.visitInsn(RETURN);
- Label l2 = new Label();
- mv.visitLabel(l2);
- mv.visitLocalVariable("this", "Lgregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Energy;", null, l0, l2, 0);
- mv.visitLocalVariable("aID", "I", null, l0, l2, 1);
- mv.visitLocalVariable("aName", "Ljava/lang/String;", null, l0, l2, 2);
- mv.visitLocalVariable("aNameRegional", "Ljava/lang/String;", null, l0, l2, 3);
- mv.visitLocalVariable("aTier", "I", null, l0, l2, 4);
- mv.visitLocalVariable("aSlots", "I", null, l0, l2, 5);
- mv.visitLocalVariable("aDesc", "[Ljava/lang/String;", null, l0, l2, 6);
- mv.visitMaxs(8, 7);
- mv.visitEnd();
- FMLRelaunchLog.log("[GT++ ASM] Gregtech Energy Hatch Patch", Level.INFO, "Injection new constructor "+(aConID++));
- }
-
- //Constructor 2
- {
- mv = cw.visitMethod(ACC_PUBLIC, "<init>", "(Ljava/lang/String;IILjava/lang/String;[[[Lgregtech/api/interfaces/ITexture;)V", null, null);
- mv.visitCode();
- Label l0 = new Label();
- mv.visitLabel(l0);
- mv.visitLineNumber(30, l0);
- mv.visitVarInsn(ALOAD, 0);
- mv.visitVarInsn(ALOAD, 1);
- mv.visitVarInsn(ILOAD, 2);
- mv.visitVarInsn(ILOAD, 3);
- mv.visitVarInsn(ALOAD, 4);
- mv.visitVarInsn(ALOAD, 5);
- mv.visitMethodInsn(INVOKESPECIAL, "gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch", "<init>", "(Ljava/lang/String;IILjava/lang/String;[[[Lgregtech/api/interfaces/ITexture;)V", false);
- Label l1 = new Label();
- mv.visitLabel(l1);
- mv.visitLineNumber(31, l1);
- mv.visitInsn(RETURN);
- Label l2 = new Label();
- mv.visitLabel(l2);
- mv.visitLocalVariable("this", "Lgregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Energy;", null, l0, l2, 0);
- mv.visitLocalVariable("aName", "Ljava/lang/String;", null, l0, l2, 1);
- mv.visitLocalVariable("aTier", "I", null, l0, l2, 2);
- mv.visitLocalVariable("aSlots", "I", null, l0, l2, 3);
- mv.visitLocalVariable("aDescription", "Ljava/lang/String;", null, l0, l2, 4);
- mv.visitLocalVariable("aTextures", "[[[Lgregtech/api/interfaces/ITexture;", null, l0, l2, 5);
- mv.visitMaxs(6, 6);
- mv.visitEnd();
- FMLRelaunchLog.log("[GT++ ASM] Gregtech Energy Hatch Patch", Level.INFO, "Injection new constructor "+(aConID++));
- }
-
- //Third constructor with String[] for GT 5.09
- {
- mv = cw.visitMethod(ACC_PUBLIC, "<init>", "(Ljava/lang/String;II[Ljava/lang/String;[[[Lgregtech/api/interfaces/ITexture;)V", null, null);
- mv.visitCode();
- Label l0 = new Label();
- mv.visitLabel(l0);
- mv.visitLineNumber(34, l0);
- mv.visitVarInsn(ALOAD, 0);
- mv.visitVarInsn(ALOAD, 1);
- mv.visitVarInsn(ILOAD, 2);
- mv.visitVarInsn(ILOAD, 3);
- mv.visitVarInsn(ALOAD, 4);
- mv.visitVarInsn(ALOAD, 5);
- mv.visitMethodInsn(INVOKESPECIAL, "gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch", "<init>", "(Ljava/lang/String;II[Ljava/lang/String;[[[Lgregtech/api/interfaces/ITexture;)V", false);
- Label l1 = new Label();
- mv.visitLabel(l1);
- mv.visitLineNumber(35, l1);
- mv.visitInsn(RETURN);
- Label l2 = new Label();
- mv.visitLabel(l2);
- mv.visitLocalVariable("this", "Lgregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Energy;", null, l0, l2, 0);
- mv.visitLocalVariable("aName", "Ljava/lang/String;", null, l0, l2, 1);
- mv.visitLocalVariable("aTier", "I", null, l0, l2, 2);
- mv.visitLocalVariable("aSlots", "I", null, l0, l2, 3);
- mv.visitLocalVariable("aDescription", "[Ljava/lang/String;", null, l0, l2, 4);
- mv.visitLocalVariable("aTextures", "[[[Lgregtech/api/interfaces/ITexture;", null, l0, l2, 5);
- mv.visitMaxs(6, 6);
- mv.visitEnd();
- FMLRelaunchLog.log("[GT++ ASM] Gregtech Energy Hatch Patch", Level.INFO, "Injection new constructor "+(aConID++));
- }
- didInject = true;
- }
-
- //GT_MetaTileEntity_Hatch_Energy_RTG
- //Constructor
- if (aClassName.equals(ClassesToTransform.GTPP_MTE_HATCH_RTG)){
-
- {
- mv = cw.visitMethod(ACC_PUBLIC, "<init>", "(ILjava/lang/String;Ljava/lang/String;II)V", null, null);
- mv.visitCode();
- Label l0 = new Label();
- mv.visitLabel(l0);
- mv.visitLineNumber(38, l0);
- mv.visitVarInsn(ALOAD, 0);
- mv.visitVarInsn(ILOAD, 1);
- mv.visitVarInsn(ALOAD, 2);
- mv.visitVarInsn(ALOAD, 3);
- mv.visitVarInsn(ILOAD, 4);
- mv.visitVarInsn(ILOAD, 5);
- mv.visitInsn(ICONST_2);
- mv.visitTypeInsn(ANEWARRAY, "java/lang/String");
- mv.visitInsn(DUP);
- mv.visitInsn(ICONST_0);
- mv.visitLdcInsn("Energy Injector for Multiblocks");
- mv.visitInsn(AASTORE);
- mv.visitInsn(DUP);
- mv.visitInsn(ICONST_1);
- mv.visitLdcInsn("Accepts RTG pellets for Fuel");
- mv.visitInsn(AASTORE);
- mv.visitMethodInsn(INVOKESPECIAL, "gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Energy", "<init>", "(ILjava/lang/String;Ljava/lang/String;II[Ljava/lang/String;)V", false);
- Label l1 = new Label();
- mv.visitLabel(l1);
- mv.visitLineNumber(39, l1);
- mv.visitInsn(RETURN);
- Label l2 = new Label();
- mv.visitLabel(l2);
- mv.visitLocalVariable("this", "LgtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Energy_RTG;", null, l0, l2, 0);
- mv.visitLocalVariable("aID", "I", null, l0, l2, 1);
- mv.visitLocalVariable("aName", "Ljava/lang/String;", null, l0, l2, 2);
- mv.visitLocalVariable("aNameRegional", "Ljava/lang/String;", null, l0, l2, 3);
- mv.visitLocalVariable("aTier", "I", null, l0, l2, 4);
- mv.visitLocalVariable("aSlots", "I", null, l0, l2, 5);
- mv.visitMaxs(10, 6);
- mv.visitEnd();
- FMLRelaunchLog.log("[GT++ ASM] Gregtech Energy Hatch Patch", Level.INFO, "Injection new constructor "+(aConID++));
- }
- {
- mv = cw.visitMethod(ACC_PUBLIC, "<init>", "(Ljava/lang/String;IILjava/lang/String;[[[Lgregtech/api/interfaces/ITexture;)V", null, null);
- mv.visitCode();
- Label l0 = new Label();
- mv.visitLabel(l0);
- mv.visitLineNumber(42, l0);
- mv.visitVarInsn(ALOAD, 0);
- mv.visitVarInsn(ALOAD, 1);
- mv.visitVarInsn(ILOAD, 2);
- mv.visitVarInsn(ILOAD, 3);
- mv.visitVarInsn(ALOAD, 4);
- mv.visitVarInsn(ALOAD, 5);
- mv.visitMethodInsn(INVOKESPECIAL, "gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Energy", "<init>", "(Ljava/lang/String;IILjava/lang/String;[[[Lgregtech/api/interfaces/ITexture;)V", false);
- Label l1 = new Label();
- mv.visitLabel(l1);
- mv.visitLineNumber(43, l1);
- mv.visitInsn(RETURN);
- Label l2 = new Label();
- mv.visitLabel(l2);
- mv.visitLocalVariable("this", "LgtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Energy_RTG;", null, l0, l2, 0);
- mv.visitLocalVariable("aName", "Ljava/lang/String;", null, l0, l2, 1);
- mv.visitLocalVariable("aTier", "I", null, l0, l2, 2);
- mv.visitLocalVariable("aSlots", "I", null, l0, l2, 3);
- mv.visitLocalVariable("aDescription", "Ljava/lang/String;", null, l0, l2, 4);
- mv.visitLocalVariable("aTextures", "[[[Lgregtech/api/interfaces/ITexture;", null, l0, l2, 5);
- mv.visitMaxs(6, 6);
- mv.visitEnd();
- FMLRelaunchLog.log("[GT++ ASM] Gregtech Energy Hatch Patch", Level.INFO, "Injection new constructor "+(aConID++));
- }
- {
- mv = cw.visitMethod(ACC_PUBLIC, "<init>", "(Ljava/lang/String;II[Ljava/lang/String;[[[Lgregtech/api/interfaces/ITexture;)V", null, null);
- mv.visitCode();
- Label l0 = new Label();
- mv.visitLabel(l0);
- mv.visitLineNumber(46, l0);
- mv.visitVarInsn(ALOAD, 0);
- mv.visitVarInsn(ALOAD, 1);
- mv.visitVarInsn(ILOAD, 2);
- mv.visitVarInsn(ILOAD, 3);
- mv.visitVarInsn(ALOAD, 4);
- mv.visitVarInsn(ALOAD, 5);
- mv.visitMethodInsn(INVOKESPECIAL, "gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Energy", "<init>", "(Ljava/lang/String;II[Ljava/lang/String;[[[Lgregtech/api/interfaces/ITexture;)V", false);
- Label l1 = new Label();
- mv.visitLabel(l1);
- mv.visitLineNumber(47, l1);
- mv.visitInsn(RETURN);
- Label l2 = new Label();
- mv.visitLabel(l2);
- mv.visitLocalVariable("this", "LgtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Energy_RTG;", null, l0, l2, 0);
- mv.visitLocalVariable("aName", "Ljava/lang/String;", null, l0, l2, 1);
- mv.visitLocalVariable("aTier", "I", null, l0, l2, 2);
- mv.visitLocalVariable("aSlots", "I", null, l0, l2, 3);
- mv.visitLocalVariable("aDescription", "[Ljava/lang/String;", null, l0, l2, 4);
- mv.visitLocalVariable("aTextures", "[[[Lgregtech/api/interfaces/ITexture;", null, l0, l2, 5);
- mv.visitMaxs(6, 6);
- mv.visitEnd();
- FMLRelaunchLog.log("[GT++ ASM] Gregtech Energy Hatch Patch", Level.INFO, "Injection new constructor "+(aConID++));
- }
-
-
- didInject = true;
- }
-
- FMLRelaunchLog.log("[GT++ ASM] Gregtech Energy Hatch Patch", Level.INFO, "Method injection complete. Successful? "+didInject);
- return didInject;
-
- }
-
- public final class localClassVisitor extends ClassVisitor {
-
- private final String mClassName;
-
- public localClassVisitor(ClassVisitor cv, String aClassName) {
- super(ASM5, cv);
- mClassName = aClassName;
- }
-
- @Override
- public MethodVisitor visitMethod(int access, String name, String desc, String signature, String[] exceptions) {
- MethodVisitor methodVisitor = null;
- if ((mClassName.equals(ClassesToTransform.GTPP_MTE_HATCH_RTG)) && access == ACC_PUBLIC && name.equals("<init>") && (desc.equals("(Ljava/lang/String;ILjava/lang/String;[[[Lgregtech/api/interfaces/ITexture;)V") || desc.equals("(Ljava/lang/String;I[Ljava/lang/String;[[[Lgregtech/api/interfaces/ITexture;)V"))) {
- FMLRelaunchLog.log("[GT++ ASM] Gregtech Energy Hatch Patch", Level.INFO, "Found Constructor, "+"'"+access+"', "+"'"+name+"', "+"'"+desc+"', "+"'"+signature+"'");
- methodVisitor = null;
- }
- else {
- methodVisitor = super.visitMethod(access, name, desc, signature, exceptions);
- }
- if (methodVisitor == null) {
- if (mClassName.equals(ClassesToTransform.GT_MTE_HATCH_ENERGY)){
- FMLRelaunchLog.log("[GT++ ASM] Gregtech Energy Hatch Patch", Level.INFO, "Removed method from "+mClassName);
- }
- else {
- FMLRelaunchLog.log("[GT++ ASM] Gregtech Energy Hatch Patch", Level.INFO, "Removed Constructor with descriptor '"+desc+"' from "+mClassName);
- }
- }
- return methodVisitor;
- }
- }
-
-
-}
diff --git a/src/main/java/gtPlusPlus/preloader/asm/transformers/Preloader_Transformer_Handler.java b/src/main/java/gtPlusPlus/preloader/asm/transformers/Preloader_Transformer_Handler.java
index 5cb2eef066..a8688e21ff 100644
--- a/src/main/java/gtPlusPlus/preloader/asm/transformers/Preloader_Transformer_Handler.java
+++ b/src/main/java/gtPlusPlus/preloader/asm/transformers/Preloader_Transformer_Handler.java
@@ -179,11 +179,6 @@ public class Preloader_Transformer_Handler implements IClassTransformer {
// Preloader_Logger.INFO("Gregtech Utilities Patch", "Transforming "+transformedName);
// return new ClassTransformer_GT_Utility(basicClass, transformedName).getWriter().toByteArray();
// }
- //Inject Custom constructors for RTG Hatches
- if (transformedName.equals(GT_MTE_HATCH_ENERGY) || transformedName.equals(GTPP_MTE_HATCH_RTG)) {
- Preloader_Logger.INFO("Gregtech RTG Patch", "Transforming " + transformedName);
- return new ClassTransformer_GT_EnergyHatchPatch(basicClass, transformedName).getWriter().toByteArray();
- }
//Try patch achievements
if (transformedName.equals(GT_ACHIEVEMENTS)) {
Preloader_Logger.INFO("Gregtech Achievements Patch", "Transforming " + transformedName);