aboutsummaryrefslogtreecommitdiff
path: root/src/Java/gtPlusPlus
diff options
context:
space:
mode:
authorAlkalus <draknyte1@hotmail.com>2017-11-05 21:23:22 +1000
committerAlkalus <draknyte1@hotmail.com>2017-11-05 21:23:22 +1000
commitf485128e790754aabe845daf251a8a0a0d4e8673 (patch)
treeba21321e705dc9d7606581e785b776ff30824fef /src/Java/gtPlusPlus
parent8daf2a88a44de1fe415ea704b1bfd983688b5348 (diff)
downloadGT5-Unofficial-f485128e790754aabe845daf251a8a0a0d4e8673.tar.gz
GT5-Unofficial-f485128e790754aabe845daf251a8a0a0d4e8673.tar.bz2
GT5-Unofficial-f485128e790754aabe845daf251a8a0a0d4e8673.zip
$ Hopefully fixed the ASM OreDict hack.
Diffstat (limited to 'src/Java/gtPlusPlus')
-rw-r--r--src/Java/gtPlusPlus/preloader/asm/Preloader_ClassTransformer.java28
1 files changed, 15 insertions, 13 deletions
diff --git a/src/Java/gtPlusPlus/preloader/asm/Preloader_ClassTransformer.java b/src/Java/gtPlusPlus/preloader/asm/Preloader_ClassTransformer.java
index 1d69cb04e7..c4ae8e5fa5 100644
--- a/src/Java/gtPlusPlus/preloader/asm/Preloader_ClassTransformer.java
+++ b/src/Java/gtPlusPlus/preloader/asm/Preloader_ClassTransformer.java
@@ -7,7 +7,6 @@ import java.io.File;
import org.apache.logging.log4j.Level;
import org.objectweb.asm.*;
-import cpw.mods.fml.common.event.FMLPreInitializationEvent;
import cpw.mods.fml.relauncher.FMLRelaunchLog;
import gtPlusPlus.core.util.Utils;
import gtPlusPlus.preloader.CORE_Preloader;
@@ -53,18 +52,11 @@ public class Preloader_ClassTransformer implements IClassTransformer {
MethodVisitor methodVisitor = super.visitMethod(access, name, desc, signature, exceptions);
if(name.equals("registerOreImpl") && desc.equals("(Ljava/lang/String;Lnet/minecraft/item/ItemStack;)V")) {
FMLRelaunchLog.log("[GT++ ASM] OreDictTransformer", Level.INFO, "Found target method.");
- return new RegisterOreImplVisitor(methodVisitor);
+ return new RegisterOreImplVisitor(methodVisitor, false);
}
else if(name.equals("registerOreImpl") && desc.equals("(Ljava/lang/String;Ladd;)V")) {
FMLRelaunchLog.log("[GT++ ASM] OreDictTransformer", Level.INFO, "Found target method. [Obfuscated]");
- return new RegisterOreImplVisitor(methodVisitor);
- }
- else {
- //FMLRelaunchLog.log("[GT++ ASM] OreDictTransformer", Level.INFO, "Dd not find target method.");
- //FMLRelaunchLog.log("[GT++ ASM] OreDictTransformer", Level.INFO, "Found: "+name);
- //FMLRelaunchLog.log("[GT++ ASM] OreDictTransformer", Level.INFO, ""+desc);
- //FMLRelaunchLog.log("[GT++ ASM] OreDictTransformer", Level.INFO, ""+signature);
- //FMLRelaunchLog.log("[GT++ ASM] OreDictTransformer", Level.INFO, ""+exceptions);
+ return new RegisterOreImplVisitor(methodVisitor, true);
}
return methodVisitor;
}
@@ -73,23 +65,33 @@ public class Preloader_ClassTransformer implements IClassTransformer {
private static final class RegisterOreImplVisitor extends MethodVisitor {
- public RegisterOreImplVisitor(MethodVisitor mv) {
+ private final boolean mObfuscated;
+
+ public RegisterOreImplVisitor(MethodVisitor mv, boolean obfuscated) {
super(ASM5, mv);
+ this.mObfuscated = obfuscated;
}
- @SuppressWarnings("deprecation")
@Override
public void visitCode() {
FMLRelaunchLog.log("[GT++ ASM] OreDictTransformer", Level.INFO, "Fixing Forge's poor attempt at an oreDictionary.");
super.visitCode();
super.visitVarInsn(ALOAD, 0);
super.visitVarInsn(ALOAD, 1);
+ if (!mObfuscated){
super.visitMethodInsn(INVOKESTATIC,
- //"gtPlusPlus/preloader/Preloader_GT_OreDict", "removeCircuit", "(Lnet/minecraft/item/ItemStack;)Z, false");
"gtPlusPlus/preloader/Preloader_GT_OreDict",
"shouldPreventRegistration",
"(Ljava/lang/String;Lnet/minecraft/item/ItemStack;)Z",
false);
+ }
+ else {
+ super.visitMethodInsn(INVOKESTATIC,
+ "gtPlusPlus/preloader/Preloader_GT_OreDict",
+ "shouldPreventRegistration",
+ "(Ljava/lang/String;Ladd;)Z",
+ false);
+ }
Label endLabel = new Label();
super.visitJumpInsn(IFEQ, endLabel);
super.visitInsn(RETURN);