aboutsummaryrefslogtreecommitdiff
path: root/src/Java/gtPlusPlus
diff options
context:
space:
mode:
Diffstat (limited to 'src/Java/gtPlusPlus')
-rw-r--r--src/Java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_GT_BusPatch.java35
1 files changed, 30 insertions, 5 deletions
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 9e793e8392..4394aa0f04 100644
--- a/src/Java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_GT_BusPatch.java
+++ b/src/Java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_GT_BusPatch.java
@@ -32,7 +32,7 @@ public class ClassTransformer_GT_BusPatch {
aTempReader = new ClassReader(basicClass);
aTempWriter = new ClassWriter(aTempReader, ClassWriter.COMPUTE_FRAMES);
- aTempReader.accept(new localClassVisitor(aTempWriter), 0);
+ aTempReader.accept(new localClassVisitor(aTempWriter, aClassName), 0);
if (aTempReader != null && aTempWriter != null) {
isValid = true;
@@ -70,6 +70,7 @@ public class ClassTransformer_GT_BusPatch {
boolean didInject = false;
MethodVisitor mv;
ClassWriter cw = getWriter();
+ int aConID = 1;
//GT_MetaTileEntity_Hatch_InputBus
//Constructor
@@ -145,6 +146,7 @@ public class ClassTransformer_GT_BusPatch {
mv.visitLocalVariable("aSlots", "I", null, l0, l6, 5);
mv.visitMaxs(12, 6);
mv.visitEnd();
+ FMLRelaunchLog.log("[GT++ ASM] Gregtech Bus Patch", Level.INFO, "Injection new constructor "+(aConID++));
}
//Constructor 2
@@ -181,6 +183,7 @@ public class ClassTransformer_GT_BusPatch {
mv.visitLocalVariable("aTextures", "[[[Lgregtech/api/interfaces/ITexture;", null, l0, l3, 5);
mv.visitMaxs(6, 6);
mv.visitEnd();
+ FMLRelaunchLog.log("[GT++ ASM] Gregtech Bus Patch", Level.INFO, "Injection new constructor "+(aConID++));
}
//Third constructor with String[] for GT 5.09
@@ -217,6 +220,7 @@ public class ClassTransformer_GT_BusPatch {
mv.visitLocalVariable("aTextures", "[[[Lgregtech/api/interfaces/ITexture;", null, l0, l3, 5);
mv.visitMaxs(6, 6);
mv.visitEnd();
+ FMLRelaunchLog.log("[GT++ ASM] Gregtech Bus Patch", Level.INFO, "Injection new constructor "+(aConID++));
}
@@ -291,7 +295,8 @@ public class ClassTransformer_GT_BusPatch {
mv.visitLocalVariable("aTier", "I", null, l0, l5, 4);
mv.visitLocalVariable("aSlots", "I", null, l0, l5, 5);
mv.visitMaxs(12, 6);
- mv.visitEnd();
+ mv.visitEnd();
+ FMLRelaunchLog.log("[GT++ ASM] Gregtech Bus 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);
@@ -320,6 +325,7 @@ public class ClassTransformer_GT_BusPatch {
mv.visitLocalVariable("aTextures", "[[[Lgregtech/api/interfaces/ITexture;", null, l0, l2, 5);
mv.visitMaxs(6, 6);
mv.visitEnd();
+ FMLRelaunchLog.log("[GT++ ASM] Gregtech Bus 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);
@@ -348,6 +354,7 @@ public class ClassTransformer_GT_BusPatch {
mv.visitLocalVariable("aTextures", "[[[Lgregtech/api/interfaces/ITexture;", null, l0, l2, 5);
mv.visitMaxs(6, 6);
mv.visitEnd();
+ FMLRelaunchLog.log("[GT++ ASM] Gregtech Bus Patch", Level.INFO, "Injection new constructor "+(aConID++));
}
didInject = true;
@@ -390,6 +397,7 @@ public class ClassTransformer_GT_BusPatch {
mv.visitLocalVariable("aSlots", "I", null, l0, l3, 5);
mv.visitMaxs(5, 6);
mv.visitEnd();
+ FMLRelaunchLog.log("[GT++ ASM] Gregtech Bus Patch", Level.INFO, "Injection new constructor "+(aConID++));
}
{
mv = cw.visitMethod(ACC_PUBLIC, "<init>", "(Ljava/lang/String;ILjava/lang/String;[[[Lgregtech/api/interfaces/ITexture;)V", null, null);
@@ -424,6 +432,7 @@ public class ClassTransformer_GT_BusPatch {
mv.visitLocalVariable("aTextures", "[[[Lgregtech/api/interfaces/ITexture;", null, l0, l3, 4);
mv.visitMaxs(6, 5);
mv.visitEnd();
+ FMLRelaunchLog.log("[GT++ ASM] Gregtech Bus Patch", Level.INFO, "Injection new constructor "+(aConID++));
}
{
mv = cw.visitMethod(ACC_PUBLIC, "<init>", "(Ljava/lang/String;I[Ljava/lang/String;[[[Lgregtech/api/interfaces/ITexture;)V", null, null);
@@ -460,6 +469,7 @@ public class ClassTransformer_GT_BusPatch {
mv.visitLocalVariable("aTextures", "[[[Lgregtech/api/interfaces/ITexture;", null, l0, l3, 4);
mv.visitMaxs(6, 5);
mv.visitEnd();
+ FMLRelaunchLog.log("[GT++ ASM] Gregtech Bus Patch", Level.INFO, "Injection new constructor "+(aConID++));
}
@@ -503,6 +513,7 @@ public class ClassTransformer_GT_BusPatch {
mv.visitLocalVariable("aSlots", "I", null, l0, l3, 5);
mv.visitMaxs(5, 6);
mv.visitEnd();
+ FMLRelaunchLog.log("[GT++ ASM] Gregtech Bus Patch", Level.INFO, "Injection new constructor "+(aConID++));
}
{
mv = cw.visitMethod(ACC_PUBLIC, "<init>", "(Ljava/lang/String;ILjava/lang/String;[[[Lgregtech/api/interfaces/ITexture;)V", null, null);
@@ -537,6 +548,7 @@ public class ClassTransformer_GT_BusPatch {
mv.visitLocalVariable("aTextures", "[[[Lgregtech/api/interfaces/ITexture;", null, l0, l3, 4);
mv.visitMaxs(6, 5);
mv.visitEnd();
+ FMLRelaunchLog.log("[GT++ ASM] Gregtech Bus Patch", Level.INFO, "Injection new constructor "+(aConID++));
}
{
mv = cw.visitMethod(ACC_PUBLIC, "<init>", "(Ljava/lang/String;I[Ljava/lang/String;[[[Lgregtech/api/interfaces/ITexture;)V", null, null);
@@ -573,6 +585,7 @@ public class ClassTransformer_GT_BusPatch {
mv.visitLocalVariable("aTextures", "[[[Lgregtech/api/interfaces/ITexture;", null, l0, l3, 4);
mv.visitMaxs(6, 5);
mv.visitEnd();
+ FMLRelaunchLog.log("[GT++ ASM] Gregtech Bus Patch", Level.INFO, "Injection new constructor "+(aConID++));
}
didInject = true;
@@ -580,7 +593,7 @@ public class ClassTransformer_GT_BusPatch {
- FMLRelaunchLog.log("[GT++ ASM] Gregtech Bus Patch", Level.INFO, "Method injection complete.");
+ FMLRelaunchLog.log("[GT++ ASM] Gregtech Bus Patch", Level.INFO, "Method injection complete. Successful? "+didInject);
return didInject;
@@ -589,14 +602,26 @@ public class ClassTransformer_GT_BusPatch {
public final class localClassVisitor extends ClassVisitor {
- public localClassVisitor(ClassVisitor cv) {
+ 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;
- methodVisitor = super.visitMethod(access, name, desc, signature, exceptions);
+ if ((mClassName.equals(aSuperInput) || mClassName.equals(aSuperOutput)) && 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 Bus Patch", Level.INFO, "Found Constructor, "+"'"+access+"', "+"'"+name+"', "+"'"+desc+"', "+"'"+signature+"'");
+ methodVisitor = null;
+ }
+ else {
+ methodVisitor = super.visitMethod(access, name, desc, signature, exceptions);
+ }
+ if (methodVisitor == null) {
+ FMLRelaunchLog.log("[GT++ ASM] Gregtech Bus Patch", Level.INFO, "Removed Constructor with descriptor '"+desc+"' from "+mClassName);
+ }
return methodVisitor;
}
}