aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gtPlusPlus/preloader/asm
diff options
context:
space:
mode:
authorConnor-Colenso <52056774+Connor-Colenso@users.noreply.github.com>2023-10-18 17:03:23 +0100
committerGitHub <noreply@github.com>2023-10-18 18:03:23 +0200
commitfbdbb388c369fae549cfde3eed38b536f7461d90 (patch)
treeb46f7fc949d7e4c6e3be910b81ed725e6dc1648e /src/main/java/gtPlusPlus/preloader/asm
parentb670446fdf49991093b485f0aa14050039632775 (diff)
downloadGT5-Unofficial-fbdbb388c369fae549cfde3eed38b536f7461d90.tar.gz
GT5-Unofficial-fbdbb388c369fae549cfde3eed38b536f7461d90.tar.bz2
GT5-Unofficial-fbdbb388c369fae549cfde3eed38b536f7461d90.zip
Cleaning up (#767)
* Kill playerAPI * Gut more events and compat that is now obsolete * Remove commented out code * Remove final modifier from methods * Make more stuff final * Remove slow building ring * Protected -> private in final classes * More cleaning * More cleaning v2 * Purging * Clean DevHelper * Clean DevHelper 2 * delete DevHelper * remove useless IFMLLoadingPlugin.MCVersion annotation from @Mod files * check for obfuscation only once in the IFMLloadingPlugin.injectData * don't instantiate the static class ASMConfig * delete unused and empty implementation of IFMLCallHook * delete empty class * delete ClassesToTransform class that just holds the class names constants * delete unused methods and unsless logging in dummymod container * delete unused transformer ClassTransformer_TT_ThaumicRestorer * spotless * Clean * Clean utils * Build checkpoint * Purge * Stage 2 * Stage 3 * Stage 4 * Stage 5 * Stage 6 * Spotless * Imports * Stage idk * Stage 1 * Fix issue * Spotless * Format numbers --------- Co-authored-by: GTNH-Colen <54497873+GTNH-Colen@users.noreply.github.com> Co-authored-by: Alexdoru <57050655+Alexdoru@users.noreply.github.com> Co-authored-by: Connor Colenso <colen@CONNORSPC>
Diffstat (limited to 'src/main/java/gtPlusPlus/preloader/asm')
-rw-r--r--src/main/java/gtPlusPlus/preloader/asm/AsmConfig.java13
-rw-r--r--src/main/java/gtPlusPlus/preloader/asm/ClassesToTransform.java37
-rw-r--r--src/main/java/gtPlusPlus/preloader/asm/Preloader_DummyContainer.java53
-rw-r--r--src/main/java/gtPlusPlus/preloader/asm/Preloader_FMLLoadingPlugin.java49
-rw-r--r--src/main/java/gtPlusPlus/preloader/asm/Preloader_SetupClass.java18
-rw-r--r--src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_COFH_OreDictionaryArbiter.java22
-rw-r--r--src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_Forge_ChunkLoading.java2106
-rw-r--r--src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_LWJGL_Keyboard.java8
-rw-r--r--src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_TC_ItemWispEssence.java10
-rw-r--r--src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_TT_ThaumicRestorer.java769
-rw-r--r--src/main/java/gtPlusPlus/preloader/asm/transformers/Preloader_ClassTransformer2.java14
-rw-r--r--src/main/java/gtPlusPlus/preloader/asm/transformers/Preloader_Transformer_Handler.java138
12 files changed, 1168 insertions, 2069 deletions
diff --git a/src/main/java/gtPlusPlus/preloader/asm/AsmConfig.java b/src/main/java/gtPlusPlus/preloader/asm/AsmConfig.java
index 35684c267a..8cdc772c39 100644
--- a/src/main/java/gtPlusPlus/preloader/asm/AsmConfig.java
+++ b/src/main/java/gtPlusPlus/preloader/asm/AsmConfig.java
@@ -13,7 +13,6 @@ import gtPlusPlus.preloader.Preloader_Logger;
public class AsmConfig {
- public static boolean loaded;
public static Configuration config;
public static boolean enableOreDictPatch;
@@ -30,16 +29,14 @@ public class AsmConfig {
public static boolean disableAllLogging;
public static boolean debugMode;
- public AsmConfig(File file) {
- if (!loaded) {
- config = new Configuration(file);
- syncConfig(true);
- }
+ static {
+ config = new Configuration(new File("config/GTplusplus/asm.cfg"));
+ syncConfig(true);
}
public static void syncConfig(boolean load) {
- ArrayList<String> propOrder = new ArrayList<String>();
- ArrayList<String> propOrderDebug = new ArrayList<String>();
+ ArrayList<String> propOrder = new ArrayList<>();
+ ArrayList<String> propOrderDebug = new ArrayList<>();
try {
if (!config.isChild && load) {
diff --git a/src/main/java/gtPlusPlus/preloader/asm/ClassesToTransform.java b/src/main/java/gtPlusPlus/preloader/asm/ClassesToTransform.java
deleted file mode 100644
index d2a03b2522..0000000000
--- a/src/main/java/gtPlusPlus/preloader/asm/ClassesToTransform.java
+++ /dev/null
@@ -1,37 +0,0 @@
-package gtPlusPlus.preloader.asm;
-
-public class ClassesToTransform {
-
- public static final String LWJGL_KEYBOARD = "org.lwjgl.input.Keyboard";
-
- public static final String MINECRAFT_GAMESETTINGS = "net.minecraft.client.settings.GameSettings";
- public static final String MINECRAFT_GAMESETTINGS_OBF = "bbj";
-
- public static final String FORGE_CHUNK_MANAGER = "net.minecraftforge.common.ForgeChunkManager";
- public static final String FORGE_ORE_DICTIONARY = "net.minecraftforge.oredict.OreDictionary";
-
- public static final String COFH_ORE_DICTIONARY_ARBITER = "cofh.core.util.oredict.OreDictionaryArbiter";
-
- public static final String THAUMCRAFT_ITEM_WISP_ESSENCE = "thaumcraft.common.items.ItemWispEssence";
- public static final String THAUMCRAFT_CRAFTING_MANAGER = "thaumcraft.common.lib.crafting.ThaumcraftCraftingManager";
- public static final String THAUMCRAFT_TILE_ALCHEMY_FURNACE = "thaumcraft.common.tiles.TileAlchemyFurnace";
- public static final String THAUMICTINKERER_TILE_REPAIRER = "thaumic.tinkerer.common.block.tile.TileRepairer";
-
- public static final String IC2_ITEM_ARMOUR_HAZMAT = "ic2.core.item.armor.ItemArmorHazmat";
- public static final String IC2_BLOCK_BASE_TILE_ENTITY = "ic2.core.block.BlockTileEntity";
- public static final String IC2_BLOCK_MACHINE1 = "ic2.core.block.machine.BlockMachine";
- public static final String IC2_BLOCK_MACHINE2 = "ic2.core.block.machine.BlockMachine2";
- public static final String IC2_BLOCK_MACHINE3 = "ic2.core.block.machine.BlockMachine3";
- public static final String IC2_BLOCK_KINETIC_GENERATOR = "ic2.core.block.kineticgenerator.block.BlockKineticGenerator";
- public static final String IC2_BLOCK_HEAT_GENERATOR = "ic2.core.block.heatgenerator.block.BlockHeatGenerator";
- public static final String IC2_BLOCK_GENERATOR = "ic2.core.block.generator.block.BlockGenerator";
- public static final String IC2_BLOCK_REACTOR_ACCESS_HATCH = "ic2.core.block.reactor.block.BlockReactorAccessHatch";
- public static final String IC2_BLOCK_REACTOR_CHAMBER = "ic2.core.block.reactor.block.BlockReactorChamber";
- public static final String IC2_BLOCK_REACTOR_FLUID_PORT = "ic2.core.block.reactor.block.BlockReactorFluidPort";
- public static final String IC2_BLOCK_REACTOR_REDSTONE_PORT = "ic2.core.block.reactor.block.BlockReactorRedstonePort";
- public static final String IC2_BLOCK_REACTOR_VESSEL = "ic2.core.block.reactor.block.BlockReactorVessel";
- public static final String IC2_BLOCK_PERSONAL = "ic2.core.block.personal.BlockPersonal.class";
- public static final String IC2_BLOCK_CHARGEPAD = "ic2.core.block.wiring.BlockChargepad.class";
- public static final String IC2_BLOCK_ELECTRIC = "ic2.core.block.wiring.BlockElectric.class";
- public static final String IC2_BLOCK_LUMINATOR = "ic2.core.block.wiring.BlockLuminator.class";
-}
diff --git a/src/main/java/gtPlusPlus/preloader/asm/Preloader_DummyContainer.java b/src/main/java/gtPlusPlus/preloader/asm/Preloader_DummyContainer.java
index 41cba8d85b..b157424e6e 100644
--- a/src/main/java/gtPlusPlus/preloader/asm/Preloader_DummyContainer.java
+++ b/src/main/java/gtPlusPlus/preloader/asm/Preloader_DummyContainer.java
@@ -4,7 +4,7 @@ import static gregtech.api.enums.Mods.GTPlusPlus;
import static gregtech.api.enums.Mods.GregTech;
import java.io.File;
-import java.util.Arrays;
+import java.util.Collections;
import net.minecraftforge.common.config.Configuration;
@@ -14,9 +14,6 @@ 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.FMLConstructionEvent;
-import cpw.mods.fml.common.event.FMLInitializationEvent;
-import cpw.mods.fml.common.event.FMLPostInitializationEvent;
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
import gtPlusPlus.preloader.CORE_Preloader;
import gtPlusPlus.preloader.Preloader_Logger;
@@ -30,15 +27,9 @@ public class Preloader_DummyContainer extends DummyModContainer {
meta.name = CORE_Preloader.NAME;
meta.version = CORE_Preloader.VERSION;
meta.credits = "Roll Credits ...";
- meta.authorList = Arrays.asList("Alkalus");
- meta.description = "";
- meta.url = "";
- meta.updateUrl = "";
+ meta.authorList = Collections.singletonList("Alkalus");
meta.screenshots = new String[0];
- meta.logoFile = "";
meta.parent = GTPlusPlus.ID;
- // meta.dependencies = (List<ArtifactVersion>) CORE_Preloader.DEPENDENCIES;
- Preloader_Logger.INFO("Initializing DummyModContainer");
}
@Override
@@ -48,27 +39,12 @@ public class Preloader_DummyContainer extends DummyModContainer {
}
@Subscribe
- public void modConstruction(FMLConstructionEvent evt) {
- Preloader_Logger.INFO("Constructing DummyModContainer");
- }
-
- @Subscribe
public void preInit(FMLPreInitializationEvent event) {
Preloader_Logger.INFO("Loading " + CORE_Preloader.MODID + " V" + CORE_Preloader.VERSION);
// Handle GT++ Config
handleConfigFile(event);
}
- @Subscribe
- public void init(FMLInitializationEvent evt) {
- Preloader_Logger.INFO("Begin resource allocation for " + CORE_Preloader.MODID + " V" + CORE_Preloader.VERSION);
- }
-
- @Subscribe
- public void postInit(FMLPostInitializationEvent evt) {
- Preloader_Logger.INFO("Finished loading.");
- }
-
public static void handleConfigFile(final FMLPreInitializationEvent event) {
final Configuration config = new Configuration(
new File(event.getModConfigurationDirectory(), "GTplusplus/GTplusplus.cfg"));
@@ -91,29 +67,4 @@ public class Preloader_DummyContainer extends DummyModContainer {
"Restores circuits and their recipes from Pre-5.09.28 times.");
}
- public static boolean getConfig() {
- final Configuration config = new Configuration(
- new File(gtPlusPlus.preloader.CORE_Preloader.MC_DIR, "config/GTplusplus/GTplusplus.cfg"));
- if (config != null) {
- config.load();
- // Circuits
- CORE_Preloader.enableOldGTcircuits = config.getBoolean(
- "enableOldGTcircuits",
- GregTech.ID,
- false,
- "Restores circuits and their recipes from Pre-5.09.28 times.");
- CORE_Preloader.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.");
-
- Preloader_Logger.INFO("Loaded the configuration file.");
- return true;
- }
- Preloader_Logger.INFO("Failed loading the configuration file.");
- return false;
- }
}
diff --git a/src/main/java/gtPlusPlus/preloader/asm/Preloader_FMLLoadingPlugin.java b/src/main/java/gtPlusPlus/preloader/asm/Preloader_FMLLoadingPlugin.java
index 16095d00e4..cdd25bb268 100644
--- a/src/main/java/gtPlusPlus/preloader/asm/Preloader_FMLLoadingPlugin.java
+++ b/src/main/java/gtPlusPlus/preloader/asm/Preloader_FMLLoadingPlugin.java
@@ -1,18 +1,12 @@
package gtPlusPlus.preloader.asm;
import java.io.File;
-import java.text.NumberFormat;
-import java.util.Locale;
import java.util.Map;
-import net.minecraft.launchwrapper.Launch;
-
import cpw.mods.fml.relauncher.IFMLLoadingPlugin;
import cpw.mods.fml.relauncher.IFMLLoadingPlugin.MCVersion;
import cpw.mods.fml.relauncher.IFMLLoadingPlugin.SortingIndex;
-import gtPlusPlus.core.util.reflect.ReflectionUtils;
import gtPlusPlus.preloader.CORE_Preloader;
-import gtPlusPlus.preloader.Preloader_Logger;
import gtPlusPlus.preloader.asm.transformers.Preloader_Transformer_Handler;
@SortingIndex(10097)
@@ -21,12 +15,6 @@ import gtPlusPlus.preloader.asm.transformers.Preloader_Transformer_Handler;
@IFMLLoadingPlugin.Name(CORE_Preloader.NAME)
public class Preloader_FMLLoadingPlugin implements IFMLLoadingPlugin {
- // -Dfml.coreMods.load=gtPlusPlus.preloader.asm.Preloader_FMLLoadingPlugin
-
- static {
- Preloader_Logger.INFO("Initializing IFMLLoadingPlugin");
- }
-
@Override
public String getAccessTransformerClass() {
return null;
@@ -34,61 +22,26 @@ public class Preloader_FMLLoadingPlugin implements IFMLLoadingPlugin {
@Override
public String[] getASMTransformerClass() {
- // This will return the name of the class
return new String[] { Preloader_Transformer_Handler.class.getName() };
}
@Override
public String getModContainerClass() {
- // This is the name of our dummy container
return Preloader_DummyContainer.class.getName();
}
@Override
public String getSetupClass() {
- // return Preloader_SetupClass.class.getName();
return null;
}
@Override
public void injectData(Map<String, Object> data) {
- boolean isDeObf = (boolean) data.get("runtimeDeobfuscationEnabled");
+ CORE_Preloader.DEV_ENVIRONMENT = !(boolean) data.get("runtimeDeobfuscationEnabled");
File mcDir = (File) data.get("mcLocation");
- // LaunchClassLoader classLoader = (LaunchClassLoader) data.get("classLoader");
- File coremodLocation = (File) data.get("coremodLocation");
- String deobfuscationFileName = (String) data.get("deobfuscationFileName");
if (mcDir != null && mcDir.exists()) {
CORE_Preloader.setMinecraftDirectory(mcDir);
- Preloader_Logger.INFO("Set McDir via Preloader_SetupClass");
- }
- Preloader_Logger.INFO("runtimeDeobfuscationEnabled: " + isDeObf);
- Preloader_Logger.INFO("deobfuscationFileName: " + deobfuscationFileName);
- if (coremodLocation != null && coremodLocation.exists()) {
- Preloader_Logger.INFO("coremodLocation: " + coremodLocation.getPath());
- } else {
- Preloader_Logger.INFO("coremodLocation: null");
- Preloader_Logger.ERROR("Unable to determine CoreMod location");
}
- CORE_Preloader.DEV_ENVIRONMENT = (Boolean) Launch.blackboard.get("fml.deobfuscatedEnvironment");
CORE_Preloader.DEBUG_MODE = AsmConfig.debugMode;
- Preloader_Logger.INFO(
- "Running on " + gtPlusPlus.preloader.CORE_Preloader.JAVA_VERSION
- + " | Development Environment: "
- + CORE_Preloader.DEV_ENVIRONMENT);
- // Preloader_Logger.INFO("Is Client? "+Utils.isClient()+" | Is Server? "+Utils.isServer());
- Locale aDefaultLocale = Locale.getDefault();
- NumberFormat aFormat = NumberFormat.getInstance();
- Locale aDisplayLocale = ReflectionUtils
- .getFieldValue(ReflectionUtils.getField(Locale.class, "defaultDisplayLocale"));
- Locale aFormatLocale = ReflectionUtils
- .getFieldValue(ReflectionUtils.getField(Locale.class, "defaultFormatLocale"));
- Preloader_Logger.INFO(
- "Locale: " + aDefaultLocale
- + " | Test: "
- + aFormat.format(1000000000)
- + " | Display: "
- + aDisplayLocale
- + " | Format: "
- + aFormatLocale);
}
}
diff --git a/src/main/java/gtPlusPlus/preloader/asm/Preloader_SetupClass.java b/src/main/java/gtPlusPlus/preloader/asm/Preloader_SetupClass.java
deleted file mode 100644
index 28f28e783b..0000000000
--- a/src/main/java/gtPlusPlus/preloader/asm/Preloader_SetupClass.java
+++ /dev/null
@@ -1,18 +0,0 @@
-package gtPlusPlus.preloader.asm;
-
-import java.util.Map;
-
-import cpw.mods.fml.relauncher.IFMLCallHook;
-import gtPlusPlus.preloader.Preloader_Logger;
-
-public class Preloader_SetupClass implements IFMLCallHook {
-
- @Override
- public Void call() throws Exception {
- Preloader_Logger.INFO("Executing IFMLCallHook");
- return null;
- }
-
- @Override
- public void injectData(Map<String, Object> data) {}
-}
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
index 29998800a0..84fecda974 100644
--- a/src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_COFH_OreDictionaryArbiter.java
+++ b/src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_COFH_OreDictionaryArbiter.java
@@ -29,7 +29,6 @@ import cpw.mods.fml.relauncher.FMLRelaunchLog;
import gnu.trove.map.TMap;
import gnu.trove.map.hash.THashMap;
import gtPlusPlus.core.util.reflect.ReflectionUtils;
-import gtPlusPlus.preloader.DevHelper;
public class ClassTransformer_COFH_OreDictionaryArbiter {
@@ -75,14 +74,7 @@ public class ClassTransformer_COFH_OreDictionaryArbiter {
public void injectMethod(String aMethodName) {
- boolean isObfuscated;
- try {
- isObfuscated = Class.forName("net.minecraft.item.ItemStack") != null ? false : true;
- } catch (ClassNotFoundException e) {
- isObfuscated = true;
- }
- String aItemStack = isObfuscated ? DevHelper.getObfuscated("net/minecraft/item/ItemStack")
- : "net/minecraft/item/ItemStack";
+ String aItemStack = "net/minecraft/item/ItemStack";
MethodVisitor mv;
if (aMethodName.equals("registerOreDictionaryEntry")) {
FMLRelaunchLog.log(
@@ -158,9 +150,9 @@ public class ClassTransformer_COFH_OreDictionaryArbiter {
.getField(OreDictionaryArbiter.class, "stackNames").get(null);
} catch (Throwable t) {
oreIDs = HashBiMap.create();
- oreStacks = new THashMap<Integer, ArrayList<ItemStack>>();
- stackIDs = new THashMap<ItemWrapper, ArrayList<Integer>>();
- stackNames = new THashMap<ItemWrapper, ArrayList<String>>();
+ oreStacks = new THashMap<>();
+ stackIDs = new THashMap<>();
+ stackNames = new THashMap<>();
}
}
@@ -173,13 +165,13 @@ public class ClassTransformer_COFH_OreDictionaryArbiter {
int arg1 = OreDictionary.getOreID(arg0);
oreIDs.put(arg0, Integer.valueOf(arg1));
if (!oreStacks.containsKey(Integer.valueOf(arg1))) {
- oreStacks.put(Integer.valueOf(arg1), new ArrayList<ItemStack>());
+ 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<Integer>());
- stackNames.put(arg2, new ArrayList<String>());
+ 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);
diff --git a/src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_Forge_ChunkLoading.java b/src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_Forge_ChunkLoading.java
index cda4384f7d..9b6ec4bb25 100644
--- a/src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_Forge_ChunkLoading.java
+++ b/src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_Forge_ChunkLoading.java
@@ -50,7 +50,6 @@ import org.objectweb.asm.Label;
import org.objectweb.asm.MethodVisitor;
import cpw.mods.fml.relauncher.FMLRelaunchLog;
-import gtPlusPlus.preloader.DevHelper;
public class ClassTransformer_Forge_ChunkLoading {
@@ -71,8 +70,8 @@ public class ClassTransformer_Forge_ChunkLoading {
public ClassTransformer_Forge_ChunkLoading(byte[] basicClass, boolean obfuscated) {
- ClassReader aTempReader = null;
- ClassWriter aTempWriter = null;
+ ClassReader aTempReader;
+ ClassWriter aTempWriter;
aTempReader = new ClassReader(basicClass);
aTempWriter = new ClassWriter(aTempReader, ClassWriter.COMPUTE_FRAMES);
@@ -88,11 +87,9 @@ public class ClassTransformer_Forge_ChunkLoading {
if (reader != null && writer != null && !doesMethodAlreadyExist) {
- aChunkCoordIntPair = obfuscated ? DevHelper.getObfuscated("net/minecraft/world/ChunkCoordIntPair")
- : "net/minecraft/world/ChunkCoordIntPair";
- aWorld = obfuscated ? DevHelper.getObfuscated("net/minecraft/world/World") : "net/minecraft/world/World";
- aEntity = obfuscated ? DevHelper.getObfuscated("net/minecraft/entity/Entity")
- : "net/minecraft/entity/Entity";
+ aChunkCoordIntPair = "net/minecraft/world/ChunkCoordIntPair";
+ aWorld = "net/minecraft/world/World";
+ aEntity = "net/minecraft/entity/Entity";
injectMethod("forceChunk");
injectMethod("unforceChunk");
@@ -101,14 +98,6 @@ public class ClassTransformer_Forge_ChunkLoading {
}
}
- public boolean isValidTransformer() {
- return isValid;
- }
-
- public ClassReader getReader() {
- return reader;
- }
-
public ClassWriter getWriter() {
return writer;
}
@@ -119,993 +108,1115 @@ public class ClassTransformer_Forge_ChunkLoading {
"[GT++ ASM] Chunkloading Patch",
Level.INFO,
"Injecting " + aMethodName + " into " + className + ".");
- if (aMethodName.equals("forceChunk")) {
+ switch (aMethodName) {
+ case "forceChunk" -> {
- mv = getWriter().visitMethod(
- ACC_PUBLIC + ACC_STATIC,
- "forceChunk",
- "(Lnet/minecraftforge/common/ForgeChunkManager$Ticket;L" + aChunkCoordIntPair + ";)V",
- null,
- null);
- mv.visitCode();
- Label l0 = new Label();
- mv.visitLabel(l0);
- mv.visitLineNumber(730, l0);
- mv.visitVarInsn(ALOAD, 0);
- Label l1 = new Label();
- mv.visitJumpInsn(IFNULL, l1);
- mv.visitVarInsn(ALOAD, 1);
- Label l2 = new Label();
- mv.visitJumpInsn(IFNONNULL, l2);
- mv.visitLabel(l1);
- mv.visitLineNumber(732, l1);
- mv.visitFrame(F_SAME, 0, null, 0, null);
- mv.visitInsn(RETURN);
- mv.visitLabel(l2);
- mv.visitLineNumber(734, l2);
- mv.visitFrame(F_SAME, 0, null, 0, null);
- mv.visitVarInsn(ALOAD, 0);
- mv.visitMethodInsn(
- INVOKESTATIC,
- "net/minecraftforge/common/ForgeChunkManager$Ticket",
- "access$500",
- "(Lnet/minecraftforge/common/ForgeChunkManager$Ticket;)Lnet/minecraftforge/common/ForgeChunkManager$Type;",
- false);
- mv.visitFieldInsn(
- GETSTATIC,
- "net/minecraftforge/common/ForgeChunkManager$Type",
- "ENTITY",
- "Lnet/minecraftforge/common/ForgeChunkManager$Type;");
- Label l3 = new Label();
- mv.visitJumpInsn(IF_ACMPNE, l3);
- mv.visitVarInsn(ALOAD, 0);
- mv.visitMethodInsn(
- INVOKESTATIC,
- "net/minecraftforge/common/ForgeChunkManager$Ticket",
- "access$600",
- "(Lnet/minecraftforge/common/ForgeChunkManager$Ticket;)L" + aEntity + ";",
- false);
- mv.visitJumpInsn(IFNONNULL, l3);
- Label l4 = new Label();
- mv.visitLabel(l4);
- mv.visitLineNumber(736, l4);
- mv.visitTypeInsn(NEW, "java/lang/RuntimeException");
- mv.visitInsn(DUP);
- mv.visitLdcInsn("Attempted to use an entity ticket to force a chunk, without an entity");
- mv.visitMethodInsn(INVOKESPECIAL, "java/lang/RuntimeException", "<init>", "(Ljava/lang/String;)V", false);
- mv.visitInsn(ATHROW);
- mv.visitLabel(l3);
- mv.visitLineNumber(738, l3);
- mv.visitFrame(F_SAME, 0, null, 0, null);
- mv.visitVarInsn(ALOAD, 0);
- mv.visitMethodInsn(
- INVOKEVIRTUAL,
- "net/minecraftforge/common/ForgeChunkManager$Ticket",
- "isPlayerTicket",
- "()Z",
- false);
- Label l5 = new Label();
- mv.visitJumpInsn(IFEQ, l5);
- mv.visitFieldInsn(
- GETSTATIC,
- "net/minecraftforge/common/ForgeChunkManager",
- "playerTickets",
- "Lcom/google/common/collect/SetMultimap;");
- mv.visitVarInsn(ALOAD, 0);
- mv.visitMethodInsn(
- INVOKEINTERFACE,
- "com/google/common/collect/SetMultimap",
- "containsValue",
- "(Ljava/lang/Object;)Z",
- true);
- Label l6 = new Label();
- mv.visitJumpInsn(IFNE, l6);
- Label l7 = new Label();
- mv.visitJumpInsn(GOTO, l7);
- mv.visitLabel(l5);
- mv.visitFrame(F_SAME, 0, null, 0, null);
- mv.visitFieldInsn(GETSTATIC, "net/minecraftforge/common/ForgeChunkManager", "tickets", "Ljava/util/Map;");
- mv.visitVarInsn(ALOAD, 0);
- mv.visitFieldInsn(
- GETFIELD,
- "net/minecraftforge/common/ForgeChunkManager$Ticket",
- "world",
- "L" + aWorld + ";");
- mv.visitMethodInsn(INVOKEINTERFACE, "java/util/Map", "get", "(Ljava/lang/Object;)Ljava/lang/Object;", true);
- mv.visitTypeInsn(CHECKCAST, "com/google/common/collect/Multimap");
- mv.visitVarInsn(ALOAD, 0);
- mv.visitMethodInsn(
- INVOKESTATIC,
- "net/minecraftforge/common/ForgeChunkManager$Ticket",
- "access$200",
- "(Lnet/minecraftforge/common/ForgeChunkManager$Ticket;)Ljava/lang/String;",
- false);
- mv.visitVarInsn(ALOAD, 0);
- mv.visitMethodInsn(
- INVOKEINTERFACE,
- "com/google/common/collect/Multimap",
- "containsEntry",
- "(Ljava/lang/Object;Ljava/lang/Object;)Z",
- true);
- mv.visitJumpInsn(IFNE, l6);
- mv.visitLabel(l7);
- mv.visitLineNumber(740, l7);
- mv.visitFrame(F_SAME, 0, null, 0, null);
- mv.visitLdcInsn(
- "The mod %s attempted to force load a chunk with an invalid ticket. This is not permitted.");
- mv.visitInsn(ICONST_1);
- mv.visitTypeInsn(ANEWARRAY, "java/lang/Object");
- mv.visitInsn(DUP);
- mv.visitInsn(ICONST_0);
- mv.visitVarInsn(ALOAD, 0);
- mv.visitMethodInsn(
- INVOKESTATIC,
- "net/minecraftforge/common/ForgeChunkManager$Ticket",
- "access$200",
- "(Lnet/minecraftforge/common/ForgeChunkManager$Ticket;)Ljava/lang/String;",
- false);
- mv.visitInsn(AASTORE);
- mv.visitMethodInsn(
- INVOKESTATIC,
- "cpw/mods/fml/common/FMLLog",
- "severe",
- "(Ljava/lang/String;[Ljava/lang/Object;)V",
- false);
- Label l8 = new Label();
- mv.visitLabel(l8);
- mv.visitLineNumber(741, l8);
- mv.visitInsn(RETURN);
- mv.visitLabel(l6);
- mv.visitLineNumber(743, l6);
- mv.visitFrame(F_SAME, 0, null, 0, null);
- mv.visitVarInsn(ALOAD, 0);
- mv.visitMethodInsn(
- INVOKESTATIC,
- "net/minecraftforge/common/ForgeChunkManager$Ticket",
- "access$700",
- "(Lnet/minecraftforge/common/ForgeChunkManager$Ticket;)Ljava/util/LinkedHashSet;",
- false);
- mv.visitVarInsn(ALOAD, 1);
- mv.visitMethodInsn(INVOKEVIRTUAL, "java/util/LinkedHashSet", "add", "(Ljava/lang/Object;)Z", false);
- mv.visitInsn(POP);
- Label l9 = new Label();
- mv.visitLabel(l9);
- mv.visitLineNumber(744, l9);
- mv.visitVarInsn(ALOAD, 0);
- mv.visitVarInsn(ALOAD, 1);
- mv.visitMethodInsn(
- INVOKESTATIC,
- "gtPlusPlus/preloader/ChunkDebugger",
- "storeLoadChunkToCache",
- "(Lnet/minecraftforge/common/ForgeChunkManager$Ticket;L" + aChunkCoordIntPair + ";)V",
- false);
- Label l10 = new Label();
- mv.visitLabel(l10);
- mv.visitLineNumber(745, l10);
- mv.visitFieldInsn(
- GETSTATIC,
- "net/minecraftforge/common/MinecraftForge",
- "EVENT_BUS",
- "Lcpw/mods/fml/common/eventhandler/EventBus;");
- mv.visitTypeInsn(NEW, "net/minecraftforge/common/ForgeChunkManager$ForceChunkEvent");
- mv.visitInsn(DUP);
- mv.visitVarInsn(ALOAD, 0);
- mv.visitVarInsn(ALOAD, 1);
- mv.visitMethodInsn(
- INVOKESPECIAL,
- "net/minecraftforge/common/ForgeChunkManager$ForceChunkEvent",
- "<init>",
- "(Lnet/minecraftforge/common/ForgeChunkManager$Ticket;L" + aChunkCoordIntPair + ";)V",
- false);
- mv.visitMethodInsn(
- INVOKEVIRTUAL,
- "cpw/mods/fml/common/eventhandler/EventBus",
- "post",
- "(Lcpw/mods/fml/common/eventhandler/Event;)Z",
- false);
- mv.visitInsn(POP);
- Label l11 = new Label();
- mv.visitLabel(l11);
- mv.visitLineNumber(747, l11);
- mv.visitMethodInsn(
- INVOKESTATIC,
- "com/google/common/collect/ImmutableSetMultimap",
- "builder",
- "()Lcom/google/common/collect/ImmutableSetMultimap$Builder;",
- false);
- mv.visitFieldInsn(
- GETSTATIC,
- "net/minecraftforge/common/ForgeChunkManager",
- "forcedChunks",
- "Ljava/util/Map;");
- mv.visitVarInsn(ALOAD, 0);
- mv.visitFieldInsn(
- GETFIELD,
- "net/minecraftforge/common/ForgeChunkManager$Ticket",
- "world",
- "L" + aWorld + ";");
- mv.visitMethodInsn(INVOKEINTERFACE, "java/util/Map", "get", "(Ljava/lang/Object;)Ljava/lang/Object;", true);
- mv.visitTypeInsn(CHECKCAST, "com/google/common/collect/Multimap");
- mv.visitMethodInsn(
- INVOKEVIRTUAL,
- "com/google/common/collect/ImmutableSetMultimap$Builder",
- "putAll",
- "(Lcom/google/common/collect/Multimap;)Lcom/google/common/collect/ImmutableSetMultimap$Builder;",
- false);
- mv.visitVarInsn(ALOAD, 1);
- mv.visitVarInsn(ALOAD, 0);
- mv.visitMethodInsn(
- INVOKEVIRTUAL,
- "com/google/common/collect/ImmutableSetMultimap$Builder",
- "put",
- "(Ljava/lang/Object;Ljava/lang/Object;)Lcom/google/common/collect/ImmutableSetMultimap$Builder;",
- false);
- mv.visitMethodInsn(
- INVOKEVIRTUAL,
- "com/google/common/collect/ImmutableSetMultimap$Builder",
- "build",
- "()Lcom/google/common/collect/ImmutableSetMultimap;",
- false);
- mv.visitVarInsn(ASTORE, 2);
- Label l12 = new Label();
- mv.visitLabel(l12);
- mv.visitLineNumber(748, l12);
- mv.visitFieldInsn(
- GETSTATIC,
- "net/minecraftforge/common/ForgeChunkManager",
- "forcedChunks",
- "Ljava/util/Map;");
- mv.visitVarInsn(ALOAD, 0);
- mv.visitFieldInsn(
- GETFIELD,
- "net/minecraftforge/common/ForgeChunkManager$Ticket",
- "world",
- "L" + aWorld + ";");
- mv.visitVarInsn(ALOAD, 2);
- mv.visitMethodInsn(
- INVOKEINTERFACE,
- "java/util/Map",
- "put",
- "(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;",
- true);
- mv.visitInsn(POP);
- Label l13 = new Label();
- mv.visitLabel(l13);
- mv.visitLineNumber(749, l13);
- mv.visitVarInsn(ALOAD, 0);
- mv.visitMethodInsn(
- INVOKESTATIC,
- "net/minecraftforge/common/ForgeChunkManager$Ticket",
- "access$800",
- "(Lnet/minecraftforge/common/ForgeChunkManager$Ticket;)I",
- false);
- Label l14 = new Label();
- mv.visitJumpInsn(IFLE, l14);
- mv.visitVarInsn(ALOAD, 0);
- mv.visitMethodInsn(
- INVOKESTATIC,
- "net/minecraftforge/common/ForgeChunkManager$Ticket",
- "access$700",
- "(Lnet/minecraftforge/common/ForgeChunkManager$Ticket;)Ljava/util/LinkedHashSet;",
- false);
- mv.visitMethodInsn(INVOKEVIRTUAL, "java/util/LinkedHashSet", "size", "()I", false);
- mv.visitVarInsn(ALOAD, 0);
- mv.visitMethodInsn(
- INVOKESTATIC,
- "net/minecraftforge/common/ForgeChunkManager$Ticket",
- "access$800",
- "(Lnet/minecraftforge/common/ForgeChunkManager$Ticket;)I",
- false);
- mv.visitJumpInsn(IF_ICMPLE, l14);
- Label l15 = new Label();
- mv.visitLabel(l15);
- mv.visitLineNumber(751, l15);
- mv.visitVarInsn(ALOAD, 0);
- mv.visitMethodInsn(
- INVOKESTATIC,
-