aboutsummaryrefslogtreecommitdiff
path: root/src/Java/gtPlusPlus
diff options
context:
space:
mode:
Diffstat (limited to 'src/Java/gtPlusPlus')
-rw-r--r--src/Java/gtPlusPlus/preloader/DevHelper.java23
-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
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_Ore.java7
12 files changed, 100 insertions, 56 deletions
diff --git a/src/Java/gtPlusPlus/preloader/DevHelper.java b/src/Java/gtPlusPlus/preloader/DevHelper.java
index 9b90617c8e..320cbe610a 100644
--- a/src/Java/gtPlusPlus/preloader/DevHelper.java
+++ b/src/Java/gtPlusPlus/preloader/DevHelper.java
@@ -5,6 +5,7 @@ import java.lang.reflect.Method;
import java.util.HashMap;
import java.util.Map;
+import gtPlusPlus.api.objects.Logger;
import gtPlusPlus.api.objects.data.Pair;
import gtPlusPlus.api.objects.data.weakref.WeakAutoMap;
import gtPlusPlus.core.util.reflect.ReflectionUtils;
@@ -13,7 +14,7 @@ import net.minecraft.launchwrapper.Launch;
public class DevHelper {
private static final DevHelper mInstance;
- private static final boolean mIsValidHelper;
+ public static final boolean mIsValidHelper;
static {
mInstance = new DevHelper();
@@ -127,7 +128,11 @@ public class DevHelper {
public static String getObfuscated(String mDeob) {
String obfuscatedClassname = DevHelperInternals.deObToOb.get(mDeob);
- return obfuscatedClassname != null ? obfuscatedClassname : "BAD_OBFUSCATED_CLASS_NAME";
+ obfuscatedClassname = obfuscatedClassname != null ? obfuscatedClassname : "BAD_OBFUSCATED_CLASS_NAME";
+ if (obfuscatedClassname.equals("BAD_OBFUSCATED_CLASS_NAME")) {
+ Logger.INFO("[Fix] Failed to Get Deobfuscated name for "+mDeob);
+ }
+ return obfuscatedClassname;
}
public static String getDeobfuscated(String mOb) {
@@ -148,7 +153,8 @@ public class DevHelper {
private static boolean init() {
init1();
init2();
- init3();
+ init3();
+ init4();
if (mInitMap.size() > 0) {
for (Pair<String, String> p : mInitMap) {
if (p != null) {
@@ -166,10 +172,17 @@ public class DevHelper {
String ob = p.getKey();
String deOb = p.getValue();
obToDeOb.put(ob, deOb);
- deObToOb.put(deOb, ob);
+ deObToOb.put(deOb, ob);
}
}
}
+ Logger.INFO("[DevHelper] mInitMap size: "+mInitMap.size());
+ Logger.INFO("[DevHelper] mObInitMap size: "+mObInitMap.size());
+
+ Logger.INFO("[DevHelper] srgToForge size: "+srgToForge.size());
+ Logger.INFO("[DevHelper] forgeToSrg size: "+forgeToSrg.size());
+ Logger.INFO("[DevHelper] obToDeOb size: "+obToDeOb.size());
+ Logger.INFO("[DevHelper] deObToOb size: "+deObToOb.size());
return srgToForge.size() > 0 && forgeToSrg.size() > 0 && obToDeOb.size() > 0 && deObToOb.size() > 0;
}
@@ -5002,7 +5015,7 @@ public class DevHelper {
mInitMap.put(new Pair<String, String>("func_99999_d", "run"));
}
- public void init4() {
+ public static void init4() {
mObInitMap.put(new Pair<String, String>("aqc", "net/minecraft/world/chunk/storage/IChunkLoader"));
mObInitMap.put(new Pair<String, String>("amd", "net/minecraft/block/BlockMycelium"));
mObInitMap.put(new Pair<String, String>("aag", "net/minecraft/inventory/ContainerEnchantment"));
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();
}
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_Ore.java b/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_Ore.java
index 71e3a5093c..771a48c809 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_Ore.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_Ore.java
@@ -150,14 +150,19 @@ public class RecipeGen_Ore implements Runnable{
Logger.MATERIALS("bonusA.getTinyDust(1): "+(bonusA.getTinyDust(1) != null)+" | Material: "+(bonusA != null) + " | Material name: "+(bonusA != null ? bonusA.getLocalizedName() : "invalid material"));
Logger.MATERIALS("bonusB.getTinyDust(1): "+(bonusB.getTinyDust(1) != null)+" | Material: "+(bonusB != null) + " | Material name: "+(bonusB != null ? bonusB.getLocalizedName() : "invalid material"));
+ try {
//.08 compat
if (GT_ModHandler.addThermalCentrifugeRecipe(material.getCrushed(1), 200, material.getCrushedCentrifuged(1), bonusB.getTinyDust(1), dustStone)){
Logger.MATERIALS("[ThermalCentrifuge] Added Recipe: 'Crushed ore to Centrifuged Ore' | Input: "+material.getCrushed(1).getDisplayName()+" | Outputs: "+material.getCrushedCentrifuged(1).getDisplayName()+", "+bonusB.getTinyDust(1).getDisplayName()+", "+dustStone.getDisplayName()+".");
}
-
+ }
+ catch (Throwable t) {}
+ try {
if (GT_ModHandler.addThermalCentrifugeRecipe(material.getCrushedPurified(1), 200, material.getCrushedCentrifuged(1), bonusA.getTinyDust(1), dustStone)){
Logger.MATERIALS("[ThermalCentrifuge] Added Recipe: 'Washed ore to Centrifuged Ore' | Input: "+material.getCrushedPurified(1).getDisplayName()+" | Outputs: "+material.getCrushedCentrifuged(1).getDisplayName()+", "+bonusA.getTinyDust(1).getDisplayName()+", "+dustStone.getDisplayName()+".");
}
+ }
+ catch (Throwable t) {}
/**