aboutsummaryrefslogtreecommitdiff
path: root/src/Java/gtPlusPlus/preloader/asm
diff options
context:
space:
mode:
authorAlkalus <3060479+draknyte1@users.noreply.github.com>2018-10-26 04:25:46 +0100
committerAlkalus <3060479+draknyte1@users.noreply.github.com>2018-10-26 04:25:46 +0100
commite9dbe58c39b56d562bcdc17b1100a7c26ce7c10e (patch)
treebf5f67798e71596a17cbaf624e55e11036446378 /src/Java/gtPlusPlus/preloader/asm
parent4a6c41795cca07bd68c6e26852b357ee648168e6 (diff)
downloadGT5-Unofficial-e9dbe58c39b56d562bcdc17b1100a7c26ce7c10e.tar.gz
GT5-Unofficial-e9dbe58c39b56d562bcdc17b1100a7c26ce7c10e.tar.bz2
GT5-Unofficial-e9dbe58c39b56d562bcdc17b1100a7c26ce7c10e.zip
$ Fixed DevHelper.java.
$ Fixed ASM not working outside of Dev. $ Fixed Thermal Centrifuge recipes generated for custom ores.
Diffstat (limited to 'src/Java/gtPlusPlus/preloader/asm')
-rw-r--r--src/Java/gtPlusPlus/preloader/asm/AsmConfig.java12
-rw-r--r--src/Java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_COFH_OreDictionaryArbiter.java14
-rw-r--r--src/Java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_Forge_ChunkLoading.java11
-rw-r--r--src/Java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_GC_EntityAutoRocket.java14
-rw-r--r--src/Java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_GC_FluidUtil.java11
-rw-r--r--src/Java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_GC_FuelLoader.java14
-rw-r--r--src/Java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_GT_BlockMachines_NBT.java21
-rw-r--r--src/Java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_GT_ItemMachines_Tooltip.java11
-rw-r--r--src/Java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_TiConFluids.java12
-rw-r--r--src/Java/gtPlusPlus/preloader/asm/transformers/Preloader_Transformer_Handler.java6
10 files changed, 76 insertions, 50 deletions
diff --git a/src/Java/gtPlusPlus/preloader/asm/AsmConfig.java b/src/Java/gtPlusPlus/preloader/asm/AsmConfig.java
index fe77420803..884d2a47fe 100644
--- a/src/Java/gtPlusPlus/preloader/asm/AsmConfig.java
+++ b/src/Java/gtPlusPlus/preloader/asm/AsmConfig.java
@@ -16,6 +16,7 @@ public class AsmConfig {
public static boolean enableGtTooltipFix;
public static boolean enableGtNbtFix;
public static boolean enableChunkDebugging;
+ public static boolean enableCofhPatch;
public AsmConfig(File file) {
if (!loaded) {
@@ -40,7 +41,7 @@ public class AsmConfig {
prop = config.get("debug", "enableChunkDebugging", false);
prop.comment = "Enable/Disable Chunk Debugging Features, Must Be enabled on Client and Server.";
prop.setLanguageKey("gtpp.enableChunkDebugging").setRequiresMcRestart(true);
- enableChunkDebugging = prop.getBoolean(true);
+ enableChunkDebugging = prop.getBoolean(false);
propOrderDebug.add(prop.getName());
prop = config.get("debug", "enableGtNbtFix", true);
@@ -49,6 +50,14 @@ public class AsmConfig {
enableGtNbtFix = prop.getBoolean(true);
propOrderDebug.add(prop.getName());
+ prop = config.get("debug", "enableCofhPatch", false);
+ prop.comment = "Enable/Disable COFH OreDictionaryArbiter Patch (Useful for Development)";
+ prop.setLanguageKey("gtpp.enableCofhPatch").setRequiresMcRestart(true);
+ enableCofhPatch = prop.getBoolean(false);
+ propOrderDebug.add(prop.getName());
+
+
+
//General Features
prop = config.get("general", "enableTiConFluidLighting", true);
@@ -74,6 +83,7 @@ public class AsmConfig {
FMLLog.log(Level.INFO, "[GT++ ASM] Gt Nbt Fix - Enabled: "+enableGtNbtFix, new Object[0]);
FMLLog.log(Level.INFO, "[GT++ ASM] TiCon Fluid Lighting - Enabled: "+enableTiConFluidLighting, new Object[0]);
FMLLog.log(Level.INFO, "[GT++ ASM] Gt Tooltip Fix - Enabled: "+enableGtTooltipFix, new Object[0]);
+ FMLLog.log(Level.INFO, "[GT++ ASM] COFH Patch - Enabled: "+enableCofhPatch, new Object[0]);
} catch (Exception var3) {
FMLLog.log(Level.ERROR, var3, "GT++ ASM had a problem loading it's config", new Object[0]);
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();
}