aboutsummaryrefslogtreecommitdiff
path: root/src/Java/gtPlusPlus/preloader
diff options
context:
space:
mode:
authorAlkalus <3060479+draknyte1@users.noreply.github.com>2018-09-17 11:35:28 +1000
committerAlkalus <3060479+draknyte1@users.noreply.github.com>2018-09-17 11:35:28 +1000
commit1c241ce0c5dfd524dc387b74d1e8de44ff8a5cd8 (patch)
treeff1ce8a6a3f80ff983b4b4d7f28a88071192d60f /src/Java/gtPlusPlus/preloader
parentd97a7ac46781088de352c6998c18c9e91da0200d (diff)
downloadGT5-Unofficial-1c241ce0c5dfd524dc387b74d1e8de44ff8a5cd8.tar.gz
GT5-Unofficial-1c241ce0c5dfd524dc387b74d1e8de44ff8a5cd8.tar.bz2
GT5-Unofficial-1c241ce0c5dfd524dc387b74d1e8de44ff8a5cd8.zip
+ Added the Large Arc Furnace.
% Cleaned up Preloader_Transformer_Handler.java. % Tweaked DevHelper.java.
Diffstat (limited to 'src/Java/gtPlusPlus/preloader')
-rw-r--r--src/Java/gtPlusPlus/preloader/DevHelper.java34
-rw-r--r--src/Java/gtPlusPlus/preloader/asm/transformers/Preloader_Transformer_Handler.java111
2 files changed, 42 insertions, 103 deletions
diff --git a/src/Java/gtPlusPlus/preloader/DevHelper.java b/src/Java/gtPlusPlus/preloader/DevHelper.java
index 1bfbc0b6eb..9b90617c8e 100644
--- a/src/Java/gtPlusPlus/preloader/DevHelper.java
+++ b/src/Java/gtPlusPlus/preloader/DevHelper.java
@@ -48,12 +48,11 @@ public class DevHelper {
}
@SuppressWarnings("rawtypes")
- public Method getForgeMethod(Class c, String s, Class... varags) {
+ public static Method getForgeMethod(Class c, String s, Class... varags) {
String s1, s2;
Method a, b;
s1 = s;
- s2 = getSRG(s);
-
+ s2 = getSRG(s);
try {
a = ReflectionUtils.getMethod(c, s1, varags);
if (a != null) {
@@ -101,7 +100,7 @@ public class DevHelper {
- public static synchronized final DevHelper getInstance() {
+ private static synchronized final DevHelper getInstance() {
return mInstance;
}
@@ -109,20 +108,31 @@ public class DevHelper {
return mIsValidHelper;
}
- public String getSRG(String mForgeName) {
- return DevHelperInternals.forgeToSrg.get(mForgeName);
+ public static String getSRG(String mForgeName) {
+ String aSRG = DevHelperInternals.forgeToSrg.get(mForgeName);
+ return aSRG != null ? aSRG : "BAD_SRG_NAME";
}
- public String getForge(String mSrgName) {
- return DevHelperInternals.srgToForge.get(mSrgName);
+ public static String getForge(String mSrgName) {
+ String aForgeName = DevHelperInternals.srgToForge.get(mSrgName);
+ return aForgeName != null ? aForgeName : "BAD_FORGE_NAME";
+ }
+
+ public static String getMinecraftClassName(String adeObName, boolean obfuscated) {
+ if (obfuscated) {
+ return getObfuscated(adeObName);
+ }
+ return adeObName;
}
- public String getObfuscated(String mDeob) {
- return DevHelperInternals.deObToOb.get(mDeob);
+ public static String getObfuscated(String mDeob) {
+ String obfuscatedClassname = DevHelperInternals.deObToOb.get(mDeob);
+ return obfuscatedClassname != null ? obfuscatedClassname : "BAD_OBFUSCATED_CLASS_NAME";
}
- public String getDeobfuscated(String mOb) {
- return DevHelperInternals.obToDeOb.get(mOb);
+ public static String getDeobfuscated(String mOb) {
+ String deobfuscatedClassname = DevHelperInternals.obToDeOb.get(mOb);
+ return deobfuscatedClassname != null ? deobfuscatedClassname : "BAD_DEOBFUSCATED_CLASS_NAME";
}
public static class DevHelperInternals {
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 525db7e961..ea08c07f48 100644
--- a/src/Java/gtPlusPlus/preloader/asm/transformers/Preloader_Transformer_Handler.java
+++ b/src/Java/gtPlusPlus/preloader/asm/transformers/Preloader_Transformer_Handler.java
@@ -59,18 +59,12 @@ public class Preloader_Transformer_Handler implements IClassTransformer {
}
// Fix Tinkers Fluids
- if (findMod("TConstruct")) {
if (transformedName.equals("tconstruct.smeltery.blocks.TConstructFluid")) {
FMLRelaunchLog.log("[GT++ ASM] Bright Fluids", Level.INFO, "Transforming %s", transformedName);
return new ClassTransformer_TiConFluids("getLightValue", obfuscated, basicClass).getWriter().toByteArray();
}
- }
- else {
- FMLRelaunchLog.log("[GT++ ASM] Bright Fluids", Level.INFO, "TiCon Bright Fluids ASM not loaded.");
- }
//Fix GC stuff
- if (findMod("GalacticraftCore")) {
if (transformedName.equals("micdoodle8.mods.galacticraft.core.util.FluidUtil")) {
FMLRelaunchLog.log("[GT++ ASM] Galacticraft FluidUtils Patch", Level.INFO, "Transforming %s", transformedName);
return new ClassTransformer_GC_FluidUtil(basicClass).getWriter().toByteArray();
@@ -79,13 +73,25 @@ public class Preloader_Transformer_Handler implements IClassTransformer {
FMLRelaunchLog.log("[GT++ ASM] Galacticraft Fuel_Loader Patch", Level.INFO, "Transforming %s", transformedName);
return new ClassTransformer_GC_FuelLoader(basicClass).getWriter().toByteArray();
}
- }
- else {
- FMLRelaunchLog.log("[GT++ ASM] GC Fuel Patch", Level.INFO, "GC Fuel Loader ASM not loaded.");
- }
-
- //Improve OB Sprinklers
- if (findMod("OpenBlocks-1.7.10")) {
+
+
+ if (mEnabled) {
+ if (transformedName.equals("gregtech.api.metatileentity.BaseMetaTileEntity")) {
+ FMLRelaunchLog.log("[GT++ ASM] NBTFixer", Level.INFO, "Transforming %s", transformedName);
+ ClassWriter classWriter = new ClassWriter(ClassWriter.COMPUTE_FRAMES);
+ ClassReader x = new ClassReader(basicClass);
+ x.accept(new GT_MetaTile_Visitor(classWriter, false), ClassReader.EXPAND_FRAMES);
+ return classWriter.toByteArray();
+ }
+ if (transformedName.equals("gregtech.common.blocks.GT_Block_Machines")) {
+ FMLRelaunchLog.log("[GT++ ASM] NBTFixer", Level.INFO, "Transforming %s", transformedName);
+ ClassWriter classWriter = new ClassWriter(ClassWriter.COMPUTE_FRAMES);
+ ClassReader x = new ClassReader(basicClass);
+ x.accept(new GT_MetaTile_Visitor(classWriter, true), ClassReader.EXPAND_FRAMES);
+ return classWriter.toByteArray();
+ }
+
+ //Improve OB Sprinklers
if (transformedName.equals("openblocks.common.tileentity.TileEntitySprinkler")) {
FMLRelaunchLog.log("[GT++ ASM] OpenBlocks Sprinkler Patch", Level.INFO, "Transforming %s", transformedName);
/*try {
@@ -109,86 +115,9 @@ public class Preloader_Transformer_Handler implements IClassTransformer {
e.printStackTrace();
}*/
return new ClassTransformer_OB_Sprinkler(obfuscated, basicClass).getWriter().toByteArray();
- }
- }
- else {
- FMLRelaunchLog.log("[GT++ ASM] OpenBlocks Sprinkler Patch", Level.INFO, "OpenBlocks Sprinkler ASM not loaded.");
- }
-
- if (mEnabled) {
- if (transformedName.equals("gregtech.api.metatileentity.BaseMetaTileEntity")) {
- FMLRelaunchLog.log("[GT++ ASM] NBTFixer", Level.INFO, "Transforming %s", transformedName);
- ClassWriter classWriter = new ClassWriter(ClassWriter.COMPUTE_FRAMES);
- ClassReader x = new ClassReader(basicClass);
- x.accept(new GT_MetaTile_Visitor(classWriter, false), ClassReader.EXPAND_FRAMES);
- return classWriter.toByteArray();
- }
- if (transformedName.equals("gregtech.common.blocks.GT_Block_Machines")) {
- FMLRelaunchLog.log("[GT++ ASM] NBTFixer", Level.INFO, "Transforming %s", transformedName);
- ClassWriter classWriter = new ClassWriter(ClassWriter.COMPUTE_FRAMES);
- ClassReader x = new ClassReader(basicClass);
- x.accept(new GT_MetaTile_Visitor(classWriter, true), ClassReader.EXPAND_FRAMES);
- return classWriter.toByteArray();
}
}
return basicClass;
}
-
- public static boolean findMod(final String aModName) {
-
- /*File mMods = new File(Launch.minecraftHome, "mods");
- if (mMods.isDirectory()) {
- for (File modFile : mMods.listFiles()) {
- if (modFile != null && modFile.getName().toLowerCase().contains(aModName.toLowerCase())) {
- FMLRelaunchLog.log("[GT++ ASM]", Level.INFO, "Found "+aModName);
- return true;
- }
- else {
- //FMLRelaunchLog.log("[GT++ ASM]", Level.INFO, "Found mod: "+modFile.getName());
- }
- }
- } */
- boolean exists = true;
- return exists;
- }
-
- public byte[] toByteArray(String aClassName) throws IOException {
- return Launch.classLoader.getClassBytes(aClassName);
- }
-
- public static class GetBytecode implements ClassFileTransformer {
- private static Instrumentation inst;
-
- public static synchronized void agentmain(String args, Instrumentation inst) {
- GetBytecode.inst = inst;
- }
-
- public static synchronized void premain(String args, Instrumentation inst) {
- GetBytecode.inst = inst;
- }
-
- public static synchronized byte[] getClassFile(Class cls) throws UnmodifiableClassException {
- Instrumentation inst = GetBytecode.inst;
- if (inst == null) {
- throw new IllegalStateException("Agent has not been loaded");
- }
-
- GetBytecode transformer = new GetBytecode();
- inst.addTransformer(transformer, true);
- inst.retransformClasses(cls);
- inst.removeTransformer(transformer);
- return transformer.classFile;
- }
-
- private byte[] classFile;
-
- @Override
- public byte[] transform(ClassLoader loader, String className, Class<?> classBeingRedefined,
- ProtectionDomain pd, byte[] classFile) throws IllegalClassFormatException {
- if (classBeingRedefined != null) {
- this.classFile = classFile;
- }
- return null;
- }
- }
+
}