aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlkalus <3060479+draknyte1@users.noreply.github.com>2019-03-04 23:42:57 +0000
committerAlkalus <3060479+draknyte1@users.noreply.github.com>2019-03-04 23:42:57 +0000
commit2ed346ae95241029f999ec4caa387fca102896c0 (patch)
treec7f10053c53d634ea4c45074afccc941c8c651d2
parent0e8070f3eb5149c7223049f93b4df86adb63ea57 (diff)
downloadGT5-Unofficial-2ed346ae95241029f999ec4caa387fca102896c0.tar.gz
GT5-Unofficial-2ed346ae95241029f999ec4caa387fca102896c0.tar.bz2
GT5-Unofficial-2ed346ae95241029f999ec4caa387fca102896c0.zip
$ More minor ASM Fixes/Cleanup.
% Cleaned up some logging.
-rw-r--r--src/Java/gtPlusPlus/plugin/fixes/vanilla/Core_VanillaFixes.java2
-rw-r--r--src/Java/gtPlusPlus/plugin/fixes/vanilla/VanillaBedHeightFix.java15
-rw-r--r--src/Java/gtPlusPlus/preloader/DevHelper.java2
-rw-r--r--src/Java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_COFH_OreDictionaryArbiter.java28
-rw-r--r--src/Java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_IC2_GetHarvestTool.java6
-rw-r--r--src/Java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_TC_ItemWispEssence.java2
-rw-r--r--src/Java/gtPlusPlus/preloader/asm/transformers/Preloader_Transformer_Handler.java4
7 files changed, 36 insertions, 23 deletions
diff --git a/src/Java/gtPlusPlus/plugin/fixes/vanilla/Core_VanillaFixes.java b/src/Java/gtPlusPlus/plugin/fixes/vanilla/Core_VanillaFixes.java
index 8e7b73ccdf..f6af6e6e5f 100644
--- a/src/Java/gtPlusPlus/plugin/fixes/vanilla/Core_VanillaFixes.java
+++ b/src/Java/gtPlusPlus/plugin/fixes/vanilla/Core_VanillaFixes.java
@@ -10,7 +10,7 @@ public class Core_VanillaFixes implements IPlugin {
static {
mInstance = new Core_VanillaFixes();
- mBedFixInstance = new VanillaBedHeightFix();
+ mBedFixInstance = new VanillaBedHeightFix(mInstance);
mInstance.log("Preparing "+mInstance.getPluginName()+" for use.");
}
diff --git a/src/Java/gtPlusPlus/plugin/fixes/vanilla/VanillaBedHeightFix.java b/src/Java/gtPlusPlus/plugin/fixes/vanilla/VanillaBedHeightFix.java
index 4a0c8d3d6c..25be6679ed 100644
--- a/src/Java/gtPlusPlus/plugin/fixes/vanilla/VanillaBedHeightFix.java
+++ b/src/Java/gtPlusPlus/plugin/fixes/vanilla/VanillaBedHeightFix.java
@@ -5,6 +5,7 @@ import java.lang.reflect.Method;
import cpw.mods.fml.common.eventhandler.EventPriority;
import cpw.mods.fml.common.eventhandler.SubscribeEvent;
+import gtPlusPlus.api.interfaces.IPlugin;
import gtPlusPlus.api.objects.Logger;
import gtPlusPlus.core.util.Utils;
import gtPlusPlus.core.util.reflect.ReflectionUtils;
@@ -16,15 +17,21 @@ import net.minecraftforge.event.entity.player.PlayerSleepInBedEvent;
public class VanillaBedHeightFix implements IBugFix {
private final Method mSleepInBedAt;
+ private final IPlugin mParent;
- public VanillaBedHeightFix() {
- if (DevHelper.isValidHelperObject()) {
- Method m = ReflectionUtils.getMethod(EntityPlayer.class, "sleepInBedAt", int.class, int.class, int.class);
- if (m == null) {
+ public VanillaBedHeightFix(IPlugin minstance) {
+ mParent = minstance;
+ if (DevHelper.isValidHelperObject()) {
+ Method m;
+ if (DevHelper.IsObfuscatedEnvironment()) {
m = ReflectionUtils.getMethod(EntityPlayer.class, "func_71018_a", int.class, int.class, int.class);
+ }
+ else {
+ m = ReflectionUtils.getMethod(net.minecraft.entity.player.EntityPlayer.class, "sleepInBedAt", int.class, int.class, int.class);
}
if (m != null) {
mSleepInBedAt = m;
+ mParent.log("Registering Bed Heigh Fix.");
Utils.registerEvent(this);
} else {
mSleepInBedAt = null;
diff --git a/src/Java/gtPlusPlus/preloader/DevHelper.java b/src/Java/gtPlusPlus/preloader/DevHelper.java
index 320cbe610a..d942de503a 100644
--- a/src/Java/gtPlusPlus/preloader/DevHelper.java
+++ b/src/Java/gtPlusPlus/preloader/DevHelper.java
@@ -32,7 +32,7 @@ public class DevHelper {
- public boolean IsObfuscatedEnvironment() {
+ public static boolean IsObfuscatedEnvironment() {
// Are we in a 'decompiled' environment?
boolean deobfuscatedEnvironment = false;
byte[] bs;
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 50ba79bfe0..6f08dc4ff5 100644
--- a/src/Java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_COFH_OreDictionaryArbiter.java
+++ b/src/Java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_COFH_OreDictionaryArbiter.java
@@ -1,8 +1,12 @@
package gtPlusPlus.preloader.asm.transformers;
-import static org.objectweb.asm.Opcodes.*;
+import static org.objectweb.asm.Opcodes.ACC_PUBLIC;
+import static org.objectweb.asm.Opcodes.ACC_STATIC;
+import static org.objectweb.asm.Opcodes.ALOAD;
+import static org.objectweb.asm.Opcodes.ASM5;
+import static org.objectweb.asm.Opcodes.INVOKESTATIC;
+import static org.objectweb.asm.Opcodes.RETURN;
-import java.io.IOException;
import java.util.ArrayList;
import org.apache.logging.log4j.Level;
@@ -34,16 +38,11 @@ public class ClassTransformer_COFH_OreDictionaryArbiter {
private final boolean isValid;
private final ClassReader reader;
- private final ClassWriter writer;
- private final boolean isObfuscated;
+ private final ClassWriter writer;
- public ClassTransformer_COFH_OreDictionaryArbiter(byte[] basicClass, boolean obfuscated) {
-
+ public ClassTransformer_COFH_OreDictionaryArbiter(byte[] basicClass) {
ClassReader aTempReader = null;
- ClassWriter aTempWriter = null;
-
- isObfuscated = obfuscated;
-
+ ClassWriter aTempWriter = null;
aTempReader = new ClassReader(basicClass);
aTempWriter = new ClassWriter(aTempReader, ClassWriter.COMPUTE_FRAMES);
aTempReader.accept(new localClassVisitor(aTempWriter), 0);
@@ -75,7 +74,14 @@ public class ClassTransformer_COFH_OreDictionaryArbiter {
return writer;
}
- public void injectMethod(String aMethodName) {
+ public void injectMethod(String aMethodName) {
+
+ boolean isObfuscated;
+ try {
+ isObfuscated = Class.forName("net.minecraft.item.ItemStack") != null ? false : true;
+ } catch (ClassNotFoundException e) {
+ isObfuscated = true;
+ }
String aItemStack = isObfuscated ? DevHelper.getObfuscated("net/minecraft/item/ItemStack") : "net/minecraft/item/ItemStack";
MethodVisitor mv;
if (aMethodName.equals("registerOreDictionaryEntry")) {
diff --git a/src/Java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_IC2_GetHarvestTool.java b/src/Java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_IC2_GetHarvestTool.java
index 7c3d376de8..6aad6831cb 100644
--- a/src/Java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_IC2_GetHarvestTool.java
+++ b/src/Java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_IC2_GetHarvestTool.java
@@ -46,7 +46,7 @@ public class ClassTransformer_IC2_GetHarvestTool {
aName_damageDropped = obfuscated ? "func_149692_a" : "damageDropped";
FMLRelaunchLog.log("[GT++ ASM] IC2 getHarvestTool Patch", Level.INFO,
- "Attempting to patch in mode " + className + ".");
+ "Attempting to patch in mode " + className + ". Obfuscated? "+obfuscated);
aTempReader = new ClassReader(basicClass);
aTempWriter = new ClassWriter(aTempReader, ClassWriter.COMPUTE_FRAMES);
@@ -128,7 +128,7 @@ public class ClassTransformer_IC2_GetHarvestTool {
mv.visitVarInsn(ILOAD, 1);
mv.visitVarInsn(ALOAD, 2);
mv.visitVarInsn(ILOAD, 3);
- mv.visitMethodInsn(INVOKESTATIC, "gtPlusPlus/preloader/asm/transformers/ClassTransformer_IC2_GetHarvestTool", aName_getItemDropped, "(Lnet/minecraft/block/Block;ILjava/util/Random;I)Lnet/minecraft/item/Item;", false);
+ mv.visitMethodInsn(INVOKESTATIC, "gtPlusPlus/preloader/asm/transformers/ClassTransformer_IC2_GetHarvestTool", "getItemDropped", "(Lnet/minecraft/block/Block;ILjava/util/Random;I)Lnet/minecraft/item/Item;", false);
mv.visitInsn(ARETURN);
Label l1 = new Label();
mv.visitLabel(l1);
@@ -147,7 +147,7 @@ public class ClassTransformer_IC2_GetHarvestTool {
mv.visitLabel(l0);
mv.visitLineNumber(48, l0);
mv.visitVarInsn(ILOAD, 1);
- mv.visitMethodInsn(INVOKESTATIC, "gtPlusPlus/preloader/asm/transformers/ClassTransformer_IC2_GetHarvestTool", aName_damageDropped, "(I)I", false);
+ mv.visitMethodInsn(INVOKESTATIC, "gtPlusPlus/preloader/asm/transformers/ClassTransformer_IC2_GetHarvestTool", "damageDropped", "(I)I", false);
mv.visitInsn(IRETURN);
Label l1 = new Label();
mv.visitLabel(l1);
diff --git a/src/Java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_TC_ItemWispEssence.java b/src/Java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_TC_ItemWispEssence.java
index 5c8547e3d6..656df066ea 100644
--- a/src/Java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_TC_ItemWispEssence.java
+++ b/src/Java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_TC_ItemWispEssence.java
@@ -63,7 +63,7 @@ public class ClassTransformer_TC_ItemWispEssence {
boolean didInject = false;
FMLRelaunchLog.log("[GT++ ASM] Thaumcraft WispEssence_Patch", Level.INFO, "Injecting " + aMethodName + ".");
- String aGetColour = obfuscated ? DevHelper.getSRG("getColorFromItemStack") : DevHelper.getForge("getColorFromItemStack");
+ String aGetColour = obfuscated ? "func_82790_a" : "getColorFromItemStack";
if (aMethodName.equals("getAspects")) {
mv = cw.visitMethod(ACC_PUBLIC, "getAspects", "(Lnet/minecraft/item/ItemStack;)Lthaumcraft/api/aspects/AspectList;", null, null);
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 d3b59c753d..81302a59d4 100644
--- a/src/Java/gtPlusPlus/preloader/asm/transformers/Preloader_Transformer_Handler.java
+++ b/src/Java/gtPlusPlus/preloader/asm/transformers/Preloader_Transformer_Handler.java
@@ -81,13 +81,13 @@ public class Preloader_Transformer_Handler implements IClassTransformer {
// Fix the OreDictionary COFH
if (transformedName.equals("cofh.core.util.oredict.OreDictionaryArbiter") && (mConfig.enableCofhPatch || !obfuscated)) {
FMLRelaunchLog.log("[GT++ ASM] COFH", Level.INFO, "Transforming %s", transformedName);
- return new ClassTransformer_COFH_OreDictionaryArbiter(basicClass, probablyShouldBeFalse).getWriter().toByteArray();
+ return new ClassTransformer_COFH_OreDictionaryArbiter(basicClass).getWriter().toByteArray();
}
// Fix Tinkers Fluids
if (transformedName.equals("tconstruct.smeltery.blocks.TConstructFluid") && mConfig.enableTiConFluidLighting) {
FMLRelaunchLog.log("[GT++ ASM] Bright Fluids", Level.INFO, "Transforming %s", transformedName);
- return new ClassTransformer_TiConFluids("getLightValue", probablyShouldBeFalse, basicClass).getWriter().toByteArray();
+ return new ClassTransformer_TiConFluids("getLightValue", obfuscated, basicClass).getWriter().toByteArray();
}
//Fix RC stuff