aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/main/java/bartworks/common/commands/ClearCraftingCache.java2
-rw-r--r--src/main/java/bartworks/hooks/BWCoreStaticReplacementMethodes.java (renamed from src/main/java/bartworks/ASM/BWCoreStaticReplacementMethodes.java)2
-rw-r--r--src/main/java/bartworks/system/material/CircuitGeneration/CircuitImprintLoader.java6
-rw-r--r--src/main/java/gregtech/asm/GTCorePlugin.java42
-rw-r--r--src/main/java/gregtech/mixin/Mixin.java6
-rw-r--r--src/main/java/gtPlusPlus/api/objects/Logger.java21
-rw-r--r--src/main/java/gtPlusPlus/core/common/CommonProxy.java4
-rw-r--r--src/main/java/gtPlusPlus/core/config/ASMConfiguration.java17
-rw-r--r--src/main/java/gtPlusPlus/core/gui/widget/GuiValueField.java6
-rw-r--r--src/main/java/gtPlusPlus/core/item/bauble/FireProtectionBauble.java4
-rw-r--r--src/main/java/gtPlusPlus/core/util/minecraft/ItemUtils.java4
-rw-r--r--src/main/java/gtPlusPlus/everglades/GTPPEverglades.java4
-rw-r--r--src/main/java/gtPlusPlus/plugin/fixes/vanilla/VanillaBackgroundMusicFix.java10
-rw-r--r--src/main/java/gtPlusPlus/plugin/fixes/vanilla/VanillaBedHeightFix.java19
-rw-r--r--src/main/java/gtPlusPlus/plugin/fixes/vanilla/music/MusicTocker.java4
-rw-r--r--src/main/java/gtPlusPlus/preloader/PreloaderCore.java33
-rw-r--r--src/main/java/gtPlusPlus/preloader/PreloaderGTOreDict.java97
-rw-r--r--src/main/java/gtPlusPlus/preloader/PreloaderLogger.java50
-rw-r--r--src/main/java/gtPlusPlus/preloader/asm/PreloaderDummyContainer.java70
-rw-r--r--src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_COFH_OreDictionaryArbiter.java187
-rw-r--r--src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_IC2_GetHarvestTool.java233
-rw-r--r--src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_LWJGL_Keyboard.java295
-rw-r--r--src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_TC_ItemWispEssence.java317
-rw-r--r--src/main/java/gtPlusPlus/preloader/asm/transformers/Preloader_ClassTransformer.java79
-rw-r--r--src/main/java/gtPlusPlus/preloader/asm/transformers/Preloader_Transformer_Handler.java91
-rw-r--r--src/main/java/gtPlusPlus/preloader/keyboard/BetterKeyboard.java134
-rw-r--r--src/main/java/gtPlusPlus/xmod/bartcrops/abstracts/BaseAestheticCrop.java4
-rw-r--r--src/main/java/gtPlusPlus/xmod/bartcrops/abstracts/BaseHarvestableCrop.java4
-rw-r--r--src/main/java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/GTPPMultiBlockBase.java3
-rw-r--r--src/mixin/java/gregtech/mixin/mixins/early/minecraft/CraftingManagerMixin.java2
-rw-r--r--src/mixin/java/gregtech/mixin/mixins/late/ic2/MixinDamageDropped.java20
-rw-r--r--src/mixin/java/gregtech/mixin/mixins/late/ic2/MixinHarvestTool.java31
-rw-r--r--src/mixin/java/gregtech/mixin/mixins/late/ic2/MixinItemDropped.java25
33 files changed, 137 insertions, 1689 deletions
diff --git a/src/main/java/bartworks/common/commands/ClearCraftingCache.java b/src/main/java/bartworks/common/commands/ClearCraftingCache.java
index 9e164d12f7..68172190f6 100644
--- a/src/main/java/bartworks/common/commands/ClearCraftingCache.java
+++ b/src/main/java/bartworks/common/commands/ClearCraftingCache.java
@@ -17,7 +17,7 @@ import net.minecraft.command.CommandBase;
import net.minecraft.command.ICommandSender;
import net.minecraft.util.ChatComponentText;
-import bartworks.ASM.BWCoreStaticReplacementMethodes;
+import bartworks.hooks.BWCoreStaticReplacementMethodes;
public class ClearCraftingCache extends CommandBase {
diff --git a/src/main/java/bartworks/ASM/BWCoreStaticReplacementMethodes.java b/src/main/java/bartworks/hooks/BWCoreStaticReplacementMethodes.java
index 8a20495472..6110d9c32d 100644
--- a/src/main/java/bartworks/ASM/BWCoreStaticReplacementMethodes.java
+++ b/src/main/java/bartworks/hooks/BWCoreStaticReplacementMethodes.java
@@ -11,7 +11,7 @@
* DEALINGS IN THE SOFTWARE.
*/
-package bartworks.ASM;
+package bartworks.hooks;
import java.util.HashSet;
import java.util.Iterator;
diff --git a/src/main/java/bartworks/system/material/CircuitGeneration/CircuitImprintLoader.java b/src/main/java/bartworks/system/material/CircuitGeneration/CircuitImprintLoader.java
index ed08d3ef29..c3a8442397 100644
--- a/src/main/java/bartworks/system/material/CircuitGeneration/CircuitImprintLoader.java
+++ b/src/main/java/bartworks/system/material/CircuitGeneration/CircuitImprintLoader.java
@@ -34,7 +34,7 @@ import com.google.common.collect.HashBiMap;
import bartworks.API.recipe.BWNBTDependantCraftingRecipe;
import bartworks.API.recipe.BartWorksRecipeMaps;
-import bartworks.ASM.BWCoreStaticReplacementMethodes;
+import bartworks.hooks.BWCoreStaticReplacementMethodes;
import bartworks.system.material.WerkstoffLoader;
import bartworks.util.BWUtil;
import bartworks.util.Pair;
@@ -65,14 +65,10 @@ public class CircuitImprintLoader {
public static void run() {
HashSet<GTRecipe> toRem = new HashSet<>();
HashSet<GTRecipe> toAdd = new HashSet<>();
-
deleteCALRecipesAndTags();
rebuildCircuitAssemblerMap(toRem, toAdd);
exchangeRecipesInList(toRem, toAdd);
makeCircuitImprintRecipes();
-
- toRem = null;
- toAdd = null;
}
private static void reAddOriginalRecipes() {
diff --git a/src/main/java/gregtech/asm/GTCorePlugin.java b/src/main/java/gregtech/asm/GTCorePlugin.java
index 30bc193701..3b8aa08d16 100644
--- a/src/main/java/gregtech/asm/GTCorePlugin.java
+++ b/src/main/java/gregtech/asm/GTCorePlugin.java
@@ -1,6 +1,5 @@
package gregtech.asm;
-import java.io.File;
import java.util.List;
import java.util.Map;
import java.util.Set;
@@ -10,17 +9,12 @@ import com.gtnewhorizon.gtnhlib.config.ConfigurationManager;
import com.gtnewhorizon.gtnhmixins.IEarlyMixinLoader;
import bartworks.common.configs.Configuration;
-import cpw.mods.fml.relauncher.FMLInjectionData;
import cpw.mods.fml.relauncher.IFMLLoadingPlugin;
import gregtech.mixin.Mixin;
import gtPlusPlus.core.config.ASMConfiguration;
-import gtPlusPlus.preloader.PreloaderCore;
-import gtPlusPlus.preloader.asm.PreloaderDummyContainer;
-import gtPlusPlus.preloader.asm.transformers.Preloader_Transformer_Handler;
-@IFMLLoadingPlugin.SortingIndex(Integer.MAX_VALUE) // Load as late as possible (after fastcraft/OptiFine).
@IFMLLoadingPlugin.MCVersion("1.7.10")
-@IFMLLoadingPlugin.TransformerExclusions({ "bartworks.ASM", "gtPlusPlus.preloader", "gregtech.asm" })
+@IFMLLoadingPlugin.TransformerExclusions({ "gregtech.asm" })
@IFMLLoadingPlugin.Name("GregTech 5 Unofficial core plugin")
public class GTCorePlugin implements IFMLLoadingPlugin, IEarlyMixinLoader {
@@ -33,23 +27,16 @@ public class GTCorePlugin implements IFMLLoadingPlugin, IEarlyMixinLoader {
}
}
- public static File minecraftDir;
- private static Boolean islwjgl3Present = null;
-
- public GTCorePlugin() {
- // Injection Code taken from CodeChickenLib
- if (minecraftDir != null) return; // get called twice, once for IFMLCallHook
- minecraftDir = (File) FMLInjectionData.data()[6];
- }
+ private static boolean DEV_ENVIRONMENT;
@Override
public String[] getASMTransformerClass() {
- return new String[] { Preloader_Transformer_Handler.class.getName() };
+ return null;
}
@Override
public String getModContainerClass() {
- return PreloaderDummyContainer.class.getName();
+ return null;
}
@Override
@@ -59,13 +46,7 @@ public class GTCorePlugin implements IFMLLoadingPlugin, IEarlyMixinLoader {
@Override
public void injectData(Map<String, Object> data) {
- // GT++
- PreloaderCore.DEV_ENVIRONMENT = !(boolean) data.get("runtimeDeobfuscationEnabled");
- File mcDir = (File) data.get("mcLocation");
- if (mcDir != null && mcDir.exists()) {
- PreloaderCore.setMinecraftDirectory(mcDir);
- }
- PreloaderCore.DEBUG_MODE = ASMConfiguration.debug.debugMode;
+ DEV_ENVIRONMENT = !(boolean) data.get("runtimeDeobfuscationEnabled");
}
@Override
@@ -83,17 +64,8 @@ public class GTCorePlugin implements IFMLLoadingPlugin, IEarlyMixinLoader {
return Mixin.getEarlyMixins(loadedCoreMods);
}
- public static boolean islwjgl3Present() {
- if (islwjgl3Present == null) {
- try {
- final String className = "org/lwjgl/system/Platform.class";
- islwjgl3Present = ClassLoader.getSystemClassLoader()
- .getResource(className) != null;
- } catch (Exception e) {
- islwjgl3Present = Boolean.FALSE;
- }
- }
- return islwjgl3Present;
+ public static boolean isDevEnv() {
+ return DEV_ENVIRONMENT;
}
}
diff --git a/src/main/java/gregtech/mixin/Mixin.java b/src/main/java/gregtech/mixin/Mixin.java
index b83b0d61b7..224c7b5f1c 100644
--- a/src/main/java/gregtech/mixin/Mixin.java
+++ b/src/main/java/gregtech/mixin/Mixin.java
@@ -61,6 +61,12 @@ public enum Mixin {
.addTargetedMod(VANILLA)
.setApplyIf(() -> true)
.setPhase(Phase.EARLY)
+ .setSide(Side.BOTH)),
+ IC2_MACHINE_WRENCHING(new Builder("Changes the behavior of the wrenching mechanic for IC2 machines")
+ .addMixinClasses("ic2.MixinDamageDropped", "ic2.MixinHarvestTool", "ic2.MixinItemDropped")
+ .addTargetedMod(TargetedMod.IC2)
+ .setApplyIf(() -> true)
+ .setPhase(Phase.LATE)
.setSide(Side.BOTH));
public static final Logger LOGGER = LogManager.getLogger("GregTech-Mixin");
diff --git a/src/main/java/gtPlusPlus/api/objects/Logger.java b/src/main/java/gtPlusPlus/api/objects/Logger.java
index c97c787cd3..2214e50e78 100644
--- a/src/main/java/gtPlusPlus/api/objects/Logger.java
+++ b/src/main/java/gtPlusPlus/api/objects/Logger.java
@@ -4,9 +4,9 @@ import org.apache.logging.log4j.LogManager;
import cpw.mods.fml.common.FMLLog;
import cpw.mods.fml.relauncher.FMLRelaunchLog;
+import gregtech.asm.GTCorePlugin;
import gtPlusPlus.core.config.ASMConfiguration;
import gtPlusPlus.core.config.Configuration;
-import gtPlusPlus.preloader.PreloaderCore;
public class Logger {
@@ -37,8 +37,7 @@ public class Logger {
// Non-Dev Comments
public static void MACHINE_INFO(String s, Object... args) {
if (enabled) {
- boolean localPlayer = PreloaderCore.DEV_ENVIRONMENT;
- if (Configuration.debug.MachineInfo || localPlayer) {
+ if (Configuration.debug.MachineInfo || GTCorePlugin.isDevEnv()) {
final String name1 = gtPlusPlus.core.util.reflect.ReflectionUtils.getMethodName(2);
modLogger.info("Machine Info: " + s + " | " + name1, args);
}
@@ -48,7 +47,7 @@ public class Logger {
// Developer Comments
public static void WARNING(final String s) {
if (enabled) {
- if (PreloaderCore.DEBUG_MODE) {
+ if (ASMConfiguration.debug.debugMode) {
modLogger.warn(s);
}
}
@@ -57,7 +56,7 @@ public class Logger {
// Errors
public static void ERROR(final String s) {
if (enabled) {
- if (PreloaderCore.DEBUG_MODE) {
+ if (ASMConfiguration.debug.debugMode) {
modLogger.fatal(s);
}
}
@@ -95,7 +94,7 @@ public class Logger {
*/
public static void DEBUG_BEES(final String s) {
if (enabled) {
- if (PreloaderCore.DEV_ENVIRONMENT || PreloaderCore.DEBUG_MODE) {
+ if (GTCorePlugin.isDevEnv() || ASMConfiguration.debug.debugMode) {
modLogger.info("[Debug][Bees] " + s);
}
}
@@ -106,7 +105,7 @@ public class Logger {
*/
public static void MATERIALS(final String s) {
if (enabled) {
- if (PreloaderCore.DEV_ENVIRONMENT || PreloaderCore.DEBUG_MODE) {
+ if (GTCorePlugin.isDevEnv() || ASMConfiguration.debug.debugMode) {
modLogger.info("[Materials] " + s);
}
}
@@ -117,7 +116,7 @@ public class Logger {
*/
public static void DEBUG_MATERIALS(final String s) {
if (enabled) {
- if (PreloaderCore.DEV_ENVIRONMENT || PreloaderCore.DEBUG_MODE) {
+ if (GTCorePlugin.isDevEnv() || ASMConfiguration.debug.debugMode) {
modLogger.info("[Debug][Materials] " + s);
}
}
@@ -128,7 +127,7 @@ public class Logger {
*/
public static void REFLECTION(final String s) {
if (enabled) {
- if (PreloaderCore.DEV_ENVIRONMENT || PreloaderCore.DEBUG_MODE) {
+ if (GTCorePlugin.isDevEnv() || ASMConfiguration.debug.debugMode) {
modLogger.info("[Reflection] " + s);
}
}
@@ -139,7 +138,7 @@ public class Logger {
*/
public static void WORLD(final String s) {
if (enabled) {
- if (PreloaderCore.DEV_ENVIRONMENT || PreloaderCore.DEBUG_MODE) {
+ if (GTCorePlugin.isDevEnv() || ASMConfiguration.debug.debugMode) {
modLogger.info("[WorldGen] " + s);
}
}
@@ -148,7 +147,7 @@ public class Logger {
public static void RECIPE(String string) {
if (enabled) {
if (
- /* CORE_Preloader.DEV_ENVIRONMENT || */ PreloaderCore.DEBUG_MODE) {
+ /* GTCorePlugin.isDevEnv() || */ ASMConfiguration.debug.debugMode) {
modLogger.info("[Recipe] " + string);
}
}
diff --git a/src/main/java/gtPlusPlus/core/common/CommonProxy.java b/src/main/java/gtPlusPlus/core/common/CommonProxy.java
index 50b4578085..4346fb9e31 100644
--- a/src/main/java/gtPlusPlus/core/common/CommonProxy.java
+++ b/src/main/java/gtPlusPlus/core/common/CommonProxy.java
@@ -23,6 +23,7 @@ import galaxyspace.core.entity.mob.EntityEvolvedColdBlaze;
import gregtech.api.enums.Mods;
import gtPlusPlus.api.objects.Logger;
import gtPlusPlus.core.block.ModBlocks;
+import gtPlusPlus.core.config.ASMConfiguration;
import gtPlusPlus.core.creative.AddToCreativeTab;
import gtPlusPlus.core.entity.InternalEntityRegistry;
import gtPlusPlus.core.handler.BookHandler;
@@ -41,7 +42,6 @@ import gtPlusPlus.core.recipe.common.CI;
import gtPlusPlus.core.tileentities.ModTileEntities;
import gtPlusPlus.core.util.minecraft.EntityUtils;
import gtPlusPlus.core.util.minecraft.ItemUtils;
-import gtPlusPlus.preloader.PreloaderCore;
import gtPlusPlus.xmod.ic2.CustomInternalName;
public class CommonProxy {
@@ -53,7 +53,7 @@ public class CommonProxy {
public void preInit(final FMLPreInitializationEvent e) {
Logger.INFO("Doing some house cleaning.");
- if (PreloaderCore.DEBUG_MODE) {
+ if (ASMConfiguration.debug.debugMode) {
Logger.INFO("Development mode enabled.");
} else {
Logger.WARNING("Development mode not enabled.");
diff --git a/src/main/java/gtPlusPlus/core/config/ASMConfiguration.java b/src/main/java/gtPlusPlus/core/config/ASMConfiguration.java
index d79a746642..a348998ef0 100644
--- a/src/main/java/gtPlusPlus/core/config/ASMConfiguration.java
+++ b/src/main/java/gtPlusPlus/core/config/ASMConfiguration.java
@@ -25,25 +25,16 @@ public class ASMConfiguration {
@Config.DefaultBoolean(false)
public boolean debugMode;
- @Config.Comment("Enable/Disable COFH OreDictionaryArbiter Patch (Useful for Development)")
- @Config.DefaultBoolean(true)
- public boolean enableCofhPatch;
-
- @Config.Comment("Enable/Disable Forge OreDictionary Patch (Useful for Development)")
- @Config.DefaultBoolean(false)
- public boolean enableOreDictPatch;
}
@Config.Comment("General section")
public static class General {
// General Features
- @Config.Comment("Prevents the game crashing from having invalid keybinds. https://github.com/alkcorp/GTplusplus/issues/544")
- @Config.DefaultBoolean(true)
- public boolean enabledLwjglKeybindingFix;
+ @Config.Comment("Set to a value greater than 0 to reduce the ticks taken to delay between BGM tracks. Acceptable Values are 1-32767, where 0 is disabled. Vanilla Uses 12,000 & 24,000. 200 is 10s.")
+ @Config.DefaultInt(0)
+ @Config.RangeInt(min = 0, max = Short.MAX_VALUE)
+ public int enableWatchdogBGM;
- @Config.Comment("Fixes small oversights in Thaumcraft 4.")
- @Config.DefaultBoolean(true)
- public boolean enableTcAspectSafety;
}
}
diff --git a/src/main/java/gtPlusPlus/core/gui/widget/GuiValueField.java b/src/main/java/gtPlusPlus/core/gui/widget/GuiValueField.java
index 8f549364c1..7976cf0bf6 100644
--- a/src/main/java/gtPlusPlus/core/gui/widget/GuiValueField.java
+++ b/src/main/java/gtPlusPlus/core/gui/widget/GuiValueField.java
@@ -5,9 +5,9 @@ import java.lang.reflect.Field;
import net.minecraft.client.gui.FontRenderer;
import net.minecraft.client.gui.GuiTextField;
+import gregtech.asm.GTCorePlugin;
import gtPlusPlus.core.gui.machine.GUIVolumetricFlaskSetter;
import gtPlusPlus.core.util.reflect.ReflectionUtils;
-import gtPlusPlus.preloader.PreloaderCore;
public class GuiValueField extends GuiTextField {
@@ -36,9 +36,9 @@ public class GuiValueField extends GuiTextField {
public int getLineScrollOffset() {
Field lineScrollOffset = ReflectionUtils
- .getField(GuiTextField.class, !PreloaderCore.DEV_ENVIRONMENT ? "field_146225_q" : "lineScrollOffset");
+ .getField(GuiTextField.class, GTCorePlugin.isDevEnv() ? "lineScrollOffset" : "field_146225_q");
if (lineScrollOffset != null) {
- return (int) ReflectionUtils.getFieldValue(lineScrollOffset, this);
+ return ReflectionUtils.getFieldValue(lineScrollOffset, this);
}
return 0;
}
diff --git a/src/main/java/gtPlusPlus/core/item/bauble/FireProtectionBauble.java b/src/main/java/gtPlusPlus/core/item/bauble/FireProtectionBauble.java
index 89ddb241ed..c24587fb06 100644
--- a/src/main/java/gtPlusPlus/core/item/bauble/FireProtectionBauble.java
+++ b/src/main/java/gtPlusPlus/core/item/bauble/FireProtectionBauble.java
@@ -16,9 +16,9 @@ import net.minecraft.world.World;
import baubles.api.BaubleType;
import cpw.mods.fml.common.registry.GameRegistry;
+import gregtech.asm.GTCorePlugin;
import gtPlusPlus.core.creative.AddToCreativeTab;
import gtPlusPlus.core.util.reflect.ReflectionUtils;
-import gtPlusPlus.preloader.PreloaderCore;
public class FireProtectionBauble extends BaseBauble {
@@ -26,7 +26,7 @@ public class FireProtectionBauble extends BaseBauble {
static {
isImmuneToFire = ReflectionUtils
- .getField(Entity.class, !PreloaderCore.DEV_ENVIRONMENT ? "func_70045_F" : "isImmuneToFire");
+ .getField(Entity.class, !GTCorePlugin.isDevEnv() ? "func_70045_F" : "isImmuneToFire");
}
public static boolean fireImmune(Entity aEntity) {
diff --git a/src/main/java/gtPlusPlus/core/util/minecraft/ItemUtils.java b/src/main/java/gtPlusPlus/core/util/minecraft/ItemUtils.java
index c64686a151..7b66ffefa1 100644
--- a/src/main/java/gtPlusPlus/core/util/minecraft/ItemUtils.java
+++ b/src/main/java/gtPlusPlus/core/util/minecraft/ItemUtils.java
@@ -36,6 +36,7 @@ import gregtech.api.util.GTUtility;
import gregtech.common.items.MetaGeneratedTool01;
import gtPlusPlus.api.objects.Logger;
import gtPlusPlus.api.objects.data.Pair;
+import gtPlusPlus.core.config.ASMConfiguration;
import gtPlusPlus.core.item.ModItems;
import gtPlusPlus.core.item.base.dusts.BaseItemDustUnique;
import gtPlusPlus.core.item.chemistry.AgriculturalChem;
@@ -45,7 +46,6 @@ import gtPlusPlus.core.material.Material;
import gtPlusPlus.core.recipe.common.CI;
import gtPlusPlus.core.util.Utils;
import gtPlusPlus.core.util.math.MathUtils;
-import gtPlusPlus.preloader.PreloaderCore;
import gtPlusPlus.xmod.gregtech.api.items.GTMetaTool;
import gtPlusPlus.xmod.gregtech.common.items.MetaGeneratedGregtechTools;
import gtPlusPlus.xmod.gregtech.loaders.RecipeGenDustGeneration;
@@ -306,7 +306,7 @@ public class ItemUtils {
}
public static ItemStack getItemStackOfAmountFromOreDictNoBroken(String oredictName, final int amount) {
- if (PreloaderCore.DEBUG_MODE) {
+ if (ASMConfiguration.debug.debugMode) {
Logger.modLogger.warn("Looking up: " + oredictName + " - from : ", new Exception());
}
diff --git a/src/main/java/gtPlusPlus/everglades/GTPPEverglades.java b/src/main/java/gtPlusPlus/everglades/GTPPEverglades.java
index 01e5a087c1..d2052afb55 100644
--- a/src/main/java/gtPlusPlus/everglades/GTPPEverglades.java
+++ b/src/main/java/gtPlusPlus/everglades/GTPPEverglades.java
@@ -18,6 +18,7 @@ import cpw.mods.fml.common.event.FMLServerStartingEvent;
import cpw.mods.fml.common.registry.GameRegistry;
import gregtech.api.enums.Mods;
import gtPlusPlus.api.objects.Logger;
+import gtPlusPlus.core.config.ASMConfiguration;
import gtPlusPlus.core.lib.GTPPCore;
import gtPlusPlus.core.lib.GTPPCore.Everglades;
import gtPlusPlus.core.material.MaterialGenerator;
@@ -28,7 +29,6 @@ import gtPlusPlus.everglades.dimension.DimensionEverglades;
import gtPlusPlus.everglades.gen.gt.WorldGen_GT_Base;
import gtPlusPlus.everglades.gen.gt.WorldGen_GT_Ore_Layer;
import gtPlusPlus.everglades.gen.gt.WorldGen_Ores;
-import gtPlusPlus.preloader.PreloaderCore;
@Mod(
modid = Mods.Names.G_T_PLUS_PLUS_EVERGLADES,
@@ -134,7 +134,7 @@ public class GTPPEverglades implements ActionListener {
WorldGen_GT_Base.oreveinPercentage = 64;
WorldGen_GT_Base.oreveinAttempts = 16;
WorldGen_GT_Base.oreveinMaxPlacementAttempts = 4;
- if (PreloaderCore.DEBUG_MODE || GTPPCore.DEVENV) {
+ if (ASMConfiguration.debug.debugMode || GTPPCore.DEVENV) {
WorldGen_GT_Base.debugWorldGen = true;
}
DarkWorldContentLoader.run();
diff --git a/src/main/java/gtPlusPlus/plugin/fixes/vanilla/VanillaBackgroundMusicFix.java b/src/main/java/gtPlusPlus/plugin/fixes/vanilla/VanillaBackgroundMusicFix.java
index edd41535e7..386fac65ee 100644
--- a/src/main/java/gtPlusPlus/plugin/fixes/vanilla/VanillaBackgroundMusicFix.java
+++ b/src/main/java/gtPlusPlus/plugin/fixes/vanilla/VanillaBackgroundMusicFix.java
@@ -4,10 +4,10 @@ import java.util.Timer;
import java.util.TimerTask;
import gtPlusPlus.api.interfaces.IPlugin;
+import gtPlusPlus.core.config.ASMConfiguration;
import gtPlusPlus.core.util.Utils;
import gtPlusPlus.plugin.fixes.interfaces.IBugFix;
import gtPlusPlus.plugin.fixes.vanilla.music.MusicTocker;
-import gtPlusPlus.preloader.PreloaderCore;
public class VanillaBackgroundMusicFix implements IBugFix {
@@ -17,11 +17,11 @@ public class VanillaBackgroundMusicFix implements IBugFix {
public VanillaBackgroundMusicFix(IPlugin minstance) {
mParent = minstance;
- if (PreloaderCore.enableWatchdogBGM > 0 && Utils.isClient()) {
+ if (ASMConfiguration.general.enableWatchdogBGM > 0 && Utils.isClient()) {
mParent.log("[BGM] Registering BGM delay Fix.");
enabled = true;
mFixInstance = new MusicTocker(mParent);
- } else if (PreloaderCore.enableWatchdogBGM > 0 && Utils.isServer()) {
+ } else if (ASMConfiguration.general.enableWatchdogBGM > 0 && Utils.isServer()) {
mParent.log("[BGM] Tried registering BGM delay Fix on Server, disabling.");
enabled = false;
} else {
@@ -36,7 +36,7 @@ public class VanillaBackgroundMusicFix implements IBugFix {
}
public void manage() {
- if (PreloaderCore.enableWatchdogBGM > 0 && Utils.isClient()) {
+ if (ASMConfiguration.general.enableWatchdogBGM > 0 && Utils.isClient()) {
TimerTask task = new ManageTask(this.mFixInstance);
Timer timer = new Timer("BGM-WatchDog");
long delay = 1000 * 60;
@@ -54,7 +54,7 @@ public class VanillaBackgroundMusicFix implements IBugFix {
@Override
public void run() {
- if (PreloaderCore.enableWatchdogBGM > 0 && Utils.isClient()) {
+ if (ASMConfiguration.general.enableWatchdogBGM > 0 && Utils.isClient()) {
if (!A.mVanillaManager) {
A.run();
}
diff --git a/src/main/java/gtPlusPlus/plugin/fixes/vanilla/VanillaBedHeightFix.java b/src/main/java/gtPlusPlus/plugin/fixes/vanilla/VanillaBedHeightFix.java
index aa81a0378c..8395f7b3f7 100644
--- a/src/main/java/gtPlusPlus/plugin/fixes/vanilla/VanillaBedHeightFix.java
+++ b/src/main/java/gtPlusPlus/plugin/fixes/vanilla/VanillaBedHeightFix.java
@@ -9,11 +9,11 @@ import net.minecraftforge.event.entity.player.PlayerSleepInBedEvent;
import cpw.mods.fml.common.eventhandler.EventPriority;
import cpw.mods.fml.common.eventhandler.SubscribeEvent;
+import gregtech.asm.GTCorePlugin;
import gtPlusPlus.api.interfaces.IPlugin;
import gtPlusPlus.api.objects.Logger;
import gtPlusPlus.core.util.reflect.ReflectionUtils;
import gtPlusPlus.plugin.fixes.interfaces.IBugFix;
-import gtPlusPlus.preloader.PreloaderCore;
// TODO move this as a mixin in hodgepodge
public class VanillaBedHeightFix implements IBugFix {
@@ -23,17 +23,12 @@ public class VanillaBedHeightFix implements IBugFix {
public VanillaBedHeightFix(IPlugin minstance) {
mParent = minstance;
- Method m;
- if (!PreloaderCore.DEV_ENVIRONMENT) {
- 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);
- }
+ Method m = ReflectionUtils.getMethod(
+ EntityPlayer.class,
+ GTCorePlugin.isDevEnv() ? "sleepInBedAt" : "func_71018_a",
+ int.class,
+ int.class,
+ int.class);
if (m != null) {
mSleepInBedAt = m;
mParent.log("Registering Bed Height Fix.");
diff --git a/src/main/java/gtPlusPlus/plugin/fixes/vanilla/music/MusicTocker.java b/src/main/java/gtPlusPlus/plugin/fixes/vanilla/music/MusicTocker.java
index b0e0474bdd..46dec56124 100644
--- a/src/main/java/gtPlusPlus/plugin/fixes/vanilla/music/MusicTocker.java
+++ b/src/main/java/gtPlusPlus/plugin/fixes/vanilla/music/MusicTocker.java
@@ -14,8 +14,8 @@ import cpw.mods.fml.relauncher.SideOnly;
import gregtech.api.objects.XSTR;
import gtPlusPlus.api.interfaces.IPlugin;
import gtPlusPlus.api.objects.Logger;
+import gtPlusPlus.core.config.ASMConfiguration;
import gtPlusPlus.core.util.reflect.ReflectionUtils;
-import gtPlusPlus.preloader.PreloaderCore;
@SideOnly(Side.CLIENT)
public class MusicTocker extends MusicTicker implements Runnable {
@@ -37,7 +37,7 @@ public class MusicTocker extends MusicTicker implements Runnable {
}
private static int getDelay() {
- return PreloaderCore.enableWatchdogBGM;
+ return ASMConfiguration.general.enableWatchdogBGM;
}
private boolean inject() {
diff --git a/src/main/java/gtPlusPlus/preloader/PreloaderCore.java b/src/main/java/gtPlusPlus/preloader/PreloaderCore.java
deleted file mode 100644
index cabee48bc9..0000000000
--- a/src/main/java/gtPlusPlus/preloader/PreloaderCore.java
+++ /dev/null
@@ -1,33 +0,0 @@
-package gtPlusPlus.preloader;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
-import cpw.mods.fml.common.versioning.ArtifactVersion;
-
-public class PreloaderCore {
-
- public static final String NAME = "GT++ Preloader";
- public static final String MODID = "GT++_Preloader";
- public static final String VERSION = "0.5-Beta";
- public static final List<ArtifactVersion> DEPENDENCIES;
- public static final String JAVA_VERSION = System.getProperty("java.version");
-
- public static File MC_DIR;
- public static boolean DEV_ENVIRONMENT = false;
- public static boolean DEBUG_MODE = false;
- public static boolean enableOldGTcircuits = false;
- public static int enableWatchdogBGM = 0;
-
- public static void setMinecraftDirectory(File aDir) {
- MC_DIR = aDir;
- }
-
- static {
- ArrayList<ArtifactVersion> deps = new ArrayList<>();
- // deps.add("required-before:gregtech;");
- DEPENDENCIES = Collections.unmodifiableList(deps);
- }
-}
diff --git a/src/main/java/gtPlusPlus/preloader/PreloaderGTOreDict.java b/src/main/java/gtPlusPlus/preloader/PreloaderGTOreDict.java
deleted file mode 100644
index 9a84bcb4b4..0000000000
--- a/src/main/java/gtPlusPlus/preloader/PreloaderGTOreDict.java
+++ /dev/null
@@ -1,97 +0,0 @@
-package gtPlusPlus.preloader;
-
-import static gregtech.api.enums.Mods.GregTech;
-
-import net.minecraft.item.ItemStack;
-
-import org.apache.logging.log4j.Level;
-
-import cpw.mods.fml.relauncher.FMLRelaunchLog;
-import gregtech.common.items.MetaGeneratedItem01;
-import gregtech.common.items.MetaGeneratedItem03;
-import gtPlusPlus.core.config.Configuration;
-import gtPlusPlus.core.util.minecraft.ItemUtils;
-
-public class PreloaderGTOreDict {
-
- public static boolean shouldPreventRegistration(final String string, final ItemStack bannedItem) {
-
- if (bannedItem == null) {
- return false;
- } else if (!PreloaderCore.enableOldGTcircuits) {
- return false;
- }
-
- try {
- if (PreloaderCore.enableOldGTcircuits) {
- if ((bannedItem != null) && ItemUtils.getModId(bannedItem)
- .toLowerCase()
- .equals(GregTech.ID)) {
- final int damageValue = bannedItem.getItemDamage() - 32000;
- if (bannedItem.getItem() instanceof MetaGeneratedItem01) { // 700-720
- if ((damageValue >= 700) && (damageValue <= 720)) {
- return true;
- }
- } else if (bannedItem.getItem() instanceof MetaGeneratedItem03) {
- if ((damageValue == 6) || (damageValue == 7)
- || (damageValue == 11)
- || (damageValue == 12)
- || (damageValue == 14)
- || (damageValue == 16)
- || (damageValue == 20)
- || (damageValue == 21)
- || (damageValue == 22)) {
- return true;
- } else if ((damageValue >= 30) && (damageValue <= 57)) {
- return true;
- } else if ((damageValue >= 69) && (damageValue <= 73)) {
- return true;
- } else if ((damageValue >= 78) && (damageValue <= 96)) {
- return true;
- }
- }
- }
- }
-
- } catch (final Throwable e) {
- if (Configuration.debug.showHiddenNEIItems) {
- FMLRelaunchLog.log(
- "[GT++ ASM] OreDictTransformer",
- Level.INFO,
- "A mod tried to register an invalid item with the OreDictionary.");
- if (bannedItem != null) {
- FMLRelaunchLog.log(
- "[GT++ ASM] OreDictTransformer",
- Level.INFO,
- "Please report this issue to the authors of %s",
- ItemUtils.getModId(bannedItem));
- try {
- if (bannedItem.getItemDamage() <= Short.MAX_VALUE - 1) {
- FMLRelaunchLog.log(
- "[GT++ ASM] OreDictTransformer",
- Level.INFO,
- "Item was not null, but still invalidly registering: %s",
- bannedItem.getDisplayName() != null ? bannedItem.getDisplayName()
- : "INVALID ITEM FOUND");
- } else {
- FMLRelaunchLog.log(
- "[GT++ ASM] OreDictTransformer",
- Level.INFO,
- "Item was not null, but still invalidly registering: %s",
- "Found Wildcard item that is being registered too early.");
- }
- } catch (Exception h) {
- h.printStackTrace();
- }
- }
- }
- // FMLRelaunchLog.log("[GT++ ASM] OreDictTransformer", Level.INFO, "%s", e.getMessage());
- }
- return false;
- }
-
- // Simplification of Life.
- private static boolean isInstanceOf(final Class<?> clazz, final Object obj) {
- return clazz.isInstance(obj);
- }
-}
diff --git a/src/main/java/gtPlusPlus/preloader/PreloaderLogger.java b/src/main/java/gtPlusPlus/preloader/PreloaderLogger.java
deleted file mode 100644
index e5f193a3fd..0000000000
--- a/src/main/java/gtPlusPlus/preloader/PreloaderLogger.java
+++ /dev/null
@@ -1,50 +0,0 @@
-package gtPlusPlus.preloader;
-
-import org.apache.logging.log4j.Level;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
-
-public class PreloaderLogger {
-
- private PreloaderLogger() {}
-
- // Logging Functions
- public static final Logger MODLOGGER = LogManager.getLogger("GT++ ASM");
-
- public static Logger getLogger() {
- return MODLOGGER;
- }
-
- // Non-Dev Comments
-
- public static void INFO(final String s, final String s2) {
- INFO(s);
- INFO(s2);
- }
-
- public static void INFO(final String s) {
- MODLOGGER.info(s);
- }
-
- // Developer Comments
- public static void WARNING(final String s) {
- MODLOGGER.warn(s);
- }
-
- // Errors
- public static void ERROR(final String s) {
- MODLOGGER.fatal(s);
- }
-
- public static void LOG(String string, Level info, String string2) {
- if (info.equals(Level.INFO)) {
- INFO("[" + string + "] " + string2);
- }
- if (info.equals(Level.WARN)) {
- WARNING("[" + string + "] " + string2);
- }
- if (info.equals(Level.ERROR)) {
- ERROR("[" + string + "] " + string2);
- }
- }
-}
diff --git a/src/main/java/gtPlusPlus/preloader/asm/PreloaderDummyContainer.java b/src/main/java/gtPlusPlus/preloader/asm/PreloaderDummyContainer.java
deleted file mode 100644
index 8e0684e53f..0000000000
--- a/src/main/java/gtPlusPlus/preloader/asm/PreloaderDummyContainer.java
+++ /dev/null
@@ -1,70 +0,0 @@
-package gtPlusPlus.preloader.asm;
-
-import static gregtech.api.enums.Mods.GTPlusPlus;
-import static gregtech.api.enums.Mods.GregTech;
-
-import java.io.File;
-import java.util.Collections;
-
-import net.minecraftforge.common.config.Configuration;
-
-import com.google.common.eventbus.EventBus;
-import com.google.common.eventbus.Subscribe;
-
-import cpw.mods.fml.common.DummyModContainer;
-import cpw.mods.fml.common.LoadController;
-import cpw.mods.fml.common.ModMetadata;
-import cpw.mods.fml.common.event.FMLPreInitializationEvent;
-import gtPlusPlus.preloader.PreloaderCore;
-import gtPlusPlus.preloader.PreloaderLogger;
-
-public class PreloaderDummyContainer extends DummyModContainer {
-
- public PreloaderDummyContainer() {
- super(new ModMetadata());
- ModMetadata meta = getMetadata();
- meta.modId = PreloaderCore.MODID;
- meta.name = PreloaderCore.NAME;
- meta.version = PreloaderCore.VERSION;
- meta.credits = "Roll Credits ...";
- meta.authorList = Collections.singletonList("Alkalus");
- meta.screenshots = new String[0];
- meta.parent = GTPlusPlus.ID;
- }
-
- @Override
- public boolean registerBus(EventBus bus, LoadController controller) {
- bus.register(this);
- return true;
- }
-
- @Subscribe
- public void preInit(FMLPreInitializationEvent event) {
- PreloaderLogger.INFO("Loading " + PreloaderCore.MODID + " V" + PreloaderCore.VERSION);
- // Handle GT++ Config
- handleConfigFile(event);
- }
-
- public static void handleConfigFile(final FMLPreInitializationEvent event) {
- final Configuration config = new Configuration(
- new File(event.getModConfigurationDirectory(), "GTplusplus/GTplusplus.cfg"));
- config.load();
-
- // BGM Watchdog
- PreloaderCore.enableWatchdogBGM = config.getInt(
- "enableWatchdogBGM",
- "features",
- 0,
- 0,
- Short.MAX_VALUE,
- "Set to a value greater than 0 to reduce the ticks taken to delay between BGM tracks. Acceptable Values are 1-32767, where 0 is disabled. Vanilla Uses 12,000 & 24,000. 200 is 10s.");
-
- // Circuits
- PreloaderCore.enableOldGTcircuits = config.getBoolean(
- "enableOldGTcircuits",
- GregTech.ID,
- false,
- "Restores circuits and their recipes from Pre-5.09.28 times.");
- }
-
-}
diff --git a/src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_COFH_OreDictionaryArbiter.java b/src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_COFH_OreDictionaryArbiter.java
deleted file mode 100644
index 0b41846928..0000000000
--- a/src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_COFH_OreDictionaryArbiter.java
+++ /dev/null
@@ -1,187 +0,0 @@
-package gtPlusPlus.preloader.asm.transformers;
-
-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.util.ArrayList;
-
-import net.minecraft.item.ItemStack;
-import net.minecraftforge.oredict.OreDictionary;
-
-import org.apache.logging.log4j.Level;
-import org.objectweb.asm.ClassReader;
-import org.objectweb.asm.ClassVisitor;
-import org.objectweb.asm.ClassWriter;
-import org.objectweb.asm.Label;
-import org.objectweb.asm.MethodVisitor;
-
-import com.google.common.base.Strings;
-import com.google.common.collect.BiMap;
-import com.google.common.collect.HashBiMap;
-
-import cofh.core.util.oredict.OreDictionaryArbiter;
-import cofh.lib.util.ItemWrapper;
-import cpw.mods.fml.relauncher.FMLRelaunchLog;
-import gnu.trove.map.TMap;
-import gnu.trove.map.hash.THashMap;
-import gtPlusPlus.core.util.reflect.ReflectionUtils;
-
-public class ClassTransformer_COFH_OreDictionaryArbiter {
-
- // The qualified name of the class we plan to transform.
- private static final String className = "cofh.core.util.oredict.OreDictionaryArbiter";
- // cofh/core/util/oredict/OreDictionaryArbiter
-
- private final boolean isValid;
- private final ClassReader reader;
- private final ClassWriter writer;
-
- public ClassTransformer_COFH_OreDictionaryArbiter(byte[] basicClass) {
- ClassReader aTempReader = null;
- ClassWriter aTempWriter = null;
- 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;
- }
- reader = aTempReader;
- writer = aTempWriter;
-
- if (reader != null && writer != null) {
- injectMethod("registerOreDictionaryEntry");
- }
- }
-
- public boolean isValidTransformer() {
- return isValid;
- }
-
- public ClassReader getReader() {
- return reader;
- }
-
- public ClassWriter getWriter() {
- return writer;
- }
-
- public void injectMethod(String aMethodName) {
-
- String aItemStack = "net/minecraft/item/ItemStack";
- MethodVisitor mv;
- if (aMethodName.equals("registerOreDictionaryEntry")) {
- 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();
- mv.visitLabel(l0);
- mv.visitLineNumber(61, l0);
- mv.visitVarInsn(ALOAD, 0);
- mv.visitVarInsn(ALOAD, 1);
- mv.visitMethodInsn(
- INVOKESTATIC,
- "gtPlusPlus/preloader/asm/transformers/ClassTransformer_COFH_OreDictionaryArbiter$FixCOFH",
- "registerOreDictionaryEntry",
- "(L" + aItemStack + ";Ljava/lang/String;)V",
- false);
- Label l1 = new Label();
- mv.visitLabel(l1);
- mv.visitLineNumber(62, l1);
- mv.visitInsn(RETURN);
- Label l2 = new Label();
- mv.visitLabel(l2);
- mv.visitLocalVariable("arg", "L" + aItemStack + ";", null, l0, l2, 0);
- mv.visitLocalVariable("arg0", "Ljava/lang/String;", null, l0, l2, 1);
- mv.visitMaxs(2, 2);
- mv.visitEnd();
- }
- FMLRelaunchLog.log("[GT++ ASM] COFH OreDictionaryArbiter Patch", Level.INFO, "Method injection complete.");
- }
-
- public static final class localClassVisitor extends ClassVisitor {
-
- public localClassVisitor(ClassVisitor cv) {
- super(ASM5, cv);
- }
-
- @Override
- public MethodVisitor visitMethod(int access, String name, String desc, String signature, String[] exceptions) {
- if (name.equals("registerOreDictionaryEntry")) {
- FMLRelaunchLog.log("[GT++ ASM] COFH OreDictionaryArbiter Patch", Level.INFO, "Removing method " + name);
- return null;
- }
- MethodVisitor methodVisitor = super.visitMethod(access, name, desc, signature, exceptions);
- return methodVisitor;
- }
- }
-
- @SuppressWarnings("unchecked")
- public static class FixCOFH {
-
- private static BiMap<String, Integer> oreIDs;
- private static TMap<Integer, ArrayList<ItemStack>> oreStacks;
- private static TMap<ItemWrapper, ArrayList<Integer>> stackIDs;
- private static TMap<ItemWrapper, ArrayList<String>> stackNames;
-
- static {
- try {
- oreIDs = (BiMap<String, Integer>) ReflectionUtils.getField(OreDictionaryArbiter.class, "oreIDs")
- .get(null);
- oreStacks = (TMap<Integer, ArrayList<ItemStack>>) ReflectionUtils
- .getField(OreDictionaryArbiter.class, "oreStacks")
- .get(null);
- stackIDs = (TMap<ItemWrapper, ArrayList<Integer>>) ReflectionUtils
- .getField(OreDictionaryArbiter.class, "stackIDs")
- .get(null);
- stackNames = (TMap<ItemWrapper, ArrayList<String>>) ReflectionUtils
- .getField(OreDictionaryArbiter.class, "stackNames")
- .get(null);
- } catch (Throwable t) {
- oreIDs = HashBiMap.create();
- oreStacks = new THashMap<>();
- stackIDs = new THashMap<>();
- stackNames = new THashMap<>();
- }
- }
-
- public static void registerOreDictionaryEntry(ItemStack arg, String arg0) {
- try {
- if (arg == null) {
- return;
- }
- if (arg.getItem() != null && !Strings.isNullOrEmpty(arg0)) {
- int arg1 = OreDictionary.getOreID(arg0);
- oreIDs.put(arg0, Integer.valueOf(arg1));
- if (!oreStacks.containsKey(Integer.valueOf(arg1))) {
- oreStacks.put(Integer.valueOf(arg1), new ArrayList<>());
- }
- ((ArrayList<ItemStack>) oreStacks.get(Integer.valueOf(arg1))).add(arg);
- ItemWrapper arg2 = ItemWrapper.fromItemStack(arg);
- if (!stackIDs.containsKey(arg2)) {
- stackIDs.put(arg2, new ArrayList<>());
- stackNames.put(arg2, new ArrayList<>());
- }
- ((ArrayList<Integer>) stackIDs.get(arg2)).add(Integer.valueOf(arg1));
- ((ArrayList<String>) stackNames.get(arg2)).add(arg0);
- }
- } catch (Throwable t) {
- return;
- }
- }
- }
-}
diff --git a/src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_IC2_GetHarvestTool.java b/src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_IC2_GetHarvestTool.java
deleted file mode 100644
index 7aa5ff4f90..0000000000
--- a/src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_IC2_GetHarvestTool.java
+++ /dev/null
@@ -1,233 +0,0 @@
-package gtPlusPlus.preloader.asm.transformers;
-
-import static org.objectweb.asm.Opcodes.ACC_PUBLIC;
-import static org.objectweb.asm.Opcodes.ALOAD;
-import static org.objectweb.asm.Opcodes.ARETURN;
-import static org.objectweb.asm.Opcodes.ASM5;
-import static org.objectweb.asm.Opcodes.ILOAD;
-import static org.objectweb.asm.Opcodes.INVOKESTATIC;
-import static org.objectweb.asm.Opcodes.IRETURN;
-
-import java.util.Random;
-
-import net.minecraft.block.Block;
-import net.minecraft.item.Item;
-
-import org.apache.logging.log4j.Level;
-import org.objectweb.asm.ClassReader;
-import org.objectweb.asm.ClassVisitor;
-import org.objectweb.asm.ClassWriter;
-import org.objectweb.asm.Label;
-import org.objectweb.asm.MethodVisitor;
-
-import cpw.mods.fml.relauncher.FMLRelaunchLog;
-
-public class ClassTransformer_IC2_GetHarvestTool {
-
- private final boolean isValid;
- private final ClassReader reader;
- private final ClassWriter writer;
- private final String className;
-
- private final String aName_getItemDropped;
- private final String aName_damageDropped;
-
- public static String getHarvestTool(int aMeta) {
- return "wrench";
- }
-
- public static Item getItemDropped(Block aBlock, int meta, Random random, int fortune) {
- return Item.getItemFromBlock(aBlock);
- }
-
- public static int damageDropped(int aMeta) {
- return aMeta;
- }
-
- public ClassTransformer_IC2_GetHarvestTool(byte[] basicClass, boolean obfuscated, String aClassName) {
- className = aClassName;
- ClassReader aTempReader = null;
- ClassWriter aTempWriter = null;
-
- aName_getItemDropped = obfuscated ? "func_149650_a" : "getItemDropped";
- aName_damageDropped = obfuscated ? "func_149692_a" : "damageDropped";
-
- FMLRelaunchLog.log(
- "[GT++ ASM] IC2 getHarvestTool Patch",
- Level.INFO,
- "Attempting to patch in mode " + className + ". Obfuscated? " + obfuscated);
-
- aTempReader = new ClassReader(basicClass);
- aTempWriter = new ClassWriter(aTempReader, ClassWriter.COMPUTE_FRAMES);
- aTempReader.accept(new localClassVisitor(aTempWriter, className), 0);
-
- if (aTempReader != null && aTempWriter != null) {
- isValid = true;
- } else {
- isValid = false;
- }
-
- FMLRelaunchLog.log("[GT++ ASM] IC2 getHarvestTool Patch", Level.INFO, "Valid patch? " + isValid + ".");
- reader = aTempReader;
- writer = aTempWriter;
-
- if (reader != null && writer != null) {
- FMLRelaunchLog.log("[GT++ ASM] IC2 getHarvestTool Patch", Level.INFO, "Attempting Method Injection.");
- injectMethod("getHarvestTool");
- if (aClassName.equals("ic2.core.block.machine.BlockMachine2")
- || aClassName.equals("ic2.core.block.machine.BlockMachine3")
- || aClassName.equals("ic2.core.block.wiring.BlockElectric")) {
- injectMethod(aName_getItemDropped);
- injectMethod(aName_damageDropped);
- } else if (aClassName.equals("ic2.core.block.generator.block.BlockGenerator")
- || aClassName.equals("ic2.core.block.machine.BlockMachine")) {
- injectMethod(aName_damageDropped);
- }
- }
- }
-
- public boolean isValidTransformer() {
- return isValid;
- }
-
- public ClassReader getReader() {
- return reader;
- }
-
- public ClassWriter getWriter() {
- return writer;
- }
-
- public boolean injectMethod(String aMethodName) {
- MethodVisitor mv;
- boolean didInject = false;
- String aFormattedClassName = className.replace('.', '/');
- ClassWriter cw = getWriter();
-
- FMLRelaunchLog.log("[GT++ ASM] IC2 getHarvestTool Patch", Level.INFO, "Injecting " + aMethodName + ".");
- if (aMethodName.equals("getHarvestTool")) {
- mv = getWriter().visitMethod(ACC_PUBLIC, "getHarvestTool", "(I)Ljava/lang/String;", null, null);
- mv.visitCode();
- Label l0 = new Label();
- mv.visitLabel(l0);
- mv.visitLineNumber(63, l0);
- mv.visitVarInsn(ILOAD, 1);
- mv.visitMethodInsn(
- INVOKESTATIC,
- "gtPlusPlus/preloader/asm/transformers/ClassTransformer_IC2_GetHarvestTool",
- "getHarvestTool",
- "(I)Ljava/lang/String;",
- false);
- mv.visitInsn(ARETURN);
- Label l1 = new Label();
- mv.visitLabel(l1);
- mv.visitLocalVariable("this", "L" + aFormattedClassName + ";", null, l0, l1, 0);
- mv.visitLocalVariable("aMeta", "I", null, l0, l1, 1);
- mv.visitMaxs(1, 2);
- mv.visitEnd();
- didInject = true;
- } else if (aMethodName.equals(aName_getItemDropped)) {
- mv = cw.visitMethod(
- ACC_PUBLIC,
- aName_getItemDropped,
- "(ILjava/util/Random;I)Lnet/minecraft/item/Item;",
- null,
- null);
- mv.visitCode();
- Label l0 = new Label();
- mv.visitLabel(l0);
- mv.visitLineNumber(44, l0);
- mv.visitVarInsn(ALOAD, 0);
- mv.visitVarInsn(ILOAD, 1);
- mv.visitVarInsn(ALOAD, 2);
- mv.visitVarInsn(ILOAD, 3);
- 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);
- mv.visitLocalVariable("this", "L" + aFormattedClassName + ";", null, l0, l1, 0);
- mv.visitLocalVariable("meta", "I", null, l0, l1, 1);
- mv.visitLocalVariable("random", "Ljava/util/Random;", null, l0, l1, 2);
- mv.visitLocalVariable("fortune", "I", null, l0, l1, 3);
- mv.visitMaxs(4, 4);
- mv.visitEnd();
- didInject = true;
- } else if (aMethodName.equals(aName_damageDropped)) {
- mv = cw.visitMethod(ACC_PUBLIC, aName_damageDropped, "(I)I", null, null);
- mv.visitCode();
- Label l0 = new Label();
- mv.visitLabel(l0);
- mv.visitLineNumber(48, l0);
- mv.visitVarInsn(ILOAD, 1);
- mv.visitMethodInsn(
- INVOKESTATIC,
- "gtPlusPlus/preloader/asm/transformers/ClassTransformer_IC2_GetHarvestTool",
- "damageDropped",
- "(I)I",
- false);
- mv.visitInsn(IRETURN);
- Label l1 = new Label();
- mv.visitLabel(l1);
- mv.visitLocalVariable("this", "L" + aFormattedClassName + ";", null, l0, l1, 0);
- mv.visitLocalVariable("meta", "I", null, l0, l1, 1);
- mv.visitMaxs(1, 2);
- mv.visitEnd();
- didInject = true;
- }
- FMLRelaunchLog.log("[GT++ ASM] IC2 getHarvestTool Patch", Level.INFO, "Method injection complete.");
- return didInject;
- }
-
- public final class localClassVisitor extends ClassVisitor {
-
- String aClassName;
-
- public localClassVisitor(ClassVisitor cv, String aName) {
- super(ASM5, cv);
- aClassName = aName;
- }
-
- @Override
- public MethodVisitor visitMethod(int access, String name, String desc, String signature, String[] exceptions) {
- MethodVisitor methodVisitor;
- if (aClassName.equals("ic2.core.block.machine.BlockMachine2")
- || aClassName.equals("ic2.core.block.machine.BlockMachine3")
- || aClassName.equals("ic2.core.block.wiring.BlockElectric")) {
- if (name.equals(aName_getItemDropped)) {
- methodVisitor = null;
- } else if (name.equals(aName_damageDropped)) {
- methodVisitor = null;
- } else if (name.equals("getHarvestTool")) {
- methodVisitor = null;
- } else {
- methodVisitor = super.visitMethod(access, name, desc, signature, exceptions);
- }
- } else if (aClassName.equals("ic2.core.block.generator.block.BlockGenerator")
- || aClassName.equals("ic2.core.block.machine.BlockMachine")) {
- if (name.equals(aName_damageDropped)) {
- methodVisitor = null;
- } else if (name.equals("getHarvestTool")) {
- methodVisitor = null;
- } else {
- methodVisitor = super.visitMethod(access, name, desc, signature, exceptions);
- }
- } else {
- if (name.equals("getHarvestTool")) {
- methodVisitor = null;
- } else {
- methodVisitor = super.visitMethod(access, name, desc, signature, exceptions);
- }
- }
- if (methodVisitor == null) {
- FMLRelaunchLog
- .log("[GT++ ASM] IC2 getHarvestTool Patch", Level.INFO, "Found method " + name + ", removing.");
- }
- return methodVisitor;
- }
- }
-}
diff --git a/src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_LWJGL_Keyboard.java b/src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_LWJGL_Keyboard.java
deleted file mode 100644
index a10f842d95..0000000000
--- a/src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_LWJGL_Keyboard.java
+++ /dev/null
@@ -1,295 +0,0 @@
-package gtPlusPlus.preloader.asm.transformers;
-
-import static org.objectweb.asm.Opcodes.ACC_PUBLIC;
-import static org.objectweb.asm.Opcodes.ACC_STATIC;
-import static org.objectweb.asm.Opcodes.ACC_SYNCHRONIZED;
-import static org.objectweb.asm.Opcodes.ARETURN;
-import static org.objectweb.asm.Opcodes.ASM5;
-import static org.objectweb.asm.Opcodes.ILOAD;
-import static org.objectweb.asm.Opcodes.INVOKESTATIC;
-
-import java.lang.reflect.Field;
-import java.util.HashMap;
-
-import net.minecraft.client.Minecraft;
-import net.minecraft.client.settings.GameSettings;
-import net.minecraft.client.settings.KeyBinding;
-
-import org.apache.logging.log4j.Level;
-import org.objectweb.asm.ClassReader;
-import org.objectweb.asm.ClassVisitor;
-import org.objectweb.asm.ClassWriter;
-import org.objectweb.asm.Label;
-import org.objectweb.asm.MethodVisitor;
-
-import cpw.mods.fml.relauncher.FMLRelaunchLog;
-import gregtech.api.util.ReflectionUtil;
-import gtPlusPlus.core.util.reflect.ReflectionUtils;
-
-public class ClassTransformer_LWJGL_Keyboard {
-
- private final boolean isValid;
- private final ClassReader reader;
- private final ClassWriter writer;
-
- private static final HashMap<String, String> mBadKeyCache = new HashMap<>();
-
- /**
- * Gets a key's name
- *
- * @param key The key
- * @return a String with the key's human readable name in it or null if the key is unnamed
- */
- public static synchronized String getKeyName(int key) {
- if (init()) {
- String[] aTemp = getKeyName();
- if (key < aTemp.length && key >= 0) {
- return aTemp[key];
- }
- }
- String aCachedValue = mBadKeyCache.get("key-" + key);
- if (aCachedValue == null) {
- FMLRelaunchLog.log(
- "[GT++ ASM] LWJGL Keybinding index out of bounds fix",
- Level.INFO,
- "Unable to map key code " + key + " to LWJGL keymap.");
- FMLRelaunchLog.log(
- "[GT++ ASM] LWJGL Keybinding index out of bounds fix",
- Level.INFO,
- "Caching key value to be empty.");
- // mBadKeyCache.put("key-"+key, getKeyName()[0x00]);
- aCachedValue = "FIX!";
- mBadKeyCache.put("key-" + key, aCachedValue);
- trySetClientKey(key);
- }
- return aCachedValue; // Return nothing
- }
-
- public static void trySetClientKey(int aKey) {
- FMLRelaunchLog.log(
- "[GT++ ASM] LWJGL Keybinding index out of bounds fix",
- Level.INFO,
- "Trying to set key value to be empty.");
- GameSettings options = Minecraft.getMinecraft().gameSettings;
- KeyBinding[] akeybinding = Minecraft.getMinecraft().gameSettings.keyBindings;
- int i = akeybinding.length;
- for (KeyBinding keybinding : akeybinding) {
- if (keybinding != null && keybinding.getKeyCode() == aKey) {
- options.setOptionKeyBinding(keybinding, 0);
- FMLRelaunchLog.log(
- "[GT++ ASM] LWJGL Keybinding index out of bounds fix",
- Level.INFO,
- "Set keybind " + aKey + " to 0.");
- break;
- }
- }
- }
-
- @SuppressWarnings("rawtypes")
- private static Class mKeyboard;
-
- private static Field mKeyName;
-
- @SuppressWarnings("rawtypes")
- private static boolean init() {
- if (mKeyName != null) {
- return true;
- }
- Class aKeyboard = ReflectionUtil.getClass("org.lwjgl.input.Keyboard");
- if (aKeyboard != null) {
- mKeyboard = aKeyboard;
- Field aKeyName = ReflectionUtils.getField(mKeyboard, "keyName");
- if (aKeyName != null) {
- mKeyName = aKeyName;
- }
- }
- return mKeyName != null;
- }
-
- private static String[] getKeyName() {
- if (init()) {
- try {
- Object o = mKeyName.get(null);
- if (o instanceof String[]y) {
- return y;
- }
- } catch (IllegalArgumentException | IllegalAccessException e) {}
- }
- return new String[] {};
- }
-
- public ClassTransformer_LWJGL_Keyboard(byte[] basicClass, boolean isClientSettings) {
- ClassReader aTempReader = null;
- ClassWriter aTempWriter = null;
- aTempReader = new ClassReader(basicClass);
- aTempWriter = new ClassWriter(aTempReader, ClassWriter.COMPUTE_FRAMES);
- if (!isClientSettings) {
- // gtPlusPlus.preloader.keyboard.BetterKeyboard.init();
- aTempReader.accept(new PatchLWJGL(aTempWriter), 0);
- injectLWJGLPatch(aTempWriter);
- } else {
- // gtPlusPlus.preloader.keyboard.BetterKeyboard.init();
- aTempReader.accept(new PatchClientSettings(aTempWriter), 0);
- injectClientSettingPatch(aTempWriter);
- }
- if (aTempReader != null && aTempWriter != null) {
- isValid = true;
- } else {
- isValid = false;
- }
- FMLRelaunchLog
- .log("[GT++ ASM] LWJGL Keybinding index out of bounds fix", Level.INFO, "Valid? " + isValid + ".");
- reader = aTempReader;
- writer = aTempWriter;
- }
-
- public boolean isValidTransformer() {
- return isValid;
- }
-
- public ClassReader getReader() {
- return reader;
- }
-
- public ClassWriter getWriter() {
- return writer;
- }
-
- private boolean isClientSettingsObfuscated = false;
-
- public boolean injectLWJGLPatch(ClassWriter cw) {
- MethodVisitor mv;
- boolean didInject = false;
- FMLRelaunchLog
- .log("[GT++ ASM] LWJGL Keybinding index out of bounds fix", Level.INFO, "Injecting " + "getKeyName" + ".");
- mv = cw
- .visitMethod(ACC_PUBLIC + ACC_STATIC + ACC_SYNCHRONIZED, "getKeyName", "(I)Ljava/lang/String;", null, null);
- mv.visitCode();
- Label l0 = new Label();
- mv.visitLabel(l0);
- mv.visitLineNumber(49, l0);
- mv.visitVarInsn(ILOAD, 0);
- mv.visitMethodInsn(
- INVOKESTATIC,
- "gtPlusPlus/preloader/asm/transformers/ClassTransformer_LWJGL_Keyboard",
- "getKeyName",
- "(I)Ljava/lang/String;",
- false);
- mv.visitInsn(ARETURN);
- Label l1 = new Label();
- mv.visitLabel(l1);
- mv.visitLocalVariable("key", "I", null, l0, l1, 0);
- mv.visitMaxs(1, 1);
- mv.visitEnd();
- didInject = true;
-
- FMLRelaunchLog
- .log("[GT++ ASM] LWJGL Keybinding index out of bounds fix", Level.INFO, "Method injection complete.");
- return didInject;
- }
-
- public boolean injectClientSettingPatch(ClassWriter cw) {
- MethodVisitor mv;
- boolean didInject = false;
- String aMethodName = this.isClientSettingsObfuscated ? "func_74298_c" : "getKeyDisplayString";
- FMLRelaunchLog
- .log("[GT++ ASM] LWJGL Keybinding index out of bounds fix", Level.INFO, "Injecting " + aMethodName + ".");
- mv = cw.visitMethod(ACC_PUBLIC + ACC_STATIC, aMethodName, "(I)Ljava/lang/String;", null, null);
- mv.visitCode();
- Label l0 = new Label();
- mv.visitLabel(l0);
- mv.visitLineNumber(130, l0);
- mv.visitVarInsn(ILOAD, 0);
- mv.visitMethodInsn(
- INVOKESTATIC,
- "gtPlusPlus/preloader/keyboard/BetterKeyboard",
- "getKeyDisplayString",
- "(I)Ljava/lang/String;",
- false);
- mv.visitInsn(ARETURN);
- Label l1 = new Label();
- mv.visitLabel(l1);
- mv.visitLocalVariable("p_74298_0_", "I", null, l0, l1, 0);
- mv.visitMaxs(1, 1);
- mv.visitEnd();
- didInject = true;
- FMLRelaunchLog
- .log("[GT++ ASM] LWJGL Keybinding index out of bounds fix", Level.INFO, "Method injection complete.");
- return didInject;
- }
-
- public class PatchClientSettings extends ClassVisitor {
-
- public PatchClientSettings(ClassVisitor cv) {
- super(ASM5, cv);
- this.cv = cv;
- }
-
- private final String[] aMethodsToStrip = new String[] { "func_74298_c", "getKeyDisplayString" };
-
- @Override
- public MethodVisitor visitMethod(int access, String name, String desc, String signature, String[] exceptions) {
- MethodVisitor methodVisitor;
- boolean found = false;
-
- for (String s : aMethodsToStrip) {
- if (name.equals(s)) {
- if (name.equals(aMethodsToStrip[0])) {
- isClientSettingsObfuscated = true;
- } else {
- isClientSettingsObfuscated = false;
- }
- found = true;
- break;
- }
- }
- if (!found) {
- methodVisitor = super.visitMethod(access, name, desc, signature, exceptions);
- } else {
- methodVisitor = null;
- }
- if (found) {
- FMLRelaunchLog.log(
- "[GT++ ASM] LWJGL Keybinding index out of bounds fix",
- Level.INFO,
- "Found method " + name + ", removing.");
- }
- return methodVisitor;
- }
- }
-
- public class PatchLWJGL extends ClassVisitor {
-
- public PatchLWJGL(ClassVisitor cv) {
- super(ASM5, cv);
- this.cv = cv;
- }
-
- private final String[] aMethodsToStrip = new String[] { "getKeyName" };
-
- @Override
- public MethodVisitor visitMethod(int access, String name, String desc, String signature, String[] exceptions) {
- MethodVisitor methodVisitor;
- boolean found = false;
-
- for (String s : aMethodsToStrip) {
- if (name.equals(s)) {
- found = true;
- break;
- }
- }
- if (!found) {
- methodVisitor = super.visitMethod(access, name, desc, signature, exceptions);
- } else {
- methodVisitor = null;
- }
- if (found) {
- FMLRelaunchLog.log(
- "[GT++ ASM] LWJGL Keybinding index out of bounds fix",
- Level.INFO,
- "Found method " + name + ", removing.");
- }
- return methodVisitor;
- }
- }
-}
diff --git a/src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_TC_ItemWispEssence.java b/src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_TC_ItemWispEssence.java
deleted file mode 100644
index cf8b08d40c..0000000000
--- a/src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_TC_ItemWispEssence.java
+++ /dev/null
@@ -1,317 +0,0 @@
-package gtPlusPlus.preloader.asm.transformers;
-
-import static org.objectweb.asm.Opcodes.AALOAD;
-import static org.objectweb.asm.Opcodes.ACC_PUBLIC;
-import static org.objectweb.asm.Opcodes.ACONST_NULL;
-import static org.objectweb.asm.Opcodes.ALOAD;
-import static org.objectweb.asm.Opcodes.ARETURN;
-import static org.objectweb.asm.Opcodes.ARRAYLENGTH;
-import static org.objectweb.asm.Opcodes.ASM5;
-import static org.objectweb.asm.Opcodes.ASTORE;
-import static org.objectweb.asm.Opcodes.DUP;
-import static org.objectweb.asm.Opcodes.F_APPEND;
-import static org.objectweb.asm.Opcodes.F_CHOP;
-import static org.objectweb.asm.Opcodes.F_SAME;
-import static org.objectweb.asm.Opcodes.F_SAME1;
-import static org.objectweb.asm.Opcodes.GETSTATIC;
-import static org.objectweb.asm.Opcodes.GOTO;
-import static org.objectweb.asm.Opcodes.I2L;
-import static org.objectweb.asm.Opcodes.ICONST_0;
-import static org.objectweb.asm.Opcodes.IFEQ;
-import static org.objectweb.asm.Opcodes.IFLE;
-import static org.objectweb.asm.Opcodes.IFNONNULL;
-import static org.objectweb.asm.Opcodes.IFNULL;
-import static org.objectweb.asm.Opcodes.ILOAD;
-import static org.objectweb.asm.Opcodes.INVOKESPECIAL;
-import static org.objectweb.asm.Opcodes.INVOKESTATIC;
-import static org.objectweb.asm.Opcodes.INVOKEVIRTUAL;
-import static org.objectweb.asm.Opcodes.IRETURN;
-import static org.objectweb.asm.Opcodes.ISTORE;
-import static org.objectweb.asm.Opcodes.L2I;
-import static org.objectweb.asm.Opcodes.LDIV;
-import static org.objectweb.asm.Opcodes.LREM;
-import static org.objectweb.asm.Opcodes.NEW;
-
-import org.apache.logging.log4j.Level;
-import org.objectweb.asm.AnnotationVisitor;
-import org.objectweb.asm.ClassReader;
-import org.objectweb.asm.ClassVisitor;
-import org.objectweb.asm.ClassWriter;
-import org.objectweb.asm.Label;
-import org.objectweb.asm.MethodVisitor;
-
-import cpw.mods.fml.relauncher.FMLRelaunchLog;
-
-public class ClassTransformer_TC_ItemWispEssence {
-
- private final boolean isValid;
- private final ClassReader reader;
- private final ClassWriter writer;
-
- public ClassTransformer_TC_ItemWispEssence(byte[] basicClass, boolean obfuscated2) {
- ClassReader aTempReader = null;
- ClassWriter aTempWriter = null;
- FMLRelaunchLog.log(
- "[GT++ ASM] Thaumcraft WispEssence_Patch",
- Level.INFO,
- "Are we patching obfuscated methods? " + obfuscated2);
- String aGetColour = obfuscated2 ? "func_82790_a" : "getColorFromItemStack";
- aTempReader = new ClassReader(basicClass);
- aTempWriter = new ClassWriter(aTempReader, ClassWriter.COMPUTE_FRAMES);
- aTempReader.accept(new AddAdapter(aTempWriter, new String[] { "getAspects", aGetColour }), 0);
- injectMethod("getAspects", aTempWriter, obfuscated2);
- injectMethod(aGetColour, aTempWriter, obfuscated2);
- if (aTempReader != null && aTempWriter != null) {
- isValid = true;
- } else {
- isValid = false;
- }
- FMLRelaunchLog.log("[GT++ ASM] Thaumcraft WispEssence_Patch", Level.INFO, "Valid? " + isValid + ".");
- reader = aTempReader;
- writer = aTempWriter;
- }
-
- public boolean isValidTransformer() {
- return isValid;
- }
-
- public ClassReader getReader() {
- return reader;
- }
-
- public ClassWriter getWriter() {
- return writer;
- }
-
- public boolean injectMethod(String aMethodName, ClassWriter cw, boolean obfuscated) {
- MethodVisitor mv;
- boolean didInject = false;
- FMLRelaunchLog.log("[GT++ ASM] Thaumcraft WispEssence_Patch", Level.INFO, "Injecting " + aMethodName + ".");
-
- String aGetColour = obfuscated ? "func_82790_a" : "getColorFromItemStack";
- String aHasTagCompound = obfuscated ? "func_77942_o" : "hasTagCompound";
- String aGetTagCompound = obfuscated ? "func_77978_p" : "getTagCompound";
-
- if (aMethodName.equals("getAspects")) {
- mv = cw.visitMethod(
- ACC_PUBLIC,
- "getAspects",
- "(Lnet/minecraft/item/ItemStack;)Lthaumcraft/api/aspects/AspectList;",
- null,
- null);
- mv.visitCode();
- Label l0 = new Label();
- mv.visitLabel(l0);
- mv.visitLineNumber(141, l0);
- mv.visitVarInsn(ALOAD, 1);
- Label l1 = new Label();
- mv.visitJumpInsn(IFNONNULL, l1);
- Label l2 = new Label();
- mv.visitLabel(l2);
- mv.visitLineNumber(142, l2);
- mv.visitInsn(ACONST_NULL);
- mv.visitInsn(ARETURN);
- mv.visitLabel(l1);
- mv.visitLineNumber(144, l1);
- mv.visitFrame(F_SAME, 0, null, 0, null);
- mv.visitVarInsn(ALOAD, 1);
- mv.visitMethodInsn(INVOKEVIRTUAL, "net/minecraft/item/ItemStack", aHasTagCompound, "()Z", false);
- Label l3 = new Label();
- mv.visitJumpInsn(IFEQ, l3);
- Label l4 = new Label();
- mv.visitLabel(l4);
- mv.visitLineNumber(145, l4);
- mv.visitTypeInsn(NEW, "thaumcraft/api/aspects/AspectList");
- mv.visitInsn(DUP);
- mv.visitMethodInsn(INVOKESPECIAL, "thaumcraft/api/aspects/AspectList", "<init>", "()V", false);
- mv.visitVarInsn(ASTORE, 2);
- Label l5 = new Label();
- mv.visitLabel(l5);
- mv.visitLineNumber(146, l5);
- mv.visitVarInsn(ALOAD, 2);
- mv.visitVarInsn(ALOAD, 1);
- mv.visitMethodInsn(
- INVOKEVIRTUAL,
- "net/minecraft/item/ItemStack",
- aGetTagCompound,
- "()Lnet/minecraft/nbt/NBTTagCompound;",
- false);
- mv.visitMethodInsn(
- INVOKEVIRTUAL,
- "thaumcraft/api/aspects/AspectList",
- "readFromNBT",
- "(Lnet/minecraft/nbt/NBTTagCompound;)V",
- false);
- Label l6 = new Label();
- mv.visitLabel(l6);
- mv.visitLineNumber(147, l6);
- mv.visitVarInsn(ALOAD, 2);
- mv.visitMethodInsn(INVOKEVIRTUAL, "thaumcraft/api/aspects/AspectList", "size", "()I", false);
- Label l7 = new Label();
- mv.visitJumpInsn(IFLE, l7);
- mv.visitVarInsn(ALOAD, 2);
- Label l8 = new Label();
- mv.visitJumpInsn(GOTO, l8);
- mv.visitLabel(l7);
- mv.visitFrame(F_APPEND, 1, new Object[] { "thaumcraft/api/aspects/AspectList" }, 0, null);
- mv.visitInsn(ACONST_NULL);
- mv.visitLabel(l8);
- mv.visitFrame(F_SAME1, 0, null, 1, new Object[] { "thaumcraft/api/aspects/AspectList" });
- mv.visitInsn(ARETURN);
- mv.visitLabel(l3);
- mv.visitLineNumber(149, l3);
- mv.visitFrame(F_CHOP, 1, null, 0, null);
- mv.visitInsn(ACONST_NULL);
- mv.visitInsn(ARETURN);
- Label l9 = new Label();
- mv.visitLabel(l9);
- mv.visitLocalVariable(
- "this",
- "LgtPlusPlus/preloader/asm/transformers/ClassTransformer_TC_ItemWispEssence;",
- null,
- l0,
- l9,
- 0);
- mv.visitLocalVariable("itemstack", "Lnet/minecraft/item/ItemStack;", null, l0, l9, 1);
- mv.visitLocalVariable("aspects", "Lthaumcraft/api/aspects/AspectList;", null, l5, l3, 2);
- mv.visitMaxs(2, 3);
- mv.visitEnd();
- didInject = true;
- } else if (aMethodName.equals(aGetColour)) {
-
- // thaumcraft/common/items/ItemWispEssence
- mv = cw.visitMethod(ACC_PUBLIC, aGetColour, "(Lnet/minecraft/item/ItemStack;I)I", null, null);
- AnnotationVisitor av0;
- {
- av0 = mv.visitAnnotation("Lcpw/mods/fml/relauncher/SideOnly;", true);
- av0.visitEnum("value", "Lcpw/mods/fml/relauncher/Side;", "CLIENT");
- av0.visitEnd();
- }
- mv.visitCode();
- Label l0 = new Label();
- mv.visitLabel(l0);
- mv.visitLineNumber(197, l0);
- mv.visitVarInsn(ALOAD, 1);
- Label l1 = new Label();
- mv.visitJumpInsn(IFNONNULL, l1);
- Label l2 = new Label();
- mv.visitLabel(l2);
- mv.visitLineNumber(198, l2);
- mv.visitInsn(ICONST_0);
- mv.visitInsn(IRETURN);
- mv.visitLabel(l1);
- mv.visitLineNumber(200, l1);
- mv.visitFrame(F_SAME, 0, null, 0, null);
- mv.visitVarInsn(ALOAD, 0);
- mv.visitVarInsn(ALOAD, 1);
- mv.visitMethodInsn(
- INVOKEVIRTUAL,
- "thaumcraft/common/items/ItemWispEssence",
- "getAspects",
- "(Lnet/minecraft/item/ItemStack;)Lthaumcraft/api/aspects/AspectList;",
- false);
- Label l3 = new Label();
- mv.visitJumpInsn(IFNULL, l3);
- Label l4 = new Label();
- mv.visitLabel(l4);
- mv.visitLineNumber(201, l4);
- mv.visitVarInsn(ALOAD, 0);
- mv.visitVarInsn(ALOAD, 1);
- mv.visitMethodInsn(
- INVOKEVIRTUAL,
- "thaumcraft/common/items/ItemWispEssence",
- "getAspects",
- "(Lnet/minecraft/item/ItemStack;)Lthaumcraft/api/aspects/AspectList;",
- false);
- mv.visitMethodInsn(
- INVOKEVIRTUAL,
- "thaumcraft/api/aspects/AspectList",
- "getAspects",
- "()[Lthaumcraft/api/aspects/Aspect;",
- false);
- mv.visitInsn(ICONST_0);
- mv.visitInsn(AALOAD);
- mv.visitMethodInsn(INVOKEVIRTUAL, "thaumcraft/api/aspects/Aspect", "getColor", "()I", false);
- mv.visitInsn(IRETURN);
- mv.visitLabel(l3);
- mv.visitLineNumber(203, l3);
- mv.visitFrame(F_SAME, 0, null, 0, null);
- mv.visitMethodInsn(INVOKESTATIC, "java/lang/System", "currentTimeMillis", "()J", false);
- mv.visitLdcInsn(new Long(500L));
- mv.visitInsn(LDIV);
- mv.visitFieldInsn(
- GETSTATIC,
- "thaumcraft/common/items/ItemWispEssence",
- "displayAspects",
- "[Lthaumcraft/api/aspects/Aspect;");
- mv.visitInsn(ARRAYLENGTH);
- mv.visitInsn(I2L);
- mv.visitInsn(LREM);
- mv.visitInsn(L2I);
- mv.visitVarInsn(ISTORE, 3);
- Label l5 = new Label();
- mv.visitLabel(l5);
- mv.visitLineNumber(204, l5);
- mv.visitFieldInsn(
- GETSTATIC,
- "thaumcraft/common/items/ItemWispEssence",
- "displayAspects",
- "[Lthaumcraft/api/aspects/Aspect;");
- mv.visitVarInsn(ILOAD, 3);
- mv.visitInsn(AALOAD);
- mv.visitMethodInsn(INVOKEVIRTUAL, "thaumcraft/api/aspects/Aspect", "getColor", "()I", false);
- mv.visitInsn(IRETURN);
- Label l6 = new Label();
- mv.visitLabel(l6);
- mv.visitLocalVariable("this", "Lthaumcraft/common/items/ItemWispEssence;", null, l0, l6, 0);
- mv.visitLocalVariable("stack", "Lnet/minecraft/item/ItemStack;", null, l0, l6, 1);
- mv.visitLocalVariable("par2", "I", null, l0, l6, 2);
- mv.visitLocalVariable("idx", "I", null, l5, l6, 3);
- mv.visitMaxs(4, 4);
- mv.visitEnd();
- didInject = true;
- }
-
- FMLRelaunchLog.log(
- "[GT++ ASM] Thaumcraft WispEssence_Patch",
- Level.INFO,
- "Method injection complete. " + (obfuscated ? "Obfuscated" : "Non-Obfuscated"));
- return didInject;
- }
-
- public class AddAdapter extends ClassVisitor {
-
- public AddAdapter(ClassVisitor cv, String[] aMethods) {
- super(ASM5, cv);
- this.cv = cv;
- this.aMethodsToStrip = aMethods;
- }
-
- private final String[] aMethodsToStrip;
-
- @Override
- public MethodVisitor visitMethod(int access, String name, String desc, String signature, String[] exceptions) {
-
- MethodVisitor methodVisitor;
- boolean found = false;
-
- for (String s : aMethodsToStrip) {
- if (name.equals(s)) {
- found = true;
- break;
- }
- }
- if (!found) {
- methodVisitor = super.visitMethod(access, name, desc, signature, exceptions);
- } else {
- methodVisitor = null;
- }
-
- if (found) {
- FMLRelaunchLog
- .log("[GT++ ASM] Thaumcraft WispEssence_Patch", Level.INFO, "Found method " + name + ", removing.");
- }
- return methodVisitor;
- }
- }
-}
diff --git a/src/main/java/gtPlusPlus/preloader/asm/transformers/Preloader_ClassTransformer.java b/src/main/java/gtPlusPlus/preloader/asm/transformers/Preloader_ClassTransformer.java
deleted file mode 100644
index 89554db7a1..0000000000
--- a/src/main/java/gtPlusPlus/preloader/asm/transformers/Preloader_ClassTransformer.java
+++ /dev/null
@@ -1,79 +0,0 @@
-package gtPlusPlus.preloader.asm.transformers;
-
-import static org.objectweb.asm.Opcodes.ALOAD;
-import static org.objectweb.asm.Opcodes.ASM5;
-import static org.objectweb.asm.Opcodes.IFEQ;
-import static org.objectweb.asm.Opcodes.INVOKESTATIC;
-import static org.objectweb.asm.Opcodes.RETURN;
-
-import org.apache.logging.log4j.Level;
-import org.objectweb.asm.ClassVisitor;
-import org.objectweb.asm.Label;
-import org.objectweb.asm.MethodVisitor;
-
-import cpw.mods.fml.relauncher.FMLRelaunchLog;
-
-public class Preloader_ClassTransformer {
-
- public static final class OreDictionaryVisitor extends ClassVisitor {
-
- public OreDictionaryVisitor(ClassVisitor cv) {
- super(ASM5, cv);
- }
-
- @Override
- public MethodVisitor visitMethod(int access, String name, String desc, String signature, String[] exceptions) {
- 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. [Unobfuscated]");
- 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, true);
- }
- return methodVisitor;
- }
- }
-
- private static final class RegisterOreImplVisitor extends MethodVisitor {
-
- private final boolean mObfuscated;
-
- public RegisterOreImplVisitor(MethodVisitor mv, boolean obfuscated) {
- super(ASM5, mv);
- this.mObfuscated = obfuscated;
- }
-
- @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) {
- FMLRelaunchLog
- .log("[GT++ ASM] OreDictTransformer", Level.INFO, "Injecting target method. [Unobfuscated]");
- super.visitMethodInsn(
- INVOKESTATIC,
- "gtPlusPlus/preloader/PreloaderGTOreDict",
- "shouldPreventRegistration",
- "(Ljava/lang/String;Lnet/minecraft/item/ItemStack;)Z",
- false);
- } else {
- FMLRelaunchLog
- .log("[GT++ ASM] OreDictTransformer", Level.INFO, "Injecting target method. [Obfuscated]");
- super.visitMethodInsn(
- INVOKESTATIC,
- "gtPlusPlus/preloader/PreloaderGTOreDict",
- "shouldPreventRegistration",
- "(Ljava/lang/String;Ladd;)Z",
- false);
- }
- Label endLabel = new Label();
- super.visitJumpInsn(IFEQ, endLabel);
- super.visitInsn(RETURN);
- super.visitLabel(endLabel);
- }
- }
-}
diff --git a/src/main/java/gtPlusPlus/preloader/asm/transformers/Preloader_Transformer_Handler.java b/src/main/java/gtPlusPlus/preloader/asm/transformers/Preloader_Transformer_Handler.java
deleted file mode 100644
index 4fb4225d26..0000000000
--- a/src/main/java/gtPlusPlus/preloader/asm/transformers/Preloader_Transformer_Handler.java
+++ /dev/null
@@ -1,91 +0,0 @@
-package gtPlusPlus.preloader.asm.transformers;
-
-import java.util.HashSet;
-import java.util.Set;
-
-import net.minecraft.launchwrapper.IClassTransformer;
-
-import org.objectweb.asm.ClassReader;
-import org.objectweb.asm.ClassWriter;
-
-import gregtech.asm.GTCorePlugin;
-import gtPlusPlus.core.config.ASMConfiguration;
-import gtPlusPlus.preloader.PreloaderCore;
-import gtPlusPlus.preloader.PreloaderLogger;
-import gtPlusPlus.preloader.asm.transformers.Preloader_ClassTransformer.OreDictionaryVisitor;
-
-public class Preloader_Transformer_Handler implements IClassTransformer {
-
- private static final Set<String> IC2_WRENCH_PATCH_CLASS_NAMES = new HashSet<>();
- private static final String LWJGL_KEYBOARD = "org.lwjgl.input.Keyboard";
- private static final String MINECRAFT_GAMESETTINGS = "net.minecraft.client.settings.GameSettings";
- private static final String FORGE_CHUNK_MANAGER = "net.minecraftforge.common.ForgeChunkManager";
- private static final String FORGE_ORE_DICTIONARY = "net.minecraftforge.oredict.OreDictionary";
- private static final String COFH_ORE_DICTIONARY_ARBITER = "cofh.core.util.oredict.OreDictionaryArbiter";
- private static final String THAUMCRAFT_ITEM_WISP_ESSENCE = "thaumcraft.common.items.ItemWispEssence";
-
- static {
- IC2_WRENCH_PATCH_CLASS_NAMES.add("ic2.core.block.BlockTileEntity");
- IC2_WRENCH_PATCH_CLASS_NAMES.add("ic2.core.block.machine.BlockMachine");
- IC2_WRENCH_PATCH_CLASS_NAMES.add("ic2.core.block.machine.BlockMachine2");
- IC2_WRENCH_PATCH_CLASS_NAMES.add("ic2.core.block.machine.BlockMachine3");
- IC2_WRENCH_PATCH_CLASS_NAMES.add("ic2.core.block.kineticgenerator.block.BlockKineticGenerator");
- IC2_WRENCH_PATCH_CLASS_NAMES.add("ic2.core.block.heatgenerator.block.BlockHeatGenerator");
- IC2_WRENCH_PATCH_CLASS_NAMES.add("ic2.core.block.generator.block.BlockGenerator");
- IC2_WRENCH_PATCH_CLASS_NAMES.add("ic2.core.block.reactor.block.BlockReactorAccessHatch");
- IC2_WRENCH_PATCH_CLASS_NAMES.add("ic2.core.block.reactor.block.BlockReactorChamber");
- IC2_WRENCH_PATCH_CLASS_NAMES.add("ic2.core.block.reactor.block.BlockReactorFluidPort");
- IC2_WRENCH_PATCH_CLASS_NAMES.add("ic2.core.block.reactor.block.BlockReactorRedstonePort");
- IC2_WRENCH_PATCH_CLASS_NAMES.add("ic2.core.block.reactor.block.BlockReactorVessel");
- IC2_WRENCH_PATCH_CLASS_NAMES.add("ic2.core.block.personal.BlockPersonal.class");
- IC2_WRENCH_PATCH_CLASS_NAMES.add("ic2.core.block.wiring.BlockChargepad.class");
- IC2_WRENCH_PATCH_CLASS_NAMES.add("ic2.core.block.wiring.BlockElectric.class");
- IC2_WRENCH_PATCH_CLASS_NAMES.add("ic2.core.block.wiring.BlockLuminator.class");
- }
-
- @Override
- public byte[] transform(String name, String transformedName, byte[] basicClass) {
- // Fix LWJGL index array out of bounds on keybinding IDs
- if ((transformedName.equals(LWJGL_KEYBOARD) || transformedName.equals(MINECRAFT_GAMESETTINGS))
- && ASMConfiguration.general.enabledLwjglKeybindingFix
- && !GTCorePlugin.islwjgl3Present()) {
- boolean isClientSettingsClass = !transformedName.equals(LWJGL_KEYBOARD);
- PreloaderLogger.INFO("LWJGL Keybinding index out of bounds fix", "Transforming " + transformedName);
- return new ClassTransformer_LWJGL_Keyboard(basicClass, isClientSettingsClass).getWriter()
- .toByteArray();
- }
-
- // Fix the OreDictionary - Forge
- if (transformedName.equals(FORGE_ORE_DICTIONARY) && ASMConfiguration.debug.enableOreDictPatch) {
- PreloaderLogger.INFO("OreDictTransformer", "Transforming " + transformedName);
- ClassWriter classWriter = new ClassWriter(ClassWriter.COMPUTE_FRAMES);
- new ClassReader(basicClass).accept(new OreDictionaryVisitor(classWriter), 0);
- return classWriter.toByteArray();
- }
-
- // Fix the OreDictionary COFH
- if (transformedName.equals(COFH_ORE_DICTIONARY_ARBITER)
- && (ASMConfiguration.debug.enableCofhPatch || PreloaderCore.DEV_ENVIRONMENT)) {
- PreloaderLogger.INFO("COFH", "Transforming " + transformedName);
- return new ClassTransformer_COFH_OreDictionaryArbiter(basicClass).getWriter()
- .toByteArray();
- }
-
- if (IC2_WRENCH_PATCH_CLASS_NAMES.contains(transformedName)) {
- PreloaderLogger.INFO("IC2 getHarvestTool Patch", "Transforming " + transformedName);
- return new ClassTransformer_IC2_GetHarvestTool(basicClass, !PreloaderCore.DEV_ENVIRONMENT, transformedName)
- .getWriter()
- .toByteArray();
- }
-
- // Fix Thaumcraft stuff
- // Patching ItemWispEssence to allow invalid item handling
- if (transformedName.equals(THAUMCRAFT_ITEM_WISP_ESSENCE) && ASMConfiguration.general.enableTcAspectSafety) {
- PreloaderLogger.INFO("Thaumcraft WispEssence_Patch", "Transforming " + transformedName);
- return new ClassTransformer_TC_ItemWispEssence(basicClass, !PreloaderCore.DEV_ENVIRONMENT).getWriter()
- .toByteArray();
- }
-
- return basicClass;
- }
-}
diff --git a/src/main/java/gtPlusPlus/preloader/keyboard/BetterKeyboard.java b/src/main/java/gtPlusPlus/preloader/keyboard/BetterKeyboard.java
deleted file mode 100644
index 510689911c..0000000000
--- a/src/main/java/gtPlusPlus/preloader/keyboard/BetterKeyboard.java
+++ /dev/null
@@ -1,134 +0,0 @@
-/*
- * Copyright (c) 2002-2008 LWJGL Project All rights reserved. Redistribution and use in source and binary forms, with or
- * without modification, are permitted provided that the following conditions are met: * Redistributions of source code
- * must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in
- * binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution. * Neither the name of 'LWJGL' nor the names of
- * its contributors may be used to endorse or promote products derived from this software without specific prior written
- * permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
- * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
- * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-package gtPlusPlus.preloader.keyboard;
-
-import java.lang.reflect.Field;
-import java.nio.ByteBuffer;
-import java.util.HashMap;
-import java.util.Map;
-
-import net.minecraft.client.resources.I18n;
-
-import org.apache.logging.log4j.Level;
-import org.lwjgl.BufferUtils;
-import org.lwjgl.input.Keyboard;
-
-import cpw.mods.fml.relauncher.FMLRelaunchLog;
-import gtPlusPlus.core.util.reflect.ReflectionUtils;
-import gtPlusPlus.preloader.asm.transformers.ClassTransformer_LWJGL_Keyboard;
-
-/**
- * <br>
- * A raw Keyboard interface. This can be used to poll the current state of the keys, or read all the keyboard presses /
- * releases since the last read.
- *
- * DO NOT REMOVE. CALLED BY ASM CODE.
- *
- * @author cix_foo <cix_foo@users.sourceforge.net>
- * @author elias_naur <elias_naur@users.sourceforge.net>
- * @author Brian Matzon <brian@matzon.dk>
- * @version $Revision$ $Id$
- */
-@SuppressWarnings("unused")
-public class BetterKeyboard {
-
- public static final int KEYBOARD_SIZE = Short.MAX_VALUE;
-
- private static boolean init = false;
-
- public static void init() {
- if (!init) {
- FMLRelaunchLog.log(
- "[GT++ ASM] LWJGL Keybinding index out of bounds fix",
- Level.INFO,
- "Trying to patch out LWJGL internal arrays with larger ones.");
- Field aKeyNameSize = ReflectionUtils.getField(Keyboard.class, "keyName");
- Field aKeyMapSize = ReflectionUtils.getField(Keyboard.class, "keyMap");
- Field aKeyDownBuffer = ReflectionUtils.getField(Keyboard.class, "keyDownBuffer");
- String[] aOldKeyNameArray = ReflectionUtils.getFieldValue(aKeyNameSize);
- if (aOldKeyNameArray != null && aOldKeyNameArray.length < Short.MAX_VALUE) {
- String[] aNewKeyNameArray = new String[Short.MAX_VALUE];
- for (int i = 0; i < aOldKeyNameArray.length; i++) {
- aNewKeyNameArray[i] = aOldKeyNameArray[i];
- }
- try {
- ReflectionUtils.setFinalFieldValue(Keyboard.class, aKeyNameSize.getName(), aNewKeyNameArray);
- FMLRelaunchLog.log(
- "[GT++ ASM] LWJGL Keybinding index out of bounds fix",
- Level.INFO,
- "Patched Field: " + aKeyNameSize.getName());
- } catch (Throwable t) {
- FMLRelaunchLog.log(
- "[GT++ ASM] LWJGL Keybinding index out of bounds fix",
- Level.INFO,
- "Failed Patching Field: " + aKeyDownBuffer.getName());
- }
- }
- Map<String, Integer> aOldKeyMapArray = ReflectionUtils.getFieldValue(aKeyMapSize);
- if (aOldKeyNameArray != null && aOldKeyMapArray.size() < Short.MAX_VALUE) {
- Map<String, Integer> aNewKeyMapArray = new HashMap<String, Integer>(Short.MAX_VALUE);
- aNewKeyMapArray.putAll(aOldKeyMapArray);
- try {
- ReflectionUtils.setFinalFieldValue(Keyboard.class, aKeyMapSize.getName(), aNewKeyMapArray);
- FMLRelaunchLog.log(
- "[GT++ ASM] LWJGL Keybinding index out of bounds fix",
- Level.INFO,
- "Patched Field: " + aKeyMapSize.getName());
- } catch (Throwable t) {
- FMLRelaunchLog.log(
- "[GT++ ASM] LWJGL Keybinding index out of bounds fix",
- Level.INFO,
- "Failed Patching Field: " + aKeyDownBuffer.getName());
- }
- }
- ByteBuffer aOldByteBuffer = ReflectionUtils.getFieldValue(aKeyDownBuffer);
- if (aOldByteBuffer != null && aOldByteBuffer.capacity() == Keyboard.KEYBOARD_SIZE) {
- ByteBuffer aNewByteBuffer = BufferUtils.createByteBuffer(Short.MAX_VALUE);
- try {
- ReflectionUtils.setFinalFieldValue(Keyboard.class, aKeyDownBuffer.getName(), aNewByteBuffer);
- FMLRelaunchLog.log(
- "[GT++ ASM] LWJGL Keybinding index out of bounds fix",
- Level.INFO,
- "Patched Field: " + aKeyDownBuffer.getName());
- } catch (Throwable t) {
- FMLRelaunchLog.log(
- "[GT++ ASM] LWJGL Keybinding index out of bounds fix",
- Level.INFO,
- "Failed Patching Field: " + aKeyDownBuffer.getName());
- }
- }
- init = true;
- }
- }
-
- /**
- * Gets a key's name
- *
- * @param key The key
- * @return a String with the key's human readable name in it or null if the key is unnamed
- */
- public static synchronized String getKeyName(int key) {
- return ClassTransformer_LWJGL_Keyboard.getKeyName(key);
- }
-
- /**
- * Represents a key or mouse button as a string. Args: key
- */
- public static String getKeyDisplayString(int aKeyValue) {
- return aKeyValue < 0 ? I18n.format("key.mouseButton", new Object[] { Integer.valueOf(aKeyValue + 101) })
- : getKeyName(aKeyValue);
- }
-}
diff --git a/src/main/java/gtPlusPlus/xmod/bartcrops/abstracts/BaseAestheticCrop.java b/src/main/java/gtPlusPlus/xmod/bartcrops/abstracts/BaseAestheticCrop.java
index f71a84eaff..e0e9431463 100644
--- a/src/main/java/gtPlusPlus/xmod/bartcrops/abstracts/BaseAestheticCrop.java
+++ b/src/main/java/gtPlusPlus/xmod/bartcrops/abstracts/BaseAestheticCrop.java
@@ -1,6 +1,6 @@
package gtPlusPlus.xmod.bartcrops.abstracts;
-import gtPlusPlus.preloader.PreloaderCore;
+import gtPlusPlus.core.config.ASMConfiguration;
import ic2.api.crops.ICropTile;
public abstract class BaseAestheticCrop extends BaseHarvestableCrop {
@@ -24,7 +24,7 @@ public abstract class BaseAestheticCrop extends BaseHarvestableCrop {
@Override
public int growthDuration(ICropTile crop) {
- return PreloaderCore.DEBUG_MODE ? 1 : 225;
+ return ASMConfiguration.debug.debugMode ? 1 : 225;
}
@Override
diff --git a/src/main/java/gtPlusPlus/xmod/bartcrops/abstracts/BaseHarvestableCrop.java b/src/main/java/gtPlusPlus/xmod/bartcrops/abstracts/BaseHarvestableCrop.java
index db0a0cb4f1..81fed185de 100644
--- a/src/main/java/gtPlusPlus/xmod/bartcrops/abstracts/BaseHarvestableCrop.java
+++ b/src/main/java/gtPlusPlus/xmod/bartcrops/abstracts/BaseHarvestableCrop.java
@@ -1,6 +1,6 @@
package gtPlusPlus.xmod.bartcrops.abstracts;
-import gtPlusPlus.preloader.PreloaderCore;
+import gtPlusPlus.core.config.ASMConfiguration;
import ic2.api.crops.ICropTile;
public abstract class BaseHarvestableCrop extends BaseCrop {
@@ -45,7 +45,7 @@ public abstract class BaseHarvestableCrop extends BaseCrop {
@Override
public int growthDuration(ICropTile crop) {
short r;
- if (PreloaderCore.DEBUG_MODE) {
+ if (ASMConfiguration.debug.debugMode) {
r = 1;
} else if (crop.getSize() == 2) {
r = 200;
diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/GTPPMultiBlockBase.java b/src/main/java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/GTPPMultiBlockBase.java
index 7db3262531..b969227977 100644
--- a/src/main/java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/GTPPMultiBlockBase.java
+++ b/src/main/java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/GTPPMultiBlockBase.java
@@ -80,7 +80,6 @@ import gtPlusPlus.api.objects.minecraft.BlockPos;
import gtPlusPlus.core.config.ASMConfiguration;
import gtPlusPlus.core.util.minecraft.ItemUtils;
import gtPlusPlus.core.util.minecraft.PlayerUtils;
-import gtPlusPlus.preloader.PreloaderCore;
import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.METHatchAirIntake;
import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.MTEHatchInputBattery;
import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.MTEHatchOutputBattery;
@@ -381,7 +380,7 @@ public abstract class GTPPMultiBlockBase<T extends MTEExtendedPowerMultiBlockBas
public void log(String s) {
if (!ASMConfiguration.debug.disableAllLogging) {
- if (PreloaderCore.DEBUG_MODE) {
+ if (ASMConfiguration.debug.debugMode) {
Logger.INFO(s);
} else {
Logger.MACHINE_INFO(s);
diff --git a/src/mixin/java/gregtech/mixin/mixins/early/minecraft/CraftingManagerMixin.java b/src/mixin/java/gregtech/mixin/mixins/early/minecraft/CraftingManagerMixin.java
index b21e9dcaed..23432792d0 100644
--- a/src/mixin/java/gregtech/mixin/mixins/early/minecraft/CraftingManagerMixin.java
+++ b/src/mixin/java/gregtech/mixin/mixins/early/minecraft/CraftingManagerMixin.java
@@ -8,7 +8,7 @@ import net.minecraft.world.World;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Overwrite;
-import bartworks.ASM.BWCoreStaticReplacementMethodes;
+import bartworks.hooks.BWCoreStaticReplacementMethodes;
@Mixin(CraftingManager.class)
public abstract class CraftingManagerMixin {
diff --git a/src/mixin/java/gregtech/mixin/mixins/late/ic2/MixinDamageDropped.java b/src/mixin/java/gregtech/mixin/mixins/late/ic2/MixinDamageDropped.java
new file mode 100644
index 0000000000..4e68391a5e
--- /dev/null
+++ b/src/mixin/java/gregtech/mixin/mixins/late/ic2/MixinDamageDropped.java
@@ -0,0 +1,20 @@
+package gregtech.mixin.mixins.late.ic2;
+
+import net.minecraft.block.Block;
+import net.minecraft.block.material.Material;
+
+import org.spongepowered.asm.mixin.Mixin;
+
+@Mixin(value = { ic2.core.block.machine.BlockMachine.class, ic2.core.block.generator.block.BlockGenerator.class })
+public class MixinDamageDropped extends Block {
+
+ protected MixinDamageDropped(Material materialIn) {
+ super(materialIn);
+ }
+
+ @Override
+ public int damageDropped(int meta) {
+ return meta;
+ }
+
+}
diff --git a/src/mixin/java/gregtech/mixin/mixins/late/ic2/MixinHarvestTool.java b/src/mixin/java/gregtech/mixin/mixins/late/ic2/MixinHarvestTool.java
new file mode 100644
index 0000000000..39fca0c5c6
--- /dev/null
+++ b/src/mixin/java/gregtech/mixin/mixins/late/ic2/MixinHarvestTool.java
@@ -0,0 +1,31 @@
+package gregtech.mixin.mixins.late.ic2;
+
+import net.minecraft.block.Block;
+import net.minecraft.block.material.Material;
+
+import org.spongepowered.asm.mixin.Mixin;
+
+@Mixin(
+ value = { ic2.core.block.BlockTileEntity.class, ic2.core.block.machine.BlockMachine.class,
+ ic2.core.block.machine.BlockMachine2.class, ic2.core.block.machine.BlockMachine3.class,
+ ic2.core.block.kineticgenerator.block.BlockKineticGenerator.class,
+ ic2.core.block.heatgenerator.block.BlockHeatGenerator.class,
+ ic2.core.block.generator.block.BlockGenerator.class, ic2.core.block.reactor.block.BlockReactorAccessHatch.class,
+ ic2.core.block.reactor.block.BlockReactorChamber.class,
+ ic2.core.block.reactor.block.BlockReactorFluidPort.class,
+ ic2.core.block.reactor.block.BlockReactorRedstonePort.class,
+ ic2.core.block.reactor.block.BlockReactorVessel.class, ic2.core.block.personal.BlockPersonal.class,
+ ic2.core.block.wiring.BlockChargepad.class, ic2.core.block.wiring.BlockElectric.class,
+ ic2.core.block.wiring.BlockLuminator.class })
+public class MixinHarvestTool extends Block {
+
+ protected MixinHarvestTool(Material materialIn) {
+ super(materialIn);
+ }
+
+ @Override
+ public String getHarvestTool(int aMeta) {
+ return "wrench";
+ }
+
+}
diff --git a/src/mixin/java/gregtech/mixin/mixins/late/ic2/MixinItemDropped.java b/src/mixin/java/gregtech/mixin/mixins/late/ic2/MixinItemDropped.java
new file mode 100644
index 0000000000..d3dc2eee95
--- /dev/null
+++ b/src/mixin/java/gregtech/mixin/mixins/late/ic2/MixinItemDropped.java
@@ -0,0 +1,25 @@
+package gregtech.mixin.mixins.late.ic2;
+
+import java.util.Random;
+
+import net.minecraft.block.Block;
+import net.minecraft.block.material.Material;
+import net.minecraft.item.Item;
+
+import org.spongepowered.asm.mixin.Mixin;
+
+@Mixin(
+ value = { ic2.core.block.machine.BlockMachine2.class, ic2.core.block.machine.BlockMachine3.class,
+ ic2.core.block.wiring.BlockElectric.class })
+public class MixinItemDropped extends Block {
+
+ protected MixinItemDropped(Material materialIn) {
+ super(materialIn);
+ }
+
+ @Override
+ public Item getItemDropped(int meta, Random random, int fortune) {
+ return Item.getItemFromBlock((Block) (Object) this);
+ }
+
+}