aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gtPlusPlus/preloader
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/gtPlusPlus/preloader')
-rw-r--r--src/main/java/gtPlusPlus/preloader/CORE_Preloader.java33
-rw-r--r--src/main/java/gtPlusPlus/preloader/ChunkDebugger.java54
-rw-r--r--src/main/java/gtPlusPlus/preloader/CustomClassLoader.java57
-rw-r--r--src/main/java/gtPlusPlus/preloader/DevHelper.java7139
-rw-r--r--src/main/java/gtPlusPlus/preloader/Preloader_GT_OreDict.java173
-rw-r--r--src/main/java/gtPlusPlus/preloader/Preloader_Logger.java60
-rw-r--r--src/main/java/gtPlusPlus/preloader/asm/AsmConfig.java211
-rw-r--r--src/main/java/gtPlusPlus/preloader/asm/ClassesToTransform.java74
-rw-r--r--src/main/java/gtPlusPlus/preloader/asm/Preloader_DummyContainer.java95
-rw-r--r--src/main/java/gtPlusPlus/preloader/asm/Preloader_FMLLoadingPlugin.java84
-rw-r--r--src/main/java/gtPlusPlus/preloader/asm/Preloader_SetupClass.java23
-rw-r--r--src/main/java/gtPlusPlus/preloader/asm/helpers/MethodHelper_CC.java28
-rw-r--r--src/main/java/gtPlusPlus/preloader/asm/helpers/MethodHelper_GT.java25
-rw-r--r--src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_CC_GuiContainerManager.java121
-rw-r--r--src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_COFH_OreDictionaryArbiter.java185
-rw-r--r--src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_Forge_ChunkLoading.java684
-rw-r--r--src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_Forge_EntityLivingBase_SetHealth.java130
-rw-r--r--src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_GC_EntityAutoRocket.java527
-rw-r--r--src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_GC_FluidUtil.java242
-rw-r--r--src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_GC_FuelLoader.java622
-rw-r--r--src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_GT_Achievements.java1896
-rw-r--r--src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_GT_Achievements_CrashFix.java218
-rw-r--r--src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_GT_BaseMetaTileEntity.java158
-rw-r--r--src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_GT_BlockMachines_MetaPipeEntity.java286
-rw-r--r--src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_GT_BlockMachines_NBT.java193
-rw-r--r--src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_GT_CharcoalPit.java184
-rw-r--r--src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_GT_Client.java410
-rw-r--r--src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_GT_EnergyHatchPatch.java317
-rw-r--r--src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_GT_ItemMachines_Tooltip.java139
-rw-r--r--src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_GT_MetaGenerated_Tool.java116
-rw-r--r--src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_GT_Packet_TileEntity.java319
-rw-r--r--src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_GT_Utility.java283
-rw-r--r--src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_IC2_GetHarvestTool.java214
-rw-r--r--src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_IC2_Hazmat.java147
-rw-r--r--src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_LWJGL_Keyboard.java278
-rw-r--r--src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_Railcraft_FluidCartHandling.java117
-rw-r--r--src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_Railcraft_FluidHelper.java695
-rw-r--r--src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_Railcraft_InvTools.java235
-rw-r--r--src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_TC_ItemWispEssence.java278
-rw-r--r--src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_TT_ThaumicRestorer.java611
-rw-r--r--src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_TiConFluids.java164
-rw-r--r--src/main/java/gtPlusPlus/preloader/asm/transformers/Preloader_ClassTransformer.java79
-rw-r--r--src/main/java/gtPlusPlus/preloader/asm/transformers/Preloader_ClassTransformer2.java16
-rw-r--r--src/main/java/gtPlusPlus/preloader/asm/transformers/Preloader_Transformer_Handler.java286
-rw-r--r--src/main/java/gtPlusPlus/preloader/keyboard/BetterKeyboard.java132
45 files changed, 18338 insertions, 0 deletions
diff --git a/src/main/java/gtPlusPlus/preloader/CORE_Preloader.java b/src/main/java/gtPlusPlus/preloader/CORE_Preloader.java
new file mode 100644
index 0000000000..49209307f7
--- /dev/null
+++ b/src/main/java/gtPlusPlus/preloader/CORE_Preloader.java
@@ -0,0 +1,33 @@
+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 CORE_Preloader {
+
+ 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<ArtifactVersion>();
+ //deps.add("required-before:gregtech;");
+ DEPENDENCIES = Collections.unmodifiableList(deps);
+ }
+}
diff --git a/src/main/java/gtPlusPlus/preloader/ChunkDebugger.java b/src/main/java/gtPlusPlus/preloader/ChunkDebugger.java
new file mode 100644
index 0000000000..06964d31fa
--- /dev/null
+++ b/src/main/java/gtPlusPlus/preloader/ChunkDebugger.java
@@ -0,0 +1,54 @@
+package gtPlusPlus.preloader;
+
+import java.util.LinkedHashMap;
+import java.util.Map;
+
+import gtPlusPlus.api.objects.Logger;
+import gtPlusPlus.api.objects.data.Pair;
+import net.minecraft.world.ChunkCoordIntPair;
+import net.minecraft.world.World;
+import net.minecraftforge.common.ForgeChunkManager.Ticket;
+
+public class ChunkDebugger {
+
+
+ public static final Map<Integer, Pair<String, String>> mChunkTicketsMap = new LinkedHashMap<Integer, Pair<String, String>>();
+ public static final Map<String, Pair<String, String>> mChunksLoadedByModsMap = new LinkedHashMap<String, Pair<String, String>>();
+
+ public static void storeTicketToCache(Ticket aTicket, World aWorld) {
+ mChunkTicketsMap.put(aTicket.hashCode(), new Pair<String, String>(aTicket.getModId(), ""+aTicket.world.provider.dimensionId));
+ Logger.REFLECTION("Ticket created by "+aTicket.getModId()+" for dimension "+aTicket.world.provider.dimensionId);
+ }
+
+ public static void storeLoadChunkToCache(Ticket aTicket, ChunkCoordIntPair aChunk) {
+ mChunksLoadedByModsMap.put(aChunk.toString(), new Pair<String, String>(aTicket.getModId(), aChunk.toString()));
+ Logger.REFLECTION("Chunk Loaded by "+aTicket.getModId()+" at position "+aChunk.toString()+" for dimension "+aTicket.world.provider.dimensionId);
+ }
+
+ public static void removeTicketFromCache(Ticket aTicket) {
+ Pair<String, String> aPair = mChunkTicketsMap.get(aTicket.hashCode());
+ String aKey = aPair.getKey();
+ if (aKey == null) {
+ aKey = "Invalid ModId";
+ }
+ Logger.REFLECTION("Ticket released by "+aKey+" for dimension "+aTicket.world.provider.dimensionId);
+ mChunkTicketsMap.remove(aTicket.hashCode());
+ }
+
+ public static void removeLoadedChunkFromCache(ChunkCoordIntPair aChunk) {
+ if (aChunk == null || aChunk.toString() == null) {
+ return;
+ }
+ Pair<String, String> aPair = mChunksLoadedByModsMap.get(aChunk.toString());
+ if (aPair == null) {
+ return;
+ }
+ String aKey = aPair.getKey();
+ String aValue = aPair.getValue();
+ if (aKey != null && aValue != null) {
+ Logger.REFLECTION("Chunk Unloaded by "+aKey+" at position "+aChunk.toString()+"");
+ }
+ mChunksLoadedByModsMap.remove(aChunk.toString());
+ }
+
+}
diff --git a/src/main/java/gtPlusPlus/preloader/CustomClassLoader.java b/src/main/java/gtPlusPlus/preloader/CustomClassLoader.java
new file mode 100644
index 0000000000..56394c11f0
--- /dev/null
+++ b/src/main/java/gtPlusPlus/preloader/CustomClassLoader.java
@@ -0,0 +1,57 @@
+package gtPlusPlus.preloader;
+
+import java.security.AllPermission;
+import java.security.CodeSource;
+import java.security.Permissions;
+import java.security.ProtectionDomain;
+import java.security.cert.Certificate;
+import java.util.HashMap;
+
+import org.objectweb.asm.ClassWriter;
+import org.objectweb.asm.tree.ClassNode;
+
+public class CustomClassLoader extends ClassLoader {
+
+ private HashMap<String, ClassNode> classes = new HashMap<String, ClassNode>();
+
+ @Override
+
+ public Class<?> loadClass(String name) throws ClassNotFoundException {
+ return findClass(name);
+ }
+
+ @Override
+
+ protected Class<?> findClass(String name) throws ClassNotFoundException {
+ ClassNode node = classes.get(name.replace('.', '/'));
+ if (node != null)
+ return nodeToClass(node);
+ else
+ return super.findClass(name);
+ }
+
+ public final void addNode(ClassNode node) {
+ classes.put(node.name, node);
+ }
+
+ private final Class<?> nodeToClass(ClassNode node) {
+ if (super.findLoadedClass(node.name) != null)
+ return findLoadedClass(node.name);
+ ClassWriter cw = new ClassWriter(ClassWriter.COMPUTE_MAXS);
+ node.accept(cw);
+ byte[] b = cw.toByteArray();
+ return defineClass(node.name.replace('/', '.'), b, 0, b.length, getDomain());
+ }
+
+ private final ProtectionDomain getDomain() {
+ CodeSource code = new CodeSource(null, (Certificate[]) null);
+ return new ProtectionDomain(code, getPermissions());
+ }
+
+ private final Permissions getPermissions() {
+ Permissions permissions = new Permissions();
+ permissions.add(new AllPermission());
+ return permissions;
+ }
+
+} \ No newline at end of file
diff --git a/src/main/java/gtPlusPlus/preloader/DevHelper.java b/src/main/java/gtPlusPlus/preloader/DevHelper.java
new file mode 100644
index 0000000000..70a3c53073
--- /dev/null
+++ b/src/main/java/gtPlusPlus/preloader/DevHelper.java
@@ -0,0 +1,7139 @@
+package gtPlusPlus.preloader;
+
+import java.io.IOException;
+import java.lang.reflect.Method;
+import java.util.HashMap;
+import java.util.Map;
+
+import gtPlusPlus.api.objects.data.Pair;
+import gtPlusPlus.api.objects.data.weakref.WeakAutoMap;
+import gtPlusPlus.core.util.reflect.ReflectionUtils;
+import net.minecraft.launchwrapper.Launch;
+
+public class DevHelper {
+
+ private static final DevHelper mInstance;
+ public static final boolean mIsValidHelper;
+
+ static {
+ mInstance = new DevHelper();
+ if (DevHelperInternals.init()) {
+ mIsValidHelper = true;
+ }
+ else {
+ mIsValidHelper = false;
+ }
+ }
+
+ public DevHelper() {
+
+ }
+
+
+
+ public static boolean isObfuscatedEnvironment() {
+ // Are we in a 'decompiled' environment?
+ boolean deobfuscatedEnvironment = false;
+ byte[] bs;
+ try {
+ bs = Launch.classLoader.getClassBytes("net.minecraft.world.World");
+ if (bs != null) {
+ deobfuscatedEnvironment = true;
+ } else {
+ deobfuscatedEnvironment = false;
+ }
+ } catch (IOException e) {
+ }
+ return !deobfuscatedEnvironment;
+ }
+
+ @SuppressWarnings("rawtypes")
+ public static Method getForgeMethod(Class c, String s, Class... varags) {
+ String s1, s2;
+ Method a, b;
+ s1 = s;
+ s2 = getSRG(s);
+ try {
+ a = ReflectionUtils.getMethod(c, s1, varags);
+ if (a != null) {
+ return a;
+ }
+ else {
+ b = ReflectionUtils.getMethod(c, s2, varags);
+ if (b != null) {
+ return b;
+ }
+ }
+ }
+ catch (Exception e) {}
+ return null;
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ private static synchronized final DevHelper getInstance() {
+ return mInstance;
+ }
+
+ public static synchronized final boolean isValidHelperObject() {
+ return mIsValidHelper;
+ }
+
+ public static String getSRG(String mForgeName) {
+ String aSRG = DevHelperInternals.forgeToSrg.get(mForgeName);
+ return aSRG != null ? aSRG : "BAD_SRG_NAME";
+ }
+
+ public static String getForge(String mSrgName) {
+ String aForgeName = DevHelperInternals.srgToForge.get(mSrgName);
+ return aForgeName != null ? aForgeName : "BAD_FORGE_NAME";
+ }
+
+ public static String getMinecraftClassName(String adeObName, boolean obfuscated) {
+ if (obfuscated) {
+ return getObfuscated(adeObName);
+ }
+ return adeObName;
+ }
+
+ public static String getObfuscated(String mDeob) {
+ String obfuscatedClassname = DevHelperInternals.deObToOb.get(mDeob);
+ obfuscatedClassname = obfuscatedClassname != null ? obfuscatedClassname : "BAD_OBFUSCATED_CLASS_NAME";
+ if (obfuscatedClassname.equals("BAD_OBFUSCATED_CLASS_NAME")) {
+ Preloader_Logger.INFO("[Fix] Failed to Get Deobfuscated name for "+mDeob);
+ }
+ return obfuscatedClassname;
+ }
+
+ public static String getDeobfuscated(String mOb) {
+ String deobfuscatedClassname = DevHelperInternals.obToDeOb.get(mOb);
+ return deobfuscatedClassname != null ? deobfuscatedClassname : "BAD_DEOBFUSCATED_CLASS_NAME";
+ }
+
+ public static class DevHelperInternals {
+ public static final Map<String, String> srgToForge = new HashMap<String, String>();
+ public static final Map<String, String> forgeToSrg = new HashMap<String, String>();
+ private static WeakAutoMap<Pair<String, String>> mInitMap = new WeakAutoMap<Pair<String, String>>();
+
+ //Obfuscation
+ public static final Map<String, String> obToDeOb = new HashMap<String, String>();
+ public static final Map<String, String> deObToOb = new HashMap<String, String>();
+ private static WeakAutoMap<Pair<String, String>> mObInitMap = new WeakAutoMap<Pair<String, String>>();
+
+ private static boolean init() {
+ init1();
+ init2();
+ init3();
+ init4();
+ if (mInitMap.size() > 0) {
+ for (Pair<String, String> p : mInitMap) {
+ if (p != null) {
+ String srg = p.getKey();
+ String forge = p.getValue();
+ srgToForge.put(srg, forge);
+ forgeToSrg.put(forge, srg);
+ }
+ }
+ }
+
+ if (mObInitMap.size() > 0) {
+ for (Pair<String, String> p : mObInitMap) {
+ if (p != null) {
+ String ob = p.getKey();
+ String deOb = p.getValue();
+ obToDeOb.put(ob, deOb);
+ deObToOb.put(deOb, ob);
+ }
+ }
+ }
+ Preloader_Logger.INFO("[DevHelper] mInitMap size: "+mInitMap.size());
+ Preloader_Logger.INFO("[DevHelper] mObInitMap size: "+mObInitMap.size());
+
+ Preloader_Logger.INFO("[DevHelper] srgToForge size: "+srgToForge.size());
+ Preloader_Logger.INFO("[DevHelper] forgeToSrg size: "+forgeToSrg.size());
+ Preloader_Logger.INFO("[DevHelper] obToDeOb size: "+obToDeOb.size());
+ Preloader_Logger.INFO("[DevHelper] deObToOb size: "+deObToOb.size());
+
+ if (srgToForge.size() > 0 && forgeToSrg.size() > 0 && obToDeOb.size() > 0 && deObToOb.size() > 0) {
+ if (srgToForge.size() == forgeToSrg.size() && obToDeOb.size() == deObToOb.size()) {
+ return true;
+ }
+ else {
+ if (srgToForge.size() != forgeToSrg.size()) {
+ int aKey1 = 0;
+ int aKey2 = 0;
+ HashMap<Integer, String> aMissingForgeNames = new HashMap<Integer, String>();
+ HashMap<Integer, String> aMissingSrgNames = new HashMap<Integer, String>();
+ Preloader_Logger.INFO("Mismatch between mapped Forge and Srg names, finding missing values.");
+ if (srgToForge.size() > forgeToSrg.size()) {
+ Preloader_Logger.INFO("More SRG Keys detected.");
+ for (String aKey : srgToForge.keySet()) {
+ if (!forgeToSrg.containsValue(aKey)) {
+ aMissingSrgNames.put(aKey1++, aKey);
+ }
+ }
+ }
+ else if (srgToForge.size() < forgeToSrg.size()) {
+ Preloader_Logger.INFO("More Forge Keys detected.");
+ for (String aKey : forgeToSrg.keySet()) {
+ if (!srgToForge.containsValue(aKey)) {
+ aMissingForgeNames.put(aKey2++, aKey);
+ }
+ }
+ }
+ if (!aMissingForgeNames.isEmpty()) {
+ for (String missingVal : aMissingForgeNames.values()) {
+ //Preloader_Logger.WARNING("Missing Forge value: "+missingVal);
+ }
+ }
+ if (!aMissingSrgNames.isEmpty()) {
+ for (String missingVal : aMissingSrgNames.values()) {
+ //Preloader_Logger.WARNING("Missing SRG value: "+missingVal);
+ }
+ }
+ }
+ if (obToDeOb.size() != deObToOb.size()) {
+ int aKey1 = 0;
+ int aKey2 = 0;
+ HashMap<Integer, String> aMissingObfNames = new HashMap<Integer, String>();
+ HashMap<Integer, String> aMissingDeObfNames = new HashMap<Integer, String>();
+ Preloader_Logger.INFO("Mismatch between mapped Obfuscated and Deobfuscated names, finding missing values.");
+ if (obToDeOb.size() > deObToOb.size()) {
+ Preloader_Logger.INFO("More Obfuscated Keys detected.");
+ for (String aKey : obToDeOb.keySet()) {
+ if (!deObToOb.containsValue(aKey)) {
+ aMissingObfNames.put(aKey1++, aKey);
+ }
+ }
+ }
+ else if (obToDeOb.size() < deObToOb.size()) {
+ Preloader_Logger.INFO("More Deobfuscated Keys detected.");
+ for (String aKey : deObToOb.keySet()) {
+ if (!obToDeOb.containsValue(aKey)) {
+ aMissingDeObfNames.put(aKey2++, aKey);
+ }
+ }
+ }
+ if (!aMissingObfNames.isEmpty()) {
+ for (String missingVal : aMissingObfNames.values()) {
+ Preloader_Logger.WARNING("Missing Obfuscated value: "+missingVal);
+ }
+ }
+ if (!aMissingDeObfNames.isEmpty()) {
+ for (String missingVal : aMissingDeObfNames.values()) {
+ Preloader_Logger.WARNING("Missing Deobfuscated value: "+missingVal);
+ }
+ }
+ }
+ }
+ }
+
+ // return true anyway as some keys will mismatch.
+ return true;
+ }
+
+ private static void init1() {
+ mInitMap.put(new Pair<String, String>("func_100011_g", "getIsPotionDurationMax"));
+ mInitMap.put(new Pair<String, String>("func_100012_b", "setPotionDurationMax"));
+ mInitMap.put(new Pair<String, String>("func_100015_a", "isKeyDown"));
+ mInitMap.put(new Pair<String, String>("func_102007_a", "canInsertItem"));
+ mInitMap.put(new Pair<String, String>("func_102008_b", "canExtractItem"));
+ mInitMap.put(new Pair<String, String>("func_104002_bU", "isNoDespawnRequired"));
+ mInitMap.put(new Pair<String, String>("func_104055_i", "setForceGamemode"));
+ mInitMap.put(new Pair<String, String>("func_104056_am", "getForceGamemode"));
+ mInitMap.put(new Pair<String, String>("func_104112_b", "saveExtraData"));
+ mInitMap.put(new Pair<String, String>("func_104140_m", "saveChunkData"));
+ mInitMap.put(new Pair<String, String>("func_110123_P", "onChunkLoad"));
+ mInitMap.put(new Pair<String, String>("func_110124_au", "getUniqueID"));
+ mInitMap.put(new Pair<String, String>("func_110125_a", "setParticleIcon"));
+ mInitMap.put(new Pair<String, String>("func_110128_b", "onBroken"));
+ mInitMap.put(new Pair<String, String>("func_110130_b", "getKnotForBlock"));
+ mInitMap.put(new Pair<String, String>("func_110131_b", "removeFrameFromMap"));
+ mInitMap.put(new Pair<String, String>("func_110138_aP", "getMaxHealth"));
+ mInitMap.put(new Pair<String, String>("func_110139_bj", "getAbsorptionAmount"));
+ mInitMap.put(new Pair<String, String>("func_110140_aT", "getAttributeMap"));
+ mInitMap.put(new Pair<String, String>("func_110142_aN", "getCombatTracker"));
+ mInitMap.put(new Pair<String, String>("func_110143_aJ", "getHealth"));
+ mInitMap.put(new Pair<String, String>("func_110144_aD", "getLastAttacker"));
+ mInitMap.put(new Pair<String, String>("func_110145_l", "dismountEntity"));
+ mInitMap.put(new Pair<String, String>("func_110147_ax", "applyEntityAttributes"));
+ mInitMap.put(new Pair<String, String>("func_110148_a", "getEntityAttribute"));
+ mInitMap.put(new Pair<String, String>("func_110149_m", "setAbsorptionAmount"));
+ mInitMap.put(new Pair<String, String>("func_110159_bB", "updateLeashedState"));
+ mInitMap.put(new Pair<String, String>("func_110160_i", "clearLeashed"));
+ mInitMap.put(new Pair<String, String>("func_110161_a", "onSpawnWithEgg"));
+ mInitMap.put(new Pair<String, String>("func_110162_b", "setLeashedToEntity"));
+ mInitMap.put(new Pair<String, String>("func_110163_bv", "enablePersistence"));
+ mInitMap.put(new Pair<String, String>("func_110164_bC", "allowLeashing"));
+ mInitMap.put(new Pair<String, String>("func_110165_bF", "recreateLeash"));
+ mInitMap.put(new Pair<String, String>("func_110166_bE", "getLeashedToEntity"));
+ mInitMap.put(new Pair<String, String>("func_110167_bD", "getLeashed"));
+ mInitMap.put(new Pair<String, String>("func_110171_b", "setHomeArea"));
+ mInitMap.put(new Pair<String, String>("func_110172_bL", "getHomePosition"));
+ mInitMap.put(new Pair<String, String>("func_110173_bK", "isWithinHomeDistanceCurrentPosition"));
+ mInitMap.put(new Pair<String, String>("func_110174_bM", "getMaximumHomeDistance"));
+ mInitMap.put(new Pair<String, String>("func_110175_bO", "hasHome"));
+ mInitMap.put(new Pair<String, String>("func_110176_b", "isWithinHomeDistance"));
+ mInitMap.put(new Pair<String, String>("func_110177_bN", "detachHome"));
+ mInitMap.put(new Pair<String, String>("func_110195_a", "addGrowth"));
+ mInitMap.put(new Pair<String, String>("func_110198_t", "increaseTemper"));
+ mInitMap.put(new Pair<String, String>("func_110199_f", "openGUI"));
+ mInitMap.put(new Pair<String, String>("func_110200_cJ", "canMate"));
+ mInitMap.put(new Pair<String, String>("func_110202_bQ", "getHorseVariant"));
+ mInitMap.put(new Pair<String, String>("func_110204_cc", "isEatingHaystack"));
+ mInitMap.put(new Pair<String, String>("func_110206_u", "setJumpPower"));
+ mInitMap.put(new Pair<String, String>("func_110207_m", "setChested"));
+ mInitMap.put(new Pair<String, String>("func_110208_b", "setHorseWatchableBoolean"));
+ mInitMap.put(new Pair<String, String>("func_110209_cd", "isRearing"));
+ mInitMap.put(new Pair<String, String>("func_110212_cp", "getVariantTexturePaths"));
+ mInitMap.put(new Pair<String, String>("func_110214_p", "setHorseType"));
+ mInitMap.put(new Pair<String, String>("func_110215_cj", "getHorseJumpStrength"));
+ mInitMap.put(new Pair<String, String>("func_110216_r", "spawnHorseParticles"));
+ mInitMap.put(new Pair<String, String>("func_110217_cl", "getAngrySoundName"));
+ mInitMap.put(new Pair<String, String>("func_110218_cm", "getMaxTemper"));
+ mInitMap.put(new Pair<String, String>("func_110219_q", "setRearing"));
+ mInitMap.put(new Pair<String, String>("func_110220_cK", "makeHorseRear"));
+ mInitMap.put(new Pair<String, String>("func_110221_n", "setHasReproduced"));
+ mInitMap.put(new Pair<String, String>("func_110222_cv", "isSterile"));
+ mInitMap.put(new Pair<String, String>("func_110223_p", "getRearingAmount"));
+ mInitMap.put(new Pair<String, String>("func_110224_ci", "dropChests"));
+ mInitMap.put(new Pair<String, String>("func_110227_p", "setEatingHaystack"));
+ mInitMap.put(new Pair<String, String>("func_110228_bR", "isAdultHorse"));
+ mInitMap.put(new Pair<String, String>("func_110229_cs", "canCarryChest"));
+ mInitMap.put(new Pair<String, String>("func_110231_cz", "makeHorseRearWithSound"));
+ mInitMap.put(new Pair<String, String>("func_110233_w", "getHorseWatchableBoolean"));
+ mInitMap.put(new Pair<String, String>("func_110234_j", "setHorseTamed"));
+ mInitMap.put(new Pair<String, String>("func_110235_q", "setHorseVariant"));
+ mInitMap.put(new Pair<String, String>("func_110238_s", "setTemper"));
+ mInitMap.put(new Pair<String, String>("func_110240_a", "dropItemsInChest"));
+ mInitMap.put(new Pair<String, String>("func_110243_cf", "getHasReproduced"));
+ mInitMap.put(new Pair<String, String>("func_110244_cA", "dropChestItems"));
+ mInitMap.put(new Pair<String, String>("func_110246_bZ", "isHorseJumping"));
+ mInitMap.put(new Pair<String, String>("func_110247_cG", "setHorseTexturePaths"));
+ mInitMap.put(new Pair<String, String>("func_110248_bS", "isTame"));
+ mInitMap.put(new Pair<String, String>("func_110249_cI", "openHorseMouth"));
+ mInitMap.put(new Pair<String, String>("func_110250_a", "getClosestHorse"));
+ mInitMap.put(new Pair<String, String>("func_110251_o", "setHorseSaddled"));
+ mInitMap.put(new Pair<String, String>("func_110252_cg", "getTemper"));
+ mInitMap.put(new Pair<String, String>("func_110254_bY", "getHorseSize"));
+ mInitMap.put(new Pair<String, String>("func_110255_k", "setHorseJumping"));
+ mInitMap.put(new Pair<String, String>("func_110256_cu", "isUndead"));
+ mInitMap.put(new Pair<String, String>("func_110257_ck", "isHorseSaddled"));
+ mInitMap.put(new Pair<String, String>("func_110258_o", "getGrassEatingAmount"));
+ mInitMap.put(new Pair<String, String>("func_110259_cr", "canWearArmor"));
+ mInitMap.put(new Pair<String, String>("func_110260_d", "getHorseArmorIndex"));
+ mInitMap.put(new Pair<String, String>("func_110261_ca", "isChested"));
+ mInitMap.put(new Pair<String, String>("func_110262_ch", "prepareChunkForSpawn"));
+ mInitMap.put(new Pair<String, String>("func_110263_g", "setTamedBy"));
+ mInitMap.put(new Pair<String, String>("func_110264_co", "getHorseTexture"));
+ mInitMap.put(new Pair<String, String>("func_110265_bP", "getHorseType"));
+ mInitMap.put(new Pair<String, String>("func_110297_a_", "verifySellingItem"));
+ mInitMap.put(new Pair<String, String>("func_110298_a", "displayGUIHorse"));
+ mInitMap.put(new Pair<String, String>("func_110303_q", "getLocationCape"));
+ mInitMap.put(new Pair<String, String>("func_110304_a", "getDownloadImageSkin"));
+ mInitMap.put(new Pair<String, String>("func_110306_p", "getLocationSkin"));
+ mInitMap.put(new Pair<String, String>("func_110311_f", "getLocationSkin"));
+ mInitMap.put(new Pair<String, String>("func_110317_t", "isRidingHorse"));
+ mInitMap.put(new Pair<String, String>("func_110318_g", "sendHorseJump"));
+ mInitMap.put(new Pair<String, String>("func_110319_bJ", "getHorseJumpPower"));
+ mInitMap.put(new Pair<String, String>("func_110322_i", "sendHorseInteraction"));
+ mInitMap.put(new Pair<String, String>("func_110326_a", "setRecordPlaying"));
+ mInitMap.put(new Pair<String, String>("func_110327_a", "renderIcons"));
+ mInitMap.put(new Pair<String, String>("func_110430_a", "setEntityActionState"));
+ mInitMap.put(new Pair<String, String>("func_110432_I", "getSession"));
+ mInitMap.put(new Pair<String, String>("func_110434_K", "getTextureManager"));
+ mInitMap.put(new Pair<String, String>("func_110435_P", "addDefaultResourcePack"));
+ mInitMap.put(new Pair<String, String>("func_110436_a", "refreshResources"));
+ mInitMap.put(new Pair<String, String>("func_110437_J", "getProxy"));
+ mInitMap.put(new Pair<String, String>("func_110438_M", "getResourcePackRepository"));
+ mInitMap.put(new Pair<String, String>("func_110441_Q", "updateDisplayMode"));
+ mInitMap.put(new Pair<String, String>("func_110442_L", "getResourceManager"));
+ mInitMap.put(new Pair<String, String>("func_110454_ao", "getServerProxy"));
+ mInitMap.put(new Pair<String, String>("func_110455_j", "getOpPermissionLevel"));
+ mInitMap.put(new Pair<String, String>("func_110462_b", "getPackFormat"));
+ mInitMap.put(new Pair<String, String>("func_110468_c", "getFrameIndex"));
+ mInitMap.put(new Pair<String, String>("func_110469_d", "getFrameTime"));
+ mInitMap.put(new Pair<String, String>("func_110470_b", "frameHasTime"));
+ mInitMap.put(new Pair<String, String>("func_110471_a", "getFrameHeight"));
+ mInitMap.put(new Pair<String, String>("func_110472_a", "getFrameTimeSingle"));
+ mInitMap.put(new Pair<String, String>("func_110473_c", "getFrameCount"));
+ mInitMap.put(new Pair<String, String>("func_110474_b", "getFrameWidth"));
+ mInitMap.put(new Pair<String, String>("func_110479_a", "getTextureBlur"));
+ mInitMap.put(new Pair<String, String>("func_110480_b", "getTextureClamp"));
+ mInitMap.put(new Pair<String, String>("func_110483_a", "getSectionName"));
+ mInitMap.put(new Pair<String, String>("func_110492_a", "parseAnimationFrame"));
+ mInitMap.put(new Pair<String, String>("func_110495_a", "hasNoTime"));
+ mInitMap.put(new Pair<String, String>("func_110496_c", "getFrameIndex"));
+ mInitMap.put(new Pair<String, String>("func_110497_b", "getFrameTime"));
+ mInitMap.put(new Pair<String, String>("func_110503_a", "parseMetadataSection"));
+ mInitMap.put(new Pair<String, String>("func_110504_a", "registerMetadataSectionType"));
+ mInitMap.put(new Pair<String, String>("func_110505_a", "getGson"));
+ mInitMap.put(new Pair<String, String>("func_110514_c", "getResourcePack"));
+ mInitMap.put(new Pair<String, String>("func_110515_d", "getResourcePackName"));
+ mInitMap.put(new Pair<String, String>("func_110516_a", "updateResourcePack"));
+ mInitMap.put(new Pair<String, String>("func_110517_b", "closeResourcePack"));
+ mInitMap.put(new Pair<String, String>("func_110518_a", "bindTexturePackIcon"));
+ mInitMap.put(new Pair<String, String>("func_110519_e", "getTexturePackDescription"));
+ mInitMap.put(new Pair<String, String>("func_110526_a", "getMetadata"));
+ mInitMap.put(new Pair<String, String>("func_110527_b", "getInputStream"));
+ mInitMap.put(new Pair<String, String>("func_110528_c", "hasMetadata"));
+ mInitMap.put(new Pair<String, String>("func_110536_a", "getResource"));
+ mInitMap.put(new Pair<String, String>("func_110537_b", "getLocationMcmeta"));
+ mInitMap.put(new Pair<String, String>("func_110538_a", "addResourcePack"));
+ mInitMap.put(new Pair<String, String>("func_110541_a", "reloadResources"));
+ mInitMap.put(new Pair<String, String>("func_110542_a", "registerReloadListener"));
+ mInitMap.put(new Pair<String, String>("func_110543_a", "clearResources"));
+ mInitMap.put(new Pair<String, String>("func_110544_b", "notifyReloadListeners"));
+ mInitMap.put(new Pair<String, String>("func_110545_a", "reloadResourcePack"));
+ mInitMap.put(new Pair<String, String>("func_110549_a", "onResourceManagerReload"));
+ mInitMap.put(new Pair<String, String>("func_110550_d", "tick"));
+ mInitMap.put(new Pair<String, String>("func_110551_a", "loadTexture"));
+ mInitMap.put(new Pair<String, String>("func_110552_b", "getGlTextureId"));
+ mInitMap.put(new Pair<String, String>("func_110564_a", "updateDynamicTexture"));
+ mInitMap.put(new Pair<String, String>("func_110565_c", "getTextureData"));
+ mInitMap.put(new Pair<String, String>("func_110569_e", "initMissingImage"));
+ mInitMap.put(new Pair<String, String>("func_110571_b", "loadTextureAtlas"));
+ mInitMap.put(new Pair<String, String>("func_110572_b", "getAtlasSprite"));
+ mInitMap.put(new Pair<String, String>("func_110573_f", "registerIcons"));
+ mInitMap.put(new Pair<String, String>("func_110577_a", "bindTexture"));
+ mInitMap.put(new Pair<String, String>("func_110578_a", "getDynamicTextureLocation"));
+ mInitMap.put(new Pair<String, String>("func_110579_a", "loadTexture"));
+ mInitMap.put(new Pair<String, String>("func_110580_a", "loadTickableTexture"));
+ mInitMap.put(new Pair<String, String>("func_110581_b", "getTexture"));
+ mInitMap.put(new Pair<String, String>("func_110586_a", "getPackImage"));
+ mInitMap.put(new Pair<String, String>("func_110587_b", "getResourceDomains"));
+ mInitMap.put(new Pair<String, String>("func_110589_b", "resourceExists"));
+ mInitMap.put(new Pair<String, String>("func_110590_a", "getInputStream"));
+ mInitMap.put(new Pair<String, String>("func_110591_a", "getInputStreamByName"));
+ mInitMap.put(new Pair<String, String>("func_110592_c", "locationToName"));
+ mInitMap.put(new Pair<String, String>("func_110593_b", "hasResourceName"));
+ mInitMap.put(new Pair<String, String>("func_110594_c", "logNameNotLowercase"));
+ mInitMap.put(new Pair<String, String>("func_110595_a", "getRelativeName"));
+ mInitMap.put(new Pair<String, String>("func_110596_a", "readMetadata"));
+ mInitMap.put(new Pair<String, String>("func_110599_c", "getResourcePackZipFile"));
+ mInitMap.put(new Pair<String, String>("func_110605_c", "getResourceStream"));
+ mInitMap.put(new Pair<String, String>("func_110609_b", "getRepositoryEntriesAll"));
+ mInitMap.put(new Pair<String, String>("func_110611_a", "updateRepositoryEntriesAll"));
+ mInitMap.put(new Pair<String, String>("func_110612_e", "getDirResourcepacks"));
+ mInitMap.put(new Pair<String, String>("func_110613_c", "getRepositoryEntries"));
+ mInitMap.put(new Pair<String, String>("func_110614_g", "getResourcePackFiles"));
+ mInitMap.put(new Pair<String, String>("func_110616_f", "fixDirResourcepacks"));
+ mInitMap.put(new Pair<String, String>("func_110623_a", "getResourcePath"));
+ mInitMap.put(new Pair<String, String>("func_110624_b", "getResourceDomain"));
+ mInitMap.put(new Pair<String, String>("func_110646_a", "getTextWithoutFormattingCodes"));
+ mInitMap.put(new Pair<String, String>("func_110647_a", "getOSType"));
+ mInitMap.put(new Pair<String, String>("func_110661_a", "parseDouble"));
+ mInitMap.put(new Pair<String, String>("func_110662_c", "parseBoolean"));
+ mInitMap.put(new Pair<String, String>("func_110664_a", "parseDouble"));
+ mInitMap.put(new Pair<String, String>("func_110665_a", "clamp_double"));
+ mInitMap.put(new Pair<String, String>("func_110666_a", "clamp_coord"));
+ mInitMap.put(new Pair<String, String>("func_110682_a", "setBoxRotation"));
+ mInitMap.put(new Pair<String, String>("func_110683_a", "updateHorseRotation"));
+ mInitMap.put(new Pair<String, String>("func_110738_j", "isRidingHorse"));
+ mInitMap.put(new Pair<String, String>("func_110775_a", "getEntityTexture"));
+ mInitMap.put(new Pair<String, String>("func_110776_a", "bindTexture"));
+ mInitMap.put(new Pair<String, String>("func_110777_b", "bindEntityTexture"));
+ mInitMap.put(new Pair<String, String>("func_110813_b", "canRenderName"));
+ mInitMap.put(new Pair<String, String>("func_110934_a", "addSprite"));
+ mInitMap.put(new Pair<String, String>("func_110935_a", "getCurrentWidth"));
+ mInitMap.put(new Pair<String, String>("func_110936_b", "getCurrentHeight"));
+ mInitMap.put(new Pair<String, String>("func_110966_b", "setIconWidth"));
+ mInitMap.put(new Pair<String, String>("func_110967_i", "getOriginY"));
+ mInitMap.put(new Pair<String, String>("func_110968_a", "setFramesTextureData"));
+ mInitMap.put(new Pair<String, String>("func_110969_c", "setIconHeight"));
+ mInitMap.put(new Pair<String, String>("func_110970_k", "getFrameCount"));
+ mInitMap.put(new Pair<String, String>("func_110971_a", "initSprite"));
+ mInitMap.put(new Pair<String, String>("func_110985_a", "updateAnaglyph"));
+ mInitMap.put(new Pair<String, String>("func_110986_a", "readImageData"));
+ mInitMap.put(new Pair<String, String>("func_110987_a", "uploadTextureImage"));
+ mInitMap.put(new Pair<String, String>("func_110988_a", "uploadTexture"));
+ mInitMap.put(new Pair<String, String>("func_110989_a", "uploadTextureImageAllocate"));
+ mInitMap.put(new Pair<String, String>("func_110990_a", "copyToBuffer"));
+ mInitMap.put(new Pair<String, String>("func_110991_a", "allocateTexture"));
+ mInitMap.put(new Pair<String, String>("func_110993_a", "uploadTextureImageSubImpl"));
+ mInitMap.put(new Pair<String, String>("func_110994_a", "copyToBufferPos"));
+ mInitMap.put(new Pair<String, String>("func_110995_a", "uploadTextureImageSub"));
+ mInitMap.put(new Pair<String, String>("func_110996_a", "glGenTextures"));
+ mInitMap.put(new Pair<String, String>("func_110997_a", "setTextureClamped"));
+ mInitMap.put(new Pair<String, String>("func_111108_a", "getAttributeUnlocalizedName"));
+ mInitMap.put(new Pair<String, String>("func_111109_a", "clampValue"));
+ mInitMap.put(new Pair<String, String>("func_111110_b", "getDefaultValue"));
+ mInitMap.put(new Pair<String, String>("func_111111_c", "getShouldWatch"));
+ mInitMap.put(new Pair<String, String>("func_111112_a", "setShouldWatch"));
+ mInitMap.put(new Pair<String, String>("func_111116_f", "getDescription"));
+ mInitMap.put(new Pair<String, String>("func_111117_a", "setDescription"));
+ mInitMap.put(new Pair<String, String>("func_111121_a", "applyModifier"));
+ mInitMap.put(new Pair<String, String>("func_111123_a", "getAttribute"));
+ mInitMap.put(new Pair<String, String>("func_111124_b", "removeModifier"));
+ mInitMap.put(new Pair<String, String>("func_111125_b", "getBaseValue"));
+ mInitMap.put(new Pair<String, String>("func_111126_e", "getAttributeValue"));
+ mInitMap.put(new Pair<String, String>("func_111127_a", "getModifier"));
+ mInitMap.put(new Pair<String, String>("func_111128_a", "setBaseValue"));
+ mInitMap.put(new Pair<String, String>("func_111129_g", "computeValue"));
+ mInitMap.put(new Pair<String, String>("func_111130_a", "getModifiersByOperation"));
+ mInitMap.put(new Pair<String, String>("func_111131_f", "flagForUpdate"));
+ mInitMap.put(new Pair<String, String>("func_111145_d", "getWatchableObjectFloat"));
+ mInitMap.put(new Pair<String, String>("func_111146_a", "getAllAttributes"));
+ mInitMap.put(new Pair<String, String>("func_111147_b", "applyAttributeModifiers"));
+ mInitMap.put(new Pair<String, String>("func_111148_a", "removeAttributeModifiers"));
+ mInitMap.put(new Pair<String, String>("func_111149_a", "addAttributeInstance"));
+ mInitMap.put(new Pair<String, String>("func_111150_b", "registerAttribute"));
+ mInitMap.put(new Pair<String, String>("func_111151_a", "getAttributeInstance"));
+ mInitMap.put(new Pair<String, String>("func_111152_a", "getAttributeInstanceByName"));
+ mInitMap.put(new Pair<String, String>("func_111160_c", "getWatchedAttributes"));
+ mInitMap.put(new Pair<String, String>("func_111161_b", "getAttributeInstanceSet"));
+ mInitMap.put(new Pair<String, String>("func_111164_d", "getAmount"));
+ mInitMap.put(new Pair<String, String>("func_111165_e", "isSaved"));
+ mInitMap.put(new Pair<String, String>("func_111166_b", "getName"));
+ mInitMap.put(new Pair<String, String>("func_111167_a", "getID"));
+ mInitMap.put(new Pair<String, String>("func_111168_a", "setSaved"));
+ mInitMap.put(new Pair<String, String>("func_111169_c", "getOperation"));
+ mInitMap.put(new Pair<String, String>("func_111175_f", "getTargetDistance"));
+ mInitMap.put(new Pair<String, String>("func_111184_a", "registerPotionAttributeModifier"));
+ mInitMap.put(new Pair<String, String>("func_111185_a", "applyAttributesModifiersToEntity"));
+ mInitMap.put(new Pair<String, String>("func_111187_a", "removeAttributesModifiersFromEntity"));
+ mInitMap.put(new Pair<String, String>("func_111190_b", "sendMetadataToAllAssociatedPlayers"));
+ mInitMap.put(new Pair<String, String>("func_111194_a", "processChunk"));
+ mInitMap.put(new Pair<String, String>("func_111196_a", "increaseInhabitedTime"));
+ mInitMap.put(new Pair<String, String>("func_111205_h", "getItemAttributeModifiers"));
+ mInitMap.put(new Pair<String, String>("func_111206_d", "setTextureName"));
+ mInitMap.put(new Pair<String, String>("func_111207_a", "itemInteractionForEntity"));
+ mInitMap.put(new Pair<String, String>("func_111208_A", "getIconString"));
+ mInitMap.put(new Pair<String, String>("func_111225_m", "getRelevantEnchantmentTypes"));
+ mInitMap.put(new Pair<String, String>("func_111229_a", "setRelevantEnchantmentTypes"));
+ mInitMap.put(new Pair<String, String>("func_111238_b", "canBeHovered"));
+ mInitMap.put(new Pair<String, String>("func_111257_a", "writeBaseAttributeMapToNBT"));
+ mInitMap.put(new Pair<String, String>("func_111258_a", "applyModifiersToAttributeInstance"));
+ mInitMap.put(new Pair<String, String>("func_111259_a", "readAttributeModifierFromNBT"));
+ mInitMap.put(new Pair<String, String>("func_111261_a", "writeAttributeInstanceToNBT"));
+ mInitMap.put(new Pair<String, String>("func_111262_a", "writeAttributeModifierToNBT"));
+ mInitMap.put(new Pair<String, String>("func_111269_d", "getPathSearchRange"));
+ mInitMap.put(new Pair<String, String>("func_111270_a", "union"));
+ mInitMap.put(new Pair<String, String>("func_111271_a", "getUnicodePageLocation"));
+ mInitMap.put(new Pair<String, String>("func_111272_d", "readFontTexture"));
+ mInitMap.put(new Pair<String, String>("func_111282_a", "interactWithEntity"));
+ mInitMap.put(new Pair<String, String>("func_111283_C", "getAttributeModifiers"));
+ mInitMap.put(new Pair<String, String>("func_111285_a", "getUsername"));
+ mInitMap.put(new Pair<String, String>("func_111286_b", "getSessionID"));
+ mInitMap.put(new Pair<String, String>("func_120011_ar", "setGuiEnabled"));
+ mInitMap.put(new Pair<String, String>("func_120016_a", "createServerGui"));
+ mInitMap.put(new Pair<String, String>("func_120018_d", "getLogComponent"));
+ mInitMap.put(new Pair<String, String>("func_120019_b", "getStatsComponent"));
+ mInitMap.put(new Pair<String, String>("func_120020_c", "getPlayerListComponent"));
+ mInitMap.put(new Pair<String, String>("func_130001_d", "getCurrentMoonPhaseFactor"));
+ mInitMap.put(new Pair<String, String>("func_130002_c", "interactFirst"));
+ mInitMap.put(new Pair<String, String>("func_130010_a", "getOriginX"));
+ mInitMap.put(new Pair<String, String>("func_130011_c", "setLastAttacker"));
+ mInitMap.put(new Pair<String, String>("func_130014_f_", "getEntityWorld"));
+ mInitMap.put(new Pair<String, String>("func_130071_aq", "getCurrentTimeMillis"));
+ mInitMap.put(new Pair<String, String>("func_130072_d", "getAnimationFrame"));
+ mInitMap.put(new Pair<String, String>("func_130073_e", "getFrameIndexSet"));
+ mInitMap.put(new Pair<String, String>("func_130077_b", "getPackName"));
+ mInitMap.put(new Pair<String, String>("func_130086_a", "getTextureType"));
+ mInitMap.put(new Pair<String, String>("func_130087_a", "getResourceLocation"));
+ mInitMap.put(new Pair<String, String>("func_130088_a", "loadTextureMap"));
+ mInitMap.put(new Pair<String, String>("func_130098_m", "hasAnimationMetadata"));
+ mInitMap.put(new Pair<String, String>("func_130099_d", "allocateFrameTextureData"));
+ mInitMap.put(new Pair<String, String>("func_130102_n", "resetSprite"));
+ mInitMap.put(new Pair<String, String>("func_130103_l", "clearFramesTextureData"));
+ mInitMap.put(new Pair<String, String>("func_130105_g", "getMinecraftStartTimeMillis"));
+ mInitMap.put(new Pair<String, String>("func_135016_M", "getLanguageManager"));
+ mInitMap.put(new Pair<String, String>("func_135018_a", "getLanguages"));
+ mInitMap.put(new Pair<String, String>("func_135021_a", "loadLocaleData"));
+ mInitMap.put(new Pair<String, String>("func_135022_a", "loadLocaleDataFiles"));
+ mInitMap.put(new Pair<String, String>("func_135023_a", "formatMessage"));
+ mInitMap.put(new Pair<String, String>("func_135024_b", "checkUnicode"));
+ mInitMap.put(new Pair<String, String>("func_135025_a", "isUnicode"));
+ mInitMap.put(new Pair<String, String>("func_135026_c", "translateKeyPrivate"));
+ mInitMap.put(new Pair<String, String>("func_135028_a", "loadLocaleData"));
+ mInitMap.put(new Pair<String, String>("func_135034_a", "getLanguageCode"));
+ mInitMap.put(new Pair<String, String>("func_135035_b", "isBidirectional"));
+ mInitMap.put(new Pair<String, String>("func_135040_d", "getLanguages"));
+ mInitMap.put(new Pair<String, String>("func_135041_c", "getCurrentLanguage"));
+ mInitMap.put(new Pair<String, String>("func_135042_a", "isCurrentLocaleUnicode"));
+ mInitMap.put(new Pair<String, String>("func_135043_a", "parseLanguageMetadata"));
+ mInitMap.put(new Pair<String, String>("func_135044_b", "isCurrentLanguageBidirectional"));
+ mInitMap.put(new Pair<String, String>("func_135045_a", "setCurrentLanguage"));
+ mInitMap.put(new Pair<String, String>("func_135051_a", "setLocale"));
+ mInitMap.put(new Pair<String, String>("func_135052_a", "format"));
+ mInitMap.put(new Pair<String, String>("func_135055_a", "getResourceDomains"));
+ mInitMap.put(new Pair<String, String>("func_135056_b", "getAllResources"));
+ mInitMap.put(new Pair<String, String>("func_135058_a", "getPackMetadata"));
+ mInitMap.put(new Pair<String, String>("func_135063_a", "replaceWith"));
+ mInitMap.put(new Pair<String, String>("func_135064_c", "tryTranslateKey"));
+ mInitMap.put(new Pair<String, String>("func_140005_i", "switchToRealms"));
+ mInitMap.put(new Pair<String, String>("func_142008_O", "shouldSetPosAfterLoading"));
+ mInitMap.put(new Pair<String, String>("func_142012_a", "isOnTeam"));
+ mInitMap.put(new Pair<String, String>("func_142013_aG", "getLastAttackerTime"));
+ mInitMap.put(new Pair<String, String>("func_142014_c", "isOnSameTeam"));
+ mInitMap.put(new Pair<String, String>("func_142015_aE", "getRevengeTimer"));
+ mInitMap.put(new Pair<String, String>("func_142020_c", "setClientBrand"));
+ mInitMap.put(new Pair<String, String>("func_142021_k", "getClientBrand"));
+ mInitMap.put(new Pair<String, String>("func_142049_d", "removeAllModifiers"));
+ mInitMap.put(new Pair<String, String>("func_142053_d", "formatString"));
+ mInitMap.put(new Pair<String, String>("func_142054_a", "isSameTeam"));
+ mInitMap.put(new Pair<String, String>("func_143004_u", "markPlayerActive"));
+ mInitMap.put(new Pair<String, String>("func_143006_e", "setPlayerIdleTimeout"));
+ mInitMap.put(new Pair<String, String>("func_143007_ar", "getMaxPlayerIdleMinutes"));
+ mInitMap.put(new Pair<String, String>("func_143011_b", "readStructureFromNBT"));
+ mInitMap.put(new Pair<String, String>("func_143012_a", "writeStructureToNBT"));
+ mInitMap.put(new Pair<String, String>("func_143016_a", "registerVillagePieces"));
+ mInitMap.put(new Pair<String, String>("func_143025_a", "getStructureName"));
+ mInitMap.put(new Pair<String, String>("func_143031_a", "registerStructureComponent"));
+ mInitMap.put(new Pair<String, String>("func_143034_b", "registerStructure"));
+ mInitMap.put(new Pair<String, String>("func_143045_a", "registerScatteredFeaturePieces"));
+ mInitMap.put(new Pair<String, String>("func_143046_a", "registerStrongholdPieces"));
+ mInitMap.put(new Pair<String, String>("func_143048_a", "registerStructurePieces"));
+ mInitMap.put(new Pair<String, String>("func_143049_a", "registerNetherFortressPieces"));
+ mInitMap.put(new Pair<String, String>("func_145747_a", "addChatMessage"));
+ mInitMap.put(new Pair<String, String>("func_145748_c_", "getFormattedCommandSenderName"));
+ mInitMap.put(new Pair<String, String>("func_145749_h", "getLastOutput"));
+ mInitMap.put(new Pair<String, String>("func_145752_a", "setCommand"));
+ mInitMap.put(new Pair<String, String>("func_145753_i", "getCustomName"));
+ mInitMap.put(new Pair<String, String>("func_145758_a", "writeDataToNBT"));
+ mInitMap.put(new Pair<String, String>("func_145759_b", "readDataFromNBT"));
+ mInitMap.put(new Pair<String, String>("func_145760_g", "getSuccessCount"));
+ mInitMap.put(new Pair<String, String>("func_145769_d", "setEntityId"));
+ mInitMap.put(new Pair<String, String>("func_145770_h", "isInRangeToRender3d"));
+ mInitMap.put(new Pair<String, String>("func_145771_j", "pushOutOfBlocks"));
+ mInitMap.put(new Pair<String, String>("func_145772_a", "getExplosionResistance"));
+ mInitMap.put(new Pair<String, String>("func_145773_az", "doesEntityNotTriggerPressurePlate"));
+ mInitMap.put(new Pair<String, String>("func_145775_I", "doBlockCollisions"));
+ mInitMap.put(new Pair<String, String>("func_145776_H", "getSwimSound"));
+ mInitMap.put(new Pair<String, String>("func_145777_O", "getSplashSound"));
+ mInitMap.put(new Pair<String, String>("func_145778_a", "dropItemWithOffset"));
+ mInitMap.put(new Pair<String, String>("func_145779_a", "dropItem"));
+ mInitMap.put(new Pair<String, String>("func_145780_a", "playStepSound"));
+ mInitMap.put(new Pair<String, String>("func_145782_y", "getEntityId"));
+ mInitMap.put(new Pair<String, String>("func_145797_a", "setOwner"));
+ mInitMap.put(new Pair<String, String>("func_145798_i", "getOwner"));
+ mInitMap.put(new Pair<String, String>("func_145799_b", "setThrower"));
+ mInitMap.put(new Pair<String, String>("func_145800_j", "getThrower"));
+ mInitMap.put(new Pair<String, String>("func_145805_f", "getBlock"));
+ mInitMap.put(new Pair<String, String>("func_145806_a", "setHurtEntities"));
+ mInitMap.put(new Pair<String, String>("func_145807_e", "getWorldObj"));
+ mInitMap.put(new Pair<String, String>("func_145817_o", "getDefaultDisplayTile"));
+ mInitMap.put(new Pair<String, String>("func_145818_k_", "isCustomInventoryName"));
+ mInitMap.put(new Pair<String, String>("func_145820_n", "getDisplayTile"));
+ mInitMap.put(new Pair<String, String>("func_145825_b", "getInventoryName"));
+ mInitMap.put(new Pair<String, String>("func_145826_a", "addMapping"));
+ mInitMap.put(new Pair<String, String>("func_145827_c", "createAndLoadEntity"));
+ mInitMap.put(new Pair<String, String>("func_145828_a", "addInfoToCrashReport"));
+ mInitMap.put(new Pair<String, String>("func_145829_t", "validate"));
+ mInitMap.put(new Pair<String, String>("func_145830_o", "hasWorldObj"));
+ mInitMap.put(new Pair<String, String>("func_145831_w", "getWorld"));
+ mInitMap.put(new Pair<String, String>("func_145832_p", "getBlockMetadata"));
+ mInitMap.put(new Pair<String, String>("func_145833_n", "getMaxRenderDistanceSquared"));
+ mInitMap.put(new Pair<String, String>("func_145834_a", "setWorldObj"));
+ mInitMap.put(new Pair<String, String>("func_145835_a", "getDistanceSq"));
+ mInitMap.put(new Pair<String, String>("func_145836_u", "updateContainingBlockInfo"));
+ mInitMap.put(new Pair<String, String>("func_145837_r", "isInvalid"));
+ mInitMap.put(new Pair<String, String>("func_145838_q", "getBlockType"));
+ mInitMap.put(new Pair<String, String>("func_145839_a", "readFromNBT"));
+ mInitMap.put(new Pair<String, String>("func_145841_b", "writeToNBT"));
+ mInitMap.put(new Pair<String, String>("func_145842_c", "receiveClientEvent"));
+ mInitMap.put(new Pair<String, String>("func_145843_s", "invalidate"));
+ mInitMap.put(new Pair<String, String>("func_145844_m", "getDescriptionPacket"));
+ mInitMap.put(new Pair<String, String>("func_145845_h", "updateEntity"));
+ mInitMap.put(new Pair<String, String>("func_145861_a", "getStoredBlockID"));
+ mInitMap.put(new Pair<String, String>("func_145864_c", "getPistonOrientation"));
+ mInitMap.put(new Pair<String, String>("func_145866_f", "clearPistonTileEntity"));
+ mInitMap.put(new Pair<String, String>("func_145867_d", "shouldPistonHeadBeRendered"));
+ mInitMap.put(new Pair<String, String>("func_145868_b", "isExtending"));
+ mInitMap.put(new Pair<String, String>("func_145877_a", "changePitch"));
+ mInitMap.put(new Pair<String, String>("func_145878_a", "triggerNote"));
+ mInitMap.put(new Pair<String, String>("func_145888_j", "isOnTransferCooldown"));
+ mInitMap.put(new Pair<String, String>("func_145896_c", "setTransferCooldown"));
+ mInitMap.put(new Pair<String, String>("func_145903_a", "setSkullRotation"));
+ mInitMap.put(new Pair<String, String>("func_145904_a", "getSkullType"));
+ mInitMap.put(new Pair<String, String>("func_145906_b", "getSkullRotation"));
+ mInitMap.put(new Pair<String, String>("func_145913_a", "setEditable"));
+ mInitMap.put(new Pair<String, String>("func_145914_a", "getIsEditable"));
+ mInitMap.put(new Pair<String, String>("func_145934_k", "canBrew"));
+ mInitMap.put(new Pair<String, String>("func_145935_i", "getBrewTime"));
+ mInitMap.put(new Pair<String, String>("func_145938_d", "setBrewTime"));
+ mInitMap.put(new Pair<String, String>("func_145939_j", "getFilledSlots"));
+ mInitMap.put(new Pair<String, String>("func_145940_l", "brewPotions"));
+ mInitMap.put(new Pair<String, String>("func_145948_k", "canSmelt"));
+ mInitMap.put(new Pair<String, String>("func_145949_j", "smeltItem"));
+ mInitMap.put(new Pair<String, String>("func_145950_i", "isBurning"));
+ mInitMap.put(new Pair<String, String>("func_145951_a", "setCustomInventoryName"));
+ mInitMap.put(new Pair<String, String>("func_145952_a", "getItemBurnTime"));
+ mInitMap.put(new Pair<String, String>("func_145953_d", "getCookProgressScaled"));
+ mInitMap.put(new Pair<String, String>("func_145954_b", "isItemFuel"));
+ mInitMap.put(new Pair<String, String>("func_145955_e", "getBurnTimeRemainingScaled"));
+ mInitMap.put(new Pair<String, String>("func_145965_a", "getFlowerPotItem"));
+ mInitMap.put(new Pair<String, String>("func_145966_b", "getFlowerPotData"));
+ mInitMap.put(new Pair<String, String>("func_145976_a", "setCustomName"));
+ mInitMap.put(new Pair<String, String>("func_145977_a", "isSameTypeChestAt"));
+ mInitMap.put(new Pair<String, String>("func_145979_i", "checkForAdjacentChests"));
+ mInitMap.put(new Pair<String, String>("func_145980_j", "getChestType"));
+ mInitMap.put(new Pair<String, String>("func_145995_a", "setOutputSignal"));
+ mInitMap.put(new Pair<String, String>("func_145996_a", "getOutputSignal"));
+ mInitMap.put(new Pair<String, String>("func_145998_l", "getLevels"));
+ mInitMap.put(new Pair<String, String>("func_146001_d", "setPrimaryEffect"));
+ mInitMap.put(new Pair<String, String>("func_146002_i", "shouldBeamRender"));
+ mInitMap.put(new Pair<String, String>("func_146004_e", "setSecondaryEffect"));
+ mInitMap.put(new Pair<String, String>("func_146006_k", "getSecondaryEffect"));
+ mInitMap.put(new Pair<String, String>("func_146007_j", "getPrimaryEffect"));
+ mInitMap.put(new Pair<String, String>("func_146023_a", "getStrVsBlock"));
+ mInitMap.put(new Pair<String, String>("func_146024_c", "getInventorySlotContainItemAndDamage"));
+ mInitMap.put(new Pair<String, String>("func_146026_a", "consumeInventoryItem"));
+ mInitMap.put(new Pair<String, String>("func_146027_a", "clearInventory"));
+ mInitMap.put(new Pair<String, String>("func_146028_b", "hasItem"));
+ mInitMap.put(new Pair<String, String>("func_146029_c", "getInventorySlotContainItem"));
+ mInitMap.put(new Pair<String, String>("func_146030_a", "setCurrentItem"));
+ mInitMap.put(new Pair<String, String>("func_146031_a", "setChestTileEntity"));
+ mInitMap.put(new Pair<String, String>("func_146034_e", "handleHookRetraction"));
+ mInitMap.put(new Pair<String, String>("func_146035_c", "handleHookCasting"));
+ mInitMap.put(new Pair<String, String>("func_146068_u", "getDropItem"));
+ mInitMap.put(new Pair<String, String>("func_146080_bZ", "getCarriedBlock"));
+ mInitMap.put(new Pair<String, String>("func_146081_a", "setCarriedBlock"));
+ mInitMap.put(new Pair<String, String>("func_146082_f", "setInLove"));
+ mInitMap.put(new Pair<String, String>("func_146086_d", "setHorseArmorStack"));
+ mInitMap.put(new Pair<String, String>("func_146094_a", "getUUID"));
+ mInitMap.put(new Pair<String, String>("func_146096_a", "getBreakSpeed"));
+ mInitMap.put(new Pair<String, String>("func_146099_a", "canHarvestBlock"));
+ mInitMap.put(new Pair<String, String>("func_146100_a", "displayGUIEditSign"));
+ mInitMap.put(new Pair<String, String>("func_146103_bH", "getGameProfile"));
+ mInitMap.put(new Pair<String, String>("func_146105_b", "addChatComponentMessage"));
+ mInitMap.put(new Pair<String, String>("func_146107_m", "getStatFileWriter"));
+ mInitMap.put(new Pair<String, String>("func_146110_a", "drawModalRectWithCustomSizedTexture"));
+ mInitMap.put(new Pair<String, String>("func_146111_b", "drawButtonForegroundLayer"));
+ mInitMap.put(new Pair<String, String>("func_146112_a", "drawButton"));
+ mInitMap.put(new Pair<String, String>("func_146113_a", "playPressSound"));
+ mInitMap.put(new Pair<String, String>("func_146114_a", "getHoverState"));
+ mInitMap.put(new Pair<String, String>("func_146115_a", "isMouseOver"));
+ mInitMap.put(new Pair<String, String>("func_146116_c", "mousePressed"));
+ mInitMap.put(new Pair<String, String>("func_146117_b", "getButtonWidth"));
+ mInitMap.put(new Pair<String, String>("func_146118_a", "mouseReleased"));
+ mInitMap.put(new Pair<String, String>("func_146119_b", "mouseDragged"));
+ mInitMap.put(new Pair<String, String>("func_146136_c", "returnEnumOptions"));
+ mInitMap.put(new Pair<String, String>("func_146158_b", "getChatGUI"));
+ mInitMap.put(new Pair<String, String>("func_146159_a", "drawLabel"));
+ mInitMap.put(new Pair<String, String>("func_146160_b", "drawLabelBackground"));
+ mInitMap.put(new Pair<String, String>("func_146175_b", "deleteFromCursor"));
+ mInitMap.put(new Pair<String, String>("func_146176_q", "getVisible"));
+ mInitMap.put(new Pair<String, String>("func_146177_a", "deleteWords"));
+ mInitMap.put(new Pair<String, String>("func_146178_a", "updateCursorCounter"));
+ mInitMap.put(new Pair<String, String>("func_146179_b", "getText"));
+ mInitMap.put(new Pair<String, String>("func_146180_a", "setText"));
+ mInitMap.put(new Pair<String, String>("func_146181_i", "getEnableBackgroundDrawing"));
+ mInitMap.put(new Pair<String, String>("func_146182_d", "moveCursorBy"));
+ mInitMap.put(new Pair<String, String>("func_146183_a", "getNthWordFromPos"));
+ mInitMap.put(new Pair<String, String>("func_146184_c", "setEnabled"));
+ mInitMap.put(new Pair<String, String>("func_146185_a", "setEnableBackgroundDrawing"));
+ mInitMap.put(new Pair<String, String>("func_146186_n", "getSelectionEnd"));
+ mInitMap.put(new Pair<String, String>("func_146187_c", "getNthWordFromCursor"));
+ mInitMap.put(new Pair<String, String>("func_146188_c", "drawCursorVertical"));
+ mInitMap.put(new Pair<String, String>("func_146189_e", "setVisible"));
+ mInitMap.put(new Pair<String, String>("func_146190_e", "setCursorPosition"));
+ mInitMap.put(new Pair<String, String>("func_146191_b", "writeText"));
+ mInitMap.put(new Pair<String, String>("func_146192_a", "mouseClicked"));
+ mInitMap.put(new Pair<String, String>("func_146193_g", "setTextColor"));
+ mInitMap.put(new Pair<String, String>("func_146194_f", "drawTextBox"));
+ mInitMap.put(new Pair<String, String>("func_146195_b", "setFocused"));
+ mInitMap.put(new Pair<String, String>("func_146196_d", "setCursorPositionZero"));
+ mInitMap.put(new Pair<String, String>("func_146198_h", "getCursorPosition"));
+ mInitMap.put(new Pair<String, String>("func_146199_i", "setSelectionPos"));
+ mInitMap.put(new Pair<String, String>("func_146200_o", "getWidth"));
+ mInitMap.put(new Pair<String, String>("func_146201_a", "textboxKeyTyped"));
+ mInitMap.put(new Pair<String, String>("func_146202_e", "setCursorPositionEnd"));
+ mInitMap.put(new Pair<String, String>("func_146203_f", "setMaxStringLength"));
+ mInitMap.put(new Pair<String, String>("func_146204_h", "setDisabledTextColour"));
+ mInitMap.put(new Pair<String, String>("func_146205_d", "setCanLoseFocus"));
+ mInitMap.put(new Pair<String, String>("func_146206_l", "isFocused"));
+ mInitMap.put(new Pair<String, String>("func_146207_c", "getSelectedText"));
+ mInitMap.put(new Pair<String, String>("func_146208_g", "getMaxStringLength"));
+ mInitMap.put(new Pair<String, String>("func_146227_a", "printChatMessage"));
+ mInitMap.put(new Pair<String, String>("func_146228_f", "getChatWidth"));
+ mInitMap.put(new Pair<String, String>("func_146229_b", "scroll"));
+ mInitMap.put(new Pair<String, String>("func_146230_a", "drawChat"));
+ mInitMap.put(new Pair<String, String>("func_146231_a", "clearChatMessages"));
+ mInitMap.put(new Pair<String, String>("func_146232_i", "getLineCount"));
+ mInitMap.put(new Pair<String, String>("func_146233_a", "calculateChatboxWidth"));
+ mInitMap.put(new Pair<String, String>("func_146234_a", "printChatMessageWithOptionalDeletion"));
+ mInitMap.put(new Pair<String, String>("func_146235_b", "formatColors"));
+ mInitMap.put(new Pair<String, String>("func_146236_a", "getChatComponent"));
+ mInitMap.put(new Pair<String, String>("func_146237_a", "setChatLine"));
+ mInitMap.put(new Pair<String, String>("func_146238_c", "getSentMessages"));
+ mInitMap.put(new Pair<String, String>("func_146239_a", "addToSentMessages"));
+ mInitMap.put(new Pair<String, String>("func_146240_d", "resetScroll"));
+ mInitMap.put(new Pair<String, String>("func_146241_e", "getChatOpen"));
+ mInitMap.put(new Pair<String, String>("func_146242_c", "deleteChatLine"));
+ mInitMap.put(new Pair<String, String>("func_146243_b", "calculateChatboxHeight"));
+ mInitMap.put(new Pair<String, String>("func_146244_h", "getChatScale"));
+ mInitMap.put(new Pair<String, String>("func_146245_b", "refreshChat"));
+ mInitMap.put(new Pair<String, String>("func_146246_g", "getChatHeight"));
+ mInitMap.put(new Pair<String, String>("func_146254_a", "updateAchievementWindow"));
+ mInitMap.put(new Pair<String, String>("func_146255_b", "displayUnformattedAchievement"));
+ mInitMap.put(new Pair<String, String>("func_146256_a", "displayAchievement"));
+ mInitMap.put(new Pair<String, String>("func_146257_b", "clearAchievements"));
+ mInitMap.put(new Pair<String, String>("func_146258_c", "updateAchievementWindowScale"));
+ mInitMap.put(new Pair<String, String>("func_146269_k", "handleInput"));
+ mInitMap.put(new Pair<String, String>("func_146270_b", "drawWorldBackground"));
+ mInitMap.put(new Pair<String, String>("func_146271_m", "isCtrlKeyDown"));
+ mInitMap.put(new Pair<String, String>("func_146272_n", "isShiftKeyDown"));
+ mInitMap.put(new Pair<String, String>("func_146273_a", "mouseClickMove"));
+ mInitMap.put(new Pair<String, String>("func_146274_d", "handleMouseInput"));
+ mInitMap.put(new Pair<String, String>("func_146275_d", "setClipboardString"));
+ mInitMap.put(new Pair<String, String>("func_146276_q_", "drawDefaultBackground"));
+ mInitMap.put(new Pair<String, String>("func_146277_j", "getClipboardString"));
+ mInitMap.put(new Pair<String, String>("func_146278_c", "drawBackground"));
+ mInitMap.put(new Pair<String, String>("func_146279_a", "drawCreativeTabHoveringText"));
+ mInitMap.put(new Pair<String, String>("func_146280_a", "setWorldAndResolution"));
+ mInitMap.put(new Pair<String, String>("func_146281_b", "onGuiClosed"));
+ mInitMap.put(new Pair<String, String>("func_146282_l", "handleKeyboardInput"));
+ mInitMap.put(new Pair<String, String>("func_146283_a", "drawHoveringText"));
+ mInitMap.put(new Pair<String, String>("func_146284_a", "actionPerformed"));
+ mInitMap.put(new Pair<String, String>("func_146285_a", "renderToolTip"));
+ mInitMap.put(new Pair<String, String>("func_146286_b", "mouseReleased"));
+ mInitMap.put(new Pair<String, String>("func_146350_a", "setButtonDelay"));
+ mInitMap.put(new Pair<String, String>("func_146358_g", "disableSecurityWarning"));
+ mInitMap.put(new Pair<String, String>("func_146359_e", "copyLinkToClipboard"));
+ mInitMap.put(new Pair<String, String>("func_146367_a", "connect"));
+ mInitMap.put(new Pair<String, String>("func_146402_a", "getSentHistory"));
+ mInitMap.put(new Pair<String, String>("func_146403_a", "submitChatMessage"));
+ mInitMap.put(new Pair<String, String>("func_146404_p_", "autocompletePlayerNames"));
+ mInitMap.put(new Pair<String, String>("func_146405_a", "sendAutocompleteRequest"));
+ mInitMap.put(new Pair<String, String>("func_146406_a", "onAutocompleteResponse"));
+ mInitMap.put(new Pair<String, String>("func_146407_a", "openLink"));
+ mInitMap.put(new Pair<String, String>("func_146418_g", "wakeFromSleep"));
+ mInitMap.put(new Pair<String, String>("func_146456_p", "pageGetCurrent"));
+ mInitMap.put(new Pair<String, String>("func_146457_a", "pageSetCurrent"));
+ mInitMap.put(new Pair<String, String>("func_146459_b", "pageInsertIntoCurrent"));
+ mInitMap.put(new Pair<String, String>("func_146460_c", "keyTypedInTitle"));
+ mInitMap.put(new Pair<String, String>("func_146461_i", "addmInitMap.put(newPage"));
+ mInitMap.put(new Pair<String, String>("func_146462_a", "sendBookToServer"));
+ mInitMap.put(new Pair<String, String>("func_146463_b", "keyTypedInBook"));
+ mInitMap.put(new Pair<String, String>("func_146464_h", "updateButtons"));
+ mInitMap.put(new Pair<String, String>("func_146504_a", "getSoundVolume"));
+ mInitMap.put(new Pair<String, String>("func_146509_g", "doneLoading"));
+ mInitMap.put(new Pair<String, String>("func_146521_a", "drawStatsScreen"));
+ mInitMap.put(new Pair<String, String>("func_146527_c", "drawSprite"));
+ mInitMap.put(new Pair<String, String>("func_146531_b", "drawButtonBackground"));
+ mInitMap.put(new Pair<String, String>("func_146541_h", "createButtons"));
+ mInitMap.put(new Pair<String, String>("func_146552_b", "drawAchievementScreen"));
+ mInitMap.put(new Pair<String, String>("func_146553_h", "drawTitle"));
+ mInitMap.put(new Pair<String, String>("func_146574_g", "sendRespawnPacket"));
+ mInitMap.put(new Pair<String, String>("func_146575_b", "drawWinGameScreen"));
+ mInitMap.put(new Pair<String, String>("func_146586_a", "setDomInitMap.put(neworking"));
+ mInitMap.put(new Pair<String, String>("func_146789_i", "getOldServerPinger"));
+ mInitMap.put(new Pair<String, String>("func_146790_a", "selectServer"));
+ mInitMap.put(new Pair<String, String>("func_146791_a", "connectToServer"));
+ mInitMap.put(new Pair<String, String>("func_146792_q", "refreshServerList"));
+ mInitMap.put(new Pair<String, String>("func_146794_g", "createButtons"));
+ mInitMap.put(new Pair<String, String>("func_146795_p", "getServerList"));
+ mInitMap.put(new Pair<String, String>("func_146796_h", "connectToSelected"));
+ mInitMap.put(new Pair<String, String>("func_146961_a", "hasResourcePackEntry"));
+ mInitMap.put(new Pair<String, String>("func_146975_c", "getSlotAtPosition"));
+ mInitMap.put(new Pair<String, String>("func_146976_a", "drawGuiContainerBackgroundLayer"));
+ mInitMap.put(new Pair<String, String>("func_146977_a", "drawSlot"));
+ mInitMap.put(new Pair<String, String>("func_146978_c", "isPointInRegion"));
+ mInitMap.put(new Pair<String, String>("func_146979_b", "drawGuiContainerForegroundLayer"));
+ mInitMap.put(new Pair<String, String>("func_146980_g", "updateDragSplitting"));
+ mInitMap.put(new Pair<String, String>("func_146981_a", "isMouseOverSlot"));
+ mInitMap.put(new Pair<String, String>("func_146982_a", "drawItemStack"));
+ mInitMap.put(new Pair<String, String>("func_146983_a", "checkHotbarKeys"));
+ mInitMap.put(new Pair<String, String>("func_146984_a", "handleMouseClick"));
+ mInitMap.put(new Pair<String, String>("func_147035_g", "getMerchant"));
+ mInitMap.put(new Pair<String, String>("func_147044_g", "drawActivePotionEffects"));
+ mInitMap.put(new Pair<String, String>("func_147046_a", "drawEntityOnScreen"));
+ mInitMap.put(new Pair<String, String>("func_147050_b", "setCurrentCreativeTab"));
+ mInitMap.put(new Pair<String, String>("func_147052_b", "renderCreativeInventoryHoveringText"));
+ mInitMap.put(new Pair<String, String>("func_147053_i", "updateCreativeSearch"));
+ mInitMap.put(new Pair<String, String>("func_147055_p", "needsScrollBars"));
+ mInitMap.put(new Pair<String, String>("func_147090_g", "renameItem"));
+ mInitMap.put(new Pair<String, String>("func_147095_a", "requestTexturePackLoad"));
+ mInitMap.put(new Pair<String, String>("func_147099_x", "getStatFile"));
+ mInitMap.put(new Pair<String, String>("func_147104_D", "getCurrentServerData"));
+ mInitMap.put(new Pair<String, String>("func_147106_B", "scheduleResourcesRefresh"));
+ mInitMap.put(new Pair<String, String>("func_147107_h", "isFramerateLimitBelowMax"));
+ mInitMap.put(new Pair<String, String>("func_147108_a", "displayGuiScreen"));
+ mInitMap.put(new Pair<String, String>("func_147109_W", "getAmbientMusicType"));
+ mInitMap.put(new Pair<String, String>("func_147110_a", "getFramebuffer"));
+ mInitMap.put(new Pair<String, String>("func_147111_S", "isJava64bit"));
+ mInitMap.put(new Pair<String, String>("func_147112_ai", "middleClickMouse"));
+ mInitMap.put(new Pair<String, String>("func_147113_T", "isGamePaused"));
+ mInitMap.put(new Pair<String, String>("func_147114_u", "getNetHandler"));
+ mInitMap.put(new Pair<String, String>("func_147115_a", "sendClickBlockToController"));
+ mInitMap.put(new Pair<String, String>("func_147116_af", "clickMouse"));
+ mInitMap.put(new Pair<String, String>("func_147117_R", "getTextureMapBlocks"));
+ mInitMap.put(new Pair<String, String>("func_147118_V", "getSoundHandler"));
+ mInitMap.put(new Pair<String, String>("func_147119_ah", "updateFramebufferSize"));
+ mInitMap.put(new Pair<String, String>("func_147120_f", "resetSize"));
+ mInitMap.put(new Pair<String, String>("func_147121_ag", "rightClickMouse"));
+ mInitMap.put(new Pair<String, String>("func_147122_X", "isJvm64bit"));
+ mInitMap.put(new Pair<String, String>("func_147130_as", "getMinecraftSessionService"));
+ mInitMap.put(new Pair<String, String>("func_147132_au", "refreshStatusNextTick"));
+ mInitMap.put(new Pair<String, String>("func_147133_T", "getTexturePack"));
+ mInitMap.put(new Pair<String, String>("func_147134_at", "getServerStatusResponse"));
+ mInitMap.put(new Pair<String, String>("func_147135_j", "getDifficulty"));
+ mInitMap.put(new Pair<String, String>("func_147136_ar", "isAnnouncingPlayerAchievements"));
+ mInitMap.put(new Pair<String, String>("func_147137_ag", "getNetworkSystem"));
+ mInitMap.put(new Pair<String, String>("func_147138_a", "addFaviconToStatusResponse"));
+ mInitMap.put(new Pair<String, String>("func_147139_a", "setDifficultyForAllWorlds"));
+ mInitMap.put(new Pair<String, String>("func_147149_a", "saveToFile"));
+ mInitMap.put(new Pair<String, String>("func_147153_a", "addBlockInfo"));
+ mInitMap.put(new Pair<String, String>("func_147155_a", "getCategoryName"));
+ mInitMap.put(new Pair<String, String>("func_147156_b", "getCategoryId"));
+ mInitMap.put(new Pair<String, String>("func_147176_a", "getChatComponentFromNthArg"));
+ mInitMap.put(new Pair<String, String>("func_147177_a", "joinNiceString"));
+ mInitMap.put(new Pair<String, String>("func_147178_a", "getChatComponentFromNthArg"));
+ mInitMap.put(new Pair<String, String>("func_147179_f", "getItemByText"));
+ mInitMap.put(new Pair<String, String>("func_147180_g", "getBlockByText"));
+ mInitMap.put(new Pair<String, String>("func_147185_d", "addTeam"));
+ mInitMap.put(new Pair<String, String>("func_147186_g", "listTeams"));
+ mInitMap.put(new Pair<String, String>("func_147187_n", "resetPlayers"));
+ mInitMap.put(new Pair<String, String>("func_147188_j", "emptyTeam"));
+ mInitMap.put(new Pair<String, String>("func_147190_h", "joinTeam"));
+ mInitMap.put(new Pair<String, String>("func_147191_h", "removeObjective"));
+ mInitMap.put(new Pair<String, String>("func_147192_d", "getScoreboard"));
+ mInitMap.put(new Pair<String, String>("func_147193_c", "addObjective"));
+ mInitMap.put(new Pair<String, String>("func_147194_f", "removeTeam"));
+ mInitMap.put(new Pair<String, String>("func_147195_l", "listPlayers"));
+ mInitMap.put(new Pair<String, String>("func_147196_d", "listObjectives"));
+ mInitMap.put(new Pair<String, String>("func_147197_m", "setPlayer"));
+ mInitMap.put(new Pair<String, String>("func_147198_k", "setObjectiveDisplay"));
+ mInitMap.put(new Pair<String, String>("func_147199_i", "leaveTeam"));
+ mInitMap.put(new Pair<String, String>("func_147200_e", "setTeamOption"));
+ mInitMap.put(new Pair<String, String>("func_147215_a", "addBlockDestroyEffects"));
+ mInitMap.put(new Pair<String, String>("func_147223_a", "pingPendingNetworks"));
+ mInitMap.put(new Pair<String, String>("func_147224_a", "ping"));
+ mInitMap.put(new Pair<String, String>("func_147225_b", "tryCompatibilityPing"));
+ mInitMap.put(new Pair<String, String>("func_147226_b", "clearPendingNetworks"));
+ mInitMap.put(new Pair<String, String>("func_147231_a", "onDisconnect"));
+ mInitMap.put(new Pair<String, String>("func_147232_a", "onConnectionStateTransition"));
+ mInitMap.put(new Pair<String, String>("func_147233_a", "onNetworkTick"));
+ mInitMap.put(new Pair<String, String>("func_147234_a", "handleBlockChange"));
+ mInitMap.put(new Pair<String, String>("func_147235_a", "handleSpawnObject"));
+ mInitMap.put(new Pair<String, String>("func_147236_a", "handleEntityStatus"));
+ mInitMap.put(new Pair<String, String>("func_147237_a", "handleSpawnPlayer"));
+ mInitMap.put(new Pair<String, String>("func_147238_a", "handleDestroyEntities"));
+ mInitMap.put(new Pair<String, String>("func_147239_a", "handleConfirmTransaction"));
+ mInitMap.put(new Pair<String, String>("func_147240_a", "handleCustomPayload"));
+ mInitMap.put(new Pair<String, String>("func_147241_a", "handleWindowItems"));
+ mInitMap.put(new Pair<String, String>("func_147242_a", "handleEntityEquipment"));
+ mInitMap.put(new Pair<String, String>("func_147243_a", "handleEntityAttach"));
+ mInitMap.put(new Pair<String, String>("func_147244_a", "handleEntityVelocity"));
+ mInitMap.put(new Pair<String, String>("func_147245_a", "handleWindowProperty"));
+ mInitMap.put(new Pair<String, String>("func_147246_a", "handleCollectItem"));
+ mInitMap.put(new Pair<String, String>("func_147247_a", "handleTeams"));
+ mInitMap.put(new Pair<String, String>("func_147248_a", "handleUpdateSign"));
+ mInitMap.put(new Pair<String, String>("func_147249_a", "handleUpdateHealth"));
+ mInitMap.put(new Pair<String, String>("func_147250_a", "handleUpdateScore"));
+ mInitMap.put(new Pair<String, String>("func_147251_a", "handleChat"));
+ mInitMap.put(new Pair<String, String>("func_147252_a", "handleChangeGameState"));
+ mInitMap.put(new Pair<String, String>("func_147253_a", "handleDisconnect"));
+ mInitMap.put(new Pair<String, String>("func_147254_a", "handleDisplayScoreboard"));
+ mInitMap.put(new Pair<String, String>("func_147255_a", "handleSoundEffect"));
+ mInitMap.put(new Pair<String, String>("func_147256_a", "handlePlayerListItem"));
+ mInitMap.put(new Pair<String, String>("func_147257_a", "handleHeldItemChange"));
+ mInitMap.put(new Pair<String, String>("func_147258_a", "handlePlayerPosLook"));
+ mInitMap.put(new Pair<String, String>("func_147259_a", "handleEntityMovement"));
+ mInitMap.put(new Pair<String, String>("func_147260_a", "handleEntityEffect"));
+ mInitMap.put(new Pair<String, String>("func_147261_a", "handleBlockAction"));
+ mInitMap.put(new Pair<String, String>("func_147262_a", "handleRemoveEntityEffect"));
+ mInitMap.put(new Pair<String, String>("func_147263_a", "handleChunkData"));
+ mInitMap.put(new Pair<String, String>("func_147264_a", "handleMaps"));
+ mInitMap.put(new Pair<String, String>("func_147265_a", "handleOpenWindow"));
+ mInitMap.put(new Pair<String, String>("func_147266_a", "handleSetSlot"));
+ mInitMap.put(new Pair<String, String>("func_147267_a", "handleEntityHeadLook"));
+ mInitMap.put(new Pair<String, String>("func_147268_a", "handleSignEditorOpen"));
+ mInitMap.put(new Pair<String, String>("func_147269_a", "handleMapChunkBulk"));
+ mInitMap.put(new Pair<String, String>("func_147270_a", "handlePlayerAbilities"));
+ mInitMap.put(new Pair<String, String>("func_147271_a", "handleSpawnPosition"));
+ mInitMap.put(new Pair<String, String>("func_147272_a", "handleKeepAlive"));
+ mInitMap.put(new Pair<String, String>("func_147273_a", "handleUpdateTileEntity"));
+ mInitMap.put(new Pair<String, String>("func_147274_a", "handleTabComplete"));
+ mInitMap.put(new Pair<String, String>("func_147275_a", "handleEntityTeleport"));
+ mInitMap.put(new Pair<String, String>("func_147276_a", "handleCloseWindow"));
+ mInitMap.put(new Pair<String, String>("func_147277_a", "handleEffect"));
+ mInitMap.put(new Pair<String, String>("func_147278_a", "handleUseBed"));
+ mInitMap.put(new Pair<String, String>("func_147279_a", "handleAnimation"));
+ mInitMap.put(new Pair<String, String>("func_147280_a", "handleRespawn"));
+ mInitMap.put(new Pair<String, String>("func_147281_a", "handleSpawnMob"));
+ mInitMap.put(new Pair<String, String>("func_147282_a", "handleJoinGame"));
+ mInitMap.put(new Pair<String, String>("func_147283_a", "handleExplosion"));
+ mInitMap.put(new Pair<String, String>("func_147284_a", "handleEntityMetadata"));
+ mInitMap.put(new Pair<String, String>("func_147285_a", "handleTimeUpdate"));
+ mInitMap.put(new Pair<String, String>("func_147286_a", "handleSpawnExperienceOrb"));
+ mInitMap.put(new Pair<String, String>("func_147287_a", "handleMultiBlockChange"));
+ mInitMap.put(new Pair<String, String>("func_147288_a", "handleSpawnPainting"));
+ mInitMap.put(new Pair<String, String>("func_147289_a", "handleParticles"));
+ mInitMap.put(new Pair<String, String>("func_147290_a", "handleEntityProperties"));
+ mInitMap.put(new Pair<String, String>("func_147291_a", "handleScoreboardObjective"));
+ mInitMap.put(new Pair<String, String>("func_147292_a", "handleSpawnGlobalEntity"));
+ mInitMap.put(new Pair<String, String>("func_147293_a", "handleStatistics"));
+ mInitMap.put(new Pair<String, String>("func_147294_a", "handleBlockBreakAnim"));
+ mInitMap.put(new Pair<String, String>("func_147295_a", "handleSetExperience"));
+ mInitMap.put(new Pair<String, String>("func_147296_c", "cleanup"));
+ mInitMap.put(new Pair<String, String>("func_147297_a", "addToSendQueue"));
+ mInitMap.put(new Pair<String, String>("func_147298_b", "getNetworkManager"));
+ mInitMap.put(new Pair<String, String>("func_147311_a", "processPing"));
+ mInitMap.put(new Pair<String, String>("func_147312_a", "processServerQuery"));
+ mInitMap.put(new Pair<String, String>("func_147315_a", "processEncryptionResponse"));
+ mInitMap.put(new Pair<String, String>("func_147316_a", "processLoginStart"));
+ mInitMap.put(new Pair<String, String>("func_147322_a", "closeConnection"));
+ mInitMap.put(new Pair<String, String>("func_147338_a", "processEnchantItem"));
+ mInitMap.put(new Pair<String, String>("func_147339_a", "processConfirmTransaction"));
+ mInitMap.put(new Pair<String, String>("func_147340_a", "processUseEntity"));
+ mInitMap.put(new Pair<String, String>("func_147341_a", "processTabComplete"));
+ mInitMap.put(new Pair<String, String>("func_147342_a", "processClientStatus"));
+ mInitMap.put(new Pair<String, String>("func_147343_a", "processUpdateSign"));
+ mInitMap.put(new Pair<String, String>("func_147344_a", "processCreativeInventoryAction"));
+ mInitMap.put(new Pair<String, String>("func_147345_a", "processPlayerDigging"));
+ mInitMap.put(new Pair<String, String>("func_147346_a", "processPlayerBlockPlacement"));
+ mInitMap.put(new Pair<String, String>("func_147347_a", "processPlayer"));
+ mInitMap.put(new Pair<String, String>("func_147348_a", "processPlayerAbilities"));
+ mInitMap.put(new Pair<String, String>("func_147349_a", "processVanilla250Packet"));
+ mInitMap.put(new Pair<String, String>("func_147350_a", "processAnimation"));
+ mInitMap.put(new Pair<String, String>("func_147351_a", "processClickWindow"));
+ mInitMap.put(new Pair<String, String>("func_147352_a", "processClientSettings"));
+ mInitMap.put(new Pair<String, String>("func_147353_a", "processKeepAlive"));
+ mInitMap.put(new Pair<String, String>("func_147354_a", "processChatMessage"));
+ mInitMap.put(new Pair<String, String>("func_147355_a", "processHeldItemChange"));
+ mInitMap.put(new Pair<String, String>("func_147356_a", "processCloseWindow"));
+ mInitMap.put(new Pair<String, String>("func_147357_a", "processEntityAction"));
+ mInitMap.put(new Pair<String, String>("func_147358_a", "processInput"));
+ mInitMap.put(new Pair<String, String>("func_147359_a", "sendPacket"));
+ mInitMap.put(new Pair<String, String>("func_147360_c", "kickPlayerFromServer"));
+ mInitMap.put(new Pair<String, String>("func_147361_d", "handleSlashCommand"));
+ mInitMap.put(new Pair<String, String>("func_147362_b", "getNetworkManager"));
+ mInitMap.put(new Pair<String, String>("func_147363_d", "currentTimeMillis"));
+ mInitMap.put(new Pair<String, String>("func_147364_a", "setPlayerLocation"));
+ mInitMap.put(new Pair<String, String>("func_147383_a", "processHandshake"));
+ mInitMap.put(new Pair<String, String>("func_147388_a", "handleDisconnect"));
+ mInitMap.put(new Pair<String, String>("func_147389_a", "handleEncryptionRequest"));
+ mInitMap.put(new Pair<String, String>("func_147390_a", "handleLoginSuccess"));
+ mInitMap.put(new Pair<String, String>("func_147397_a", "handleServerInfo"));
+ mInitMap.put(new Pair<String, String>("func_147398_a", "handlePong"));
+ mInitMap.put(new Pair<String, String>("func_147407_a", "setBase64EncodedIconData"));
+ mInitMap.put(new Pair<String, String>("func_147409_e", "getBase64EncodedIconData"));
+ mInitMap.put(new Pair<String, String>("func_147416_a", "findClosestStructure"));
+ mInitMap.put(new Pair<String, String>("func_147422_a", "replaceBlocksForBiome"));
+ mInitMap.put(new Pair<String, String>("func_147437_c", "isAirBlock"));
+ mInitMap.put(new Pair<String, String>("func_147438_o", "getTileEntity"));
+ mInitMap.put(new Pair<String, String>("func_147439_a", "getBlock"));
+ mInitMap.put(new Pair<String, String>("func_147440_b", "findClosestStructure"));
+ mInitMap.put(new Pair<String, String>("func_147441_b", "notifyBlocksOfNeighborChange"));
+ mInitMap.put(new Pair<String, String>("func_147442_i", "setThunderStrength"));
+ mInitMap.put(new Pair<String, String>("func_147443_d", "destroyBlockInWorldPartially"));
+ mInitMap.put(new Pair<String, String>("func_147444_c", "notifyBlockChange"));
+ mInitMap.put(new Pair<String, String>("func_147445_c", "isBlockNormalCubeDefault"));
+ mInitMap.put(new Pair<String, String>("func_147447_a", "rayTraceBlocks"));
+ mInitMap.put(new Pair<String, String>("func_147449_b", "setBlock"));
+ mInitMap.put(new Pair<String, String>("func_147451_t", "updateAllLightTypes"));
+ mInitMap.put(new Pair<String, String>("func_147452_c", "addBlockEvent"));
+ mInitMap.put(new Pair<String, String>("func_147453_f", "updateNeighborsAboutBlockChange"));
+ mInitMap.put(new Pair<String, String>("func_147454_a", "scheduleBlockUpdateWithPriority"));
+ mInitMap.put(new Pair<String, String>("func_147455_a", "setTileEntity"));
+ mInitMap.put(new Pair<String, String>("func_147457_a", "markTileEntityForRemoval"));
+ mInitMap.put(new Pair<String, String>("func_147458_c", "markBlockRangeForRenderUpdate"));
+ mInitMap.put(new Pair<String, String>("func_147459_d", "notifyBlocksOfNeighborChange"));
+ mInitMap.put(new Pair<String, String>("func_147460_e", "notifyBlockOfNeighborChange"));
+ mInitMap.put(new Pair<String, String>("func_147462_b", "getTensionFactorForBlock"));
+ mInitMap.put(new Pair<String, String>("func_147463_c", "updateLightByType"));
+ mInitMap.put(new Pair<String, String>("func_147464_a", "scheduleBlockUpdate"));
+ mInitMap.put(new Pair<String, String>("func_147465_d", "setBlock"));
+ mInitMap.put(new Pair<String, String>("func_147466_a", "doesBlockHaveSolidTopSurface"));
+ mInitMap.put(new Pair<String, String>("func_147468_f", "setBlockToAir"));
+ mInitMap.put(new Pair<String, String>("func_147469_q", "isBlockFullCube"));
+ mInitMap.put(new Pair<String, String>("func_147471_g", "markBlockForUpdate"));
+ mInitMap.put(new Pair<String, String>("func_147472_a", "canPlaceEntityOnSide"));
+ mInitMap.put(new Pair<String, String>("func_147474_b", "getTopBlock"));
+ mInitMap.put(new Pair<String, String>("func_147475_p", "removeTileEntity"));
+ mInitMap.put(new Pair<String, String>("func_147476_b", "markTileEntityChunkModified"));
+ mInitMap.put(new Pair<String, String>("func_147477_a", "isBlockTickScheduledThisTick"));
+ mInitMap.put(new Pair<String, String>("func_147478_e", "canSnowAt"));
+ mInitMap.put(new Pair<String, String>("func_147479_m", "markBlockForRenderUpdate"));
+ mInitMap.put(new Pair<String, String>("func_147480_a", "breakBlock"));
+ mInitMap.put(new Pair<String, String>("func_147493_a", "createPlayer"));
+ mInitMap.put(new Pair<String, String>("func_147496_a", "onWorldChange"));
+ mInitMap.put(new Pair<String, String>("func_147499_a", "bindTexture"));
+ mInitMap.put(new Pair<String, String>("func_147500_a", "renderTileEntityAt"));
+ mInitMap.put(new Pair<String, String>("func_147542_a", "cacheActiveRenderInfo"));
+ mInitMap.put(new Pair<String, String>("func_147544_a", "renderTileEntity"));
+ mInitMap.put(new Pair<String, String>("func_147545_a", "hasSpecialRenderer"));
+ mInitMap.put(new Pair<String, String>("func_147546_a", "getSpecialRendererByClass"));
+ mInitMap.put(new Pair<String, String>("func_147547_b", "getSpecialRenderer"));
+ mInitMap.put(new Pair<String, String>("func_147548_a", "getFontRenderer"));
+ mInitMap.put(new Pair<String, String>("func_147549_a", "renderTileEntityAt"));
+ mInitMap.put(new Pair<String, String>("func_147564_a", "getVertexState"));
+ mInitMap.put(new Pair<String, String>("func_147565_a", "setVertexState"));
+ mInitMap.put(new Pair<String, String>("func_147570_f", "getHasNormals"));
+ mInitMap.put(new Pair<String, String>("func_147571_e", "getHasBrightness"));
+ mInitMap.put(new Pair<String, String>("func_147572_a", "getRawBuffer"));
+ mInitMap.put(new Pair<String, String>("func_147573_d", "getHasTexture"));
+ mInitMap.put(new Pair<String, String>("func_147574_g", "getHasColor"));
+ mInitMap.put(new Pair<String, String>("func_147575_c", "getVertexCount"));
+ mInitMap.put(new Pair<String, String>("func_147576_b", "getRawBufferIndex"));
+ mInitMap.put(new Pair<String, String>("func_147584_b", "onStaticEntitiesChanged"));
+ mInitMap.put(new Pair<String, String>("func_147585_a", "markBlockRangeForRenderUpdate"));
+ mInitMap.put(new Pair<String, String>("func_147586_a", "markBlockForUpdate"));
+ mInitMap.put(new Pair<String, String>("func_147587_b", "destroyBlockPartially"));
+ mInitMap.put(new Pair<String, String>("func_147588_b", "markBlockForRenderUpdate"));
+ mInitMap.put(new Pair<String, String>("func_147589_a", "renderEntities"));
+ mInitMap.put(new Pair<String, String>("func_147590_a", "drawOutlinedBoundingBox"));
+ mInitMap.put(new Pair<String, String>("func_147591_f", "rebuildDisplayListEntities"));
+ mInitMap.put(new Pair<String, String>("func_147604_a", "setFramebufferColor"));
+ mInitMap.put(new Pair<String, String>("func_147605_b", "createFramebuffer"));
+ mInitMap.put(new Pair<String, String>("func_147606_d", "unbindFramebufferTexture"));
+ mInitMap.put(new Pair<String, String>("func_147607_a", "setFramebufferFilter"));
+ mInitMap.put(new Pair<String, String>("func_147608_a", "deleteFramebuffer"));
+ mInitMap.put(new Pair<String, String>("func_147609_e", "unbindFramebuffer"));
+ mInitMap.put(new Pair<String, String>("func_147610_a", "bindFramebuffer"));
+ mInitMap.put(new Pair<String, String>("func_147611_b", "checkFramebufferComplete"));
+ mInitMap.put(new Pair<String, String>("func_147612_c", "bindFramebufferTexture"));
+ mInitMap.put(new Pair<String, String>("func_147613_a", "createBindFramebuffer"));
+ mInitMap.put(new Pair<String, String>("func_147614_f", "framebufferClear"));
+ mInitMap.put(new Pair<String, String>("func_147615_c", "framebufferRender"));
+ mInitMap.put(new Pair<String, String>("func_147631_c", "deleteGlTexture"));
+ mInitMap.put(new Pair<String, String>("func_147632_b", "setAnisotropicFiltering"));
+ mInitMap.put(new Pair<String, String>("func_147633_a", "setMipmapLevels"));
+ mInitMap.put(new Pair<String, String>("func_147634_a", "completeResourceLocation"));
+ mInitMap.put(new Pair<String, String>("func_147640_e", "checkTextureUploaded"));
+ mInitMap.put(new Pair<String, String>("func_147641_a", "setBufferedImage"));
+ mInitMap.put(new Pair<String, String>("func_147645_c", "deleteTexture"));
+ mInitMap.put(new Pair<String, String>("func_147647_b", "bidiReorder"));
+ mInitMap.put(new Pair<String, String>("func_147649_g", "getXPosF"));
+ mInitMap.put(new Pair<String, String>("func_147650_b", "getSoundLocation"));
+ mInitMap.put(new Pair<String, String>("func_147651_i", "getZPosF"));
+ mInitMap.put(new Pair<String, String>("func_147652_d", "getRepeatDelay"));
+ mInitMap.put(new Pair<String, String>("func_147653_e", "getVolume"));
+ mInitMap.put(new Pair<String, String>("func_147654_h", "getYPosF"));
+ mInitMap.put(new Pair<String, String>("func_147655_f", "getPitch"));
+ mInitMap.put(new Pair<String, String>("func_147656_j", "getAttenuationType"));
+ mInitMap.put(new Pair<String, String>("func_147657_c", "canRepeat"));
+ mInitMap.put(new Pair<String, String>("func_147667_k", "isDonePlaying"));
+ mInitMap.put(new Pair<String, String>("func_147673_a", "createPositionedSoundRecord"));
+ mInitMap.put(new Pair<String, String>("func_147674_a", "createPositionedSoundRecord"));
+ mInitMap.put(new Pair<String, String>("func_147675_a", "createRecordSoundAtPosition"));
+ mInitMap.put(new Pair<String, String>("func_147680_a", "getSound"));
+ mInitMap.put(new Pair<String, String>("func_147681_a", "playDelayedSound"));
+ mInitMap.put(new Pair<String, String>("func_147682_a", "playSound"));
+ mInitMap.put(new Pair<String, String>("func_147683_b", "stopSound"));
+ mInitMap.put(new Pair<String, String>("func_147684_a", "setSoundLevel"));
+ mInitMap.put(new Pair<String, String>("func_147685_d", "unloadSounds"));
+ mInitMap.put(new Pair<String, String>("func_147686_a", "getRandomSoundFromCategories"));
+ mInitMap.put(new Pair<String, String>("func_147687_e", "resumeSounds"));
+ mInitMap.put(new Pair<String, String>("func_147689_b", "pauseSounds"));
+ mInitMap.put(new Pair<String, String>("func_147690_c", "stopSounds"));
+ mInitMap.put(new Pair<String, String>("func_147691_a", "setListener"));
+ mInitMap.put(new Pair<String, String>("func_147692_c", "isSoundPlaying"));
+ mInitMap.put(new Pair<String, String>("func_147693_a", "loadSoundResource"));
+ mInitMap.put(new Pair<String, String>("func_147701_i", "getMapItemRenderer"));
+ mInitMap.put(new Pair<String, String>("func_147702_a", "isShaderActive"));
+ mInitMap.put(new Pair<String, String>("func_147703_b", "deactivateShader"));
+ mInitMap.put(new Pair<String, String>("func_147704_a", "updateShaderGroupSize"));
+ mInitMap.put(new Pair<String, String>("func_147705_c", "activateNextShader"));
+ mInitMap.put(new Pair<String, String>("func_147706_e", "getShaderGroup"));
+ mInitMap.put(new Pair<String, String>("func_147715_a", "renderChest"));
+ mInitMap.put(new Pair<String, String>("func_147721_p", "renderBlockLiquid"));
+ mInitMap.put(new Pair<String, String>("func_147722_a", "renderBlockStairs"));
+ mInitMap.put(new Pair<String, String>("func_147723_f", "renderBlockTripWireSource"));
+ mInitMap.put(new Pair<String, String>("func_147724_m", "renderBlockStem"));
+ mInitMap.put(new Pair<String, String>("func_147725_a", "renderBlockAnvil"));
+ mInitMap.put(new Pair<String, String>("func_147726_j", "renderBlockVine"));
+ mInitMap.put(new Pair<String, String>("func_147727_a", "mixAoBrightness"));
+ mInitMap.put(new Pair<String, String>("func_147728_a", "renderBlockAnvilOrient"));
+ mInitMap.put(new Pair<String, String>("func_147729_a", "getLiquidHeight"));
+ mInitMap.put(new Pair<String, String>("func_147730_a", "renderBlockStemSmall"));
+ mInitMap.put(new Pair<String, String>("func_147731_b", "renderPistonBase"));
+ mInitMap.put(new Pair<String, String>("func_147732_a", "renderBlockRedstoneDiodeMetadata"));
+ mInitMap.put(new Pair<String, String>("func_147733_k", "renderBlockStainedGlassPane"));
+ mInitMap.put(new Pair<String, String>("func_147734_d", "renderFaceZPos"));
+ mInitMap.put(new Pair<String, String>("func_147735_a", "renderBlockFence"));
+ mInitMap.put(new Pair<String, String>("func_147736_d", "renderStandardBlockWithColorMultiplier"));
+ mInitMap.put(new Pair<String, String>("func_147737_a", "renderBlockAnvilRotate"));
+ mInitMap.put(new Pair<String, String>("func_147738_c", "renderPistonRodEW"));
+ mInitMap.put(new Pair<String, String>("func_147739_a", "renderItemIn3d"));
+ mInitMap.put(new Pair<String, String>("func_147740_a", "renderBlockStemBig"));
+ mInitMap.put(new Pair<String, String>("func_147741_a", "renderBlockBrewingStand"));
+ mInitMap.put(new Pair<String, String>("func_147742_r", "renderBlockLog"));
+ mInitMap.put(new Pair<String, String>("func_147743_a", "renderBlockEndPortalFrame"));
+ mInitMap.put(new Pair<String, String>("func_147744_b", "hasOverrideBlockTexture"));
+ mInitMap.put(new Pair<String, String>("func_147745_b", "getBlockIcon"));
+ mInitMap.put(new Pair<String, String>("func_147746_l", "renderCrossedSquares"));
+ mInitMap.put(new Pair<String, String>("func_147747_a", "renderTorchAtAngle"));
+ mInitMap.put(new Pair<String, String>("func_147748_a", "renderBlockRedstoneDiode"));
+ mInitMap.put(new Pair<String, String>("func_147749_a", "renderBlockSandFalling"));
+ mInitMap.put(new Pair<String, String>("func_147750_a", "renderPistonExtensionAllFaces"));
+ mInitMap.put(new Pair<String, String>("func_147751_a", "renderStandardBlockWithAmbientOcclusion"));
+ mInitMap.put(new Pair<String, String>("func_147752_a", "renderBlockFlowerpot"));
+ mInitMap.put(new Pair<String, String>("func_147753_b", "setRenderAllFaces"));
+ mInitMap.put(new Pair<String, String>("func_147754_e", "renderBlockCactusImpl"));
+ mInitMap.put(new Pair<String, String>("func_147755_t", "renderBlockCactus"));
+ mInitMap.put(new Pair<String, String>("func_147756_g", "renderBlockTripWire"));
+ mInitMap.put(new Pair<String, String>("func_147757_a", "setOverrideBlockTexture"));
+ mInitMap.put(new Pair<String, String>("func_147758_b", "getIconSafe"));
+ mInitMap.put(new Pair<String, String>("func_147759_a", "renderBlockRepeater"));
+ mInitMap.put(new Pair<String, String>("func_147760_u", "renderBlockDoor"));
+ mInitMap.put(new Pair<String, String>("func_147761_c", "renderFaceZNeg"));
+ mInitMap.put(new Pair<String, String>("func_147762_c", "unlockBlockBounds"));
+ mInitMap.put(new Pair<String, String>("func_147763_a", "renderPistonRodUD"));
+ mInitMap.put(new Pair<String, String>("func_147764_f", "renderFaceXPos"));
+ mInitMap.put(new Pair<String, String>("func_147765_a", "drawCrossedSquares"));
+ mInitMap.put(new Pair<String, String>("func_147766_a", "renderBlockMinecartTrack"));
+ mInitMap.put(new Pair<String, String>("func_147767_a", "renderBlockPane"));
+ mInitMap.put(new Pair<String, String>("func_147768_a", "renderFaceYNeg"));
+ mInitMap.put(new Pair<String, String>("func_147769_a", "renderBlockAllFaces"));
+ mInitMap.put(new Pair<String, String>("func_147770_b", "overrideBlockBounds"));
+ mInitMap.put(new Pair<String, String>("func_147771_a", "clearOverrideBlockTexture"));
+ mInitMap.put(new Pair<String, String>("func_147772_a", "renderBlockCocoa"));
+ mInitMap.put(new Pair<String, String>("func_147773_v", "renderBlockBed"));
+ mInitMap.put(new Pair<String, String>("func_147774_a", "renderBlockDoublePlant"));
+ mInitMap.put(new Pair<String, String>("func_147775_a", "setRenderBoundsFromBlock"));
+ mInitMap.put(new Pair<String, String>("func_147776_a", "renderBlockFenceGate"));
+ mInitMap.put(new Pair<String, String>("func_147777_a", "getBlockIconFromSide"));
+ mInitMap.put(new Pair<String, String>("func_147778_a", "getAoBrightness"));
+ mInitMap.put(new Pair<String, String>("func_147779_s", "renderBlockQuartz"));
+ mInitMap.put(new Pair<String, String>("func_147780_a", "renderBlockAnvilMetadata"));
+ mInitMap.put(new Pair<String, String>("func_147781_a", "renderBlockRedstoneComparator"));
+ mInitMap.put(new Pair<String, String>("func_147782_a", "setRenderBounds"));
+ mInitMap.put(new Pair<String, String>("func_147783_o", "renderBlockLilyPad"));
+ mInitMap.put(new Pair<String, String>("func_147784_q", "renderStandardBlock"));
+ mInitMap.put(new Pair<String, String>("func_147785_a", "renderBlockCauldron"));
+ mInitMap.put(new Pair<String, String>("func_147786_a", "setRenderFromInside"));
+ mInitMap.put(new Pair<String, String>("func_147787_a", "getBlockIconFromSideAndMetadata"));
+ mInitMap.put(new Pair<String, String>("func_147788_h", "renderBlockRedstomInitMap.put(newire"));
+ mInitMap.put(new Pair<String, String>("func_147789_b", "renderPistonRodSN"));
+ mInitMap.put(new Pair<String, String>("func_147790_e", "renderBlockLever"));
+ mInitMap.put(new Pair<String, String>("func_147791_c", "renderBlockTorch"));
+ mInitMap.put(new Pair<String, String>("func_147792_a", "renderBlockUsingTexture"));
+ mInitMap.put(new Pair<String, String>("func_147793_a", "getBlockIcon"));
+ mInitMap.put(new Pair<String, String>("func_147794_i", "renderBlockLadder"));
+ mInitMap.put(new Pair<String, String>("func_147795_a", "renderBlockCropsImpl"));
+ mInitMap.put(new Pair<String, String>("func_147796_n", "renderBlockCrops"));
+ mInitMap.put(new Pair<String, String>("func_147797_a", "renderBlockBeacon"));
+ mInitMap.put(new Pair<String, String>("func_147798_e", "renderFaceXNeg"));
+ mInitMap.put(new Pair<String, String>("func_147799_a", "renderBlockHopperMetadata"));
+ mInitMap.put(new Pair<String, String>("func_147800_a", "renderBlockAsItem"));
+ mInitMap.put(new Pair<String, String>("func_147801_a", "renderBlockFire"));
+ mInitMap.put(new Pair<String, String>("func_147802_a", "renderBlockDragonEgg"));
+ mInitMap.put(new Pair<String, String>("func_147803_a", "renderBlockHopper"));
+ mInitMap.put(new Pair<String, String>("func_147804_d", "renderPistonBaseAllFaces"));
+ mInitMap.put(new Pair<String, String>("func_147805_b", "renderBlockByRenderType"));
+ mInitMap.put(new Pair<String, String>("func_147806_b", "renderFaceYPos"));
+ mInitMap.put(new Pair<String, String>("func_147807_a", "renderBlockWall"));
+ mInitMap.put(new Pair<String, String>("func_147808_b", "renderStandardBlockWithAmbientOcclusionPartial"));
+ mInitMap.put(new Pair<String, String>("func_147809_c", "renderPistonExtension"));
+ mInitMap.put(new Pair<String, String>("func_147889_b", "updateRendererSort"));
+ mInitMap.put(new Pair<String, String>("func_147890_b", "preRenderBlocks"));
+ mInitMap.put(new Pair<String, String>("func_147891_a", "postRenderBlocks"));
+ mInitMap.put(new Pair<String, String>("func_147892_a", "updateRenderer"));
+ mInitMap.put(new Pair<String, String>("func_147905_a", "isStaticEntity"));
+ mInitMap.put(new Pair<String, String>("func_147906_a", "renderLivingLabel"));
+ mInitMap.put(new Pair<String, String>("func_147936_a", "renderEntityStatic"));
+ mInitMap.put(new Pair<String, String>("func_147937_a", "renderEntitySimple"));
+ mInitMap.put(new Pair<String, String>("func_147938_a", "cacheActiveRenderInfo"));
+ mInitMap.put(new Pair<String, String>("func_147939_a", "doRenderEntity"));
+ mInitMap.put(new Pair<String, String>("func_147940_a", "renderEntityWithPosYaw"));
+ mInitMap.put(new Pair<String, String>("func_147942_a", "deleteTexture"));
+ mInitMap.put(new Pair<String, String>("func_147946_a", "allocateTextureImpl"));
+ mInitMap.put(new Pair<String, String>("func_147947_a", "uploadTextureSub"));
+ mInitMap.put(new Pair<String, String>("func_147948_a", "prepareAnisotropicData"));
+ mInitMap.put(new Pair<String, String>("func_147949_a", "generateMipmapData"));
+ }
+
+ private static void init2() {
+ mInitMap.put(new Pair<String, String>("func_147951_b", "setTextureBlurred"));
+ mInitMap.put(new Pair<String, String>("func_147955_a", "uploadTextureMipmap"));
+ mInitMap.put(new Pair<String, String>("func_147960_a", "prepareAnisotropicFiltering"));
+ mInitMap.put(new Pair<String, String>("func_147961_a", "fixTransparentPixels"));
+ mInitMap.put(new Pair<String, String>("func_147962_a", "getFrameTextureData"));
+ mInitMap.put(new Pair<String, String>("func_147963_d", "generateMipmaps"));
+ mInitMap.put(new Pair<String, String>("func_147964_a", "loadSprite"));
+ mInitMap.put(new Pair<String, String>("func_147965_a", "getFrameTextureData"));
+ mInitMap.put(new Pair<String, String>("func_147969_b", "getMipmapDimension"));
+ mInitMap.put(new Pair<String, String>("func_147984_b", "getShaderUniformOrDefault"));
+ mInitMap.put(new Pair<String, String>("func_147985_d", "markDirty"));
+ mInitMap.put(new Pair<String, String>("func_147986_h", "getProgram"));
+ mInitMap.put(new Pair<String, String>("func_147987_b", "parseUniform"));
+ mInitMap.put(new Pair<String, String>("func_147988_a", "deleteShader"));
+ mInitMap.put(new Pair<String, String>("func_147989_e", "getVertexShaderLoader"));
+ mInitMap.put(new Pair<String, String>("func_147990_i", "setupUniforms"));
+ mInitMap.put(new Pair<String, String>("func_147991_a", "getShaderUniform"));
+ mInitMap.put(new Pair<String, String>("func_147992_a", "addSamplerTexture"));
+ mInitMap.put(new Pair<String, String>("func_147993_b", "endShader"));
+ mInitMap.put(new Pair<String, String>("func_147994_f", "getFragmentShaderLoader"));
+ mInitMap.put(new Pair<String, String>("func_147995_c", "useShader"));
+ mInitMap.put(new Pair<String, String>("func_147996_a", "parseSampler"));
+ mInitMap.put(new Pair<String, String>("func_148017_a", "getFramebuffer"));
+ mInitMap.put(new Pair<String, String>("func_148018_a", "loadShaderGroup"));
+ mInitMap.put(new Pair<String, String>("func_148020_a", "addFramebuffer"));
+ mInitMap.put(new Pair<String, String>("func_148021_a", "deleteShaderGroup"));
+ mInitMap.put(new Pair<String, String>("func_148022_b", "getShaderGroupName"));
+ mInitMap.put(new Pair<String, String>("func_148023_a", "addShader"));
+ mInitMap.put(new Pair<String, String>("func_148024_c", "resetProjectionMatrix"));
+ mInitMap.put(new Pair<String, String>("func_148026_a", "createBindFramebuffers"));
+ mInitMap.put(new Pair<String, String>("func_148027_a", "initTarget"));
+ mInitMap.put(new Pair<String, String>("func_148028_c", "initUniform"));
+ mInitMap.put(new Pair<String, String>("func_148040_d", "preLoadShader"));
+ mInitMap.put(new Pair<String, String>("func_148041_a", "addAuxFramebuffer"));
+ mInitMap.put(new Pair<String, String>("func_148042_a", "loadShader"));
+ mInitMap.put(new Pair<String, String>("func_148043_c", "getShaderManager"));
+ mInitMap.put(new Pair<String, String>("func_148044_b", "deleteShader"));
+ mInitMap.put(new Pair<String, String>("func_148045_a", "setProjectionMatrix"));
+ mInitMap.put(new Pair<String, String>("func_148054_b", "deleteShader"));
+ mInitMap.put(new Pair<String, String>("func_148055_a", "getShaderFilename"));
+ mInitMap.put(new Pair<String, String>("func_148056_a", "attachShader"));
+ mInitMap.put(new Pair<String, String>("func_148057_a", "loadShader"));
+ mInitMap.put(new Pair<String, String>("func_148062_a", "getShaderName"));
+ mInitMap.put(new Pair<String, String>("func_148063_b", "getShaderExtension"));
+ mInitMap.put(new Pair<String, String>("func_148064_d", "getLoadedShaders"));
+ mInitMap.put(new Pair<String, String>("func_148065_c", "getShaderMode"));
+ mInitMap.put(new Pair<String, String>("func_148074_b", "getStaticShaderLinkHelper"));
+ mInitMap.put(new Pair<String, String>("func_148075_b", "linkProgram"));
+ mInitMap.put(new Pair<String, String>("func_148076_a", "setmInitMap.put(newStaticShaderLinkHelper"));
+ mInitMap.put(new Pair<String, String>("func_148077_a", "deleteShader"));
+ mInitMap.put(new Pair<String, String>("func_148078_c", "createProgram"));
+ mInitMap.put(new Pair<String, String>("func_148081_a", "set"));
+ mInitMap.put(new Pair<String, String>("func_148082_k", "uploadFloatMatrix"));
+ mInitMap.put(new Pair<String, String>("func_148083_a", "set"));
+ mInitMap.put(new Pair<String, String>("func_148084_b", "setUniformLocation"));
+ mInitMap.put(new Pair<String, String>("func_148085_a", "parseType"));
+ mInitMap.put(new Pair<String, String>("func_148086_a", "getShaderName"));
+ mInitMap.put(new Pair<String, String>("func_148087_a", "set"));
+ mInitMap.put(new Pair<String, String>("func_148088_a", "set"));
+ mInitMap.put(new Pair<String, String>("func_148089_j", "uploadFloat"));
+ mInitMap.put(new Pair<String, String>("func_148090_a", "set"));
+ mInitMap.put(new Pair<String, String>("func_148091_i", "uploadInt"));
+ mInitMap.put(new Pair<String, String>("func_148093_b", "upload"));
+ mInitMap.put(new Pair<String, String>("func_148094_a", "set"));
+ mInitMap.put(new Pair<String, String>("func_148095_a", "set"));
+ mInitMap.put(new Pair<String, String>("func_148096_h", "markDirty"));
+ mInitMap.put(new Pair<String, String>("func_148097_a", "set"));
+ mInitMap.put(new Pair<String, String>("func_148120_b", "drawSelectionBox"));
+ mInitMap.put(new Pair<String, String>("func_148121_k", "bindAmountScrolled"));
+ mInitMap.put(new Pair<String, String>("func_148122_a", "setDimensions"));
+ mInitMap.put(new Pair<String, String>("func_148123_a", "drawBackground"));
+ mInitMap.put(new Pair<String, String>("func_148124_c", "getSlotIndexFromScreenCoords"));
+ mInitMap.put(new Pair<String, String>("func_148125_i", "getEnabled"));
+ mInitMap.put(new Pair<String, String>("func_148126_a", "drawSlot"));
+ mInitMap.put(new Pair<String, String>("func_148127_b", "getSize"));
+ mInitMap.put(new Pair<String, String>("func_148128_a", "drawScreen"));
+ mInitMap.put(new Pair<String, String>("func_148129_a", "drawListHeader"));
+ mInitMap.put(new Pair<String, String>("func_148130_a", "setShowSelectionBox"));
+ mInitMap.put(new Pair<String, String>("func_148131_a", "isSelected"));
+ mInitMap.put(new Pair<String, String>("func_148133_a", "setHasListHeader"));
+ mInitMap.put(new Pair<String, String>("func_148134_d", "registerScrollButtons"));
+ mInitMap.put(new Pair<String, String>("func_148136_c", "overlayBackground"));
+ mInitMap.put(new Pair<String, String>("func_148137_d", "getScrollBarX"));
+ mInitMap.put(new Pair<String, String>("func_148138_e", "getContentHeight"));
+ mInitMap.put(new Pair<String, String>("func_148139_c", "getListWidth"));
+ mInitMap.put(new Pair<String, String>("func_148140_g", "setSlotXBoundsFromLeft"));
+ mInitMap.put(new Pair<String, String>("func_148141_e", "isMouseYWithinSlotBounds"));
+ mInitMap.put(new Pair<String, String>("func_148143_b", "setEnabled"));
+ mInitMap.put(new Pair<String, String>("func_148144_a", "elementClicked"));
+ mInitMap.put(new Pair<String, String>("func_148145_f", "scrollBy"));
+ mInitMap.put(new Pair<String, String>("func_148146_j", "getSlotHeight"));
+ mInitMap.put(new Pair<String, String>("func_148147_a", "actionPerformed"));
+ mInitMap.put(new Pair<String, String>("func_148148_g", "getAmountScrolled"));
+ mInitMap.put(new Pair<String, String>("func_148180_b", "getListEntry"));
+ mInitMap.put(new Pair<String, String>("func_148201_l", "getList"));
+ mInitMap.put(new Pair<String, String>("func_148202_k", "getListHeader"));
+ mInitMap.put(new Pair<String, String>("func_148254_d", "getToken"));
+ mInitMap.put(new Pair<String, String>("func_148255_b", "getPlayerID"));
+ mInitMap.put(new Pair<String, String>("func_148256_e", "getProfile"));
+ mInitMap.put(new Pair<String, String>("func_148259_a", "saveScreenshot"));
+ mInitMap.put(new Pair<String, String>("func_148260_a", "saveScreenshot"));
+ mInitMap.put(new Pair<String, String>("func_148262_d", "denormalizeValue"));
+ mInitMap.put(new Pair<String, String>("func_148263_a", "setValueMax"));
+ mInitMap.put(new Pair<String, String>("func_148264_f", "snapToStep"));
+ mInitMap.put(new Pair<String, String>("func_148266_c", "normalizeValue"));
+ mInitMap.put(new Pair<String, String>("func_148267_f", "getValueMax"));
+ mInitMap.put(new Pair<String, String>("func_148268_e", "snapToStepClamp"));
+ mInitMap.put(new Pair<String, String>("func_148277_b", "mouseReleased"));
+ mInitMap.put(new Pair<String, String>("func_148278_a", "mousePressed"));
+ mInitMap.put(new Pair<String, String>("func_148279_a", "drawEntry"));
+ mInitMap.put(new Pair<String, String>("func_148289_a", "getLanServer"));
+ mInitMap.put(new Pair<String, String>("func_148296_a", "getServerData"));
+ mInitMap.put(new Pair<String, String>("func_148297_b", "prepareServerIcon"));
+ mInitMap.put(new Pair<String, String>("func_148329_a", "scrollTo"));
+ mInitMap.put(new Pair<String, String>("func_148334_a", "generatemInitMap.put(newRandomName"));
+ mInitMap.put(new Pair<String, String>("func_148335_a", "reseedRandomGenerator"));
+ mInitMap.put(new Pair<String, String>("func_148522_a", "onDownloadComplete"));
+ mInitMap.put(new Pair<String, String>("func_148526_a", "obtainResourcePack"));
+ mInitMap.put(new Pair<String, String>("func_148530_e", "getResourcePackInstance"));
+ mInitMap.put(new Pair<String, String>("func_148535_c", "getListMipmaps"));
+ mInitMap.put(new Pair<String, String>("func_148537_a", "sendPacketToAllPlayersInDimension"));
+ mInitMap.put(new Pair<String, String>("func_148539_a", "sendChatMsg"));
+ mInitMap.put(new Pair<String, String>("func_148540_a", "sendPacketToAllPlayers"));
+ mInitMap.put(new Pair<String, String>("func_148541_a", "sendToAllNear"));
+ mInitMap.put(new Pair<String, String>("func_148542_a", "allowUserToConnect"));
+ mInitMap.put(new Pair<String, String>("func_148543_a", "sendToAllNearExcept"));
+ mInitMap.put(new Pair<String, String>("func_148544_a", "sendChatMsgImpl"));
+ mInitMap.put(new Pair<String, String>("func_148545_a", "createPlayerForUser"));
+ mInitMap.put(new Pair<String, String>("func_148552_f", "isStreaming"));
+ mInitMap.put(new Pair<String, String>("func_148553_a", "setSoundEntryVolume"));
+ mInitMap.put(new Pair<String, String>("func_148554_a", "setSoundEntryWeight"));
+ mInitMap.put(new Pair<String, String>("func_148555_d", "getSoundEntryWeight"));
+ mInitMap.put(new Pair<String, String>("func_148556_a", "getSoundEntryName"));
+ mInitMap.put(new Pair<String, String>("func_148557_a", "setStreaming"));
+ mInitMap.put(new Pair<String, String>("func_148558_b", "getSoundEntryVolume"));
+ mInitMap.put(new Pair<String, String>("func_148559_b", "setSoundEntryPitch"));
+ mInitMap.put(new Pair<String, String>("func_148560_c", "getSoundEntryPitch"));
+ mInitMap.put(new Pair<String, String>("func_148561_a", "setSoundEntryName"));
+ mInitMap.put(new Pair<String, String>("func_148562_a", "setSoundEntryType"));
+ mInitMap.put(new Pair<String, String>("func_148563_e", "getSoundEntryType"));
+ mInitMap.put(new Pair<String, String>("func_148570_a", "getSoundList"));
+ mInitMap.put(new Pair<String, String>("func_148571_a", "setSoundCategory"));
+ mInitMap.put(new Pair<String, String>("func_148572_a", "setReplaceExisting"));
+ mInitMap.put(new Pair<String, String>("func_148573_c", "getSoundCategory"));
+ mInitMap.put(new Pair<String, String>("func_148574_b", "canReplaceExisting"));
+ mInitMap.put(new Pair<String, String>("func_148580_a", "getType"));
+ mInitMap.put(new Pair<String, String>("func_148586_a", "getTypeInt"));
+ mInitMap.put(new Pair<String, String>("func_148594_a", "getNormalizedVolume"));
+ mInitMap.put(new Pair<String, String>("func_148595_a", "getSoundCategoryVolume"));
+ mInitMap.put(new Pair<String, String>("func_148596_a", "reloadSoundSystem"));
+ mInitMap.put(new Pair<String, String>("func_148597_a", "isSoundPlaying"));
+ mInitMap.put(new Pair<String, String>("func_148599_a", "playDelayedSound"));
+ mInitMap.put(new Pair<String, String>("func_148601_a", "setSoundCategoryVolume"));
+ mInitMap.put(new Pair<String, String>("func_148602_b", "stopSound"));
+ mInitMap.put(new Pair<String, String>("func_148604_f", "resumeAllSounds"));
+ mInitMap.put(new Pair<String, String>("func_148605_d", "updateAllSounds"));
+ mInitMap.put(new Pair<String, String>("func_148606_a", "getNormalizedPitch"));
+ mInitMap.put(new Pair<String, String>("func_148608_i", "loadSoundSystem"));
+ mInitMap.put(new Pair<String, String>("func_148610_e", "pauseAllSounds"));
+ mInitMap.put(new Pair<String, String>("func_148611_c", "playSound"));
+ mInitMap.put(new Pair<String, String>("func_148612_a", "getURLForSoundResource"));
+ mInitMap.put(new Pair<String, String>("func_148613_b", "unloadSoundSystem"));
+ mInitMap.put(new Pair<String, String>("func_148614_c", "stopAllSounds"));
+ mInitMap.put(new Pair<String, String>("func_148615_a", "setListener"));
+ mInitMap.put(new Pair<String, String>("func_148633_c", "getMaxDelay"));
+ mInitMap.put(new Pair<String, String>("func_148634_b", "getMinDelay"));
+ mInitMap.put(new Pair<String, String>("func_148635_a", "getMusicTickerLocation"));
+ mInitMap.put(new Pair<String, String>("func_148647_b", "setVolume"));
+ mInitMap.put(new Pair<String, String>("func_148648_d", "isStreamingSound"));
+ mInitMap.put(new Pair<String, String>("func_148649_c", "getVolume"));
+ mInitMap.put(new Pair<String, String>("func_148650_b", "getPitch"));
+ mInitMap.put(new Pair<String, String>("func_148651_a", "setPitch"));
+ mInitMap.put(new Pair<String, String>("func_148652_a", "getSoundPoolEntryLocation"));
+ mInitMap.put(new Pair<String, String>("func_148727_a", "addSoundToEventPool"));
+ mInitMap.put(new Pair<String, String>("func_148728_d", "getSoundCategory"));
+ mInitMap.put(new Pair<String, String>("func_148729_c", "getSoundEventLocation"));
+ mInitMap.put(new Pair<String, String>("func_148740_a", "createUnderlyingMap"));
+ mInitMap.put(new Pair<String, String>("func_148741_d", "containsKey"));
+ mInitMap.put(new Pair<String, String>("func_148742_b", "getKeys"));
+ mInitMap.put(new Pair<String, String>("func_148750_c", "getNameForObject"));
+ mInitMap.put(new Pair<String, String>("func_148753_b", "containsId"));
+ mInitMap.put(new Pair<String, String>("func_148754_a", "getObjectById"));
+ mInitMap.put(new Pair<String, String>("func_148755_c", "ensureNamespaced"));
+ mInitMap.put(new Pair<String, String>("func_148756_a", "addObject"));
+ mInitMap.put(new Pair<String, String>("func_148757_b", "getIDForObject"));
+ mInitMap.put(new Pair<String, String>("func_148762_a", "registerSound"));
+ mInitMap.put(new Pair<String, String>("func_148763_c", "clearMap"));
+ mInitMap.put(new Pair<String, String>("func_148821_a", "glBlendFunc"));
+ mInitMap.put(new Pair<String, String>("func_148822_b", "isFramebufferEnabled"));
+ mInitMap.put(new Pair<String, String>("func_148833_a", "processPacket"));
+ mInitMap.put(new Pair<String, String>("func_148834_a", "readBlob"));
+ mInitMap.put(new Pair<String, String>("func_148835_b", "serialize"));
+ mInitMap.put(new Pair<String, String>("func_148836_a", "hasPriority"));
+ mInitMap.put(new Pair<String, String>("func_148837_a", "readPacketData"));
+ mInitMap.put(new Pair<String, String>("func_148838_a", "writeBlob"));
+ mInitMap.put(new Pair<String, String>("func_148839_a", "generatePacket"));
+ mInitMap.put(new Pair<String, String>("func_148840_b", "writePacketData"));
+ mInitMap.put(new Pair<String, String>("func_148853_f", "getTileEntityType"));
+ mInitMap.put(new Pair<String, String>("func_148854_e", "getZ"));
+ mInitMap.put(new Pair<String, String>("func_148855_d", "getY"));
+ mInitMap.put(new Pair<String, String>("func_148856_c", "getX"));
+ mInitMap.put(new Pair<String, String>("func_148857_g", "getNbtCompound"));
+ mInitMap.put(new Pair<String, String>("func_148864_h", "getData2"));
+ mInitMap.put(new Pair<String, String>("func_148865_f", "getZ"));
+ mInitMap.put(new Pair<String, String>("func_148866_e", "getY"));
+ mInitMap.put(new Pair<String, String>("func_148867_d", "getX"));
+ mInitMap.put(new Pair<String, String>("func_148868_c", "getBlockType"));
+ mInitMap.put(new Pair<String, String>("func_148869_g", "getData1"));
+ mInitMap.put(new Pair<String, String>("func_148916_d", "isChat"));
+ mInitMap.put(new Pair<String, String>("func_149089_e", "getZ"));
+ mInitMap.put(new Pair<String, String>("func_149090_d", "getY"));
+ mInitMap.put(new Pair<String, String>("func_149091_a", "getPlayer"));
+ mInitMap.put(new Pair<String, String>("func_149092_c", "getX"));
+ mInitMap.put(new Pair<String, String>("func_149101_g", "getFlySpeed"));
+ mInitMap.put(new Pair<String, String>("func_149102_b", "setFlying"));
+ mInitMap.put(new Pair<String, String>("func_149103_f", "isCreativeMode"));
+ mInitMap.put(new Pair<String, String>("func_149104_a", "setFlySpeed"));
+ mInitMap.put(new Pair<String, String>("func_149105_e", "isAllowFlying"));
+ mInitMap.put(new Pair<String, String>("func_149106_d", "isFlying"));
+ mInitMap.put(new Pair<String, String>("func_149107_h", "getWalkSpeed"));
+ mInitMap.put(new Pair<String, String>("func_149108_a", "setInvulnerable"));
+ mInitMap.put(new Pair<String, String>("func_149109_c", "setAllowFlying"));
+ mInitMap.put(new Pair<String, String>("func_149110_b", "setWalkSpeed"));
+ mInitMap.put(new Pair<String, String>("func_149111_d", "setCreativeMode"));
+ mInitMap.put(new Pair<String, String>("func_149112_c", "isInvulnerable"));
+ mInitMap.put(new Pair<String, String>("func_149187_d", "getData"));
+ mInitMap.put(new Pair<String, String>("func_149188_c", "getMapId"));
+ mInitMap.put(new Pair<String, String>("func_149239_h", "getPosZ"));
+ mInitMap.put(new Pair<String, String>("func_149240_f", "getPosX"));
+ mInitMap.put(new Pair<String, String>("func_149241_e", "getSoundData"));
+ mInitMap.put(new Pair<String, String>("func_149242_d", "getSoundType"));
+ mInitMap.put(new Pair<String, String>("func_149243_g", "getPosY"));
+ mInitMap.put(new Pair<String, String>("func_149244_c", "isSoundServerwide"));
+ mInitMap.put(new Pair<String, String>("func_149289_c", "getClientTime"));
+ mInitMap.put(new Pair<String, String>("func_149304_c", "getProfile"));
+ mInitMap.put(new Pair<String, String>("func_149330_d", "getFoodLevel"));
+ mInitMap.put(new Pair<String, String>("func_149331_e", "getSaturationLevel"));
+ mInitMap.put(new Pair<String, String>("func_149332_c", "getHealth"));
+ mInitMap.put(new Pair<String, String>("func_149419_c", "getMessage"));
+ mInitMap.put(new Pair<String, String>("func_149421_d", "getType"));
+ mInitMap.put(new Pair<String, String>("func_149435_c", "getStatus"));
+ mInitMap.put(new Pair<String, String>("func_149439_c", "getMessage"));
+ mInitMap.put(new Pair<String, String>("func_149460_c", "getKey"));
+ mInitMap.put(new Pair<String, String>("func_149462_g", "getYaw"));
+ mInitMap.put(new Pair<String, String>("func_149463_k", "getRotating"));
+ mInitMap.put(new Pair<String, String>("func_149464_c", "getPositionX"));
+ mInitMap.put(new Pair<String, String>("func_149467_d", "getPositionY"));
+ mInitMap.put(new Pair<String, String>("func_149470_h", "getPitch"));
+ mInitMap.put(new Pair<String, String>("func_149471_f", "getStance"));
+ mInitMap.put(new Pair<String, String>("func_149472_e", "getPositionZ"));
+ mInitMap.put(new Pair<String, String>("func_149482_g", "getFlySpeed"));
+ mInitMap.put(new Pair<String, String>("func_149483_b", "setFlying"));
+ mInitMap.put(new Pair<String, String>("func_149484_f", "isCreativeMode"));
+ mInitMap.put(new Pair<String, String>("func_149485_a", "setFlySpeed"));
+ mInitMap.put(new Pair<String, String>("func_149486_e", "isAllowFlying"));
+ mInitMap.put(new Pair<String, String>("func_149488_d", "isFlying"));
+ mInitMap.put(new Pair<String, String>("func_149489_h", "getWalkSpeed"));
+ mInitMap.put(new Pair<String, String>("func_149490_a", "setInvulnerable"));
+ mInitMap.put(new Pair<String, String>("func_149491_c", "setAllowFlying"));
+ mInitMap.put(new Pair<String, String>("func_149492_b", "setWalkSpeed"));
+ mInitMap.put(new Pair<String, String>("func_149493_d", "setCreativeMode"));
+ mInitMap.put(new Pair<String, String>("func_149494_c", "isInvulnerable"));
+ mInitMap.put(new Pair<String, String>("func_149501_f", "getDiggingBlockFace"));
+ mInitMap.put(new Pair<String, String>("func_149502_e", "getDiggedBlockZ"));
+ mInitMap.put(new Pair<String, String>("func_149503_d", "getDiggedBlockY"));
+ mInitMap.put(new Pair<String, String>("func_149505_c", "getDiggedBlockX"));
+ mInitMap.put(new Pair<String, String>("func_149506_g", "getDiggedBlockStatus"));
+ mInitMap.put(new Pair<String, String>("func_149518_g", "getDifficulty"));
+ mInitMap.put(new Pair<String, String>("func_149519_h", "isShowCape"));
+ mInitMap.put(new Pair<String, String>("func_149520_f", "isColorsEnabled"));
+ mInitMap.put(new Pair<String, String>("func_149521_d", "getView"));
+ mInitMap.put(new Pair<String, String>("func_149523_e", "getChatVisibility"));
+ mInitMap.put(new Pair<String, String>("func_149524_c", "getLang"));
+ mInitMap.put(new Pair<String, String>("func_149532_c", "getId"));
+ mInitMap.put(new Pair<String, String>("func_149533_d", "getUid"));
+ mInitMap.put(new Pair<String, String>("func_149537_d", "getButton"));
+ mInitMap.put(new Pair<String, String>("func_149539_c", "getId"));
+ mInitMap.put(new Pair<String, String>("func_149542_h", "getMode"));
+ mInitMap.put(new Pair<String, String>("func_149543_e", "getUsedButton"));
+ mInitMap.put(new Pair<String, String>("func_149544_d", "getSlotId"));
+ mInitMap.put(new Pair<String, String>("func_149546_g", "getClickedItem"));
+ mInitMap.put(new Pair<String, String>("func_149547_f", "getActionNumber"));
+ mInitMap.put(new Pair<String, String>("func_149548_c", "getWindowId"));
+ mInitMap.put(new Pair<String, String>("func_149558_e", "getData"));
+ mInitMap.put(new Pair<String, String>("func_149559_c", "getChannel"));
+ mInitMap.put(new Pair<String, String>("func_149564_a", "getEntityFromWorld"));
+ mInitMap.put(new Pair<String, String>("func_149565_c", "getAction"));
+ mInitMap.put(new Pair<String, String>("func_149568_f", "getPlacedBlockDirection"));
+ mInitMap.put(new Pair<String, String>("func_149569_i", "getPlacedBlockOffsetY"));
+ mInitMap.put(new Pair<String, String>("func_149570_e", "getPlacedBlockZ"));
+ mInitMap.put(new Pair<String, String>("func_149571_d", "getPlacedBlockY"));
+ mInitMap.put(new Pair<String, String>("func_149573_h", "getPlacedBlockOffsetX"));
+ mInitMap.put(new Pair<String, String>("func_149574_g", "getStack"));
+ mInitMap.put(new Pair<String, String>("func_149575_j", "getPlacedBlockOffsetZ"));
+ mInitMap.put(new Pair<String, String>("func_149576_c", "getPlacedBlockX"));
+ mInitMap.put(new Pair<String, String>("func_149585_e", "getZ"));
+ mInitMap.put(new Pair<String, String>("func_149586_d", "getY"));
+ mInitMap.put(new Pair<String, String>("func_149588_c", "getX"));
+ mInitMap.put(new Pair<String, String>("func_149589_f", "getLines"));
+ mInitMap.put(new Pair<String, String>("func_149594_c", "getRequestedState"));
+ mInitMap.put(new Pair<String, String>("func_149595_d", "getProtocolVersion"));
+ mInitMap.put(new Pair<String, String>("func_149614_c", "getSlotId"));
+ mInitMap.put(new Pair<String, String>("func_149616_d", "getForwardSpeed"));
+ mInitMap.put(new Pair<String, String>("func_149617_f", "isSneaking"));
+ mInitMap.put(new Pair<String, String>("func_149618_e", "isJumping"));
+ mInitMap.put(new Pair<String, String>("func_149620_c", "getStrafeSpeed"));
+ mInitMap.put(new Pair<String, String>("func_149625_d", "getStack"));
+ mInitMap.put(new Pair<String, String>("func_149627_c", "getSlotId"));
+ mInitMap.put(new Pair<String, String>("func_149633_g", "getSelectedBoundingBoxFromPool"));
+ mInitMap.put(new Pair<String, String>("func_149634_a", "getBlockFromItem"));
+ mInitMap.put(new Pair<String, String>("func_149635_D", "getBlockColor"));
+ mInitMap.put(new Pair<String, String>("func_149636_a", "harvestBlock"));
+ mInitMap.put(new Pair<String, String>("func_149637_q", "isBlockNormalCube"));
+ mInitMap.put(new Pair<String, String>("func_149638_a", "getExplosionResistance"));
+ mInitMap.put(new Pair<String, String>("func_149639_l", "fillWithRain"));
+ mInitMap.put(new Pair<String, String>("func_149640_a", "modifyEntityVelocity"));
+ mInitMap.put(new Pair<String, String>("func_149641_N", "getTextureName"));
+ mInitMap.put(new Pair<String, String>("func_149642_a", "dropBlockAsItem"));
+ mInitMap.put(new Pair<String, String>("func_149643_k", "getDamageValue"));
+ mInitMap.put(new Pair<String, String>("func_149644_j", "createStackedBlock"));
+ mInitMap.put(new Pair<String, String>("func_149645_b", "getRenderType"));
+ mInitMap.put(new Pair<String, String>("func_149646_a", "shouldSideBeRendered"));
+ mInitMap.put(new Pair<String, String>("func_149647_a", "setCreativeTab"));
+ mInitMap.put(new Pair<String, String>("func_149648_K", "isFlowerPot"));
+ mInitMap.put(new Pair<String, String>("func_149649_H", "disableStats"));
+ mInitMap.put(new Pair<String, String>("func_149650_a", "getItemDropped"));
+ mInitMap.put(new Pair<String, String>("func_149651_a", "registerIcons"));
+ mInitMap.put(new Pair<String, String>("func_149652_G", "getEnableStats"));
+ mInitMap.put(new Pair<String, String>("func_149653_t", "getTickRandomly"));
+ mInitMap.put(new Pair<String, String>("func_149654_a", "isVecInsideYZBounds"));
+ mInitMap.put(new Pair<String, String>("func_149655_b", "isPassable"));
+ mInitMap.put(new Pair<String, String>("func_149656_h", "getMobilityFlag"));
+ mInitMap.put(new Pair<String, String>("func_149657_c", "dropXpOnBlockBreak"));
+ mInitMap.put(new Pair<String, String>("func_149658_d", "setTextureName"));
+ mInitMap.put(new Pair<String, String>("func_149659_a", "canDropFromExplosion"));
+ mInitMap.put(new Pair<String, String>("func_149660_a", "onBlockPlaced"));
+ mInitMap.put(new Pair<String, String>("func_149661_c", "isVecInsideXYBounds"));
+ mInitMap.put(new Pair<String, String>("func_149662_c", "isOpaqueCube"));
+ mInitMap.put(new Pair<String, String>("func_149663_c", "setUnlocalizedName"));
+ mInitMap.put(new Pair<String, String>("func_149664_b", "onBlockDestroyedByPlayer"));
+ mInitMap.put(new Pair<String, String>("func_149665_z", "getBlockBoundsMinY"));
+ mInitMap.put(new Pair<String, String>("func_149666_a", "getSubBlocks"));
+ mInitMap.put(new Pair<String, String>("func_149667_c", "isAssociatedBlock"));
+ mInitMap.put(new Pair<String, String>("func_149668_a", "getCollisionBoundingBoxFromPool"));
+ mInitMap.put(new Pair<String, String>("func_149669_A", "getBlockBoundsMaxY"));
+ mInitMap.put(new Pair<String, String>("func_149670_a", "onEntityCollidedWithBlock"));
+ mInitMap.put(new Pair<String, String>("func_149671_p", "registerBlocks"));
+ mInitMap.put(new Pair<String, String>("func_149672_a", "setStepSound"));
+ mInitMap.put(new Pair<String, String>("func_149673_e", "getIcon"));
+ mInitMap.put(new Pair<String, String>("func_149674_a", "updateTick"));
+ mInitMap.put(new Pair<String, String>("func_149675_a", "setTickRandomly"));
+ mInitMap.put(new Pair<String, String>("func_149676_a", "setBlockBounds"));
+ mInitMap.put(new Pair<String, String>("func_149677_c", "getMixedBrightnessForBlock"));
+ mInitMap.put(new Pair<String, String>("func_149678_a", "canStopRayTrace"));
+ mInitMap.put(new Pair<String, String>("func_149679_a", "quantityDroppedWithBonus"));
+ mInitMap.put(new Pair<String, String>("func_149680_a", "isEqualTo"));
+ mInitMap.put(new Pair<String, String>("func_149681_a", "onBlockHarvested"));
+ mInitMap.put(new Pair<String, String>("func_149682_b", "getIdFromBlock"));
+ mInitMap.put(new Pair<String, String>("func_149683_g", "setBlockBoundsForItemRender"));
+ mInitMap.put(new Pair<String, String>("func_149684_b", "getBlockFromName"));
+ mInitMap.put(new Pair<String, String>("func_149685_I", "getAmbientOcclusionLightValue"));
+ mInitMap.put(new Pair<String, String>("func_149686_d", "renderAsNormalBlock"));
+ mInitMap.put(new Pair<String, String>("func_149687_b", "isVecInsideXZBounds"));
+ mInitMap.put(new Pair<String, String>("func_149688_o", "getMaterial"));
+ mInitMap.put(new Pair<String, String>("func_149689_a", "onBlockPlacedBy"));
+ mInitMap.put(new Pair<String, String>("func_149690_a", "dropBlockAsItemWithChance"));
+ mInitMap.put(new Pair<String, String>("func_149691_a", "getIcon"));
+ mInitMap.put(new Pair<String, String>("func_149692_a", "damageDropped"));
+ mInitMap.put(new Pair<String, String>("func_149693_C", "getBlockBoundsMaxZ"));
+ mInitMap.put(new Pair<String, String>("func_149694_d", "getItem"));
+ mInitMap.put(new Pair<String, String>("func_149695_a", "onNeighborBlockChange"));
+ mInitMap.put(new Pair<String, String>("func_149696_a", "onBlockEventReceived"));
+ mInitMap.put(new Pair<String, String>("func_149697_b", "dropBlockAsItem"));
+ mInitMap.put(new Pair<String, String>("func_149698_L", "requiresUpdates"));
+ mInitMap.put(new Pair<String, String>("func_149699_a", "onBlockClicked"));
+ mInitMap.put(new Pair<String, String>("func_149700_E", "canSilkHarvest"));
+ mInitMap.put(new Pair<String, String>("func_149701_w", "getRenderBlockPass"));
+ mInitMap.put(new Pair<String, String>("func_149702_O", "getItemIconName"));
+ mInitMap.put(new Pair<String, String>("func_149703_v", "isCollidable"));
+ mInitMap.put(new Pair<String, String>("func_149704_x", "getBlockBoundsMinX"));
+ mInitMap.put(new Pair<String, String>("func_149705_a", "canReplace"));
+ mInitMap.put(new Pair<String, String>("func_149706_B", "getBlockBoundsMinZ"));
+ mInitMap.put(new Pair<String, String>("func_149707_d", "canPlaceBlockOnSide"));
+ mInitMap.put(new Pair<String, String>("func_149708_J", "getCreativeTabToDisplayOn"));
+ mInitMap.put(new Pair<String, String>("func_149709_b", "isProvidingWeakPower"));
+ mInitMap.put(new Pair<String, String>("func_149710_n", "getUseNeighborBrightness"));
+ mInitMap.put(new Pair<String, String>("func_149711_c", "setHardness"));
+ mInitMap.put(new Pair<String, String>("func_149712_f", "getBlockHardness"));
+ mInitMap.put(new Pair<String, String>("func_149713_g", "setLightOpacity"));
+ mInitMap.put(new Pair<String, String>("func_149714_e", "onPostBlockPlaced"));
+ mInitMap.put(new Pair<String, String>("func_149715_a", "setLightLevel"));
+ mInitMap.put(new Pair<String, String>("func_149716_u", "hasTileEntity"));
+ mInitMap.put(new Pair<String, String>("func_149717_k", "getLightOpacity"));
+ mInitMap.put(new Pair<String, String>("func_149718_j", "canBlockStay"));
+ mInitMap.put(new Pair<String, String>("func_149719_a", "setBlockBoundsBasedOnState"));
+ mInitMap.put(new Pair<String, String>("func_149720_d", "colorMultiplier"));
+ mInitMap.put(new Pair<String, String>("func_149721_r", "isNormalCube"));
+ mInitMap.put(new Pair<String, String>("func_149722_s", "setBlockUnbreakable"));
+ mInitMap.put(new Pair<String, String>("func_149723_a", "onBlockDestroyedByExplosion"));
+ mInitMap.put(new Pair<String, String>("func_149724_b", "onEntityWalking"));
+ mInitMap.put(new Pair<String, String>("func_149725_f", "onBlockPreDestroy"));
+ mInitMap.put(new Pair<String, String>("func_149726_b", "onBlockAdded"));
+ mInitMap.put(new Pair<String, String>("func_149727_a", "onBlockActivated"));
+ mInitMap.put(new Pair<String, String>("func_149728_f", "getMapColor"));
+ mInitMap.put(new Pair<String, String>("func_149729_e", "getBlockById"));
+ mInitMap.put(new Pair<String, String>("func_149730_j", "isFullBlock"));
+ mInitMap.put(new Pair<String, String>("func_149731_a", "collisionRayTrace"));
+ mInitMap.put(new Pair<String, String>("func_149732_F", "getLocalizedName"));
+ mInitMap.put(new Pair<String, String>("func_149733_h", "getBlockTextureFromSide"));
+ mInitMap.put(new Pair<String, String>("func_149734_b", "randomDisplayTick"));
+ mInitMap.put(new Pair<String, String>("func_149735_b", "getItemIcon"));
+ mInitMap.put(new Pair<String, String>("func_149736_g", "getComparatorInputOverride"));
+ mInitMap.put(new Pair<String, String>("func_149737_a", "getPlayerRelativeBlockHardness"));
+ mInitMap.put(new Pair<String, String>("func_149738_a", "tickRate"));
+ mInitMap.put(new Pair<String, String>("func_149739_a", "getUnlocalizedName"));
+ mInitMap.put(new Pair<String, String>("func_149740_M", "hasComparatorInputOverride"));
+ mInitMap.put(new Pair<String, String>("func_149741_i", "getRenderColor"));
+ mInitMap.put(new Pair<String, String>("func_149742_c", "canPlaceBlockAt"));
+ mInitMap.put(new Pair<String, String>("func_149743_a", "addCollisionBoxesToList"));
+ mInitMap.put(new Pair<String, String>("func_149744_f", "canProvidePower"));
+ mInitMap.put(new Pair<String, String>("func_149745_a", "quantityDropped"));
+ mInitMap.put(new Pair<String, String>("func_149746_a", "onFallenUpon"));
+ mInitMap.put(new Pair<String, String>("func_149747_d", "isBlockSolid"));
+ mInitMap.put(new Pair<String, String>("func_149748_c", "isProvidingStrongPower"));
+ mInitMap.put(new Pair<String, String>("func_149749_a", "breakBlock"));
+ mInitMap.put(new Pair<String, String>("func_149750_m", "getLightValue"));
+ mInitMap.put(new Pair<String, String>("func_149751_l", "isTranslucent"));
+ mInitMap.put(new Pair<String, String>("func_149752_b", "setResistance"));
+ mInitMap.put(new Pair<String, String>("func_149753_y", "getBlockBoundsMaxX"));
+ mInitMap.put(new Pair<String, String>("func_149798_e", "getEffectiveFlowDecay"));
+ mInitMap.put(new Pair<String, String>("func_149800_f", "getFlowVector"));
+ mInitMap.put(new Pair<String, String>("func_149801_b", "getLiquidHeightPercent"));
+ mInitMap.put(new Pair<String, String>("func_149802_a", "getFlowDirection"));
+ mInitMap.put(new Pair<String, String>("func_149803_e", "getLiquidIcon"));
+ mInitMap.put(new Pair<String, String>("func_149817_o", "isFlammable"));
+ mInitMap.put(new Pair<String, String>("func_149818_n", "setNotStationary"));
+ mInitMap.put(new Pair<String, String>("func_149819_b", "invertMetadata"));
+ mInitMap.put(new Pair<String, String>("func_149825_a", "isFence"));
+ mInitMap.put(new Pair<String, String>("func_149826_e", "canConnectFenceTo"));
+ mInitMap.put(new Pair<String, String>("func_149828_a", "playSoundWhenFallen"));
+ mInitMap.put(new Pair<String, String>("func_149829_a", "onStartFalling"));
+ mInitMap.put(new Pair<String, String>("func_149831_e", "canFallBelow"));
+ mInitMap.put(new Pair<String, String>("func_149840_c", "getFireIcon"));
+ mInitMap.put(new Pair<String, String>("func_149841_a", "tryCatchFire"));
+ mInitMap.put(new Pair<String, String>("func_149844_e", "canBlockCatchFire"));
+ mInitMap.put(new Pair<String, String>("func_149845_m", "getChanceOfNeighborsEncouragingFire"));
+ mInitMap.put(new Pair<String, String>("func_149847_e", "canNeighborBurn"));
+ mInitMap.put(new Pair<String, String>("func_149851_a", "canFertilize"));
+ mInitMap.put(new Pair<String, String>("func_149852_a", "shouldFertilize"));
+ mInitMap.put(new Pair<String, String>("func_149853_b", "fertilize"));
+ mInitMap.put(new Pair<String, String>("func_149854_a", "canPlaceBlockOn"));
+ mInitMap.put(new Pair<String, String>("func_149855_e", "checkAndDropBlock"));
+ mInitMap.put(new Pair<String, String>("func_149863_m", "fertilize"));
+ mInitMap.put(new Pair<String, String>("func_149865_P", "getCrop"));
+ mInitMap.put(new Pair<String, String>("func_149866_i", "getSeed"));
+ mInitMap.put(new Pair<String, String>("func_149872_i", "getStemIcon"));
+ mInitMap.put(new Pair<String, String>("func_149873_e", "getState"));
+ mInitMap.put(new Pair<String, String>("func_149874_m", "fertilizeStem"));
+ mInitMap.put(new Pair<String, String>("func_149878_d", "growTree"));
+ mInitMap.put(new Pair<String, String>("func_149879_c", "markOrGrowMarked"));
+ mInitMap.put(new Pair<String, String>("func_149884_c", "fertilizeMushroom"));
+ mInitMap.put(new Pair<String, String>("func_149895_l", "getDirection"));
+ mInitMap.put(new Pair<String, String>("func_149896_b", "isFenceGateOpen"));
+ mInitMap.put(new Pair<String, String>("func_149898_i", "getBlockUnpowered"));
+ mInitMap.put(new Pair<String, String>("func_149900_a", "isGettingInput"));
+ mInitMap.put(new Pair<String, String>("func_149903_h", "getInputStrength"));
+ mInitMap.put(new Pair<String, String>("func_149906_e", "getBlockPowered"));
+ mInitMap.put(new Pair<String, String>("func_149909_d", "isRedstoneRepeaterBlockID"));
+ mInitMap.put(new Pair<String, String>("func_149915_a", "createmInitMap.put(newTileEntity"));
+ mInitMap.put(new Pair<String, String>("func_149916_e", "getHopperIcon"));
+ mInitMap.put(new Pair<String, String>("func_149917_c", "getActiveStateFromMetadata"));
+ mInitMap.put(new Pair<String, String>("func_149918_b", "getDirectionFromMetadata"));
+ mInitMap.put(new Pair<String, String>("func_149919_e", "updateBlockData"));
+ mInitMap.put(new Pair<String, String>("func_149931_a", "updateFurnaceBlockState"));
+ mInitMap.put(new Pair<String, String>("func_149937_b", "getFacingDirection"));
+ mInitMap.put(new Pair<String, String>("func_149939_a", "getIPositionFromBlockSource"));
+ mInitMap.put(new Pair<String, String>("func_149951_m", "getInventory"));
+ mInitMap.put(new Pair<String, String>("func_149952_n", "isDoubleChest"));
+ mInitMap.put(new Pair<String, String>("func_149953_o", "isOcelotSittingOnTop"));
+ mInitMap.put(new Pair<String, String>("func_149954_e", "initMetadata"));
+ mInitMap.put(new Pair<String, String>("func_149959_e", "getIconBrewingStandBase"));
+ mInitMap.put(new Pair<String, String>("func_149962_a", "getTileEntity"));
+ mInitMap.put(new Pair<String, String>("func_149965_a", "makeWither"));
+ mInitMap.put(new Pair<String, String>("func_149970_j", "getOutputStrength"));
+ mInitMap.put(new Pair<String, String>("func_149971_e", "getTileEntityComparator"));
+ mInitMap.put(new Pair<String, String>("func_149975_b", "isBlockHeadOfBed"));
+ mInitMap.put(new Pair<String, String>("func_149976_c", "isBedOccupied"));
+ mInitMap.put(new Pair<String, String>("func_149977_a", "getSafeExitLocation"));
+ mInitMap.put(new Pair<String, String>("func_149978_e", "setBedBounds"));
+ mInitMap.put(new Pair<String, String>("func_149979_a", "setBedOccupied"));
+ mInitMap.put(new Pair<String, String>("func_149988_b", "getCocoaIcon"));
+ mInitMap.put(new Pair<String, String>("func_149990_e", "getIconSideOverlay"));
+ mInitMap.put(new Pair<String, String>("func_150000_e", "tryToCreatePortal"));
+ mInitMap.put(new Pair<String, String>("func_150002_b", "getFullSlabName"));
+ mInitMap.put(new Pair<String, String>("func_150012_g", "getFullMetadata"));
+ mInitMap.put(new Pair<String, String>("func_150020_b", "isEnderEyeInserted"));
+ mInitMap.put(new Pair<String, String>("func_150021_e", "getIconEndPortalFrameEye"));
+ mInitMap.put(new Pair<String, String>("func_150024_a", "setWaterLevel"));
+ mInitMap.put(new Pair<String, String>("func_150025_c", "getRenderLiquidLevel"));
+ mInitMap.put(new Pair<String, String>("func_150026_e", "getCauldronIcon"));
+ mInitMap.put(new Pair<String, String>("func_150027_b", "getPowerFromMeta"));
+ mInitMap.put(new Pair<String, String>("func_150042_a", "updateNeighbor"));
+ mInitMap.put(new Pair<String, String>("func_150043_b", "setBlockBoundsFromMeta"));
+ mInitMap.put(new Pair<String, String>("func_150044_m", "canStay"));
+ mInitMap.put(new Pair<String, String>("func_150045_e", "findSolidSide"));
+ mInitMap.put(new Pair<String, String>("func_150046_n", "activateButton"));
+ mInitMap.put(new Pair<String, String>("func_150048_a", "onRedstoneSignal"));
+ mInitMap.put(new Pair<String, String>("func_150049_b_", "isRailBlockAt"));
+ mInitMap.put(new Pair<String, String>("func_150050_e", "isPowered"));
+ mInitMap.put(new Pair<String, String>("func_150051_a", "isRailBlock"));
+ mInitMap.put(new Pair<String, String>("func_150052_a", "refreshTrackShape"));
+ mInitMap.put(new Pair<String, String>("func_150060_c", "getPowerFromMeta"));
+ mInitMap.put(new Pair<String, String>("func_150061_a", "getSensitiveAABB"));
+ mInitMap.put(new Pair<String, String>("func_150062_a", "setStateIfMobInteractsWithPlate"));
+ mInitMap.put(new Pair<String, String>("func_150063_b", "setBlockBoundsFromMeta"));
+ mInitMap.put(new Pair<String, String>("func_150064_a_", "updateNeighbors"));
+ mInitMap.put(new Pair<String, String>("func_150065_e", "getPlateState"));
+ mInitMap.put(new Pair<String, String>("func_150066_d", "getMetaFromPower"));
+ mInitMap.put(new Pair<String, String>("func_150071_a", "determineOrientation"));
+ mInitMap.put(new Pair<String, String>("func_150072_a", "isIndirectlyPowered"));
+ mInitMap.put(new Pair<String, String>("func_150073_e", "getPistonExtensionTexture"));
+ mInitMap.put(new Pair<String, String>("func_150074_e", "getPistonBaseIcon"));
+ mInitMap.put(new Pair<String, String>("func_150075_c", "isExtended"));
+ mInitMap.put(new Pair<String, String>("func_150076_b", "getPistonOrientation"));
+ mInitMap.put(new Pair<String, String>("func_150077_h", "canExtend"));
+ mInitMap.put(new Pair<String, String>("func_150078_e", "updatePistonState"));
+ mInitMap.put(new Pair<String, String>("func_150079_i", "tryExtend"));
+ mInitMap.put(new Pair<String, String>("func_150080_a", "canPushBlock"));
+ mInitMap.put(new Pair<String, String>("func_150085_b", "getDirectionMeta"));
+ mInitMap.put(new Pair<String, String>("func_150089_b", "setBlockBoundsFromMeta"));
+ mInitMap.put(new Pair<String, String>("func_150091_e", "canConnectWallTo"));
+ mInitMap.put(new Pair<String, String>("func_150098_a", "canPaneConnectToBlock"));
+ mInitMap.put(new Pair<String, String>("func_150107_m", "canPlaceTorchOn"));
+ mInitMap.put(new Pair<String, String>("func_150109_e", "dropTorchIfCantStay"));
+ mInitMap.put(new Pair<String, String>("func_150118_d", "isTrapdoorOpen"));
+ mInitMap.put(new Pair<String, String>("func_150119_a", "isValidSupportBlock"));
+ mInitMap.put(new Pair<String, String>("func_150122_b", "setGraphicsLevel"));
+ mInitMap.put(new Pair<String, String>("func_150126_e", "removeLeaves"));
+ mInitMap.put(new Pair<String, String>("func_150147_e", "setBaseBounds"));
+ mInitMap.put(new Pair<String, String>("func_150148_a", "isBlockStairs"));
+ mInitMap.put(new Pair<String, String>("func_150161_d", "getTopIcon"));
+ mInitMap.put(new Pair<String, String>("func_150163_b", "getSideIcon"));
+ mInitMap.put(new Pair<String, String>("func_150173_e", "getRedstomInitMap.put(newireIcon"));
+ mInitMap.put(new Pair<String, String>("func_150174_f", "isPowerProviderOrWire"));
+ mInitMap.put(new Pair<String, String>("func_150206_m", "createDeepCopy"));
+ mInitMap.put(new Pair<String, String>("func_150209_a", "setChatHoverEvent"));
+ mInitMap.put(new Pair<String, String>("func_150210_i", "getChatHoverEvent"));
+ mInitMap.put(new Pair<String, String>("func_150215_a", "getColor"));
+ mInitMap.put(new Pair<String, String>("func_150217_b", "setItalic"));
+ mInitMap.put(new Pair<String, String>("func_150218_j", "getFormattingCode"));
+ mInitMap.put(new Pair<String, String>("func_150221_a", "setParentStyle"));
+ mInitMap.put(new Pair<String, String>("func_150223_b", "getBold"));
+ mInitMap.put(new Pair<String, String>("func_150224_n", "getParent"));
+ mInitMap.put(new Pair<String, String>("func_150225_c", "setStrikethrough"));
+ mInitMap.put(new Pair<String, String>("func_150227_a", "setBold"));
+ mInitMap.put(new Pair<String, String>("func_150228_d", "setUnderlined"));
+ mInitMap.put(new Pair<String, String>("func_150229_g", "isEmpty"));
+ mInitMap.put(new Pair<String, String>("func_150232_l", "createShallowCopy"));
+ mInitMap.put(new Pair<String, String>("func_150233_f", "getObfuscated"));
+ mInitMap.put(new Pair<String, String>("func_150234_e", "getUnderlined"));
+ mInitMap.put(new Pair<String, String>("func_150235_h", "getChatClickEvent"));
+ mInitMap.put(new Pair<String, String>("func_150236_d", "getStrikethrough"));
+ mInitMap.put(new Pair<String, String>("func_150237_e", "setObfuscated"));
+ mInitMap.put(new Pair<String, String>("func_150238_a", "setColor"));
+ mInitMap.put(new Pair<String, String>("func_150241_a", "setChatClickEvent"));
+ mInitMap.put(new Pair<String, String>("func_150242_c", "getItalic"));
+ mInitMap.put(new Pair<String, String>("func_150253_a", "getSiblings"));
+ mInitMap.put(new Pair<String, String>("func_150254_d", "getFormattedText"));
+ mInitMap.put(new Pair<String, String>("func_150255_a", "setChatStyle"));
+ mInitMap.put(new Pair<String, String>("func_150256_b", "getChatStyle"));
+ mInitMap.put(new Pair<String, String>("func_150257_a", "appendSibling"));
+ mInitMap.put(new Pair<String, String>("func_150258_a", "appendText"));
+ mInitMap.put(new Pair<String, String>("func_150259_f", "createCopy"));
+ mInitMap.put(new Pair<String, String>("func_150260_c", "getUnformattedText"));
+ mInitMap.put(new Pair<String, String>("func_150261_e", "getUnformattedTextForChat"));
+ mInitMap.put(new Pair<String, String>("func_150262_a", "createDeepCopyIterator"));
+ mInitMap.put(new Pair<String, String>("func_150265_g", "getChatComponentText_TextValue"));
+ mInitMap.put(new Pair<String, String>("func_150268_i", "getKey"));
+ mInitMap.put(new Pair<String, String>("func_150269_b", "initializeFromFormat"));
+ mInitMap.put(new Pair<String, String>("func_150270_g", "ensureInitialized"));
+ mInitMap.put(new Pair<String, String>("func_150271_j", "getFormatArgs"));
+ mInitMap.put(new Pair<String, String>("func_150272_a", "getFormatArgumentAsComponent"));
+ mInitMap.put(new Pair<String, String>("func_150284_a", "createmInitMap.put(newByType"));
+ mInitMap.put(new Pair<String, String>("func_150285_a_", "getString"));
+ mInitMap.put(new Pair<String, String>("func_150286_g", "getDouble"));
+ mInitMap.put(new Pair<String, String>("func_150287_d", "getInt"));
+ mInitMap.put(new Pair<String, String>("func_150288_h", "getFloat"));
+ mInitMap.put(new Pair<String, String>("func_150289_e", "getShort"));
+ mInitMap.put(new Pair<String, String>("func_150290_f", "getByte"));
+ mInitMap.put(new Pair<String, String>("func_150291_c", "getLong"));
+ mInitMap.put(new Pair<String, String>("func_150292_c", "getByteArray"));
+ mInitMap.put(new Pair<String, String>("func_150295_c", "getTagList"));
+ mInitMap.put(new Pair<String, String>("func_150296_c", "getKeySet"));
+ mInitMap.put(new Pair<String, String>("func_150297_b", "hasKey"));
+ mInitMap.put(new Pair<String, String>("func_150298_a", "writeEntry"));
+ mInitMap.put(new Pair<String, String>("func_150299_b", "getTagId"));
+ mInitMap.put(new Pair<String, String>("func_150302_c", "getIntArray"));
+ mInitMap.put(new Pair<String, String>("func_150303_d", "getTagType"));
+ mInitMap.put(new Pair<String, String>("func_150304_a", "setTag"));
+ mInitMap.put(new Pair<String, String>("func_150305_b", "getCompoundTagAt"));
+ mInitMap.put(new Pair<String, String>("func_150306_c", "getIntArrayAt"));
+ mInitMap.put(new Pair<String, String>("func_150307_f", "getStringTagAt"));
+ mInitMap.put(new Pair<String, String>("func_150308_e", "getFloatAt"));
+ mInitMap.put(new Pair<String, String>("func_150309_d", "getDoubleAt"));
+ mInitMap.put(new Pair<String, String>("func_150494_d", "getFrequency"));
+ mInitMap.put(new Pair<String, String>("func_150495_a", "getDigResourcePath"));
+ mInitMap.put(new Pair<String, String>("func_150496_b", "getPlaceSound"));
+ mInitMap.put(new Pair<String, String>("func_150497_c", "getVolume"));
+ mInitMap.put(new Pair<String, String>("func_150498_e", "getStepSound"));
+ mInitMap.put(new Pair<String, String>("func_150503_a", "decipher"));
+ mInitMap.put(new Pair<String, String>("func_150504_a", "cipher"));
+ mInitMap.put(new Pair<String, String>("func_150510_c", "getLastUpdateTimeInMilliseconds"));
+ mInitMap.put(new Pair<String, String>("func_150512_a", "decorateChunk"));
+ mInitMap.put(new Pair<String, String>("func_150513_a", "genDecorations"));
+ mInitMap.put(new Pair<String, String>("func_150516_a", "setBlockAndNotifyAdequately"));
+ mInitMap.put(new Pair<String, String>("func_150558_b", "getBiomeGrassColor"));
+ mInitMap.put(new Pair<String, String>("func_150560_b", "genBiomeTerrain"));
+ mInitMap.put(new Pair<String, String>("func_150561_m", "getTempCategory"));
+ mInitMap.put(new Pair<String, String>("func_150562_l", "getBiomeClass"));
+ mInitMap.put(new Pair<String, String>("func_150564_a", "getFloatTemperature"));
+ mInitMap.put(new Pair<String, String>("func_150565_n", "getBiomeGenArray"));
+ mInitMap.put(new Pair<String, String>("func_150566_k", "createMutation"));
+ mInitMap.put(new Pair<String, String>("func_150568_d", "getBiome"));
+ mInitMap.put(new Pair<String, String>("func_150569_a", "isEqualTo"));
+ mInitMap.put(new Pair<String, String>("func_150570_a", "setHeight"));
+ mInitMap.put(new Pair<String, String>("func_150571_c", "getBiomeFoliageColor"));
+ mInitMap.put(new Pair<String, String>("func_150573_a", "genTerrainBlocks"));
+ mInitMap.put(new Pair<String, String>("func_150633_b", "mutateHills"));
+ mInitMap.put(new Pair<String, String>("func_150646_a", "isRailBlockAt"));
+ mInitMap.put(new Pair<String, String>("func_150650_a", "countAdjacentRails"));
+ mInitMap.put(new Pair<String, String>("func_150663_a", "writeTag"));
+ mInitMap.put(new Pair<String, String>("func_150668_b", "getValue"));
+ mInitMap.put(new Pair<String, String>("func_150669_a", "getAction"));
+ mInitMap.put(new Pair<String, String>("func_150672_a", "getValueByCanonicalName"));
+ mInitMap.put(new Pair<String, String>("func_150673_b", "getCanonicalName"));
+ mInitMap.put(new Pair<String, String>("func_150674_a", "shouldAllowInChat"));
+ mInitMap.put(new Pair<String, String>("func_150684_a", "getValueByCanonicalName"));
+ mInitMap.put(new Pair<String, String>("func_150685_b", "getCanonicalName"));
+ mInitMap.put(new Pair<String, String>("func_150686_a", "shouldAllowInChat"));
+ mInitMap.put(new Pair<String, String>("func_150695_a", "serializeChatStyle"));
+ mInitMap.put(new Pair<String, String>("func_150696_a", "componentToJson"));
+ mInitMap.put(new Pair<String, String>("func_150699_a", "jsonToComponent"));
+ mInitMap.put(new Pair<String, String>("func_150701_a", "getAction"));
+ mInitMap.put(new Pair<String, String>("func_150702_b", "getValue"));
+ mInitMap.put(new Pair<String, String>("func_150706_a", "generateDispenserContents"));
+ mInitMap.put(new Pair<String, String>("func_150707_a", "setEnchantable"));
+ mInitMap.put(new Pair<String, String>("func_150708_a", "getItemStack"));
+ mInitMap.put(new Pair<String, String>("func_150709_a", "setMaxDamagePercent"));
+ mInitMap.put(new Pair<String, String>("func_150718_a", "closeChannel"));
+ mInitMap.put(new Pair<String, String>("func_150719_a", "setNetHandler"));
+ mInitMap.put(new Pair<String, String>("func_150721_g", "disableAutoRead"));
+ mInitMap.put(new Pair<String, String>("func_150722_a", "provideLocalClient"));
+ mInitMap.put(new Pair<String, String>("func_150723_a", "setConnectionState"));
+ mInitMap.put(new Pair<String, String>("func_150724_d", "isChannelOpen"));
+ mInitMap.put(new Pair<String, String>("func_150725_a", "scheduleOutboundPacket"));
+ mInitMap.put(new Pair<String, String>("func_150726_a", "provideLanClient"));
+ mInitMap.put(new Pair<String, String>("func_150727_a", "enableEncryption"));
+ mInitMap.put(new Pair<String, String>("func_150729_e", "getNetHandler"));
+ mInitMap.put(new Pair<String, String>("func_150730_f", "getExitMessage"));
+ mInitMap.put(new Pair<String, String>("func_150731_c", "isLocalChannel"));
+ mInitMap.put(new Pair<String, String>("func_150732_b", "dispatchPacket"));
+ mInitMap.put(new Pair<String, String>("func_150733_h", "flushOutboundQueue"));
+ mInitMap.put(new Pair<String, String>("func_150752_a", "getFromPacket"));
+ mInitMap.put(new Pair<String, String>("func_150759_c", "getId"));
+ mInitMap.put(new Pair<String, String>("func_150760_a", "getById"));
+ mInitMap.put(new Pair<String, String>("func_150775_a", "attenuate"));
+ mInitMap.put(new Pair<String, String>("func_150785_a", "writeStringToBuffer"));
+ mInitMap.put(new Pair<String, String>("func_150786_a", "writeNBTTagCompoundToBuffer"));
+ mInitMap.put(new Pair<String, String>("func_150787_b", "writeVarIntToBuffer"));
+ mInitMap.put(new Pair<String, String>("func_150788_a", "writeItemStackToBuffer"));
+ mInitMap.put(new Pair<String, String>("func_150789_c", "readStringFromBuffer"));
+ mInitMap.put(new Pair<String, String>("func_150790_a", "getVarIntSize"));
+ mInitMap.put(new Pair<String, String>("func_150791_c", "readItemStackFromBuffer"));
+ mInitMap.put(new Pair<String, String>("func_150792_a", "readVarIntFromBuffer"));
+ mInitMap.put(new Pair<String, String>("func_150793_b", "readNBTTagCompoundFromBuffer"));
+ mInitMap.put(new Pair<String, String>("func_150795_a", "findBiomePosition"));
+ mInitMap.put(new Pair<String, String>("func_150803_c", "recheckGaps"));
+ mInitMap.put(new Pair<String, String>("func_150805_f", "removeTileEntity"));
+ mInitMap.put(new Pair<String, String>("func_150806_e", "getBlockTileEntityInChunk"));
+ mInitMap.put(new Pair<String, String>("func_150807_a", "setBlockIDWithMetadata"));
+ mInitMap.put(new Pair<String, String>("func_150808_b", "getBlockLightOpacity"));
+ mInitMap.put(new Pair<String, String>("func_150810_a", "getBlock"));
+ mInitMap.put(new Pair<String, String>("func_150812_a", "setBlockTileEntityInChunk"));
+ mInitMap.put(new Pair<String, String>("func_150813_a", "addTileEntity"));
+ mInitMap.put(new Pair<String, String>("func_150818_a", "setExtBlockID"));
+ mInitMap.put(new Pair<String, String>("func_150819_a", "getBlockByExtId"));
+ mInitMap.put(new Pair<String, String>("func_150826_b", "translateToFallback"));
+ mInitMap.put(new Pair<String, String>("func_150827_a", "getLastTranslationUpdateTimeInMilliseconds"));
+ mInitMap.put(new Pair<String, String>("func_150835_j", "getBlockTileEntity"));
+ mInitMap.put(new Pair<String, String>("func_150891_b", "getIdFromItem"));
+ mInitMap.put(new Pair<String, String>("func_150892_m", "isPotionIngredient"));
+ mInitMap.put(new Pair<String, String>("func_150893_a", "getStrVsBlock"));
+ mInitMap.put(new Pair<String, String>("func_150894_a", "onBlockDestroyed"));
+ mInitMap.put(new Pair<String, String>("func_150895_a", "getSubItems"));
+ mInitMap.put(new Pair<String, String>("func_150896_i", "getPotionEffect"));
+ mInitMap.put(new Pair<String, String>("func_150897_b", "canItemHarvestBlock"));
+ mInitMap.put(new Pair<String, String>("func_150898_a", "getItemFromBlock"));
+ mInitMap.put(new Pair<String, String>("func_150899_d", "getItemById"));
+ mInitMap.put(new Pair<String, String>("func_150900_l", "registerItems"));
+ mInitMap.put(new Pair<String, String>("func_150905_g", "getHealAmount"));
+ mInitMap.put(new Pair<String, String>("func_150906_h", "getSaturationModifier"));
+ mInitMap.put(new Pair<String, String>("func_150911_c", "createMapDataPacket"));
+ mInitMap.put(new Pair<String, String>("func_150912_a", "loadMapData"));
+ mInitMap.put(new Pair<String, String>("func_150913_i", "getToolMaterial"));
+ mInitMap.put(new Pair<String, String>("func_150924_a", "placeDoorBlock"));
+ mInitMap.put(new Pair<String, String>("func_150926_b", "getRecord"));
+ mInitMap.put(new Pair<String, String>("func_150927_i", "getRecordNameLocal"));
+ mInitMap.put(new Pair<String, String>("func_150930_a", "validBookPageTagContents"));
+ mInitMap.put(new Pair<String, String>("func_150932_j", "getToolMaterialName"));
+ mInitMap.put(new Pair<String, String>("func_150951_e", "getStatName"));
+ mInitMap.put(new Pair<String, String>("func_150967_d", "getUncookedSaturationModifier"));
+ mInitMap.put(new Pair<String, String>("func_150968_a", "registerIcon"));
+ mInitMap.put(new Pair<String, String>("func_150970_e", "getCookedHealAmount"));
+ mInitMap.put(new Pair<String, String>("func_150971_g", "getUncookedIcon"));
+ mInitMap.put(new Pair<String, String>("func_150972_b", "getUnlocalizedNamePart"));
+ mInitMap.put(new Pair<String, String>("func_150973_i", "getCookable"));
+ mInitMap.put(new Pair<String, String>("func_150974_a", "getFishTypeForItemDamage"));
+ mInitMap.put(new Pair<String, String>("func_150975_c", "getUncookedHealAmount"));
+ mInitMap.put(new Pair<String, String>("func_150976_a", "getItemDamage"));
+ mInitMap.put(new Pair<String, String>("func_150977_f", "getCookedSaturationModifier"));
+ mInitMap.put(new Pair<String, String>("func_150978_a", "getFishTypeForItemStack"));
+ mInitMap.put(new Pair<String, String>("func_150979_h", "getCookedIcon"));
+ mInitMap.put(new Pair<String, String>("func_150995_f", "getBaseItemForRepair"));
+ mInitMap.put(new Pair<String, String>("func_150996_a", "setItem"));
+ mInitMap.put(new Pair<String, String>("func_150997_a", "getStrVsBlock"));
+ mInitMap.put(new Pair<String, String>("func_150998_b", "canItemHarvestBlock"));
+ mInitMap.put(new Pair<String, String>("func_150999_a", "onBlockDestroyed"));
+ mInitMap.put(new Pair<String, String>("func_151001_c", "setStackDisplayName"));
+ mInitMap.put(new Pair<String, String>("func_151003_a", "getSerializableElement"));
+ mInitMap.put(new Pair<String, String>("func_151177_a", "getOneShotStat"));
+ mInitMap.put(new Pair<String, String>("func_151187_b", "getJsonSerializableValue"));
+ mInitMap.put(new Pair<String, String>("func_151188_a", "setIntegerValue"));
+ mInitMap.put(new Pair<String, String>("func_151189_a", "getIntegerValue"));
+ mInitMap.put(new Pair<String, String>("func_151190_a", "setJsonSerializableValue"));
+ mInitMap.put(new Pair<String, String>("func_151200_h", "getJsonObjectStringFieldValue"));
+ mInitMap.put(new Pair<String, String>("func_151201_f", "jsonObjectFieldTypeIsPrimitive"));
+ mInitMap.put(new Pair<String, String>("func_151202_d", "jsonObjectFieldTypeIsArray"));
+ mInitMap.put(new Pair<String, String>("func_151203_m", "getJsonObjectIntegerFieldValue"));
+ mInitMap.put(new Pair<String, String>("func_151204_g", "jsonObjectHasNamedField"));
+ mInitMap.put(new Pair<String, String>("func_151205_a", "jsonObjectFieldTypeIsString"));
+ mInitMap.put(new Pair<String, String>("func_151206_a", "getJsonElementStringValue"));
+ mInitMap.put(new Pair<String, String>("func_151207_m", "getJsonElementAsJsonArray"));
+ mInitMap.put(new Pair<String, String>("func_151208_a", "getJsonObjectIntegerFieldValueOrDefault"));
+ mInitMap.put(new Pair<String, String>("func_151209_a", "getJsonObjectBooleanFieldValueOrDefault"));
+ mInitMap.put(new Pair<String, String>("func_151210_l", "getElementAsJsonObject"));
+ mInitMap.put(new Pair<String, String>("func_151211_a", "jsonElementTypeIsString"));
+ mInitMap.put(new Pair<String, String>("func_151212_i", "getJsonObjectBooleanFieldValue"));
+ mInitMap.put(new Pair<String, String>("func_151213_a", "getJsonObjectJsonArrayFieldOrDefault"));
+ mInitMap.put(new Pair<String, String>("func_151214_t", "getJsonObjectJsonArrayField"));
+ mInitMap.put(new Pair<String, String>("func_151215_f", "getJsonElementIntegerValue"));
+ mInitMap.put(new Pair<String, String>("func_151216_b", "getJsonElementBooleanValue"));
+ mInitMap.put(new Pair<String, String>("func_151217_k", "getJsonObjectFloatFieldValue"));
+ mInitMap.put(new Pair<String, String>("func_151218_a", "getJsonObjectFieldOrDefault"));
+ mInitMap.put(new Pair<String, String>("func_151219_a", "getJsonObjectStringFieldValueOrDefault"));
+ mInitMap.put(new Pair<String, String>("func_151220_d", "getJsonElementFloatValue"));
+ mInitMap.put(new Pair<String, String>("func_151221_a", "getJsonObjectFloatFieldValueOrDefault"));
+ mInitMap.put(new Pair<String, String>("func_151222_d", "getJsonElementTypeDescription"));
+ mInitMap.put(new Pair<String, String>("func_151223_a", "downloadResourcePack"));
+ mInitMap.put(new Pair<String, String>("func_151225_a", "post"));
+ mInitMap.put(new Pair<String, String>("func_151226_a", "postMap"));
+ mInitMap.put(new Pair<String, String>("func_151235_d", "isPowerOfTwo"));
+ mInitMap.put(new Pair<String, String>("func_151236_b", "roundUpToPowerOfTwo"));
+ mInitMap.put(new Pair<String, String>("func_151237_a", "clamp_double"));
+ mInitMap.put(new Pair<String, String>("func_151238_b", "denormalizeClamp"));
+ mInitMap.put(new Pair<String, String>("func_151239_c", "calculateLogBaseTwo"));
+ mInitMap.put(new Pair<String, String>("func_151240_a", "randomFloatClamp"));
+ mInitMap.put(new Pair<String, String>("func_151241_e", "calculateLogBaseTwoDeBruijn"));
+ mInitMap.put(new Pair<String, String>("func_151243_f", "getIconItemDamage"));
+ mInitMap.put(new Pair<String, String>("func_151244_d", "getIconItemStack"));
+ mInitMap.put(new Pair<String, String>("func_151246_b", "isNullOrEmpty"));
+ mInitMap.put(new Pair<String, String>("func_151247_a", "sendToAllTrackingEntity"));
+ mInitMap.put(new Pair<String, String>("func_151250_a", "markBlockForUpdate"));
+ mInitMap.put(new Pair<String, String>("func_151251_a", "sendToAllPlayersWatchingChunk"));
+ mInitMap.put(new Pair<String, String>("func_151252_a", "sendTileToAllPlayersWatchingChunk"));
+ mInitMap.put(new Pair<String, String>("func_151253_a", "flagChunkForUpdate"));
+ mInitMap.put(new Pair<String, String>("func_151255_a", "getStringBuffer"));
+ mInitMap.put(new Pair<String, String>("func_151256_a", "writeAndFlush"));
+ mInitMap.put(new Pair<String, String>("func_151265_a", "addLanEndpoint"));
+ mInitMap.put(new Pair<String, String>("func_151267_d", "getServer"));
+ mInitMap.put(new Pair<String, String>("func_151268_b", "terminateEndpoints"));
+ mInitMap.put(new Pair<String, String>("func_151269_c", "networkTick"));
+ mInitMap.put(new Pair<String, String>("func_151270_a", "addLocalEndpoint"));
+ mInitMap.put(new Pair<String, String>("func_151303_a", "getName"));
+ mInitMap.put(new Pair<String, String>("func_151304_b", "getProtocol"));
+ mInitMap.put(new Pair<String, String>("func_151315_a", "setServerDescription"));
+ mInitMap.put(new Pair<String, String>("func_151316_d", "getFavicon"));
+ mInitMap.put(new Pair<String, String>("func_151317_a", "getServerDescription"));
+ mInitMap.put(new Pair<String, String>("func_151318_b", "getPlayerCountData"));
+ mInitMap.put(new Pair<String, String>("func_151319_a", "setPlayerCountData"));
+ mInitMap.put(new Pair<String, String>("func_151320_a", "setFavicon"));
+ mInitMap.put(new Pair<String, String>("func_151321_a", "setProtocolVersionInfo"));
+ mInitMap.put(new Pair<String, String>("func_151322_c", "getProtocolVersionInfo"));
+ mInitMap.put(new Pair<String, String>("func_151330_a", "setPlayers"));
+ mInitMap.put(new Pair<String, String>("func_151331_c", "getPlayers"));
+ mInitMap.put(new Pair<String, String>("func_151332_a", "getMaxPlayers"));
+ mInitMap.put(new Pair<String, String>("func_151333_b", "getOnlinePlayerCount"));
+ mInitMap.put(new Pair<String, String>("func_151337_f", "getBlock"));
+ mInitMap.put(new Pair<String, String>("func_151338_e", "getEventParameter"));
+ mInitMap.put(new Pair<String, String>("func_151339_d", "getEventID"));
+ mInitMap.put(new Pair<String, String>("func_151353_a", "registerDispenserBehaviors"));
+ mInitMap.put(new Pair<String, String>("func_151354_b", "register"));
+ mInitMap.put(new Pair<String, String>("func_151357_h", "showWorldInfoNotice"));
+ mInitMap.put(new Pair<String, String>("func_151358_j", "setNotificationData"));
+ mInitMap.put(new Pair<String, String>("func_151393_a", "addSmeltingRecipeForBlock"));
+ mInitMap.put(new Pair<String, String>("func_151394_a", "addSmeltingRecipe"));
+ mInitMap.put(new Pair<String, String>("func_151395_a", "getSmeltingResult"));
+ mInitMap.put(new Pair<String, String>("func_151396_a", "addSmelting"));
+ mInitMap.put(new Pair<String, String>("func_151398_b", "getSmeltingExperience"));
+ mInitMap.put(new Pair<String, String>("func_151426_a", "getEnumChatVisibility"));
+ mInitMap.put(new Pair<String, String>("func_151428_a", "getChatVisibility"));
+ mInitMap.put(new Pair<String, String>("func_151429_b", "getResourceKey"));
+ mInitMap.put(new Pair<String, String>("func_151438_a", "getSoundLevel"));
+ mInitMap.put(new Pair<String, String>("func_151439_a", "setSoundLevel"));
+ mInitMap.put(new Pair<String, String>("func_151440_a", "setOptionKeyBinding"));
+ mInitMap.put(new Pair<String, String>("func_151460_a", "getBlockAtEntityViewpoint"));
+ mInitMap.put(new Pair<String, String>("func_151461_a", "getChatComponent"));
+ mInitMap.put(new Pair<String, String>("func_151462_b", "setKeyCode"));
+ mInitMap.put(new Pair<String, String>("func_151463_i", "getKeyCode"));
+ mInitMap.put(new Pair<String, String>("func_151464_g", "getKeyDescription"));
+ mInitMap.put(new Pair<String, String>("func_151466_e", "getKeyCategory"));
+ mInitMap.put(new Pair<String, String>("func_151467_c", "getKeybinds"));
+ mInitMap.put(new Pair<String, String>("func_151468_f", "isPressed"));
+ mInitMap.put(new Pair<String, String>("func_151469_h", "getKeyCodeDefault"));
+ mInitMap.put(new Pair<String, String>("func_151470_d", "getIsKeyPressed"));
+ mInitMap.put(new Pair<String, String>("func_151498_a", "isStairOrSlab"));
+ mInitMap.put(new Pair<String, String>("func_151499_f", "getEatingGrassTimer"));
+ mInitMap.put(new Pair<String, String>("func_151503_a", "getWoodenDoorBlock"));
+ mInitMap.put(new Pair<String, String>("func_151507_a", "writeWatchedListToPacketBuffer"));
+ mInitMap.put(new Pair<String, String>("func_151508_b", "readWatchedListFromPacketBuffer"));
+ mInitMap.put(new Pair<String, String>("func_151510_a", "writeWatchableObjectToPacketBuffer"));
+ mInitMap.put(new Pair<String, String>("func_151517_h", "isDamageAbsolute"));
+ mInitMap.put(new Pair<String, String>("func_151518_m", "setDamageIsAbsolute"));
+ mInitMap.put(new Pair<String, String>("func_151519_b", "getDeathMessage"));
+ mInitMap.put(new Pair<String, String>("func_151523_a", "getDifficultyEnum"));
+ mInitMap.put(new Pair<String, String>("func_151525_a", "getDifficultyId"));
+ mInitMap.put(new Pair<String, String>("func_151526_b", "getDifficultyResourceKey"));
+ mInitMap.put(new Pair<String, String>("func_151539_a", "generate"));
+ mInitMap.put(new Pair<String, String>("func_151545_a", "getNearestInstance"));
+ mInitMap.put(new Pair<String, String>("func_151548_a", "getBlockAtCurrentPosition"));
+ mInitMap.put(new Pair<String, String>("func_151549_a", "fillWithBlocks"));
+ mInitMap.put(new Pair<String, String>("func_151550_a", "placeBlockAtCurrentPosition"));
+ mInitMap.put(new Pair<String, String>("func_151551_a", "randomlyFillWithBlocks"));
+ mInitMap.put(new Pair<String, String>("func_151555_a", "getMetadataWithOffset"));
+ mInitMap.put(new Pair<String, String>("func_151556_a", "fillWithMetadataBlocks"));
+ mInitMap.put(new Pair<String, String>("func_151565_r", "getMaterialMapColor"));
+ mInitMap.put(new Pair<String, String>("func_151616_a", "biomesEqualOrMesaPlateau"));
+ mInitMap.put(new Pair<String, String>("func_151617_b", "selectModeOrRandom"));
+ mInitMap.put(new Pair<String, String>("func_151618_b", "isBiomeOceanic"));
+ mInitMap.put(new Pair<String, String>("func_151619_a", "selectRandom"));
+ mInitMap.put(new Pair<String, String>("func_151624_d", "getIntsHeatIce"));
+ mInitMap.put(new Pair<String, String>("func_151625_e", "getIntsSpecial"));
+ mInitMap.put(new Pair<String, String>("func_151626_c", "getIntsCoolWarm"));
+ mInitMap.put(new Pair<String, String>("func_151634_b", "canBiomesBeNeighbors"));
+ mInitMap.put(new Pair<String, String>("func_151635_b", "replaceBiomeEdge"));
+ mInitMap.put(new Pair<String, String>("func_151636_a", "replaceBiomeEdgeIfNecessary"));
+ mInitMap.put(new Pair<String, String>("func_151644_a", "getMapColorForBlockColored"));
+ mInitMap.put(new Pair<String, String>("func_151685_b", "getBaseItemForRepair"));
+ mInitMap.put(new Pair<String, String>("func_151686_a", "addStats"));
+ mInitMap.put(new Pair<String, String>("func_152121_a", "onSkinAvailable"));
+ mInitMap.put(new Pair<String, String>("func_152122_n", "hasCape"));
+ mInitMap.put(new Pair<String, String>("func_152123_o", "hasSkin"));
+ mInitMap.put(new Pair<String, String>("func_152125_a", "drawScaledCustomSizeModalRect"));
+ mInitMap.put(new Pair<String, String>("func_152126_a", "renderStreamIndicator"));
+ mInitMap.put(new Pair<String, String>("func_152340_a", "readImageToBuffer"));
+ mInitMap.put(new Pair<String, String>("func_152341_N", "getTwitchDetails"));
+ mInitMap.put(new Pair<String, String>("func_152342_ad", "getSkinManager"));
+ mInitMap.put(new Pair<String, String>("func_152343_a", "addScheduledTask"));
+ mInitMap.put(new Pair<String, String>("func_152344_a", "addScheduledTask"));
+ mInitMap.put(new Pair<String, String>("func_152345_ab", "isCallingFromMinecraftThread"));
+ mInitMap.put(new Pair<String, String>("func_152346_Z", "getTwitchStream"));
+ mInitMap.put(new Pair<String, String>("func_152347_ac", "getSessionService"));
+ mInitMap.put(new Pair<String, String>("func_152348_aa", "dispatchKeypresses"));
+ mInitMap.put(new Pair<String, String>("func_152349_b", "isUnicode"));
+ mInitMap.put(new Pair<String, String>("func_152357_F", "getGameProfiles"));
+ mInitMap.put(new Pair<String, String>("func_152358_ax", "getPlayerProfileCache"));
+ mInitMap.put(new Pair<String, String>("func_152359_aw", "getGameProfileRepository"));
+ mInitMap.put(new Pair<String, String>("func_152361_a", "setConfigManager"));
+ mInitMap.put(new Pair<String, String>("func_152368_aE", "convertFiles"));
+ mInitMap.put(new Pair<String, String>("func_152369_aG", "sleepFiveSeconds"));
+ mInitMap.put(new Pair<String, String>("func_152372_a", "notifyOperators"));
+ mInitMap.put(new Pair<String, String>("func_152373_a", "notifyOperators"));
+ mInitMap.put(new Pair<String, String>("func_152374_a", "notifyOperators"));
+ mInitMap.put(new Pair<String, String>("func_152378_a", "getPlayerEntityByUUID"));
+ mInitMap.put(new Pair<String, String>("func_152379_p", "getRenderDistanceChunks"));
+ mInitMap.put(new Pair<String, String>("func_152421_a", "setSessionType"));
+ mInitMap.put(new Pair<String, String>("func_152428_f", "getSessionType"));
+ mInitMap.put(new Pair<String, String>("func_152436_a", "render"));
+ mInitMap.put(new Pair<String, String>("func_152437_a", "render"));
+ mInitMap.put(new Pair<String, String>("func_152446_a", "read"));
+ mInitMap.put(new Pair<String, String>("func_152447_a", "readType"));
+ mInitMap.put(new Pair<String, String>("func_152448_b", "readKey"));
+ mInitMap.put(new Pair<String, String>("func_152449_a", "readNBT"));
+ mInitMap.put(new Pair<String, String>("func_152450_a", "addSpaceRead"));
+ mInitMap.put(new Pair<String, String>("func_152457_a", "decompress"));
+ mInitMap.put(new Pair<String, String>("func_152458_a", "readFromFile"));
+ mInitMap.put(new Pair<String, String>("func_152459_a", "readGameProfileFromNBT"));
+ mInitMap.put(new Pair<String, String>("func_152460_a", "writeGameProfileToNBT"));
+ mInitMap.put(new Pair<String, String>("func_152493_a", "getTotalBytes"));
+ mInitMap.put(new Pair<String, String>("func_152495_b", "getCount"));
+ mInitMap.put(new Pair<String, String>("func_152506_a", "getOfflineProfile"));
+ mInitMap.put(new Pair<String, String>("func_152583_a", "copyFrom"));
+ mInitMap.put(new Pair<String, String>("func_152584_a", "setResourceMode"));
+ mInitMap.put(new Pair<String, String>("func_152585_d", "isLanServer"));
+ mInitMap.put(new Pair<String, String>("func_152586_b", "getResourceMode"));
+ mInitMap.put(new Pair<String, String>("func_152589_a", "getMotd"));
+ mInitMap.put(new Pair<String, String>("func_152596_g", "canSendCommands"));
+ mInitMap.put(new Pair<String, String>("func_152597_c", "removePlayerFromWhitelist"));
+ mInitMap.put(new Pair<String, String>("func_152598_l", "getWhitelistedPlayerNames"));
+ mInitMap.put(new Pair<String, String>("func_152599_k", "getWhitelistedPlayers"));
+ mInitMap.put(new Pair<String, String>("func_152600_g", "getAllProfiles"));
+ mInitMap.put(new Pair<String, String>("func_152601_d", "addWhitelistedPlayer"));
+ mInitMap.put(new Pair<String, String>("func_152602_a", "getPlayerStatsFile"));
+ mInitMap.put(new Pair<String, String>("func_152603_m", "getOppedPlayers"));
+ mInitMap.put(new Pair<String, String>("func_152605_a", "addOp"));
+ mInitMap.put(new Pair<String, String>("func_152606_n", "getOppedPlayerNames"));
+ mInitMap.put(new Pair<String, String>("func_152607_e", "canJoin"));
+ mInitMap.put(new Pair<String, String>("func_152608_h", "getBannedPlayers"));
+ mInitMap.put(new Pair<String, String>("func_152609_b", "getPlayerNamesString"));
+ mInitMap.put(new Pair<String, String>("func_152610_b", "removeOp"));
+ mInitMap.put(new Pair<String, String>("func_152611_a", "setViewDistance"));
+ mInitMap.put(new Pair<String, String>("func_152612_a", "getPlayerByUsername"));
+ mInitMap.put(new Pair<String, String>("func_152617_w", "saveUserBanList"));
+ mInitMap.put(new Pair<String, String>("func_152618_v", "saveIpBanList"));
+ mInitMap.put(new Pair<String, String>("func_152619_x", "loadIpBanList"));
+ mInitMap.put(new Pair<String, String>("func_152620_y", "loadUserBansList"));
+ mInitMap.put(new Pair<String, String>("func_152640_f", "getValue"));
+ mInitMap.put(new Pair<String, String>("func_152641_a", "onSerialization"));
+ mInitMap.put(new Pair<String, String>("func_152655_a", "getGameProfileForUsername"));
+ mInitMap.put(new Pair<String, String>("func_152678_f", "writeChanges"));
+ mInitMap.put(new Pair<String, String>("func_152679_g", "readSavedFile"));
+ mInitMap.put(new Pair<String, String>("func_152680_h", "removeExpired"));
+ mInitMap.put(new Pair<String, String>("func_152681_a", "getObjectKey"));
+ mInitMap.put(new Pair<String, String>("func_152682_a", "createEntry"));
+ mInitMap.put(new Pair<String, String>("func_152683_b", "getEntry"));
+ mInitMap.put(new Pair<String, String>("func_152684_c", "removeEntry"));
+ mInitMap.put(new Pair<String, String>("func_152685_a", "getKeys"));
+ mInitMap.put(new Pair<String, String>("func_152686_a", "setLanServer"));
+ mInitMap.put(new Pair<String, String>("func_152687_a", "addEntry"));
+ mInitMap.put(new Pair<String, String>("func_152688_e", "getValues"));
+ mInitMap.put(new Pair<String, String>("func_152689_b", "isLanServer"));
+ mInitMap.put(new Pair<String, String>("func_152690_d", "hasEntries"));
+ mInitMap.put(new Pair<String, String>("func_152691_c", "getSaveFile"));
+ mInitMap.put(new Pair<String, String>("func_152692_d", "hasEntry"));
+ mInitMap.put(new Pair<String, String>("func_152700_a", "getGameProfileFromName"));
+ mInitMap.put(new Pair<String, String>("func_152701_b", "getProfileId"));
+ mInitMap.put(new Pair<String, String>("func_152702_a", "isBanned"));
+ mInitMap.put(new Pair<String, String>("func_152703_a", "isUsernameBanned"));
+ mInitMap.put(new Pair<String, String>("func_152707_c", "addressToString"));
+ mInitMap.put(new Pair<String, String>("func_152708_a", "isBanned"));
+ mInitMap.put(new Pair<String, String>("func_152709_b", "getBanEntry"));
+ mInitMap.put(new Pair<String, String>("func_152710_d", "convertWhitelist"));
+ mInitMap.put(new Pair<String, String>("func_152711_b", "mkdir"));
+ mInitMap.put(new Pair<String, String>("func_152712_b", "hasUnconvertableFiles"));
+ mInitMap.put(new Pair<String, String>("func_152713_b", "parseDate"));
+ mInitMap.put(new Pair<String, String>("func_152714_a", "tryConvert"));
+ mInitMap.put(new Pair<String, String>("func_152715_c", "hasUnconvertablePlayerFiles"));
+ mInitMap.put(new Pair<String, String>("func_152717_a", "lookupNames"));
+ mInitMap.put(new Pair<String, String>("func_152718_c", "convertOplist"));
+ mInitMap.put(new Pair<String, String>("func_152721_a", "readFile"));
+ mInitMap.put(new Pair<String, String>("func_152722_b", "convertIpBanlist"));
+ mInitMap.put(new Pair<String, String>("func_152723_a", "convertSaveFiles"));
+ mInitMap.put(new Pair<String, String>("func_152724_a", "convertUserBanlist"));
+ mInitMap.put(new Pair<String, String>("func_152725_d", "getPlayersDirectory"));
+ mInitMap.put(new Pair<String, String>("func_152727_c", "backupConverted"));
+ mInitMap.put(new Pair<String, String>("func_152750_a", "deserializeEntry"));
+ mInitMap.put(new Pair<String, String>("func_152751_a", "serializeEntry"));
+ mInitMap.put(new Pair<String, String>("func_152754_s", "getJsonObject"));
+ mInitMap.put(new Pair<String, String>("func_152755_a", "get"));
+ mInitMap.put(new Pair<String, String>("func_152764_a", "parsePass"));
+ mInitMap.put(new Pair<String, String>("func_152765_a", "parseGroup"));
+ mInitMap.put(new Pair<String, String>("func_152767_b", "addStatToSnooper"));
+ mInitMap.put(new Pair<String, String>("func_152768_a", "addClientStat"));
+ mInitMap.put(new Pair<String, String>("func_152788_a", "loadSkinFromCache"));
+ mInitMap.put(new Pair<String, String>("func_152789_a", "loadSkin"));
+ mInitMap.put(new Pair<String, String>("func_152792_a", "loadSkin"));
+ mInitMap.put(new Pair<String, String>("func_152825_o", "isIngestTesting"));
+ mInitMap.put(new Pair<String, String>("func_152839_p", "isBroadcastPaused"));
+ mInitMap.put(new Pair<String, String>("func_152850_m", "isBroadcasting"));
+ mInitMap.put(new Pair<String, String>("func_152856_w", "isReady"));
+ mInitMap.put(new Pair<String, String>("func_152919_o", "isPaused"));
+ mInitMap.put(new Pair<String, String>("func_152923_i", "shutdownStream"));
+ mInitMap.put(new Pair<String, String>("func_153157_c", "glGetShaderi"));
+ mInitMap.put(new Pair<String, String>("func_153158_d", "glGetShaderInfoLog"));
+ mInitMap.put(new Pair<String, String>("func_153159_d", "glUniform4"));
+ mInitMap.put(new Pair<String, String>("func_153160_c", "glUniformMatrix4"));
+ mInitMap.put(new Pair<String, String>("func_153161_d", "glUseProgram"));
+ mInitMap.put(new Pair<String, String>("func_153162_d", "glUniform4"));
+ mInitMap.put(new Pair<String, String>("func_153163_f", "glUniform1i"));
+ mInitMap.put(new Pair<String, String>("func_153164_b", "glGetAttribLocation"));
+ mInitMap.put(new Pair<String, String>("func_153166_e", "glGetProgramInfoLog"));
+ mInitMap.put(new Pair<String, String>("func_153168_a", "glUniform1"));
+ mInitMap.put(new Pair<String, String>("func_153169_a", "glShaderSource"));
+ mInitMap.put(new Pair<String, String>("func_153170_c", "glCompileShader"));
+ mInitMap.put(new Pair<String, String>("func_153173_a", "glUniformMatrix2"));
+ mInitMap.put(new Pair<String, String>("func_153175_a", "glGetProgrami"));
+ mInitMap.put(new Pair<String, String>("func_153177_b", "glUniform2"));
+ mInitMap.put(new Pair<String, String>("func_153178_b", "glAttachShader"));
+ mInitMap.put(new Pair<String, String>("func_153179_f", "glLinkProgram"));
+ mInitMap.put(new Pair<String, String>("func_153180_a", "glDeleteShader"));
+ mInitMap.put(new Pair<String, String>("func_153181_a", "glUniform1"));
+ mInitMap.put(new Pair<String, String>("func_153182_b", "glUniform2"));
+ }
+
+
+ private static void init3() {
+ mInitMap.put(new Pair<String, String>("func_153183_d", "glCreateProgram"));
+ mInitMap.put(new Pair<String, String>("func_153187_e", "glDeleteProgram"));
+ mInitMap.put(new Pair<String, String>("func_153189_b", "glUniformMatrix3"));
+ mInitMap.put(new Pair<String, String>("func_153191_c", "glUniform3"));
+ mInitMap.put(new Pair<String, String>("func_153192_c", "glUniform3"));
+ mInitMap.put(new Pair<String, String>("func_153194_a", "glGetUniformLocation"));
+ mInitMap.put(new Pair<String, String>("func_153195_b", "glCreateShader"));
+ mInitMap.put(new Pair<String, String>("func_154310_c", "getButtonHeight"));
+ mInitMap.put(new Pair<String, String>("func_154311_a", "setText"));
+ mInitMap.put(new Pair<String, String>("func_154313_b", "setEnabled"));
+ mInitMap.put(new Pair<String, String>("func_154314_d", "getId"));
+ mInitMap.put(new Pair<String, String>("func_154315_e", "getEnabled"));
+ mInitMap.put(new Pair<String, String>("func_154316_f", "getPositionY"));
+ mInitMap.put(new Pair<String, String>("func_154317_g", "getRealmsButton"));
+ mInitMap.put(new Pair<String, String>("func_154331_x", "getLastActiveTime"));
+ mInitMap.put(new Pair<String, String>("func_154346_a", "hasAcceptedEULA"));
+ mInitMap.put(new Pair<String, String>("func_154347_a", "loadEULAFile"));
+ mInitMap.put(new Pair<String, String>("func_154348_b", "createEULAFile"));
+ mInitMap.put(new Pair<String, String>("func_155759_m", "setServerResourcePack"));
+ mInitMap.put(new Pair<String, String>("func_70000_a", "addServerStatsToSnooper"));
+ mInitMap.put(new Pair<String, String>("func_70001_b", "addServerTypeToSnooper"));
+ mInitMap.put(new Pair<String, String>("func_70002_Q", "isSnooperEnabled"));
+ mInitMap.put(new Pair<String, String>("func_70003_b", "canCommandSenderUseCommand"));
+ mInitMap.put(new Pair<String, String>("func_70005_c_", "getCommandSenderName"));
+ mInitMap.put(new Pair<String, String>("func_70007_b", "resetLog"));
+ mInitMap.put(new Pair<String, String>("func_70008_c", "getLogContents"));
+ mInitMap.put(new Pair<String, String>("func_70011_f", "getDistance"));
+ mInitMap.put(new Pair<String, String>("func_70012_b", "setLocationAndAngles"));
+ mInitMap.put(new Pair<String, String>("func_70013_c", "getBrightness"));
+ mInitMap.put(new Pair<String, String>("func_70014_b", "writeEntityToNBT"));
+ mInitMap.put(new Pair<String, String>("func_70015_d", "setFire"));
+ mInitMap.put(new Pair<String, String>("func_70016_h", "setVelocity"));
+ mInitMap.put(new Pair<String, String>("func_70018_K", "setBeenAttacked"));
+ mInitMap.put(new Pair<String, String>("func_70019_c", "setEating"));
+ mInitMap.put(new Pair<String, String>("func_70020_e", "readFromNBT"));
+ mInitMap.put(new Pair<String, String>("func_70021_al", "getParts"));
+ mInitMap.put(new Pair<String, String>("func_70022_Q", "getEntityString"));
+ mInitMap.put(new Pair<String, String>("func_70024_g", "addVelocity"));
+ mInitMap.put(new Pair<String, String>("func_70026_G", "isWet"));
+ mInitMap.put(new Pair<String, String>("func_70027_ad", "isBurning"));
+ mInitMap.put(new Pair<String, String>("func_70028_i", "isEntityEqual"));
+ mInitMap.put(new Pair<String, String>("func_70029_a", "setWorld"));
+ mInitMap.put(new Pair<String, String>("func_70030_z", "onEntityUpdate"));
+ mInitMap.put(new Pair<String, String>("func_70031_b", "setSprinting"));
+ mInitMap.put(new Pair<String, String>("func_70032_d", "getDistanceToEntity"));
+ mInitMap.put(new Pair<String, String>("func_70033_W", "getYOffset"));
+ mInitMap.put(new Pair<String, String>("func_70034_d", "setRotationYawHead"));
+ mInitMap.put(new Pair<String, String>("func_70035_c", "getInventory"));
+ mInitMap.put(new Pair<String, String>("func_70037_a", "readEntityFromNBT"));
+ mInitMap.put(new Pair<String, String>("func_70038_c", "isOffsetPositionInLiquid"));
+ mInitMap.put(new Pair<String, String>("func_70039_c", "writeToNBTOptional"));
+ mInitMap.put(new Pair<String, String>("func_70040_Z", "getLookVec"));
+ mInitMap.put(new Pair<String, String>("func_70041_e_", "canTriggerWalking"));
+ mInitMap.put(new Pair<String, String>("func_70042_X", "getMountedYOffset"));
+ mInitMap.put(new Pair<String, String>("func_70043_V", "updateRiderPosition"));
+ mInitMap.put(new Pair<String, String>("func_70044_A", "setOnFireFromLava"));
+ mInitMap.put(new Pair<String, String>("func_70045_F", "isImmuneToFire"));
+ mInitMap.put(new Pair<String, String>("func_70046_E", "getBoundingBox"));
+ mInitMap.put(new Pair<String, String>("func_70047_e", "getEyeHeight"));
+ mInitMap.put(new Pair<String, String>("func_70049_a", "mInitMap.put(newFloatNBTList"));
+ mInitMap.put(new Pair<String, String>("func_70050_g", "setAir"));
+ mInitMap.put(new Pair<String, String>("func_70051_ag", "isSprinting"));
+ mInitMap.put(new Pair<String, String>("func_70052_a", "setFlag"));
+ mInitMap.put(new Pair<String, String>("func_70053_R", "getShadowSize"));
+ mInitMap.put(new Pair<String, String>("func_70055_a", "isInsideOfMaterial"));
+ mInitMap.put(new Pair<String, String>("func_70056_a", "setPositionAndRotation2"));
+ mInitMap.put(new Pair<String, String>("func_70057_ab", "performHurtAnimation"));
+ mInitMap.put(new Pair<String, String>("func_70058_J", "handleLavaMovement"));
+ mInitMap.put(new Pair<String, String>("func_70060_a", "moveFlying"));
+ mInitMap.put(new Pair<String, String>("func_70062_b", "setCurrentItemOrArmor"));
+ mInitMap.put(new Pair<String, String>("func_70063_aa", "setInPortal"));
+ mInitMap.put(new Pair<String, String>("func_70064_a", "updateFallState"));
+ mInitMap.put(new Pair<String, String>("func_70065_x", "preparePlayerToSpawn"));
+ mInitMap.put(new Pair<String, String>("func_70066_B", "extinguish"));
+ mInitMap.put(new Pair<String, String>("func_70067_L", "canBeCollidedWith"));
+ mInitMap.put(new Pair<String, String>("func_70068_e", "getDistanceSqToEntity"));
+ mInitMap.put(new Pair<String, String>("func_70069_a", "fall"));
+ mInitMap.put(new Pair<String, String>("func_70070_b", "getBrightnessForRender"));
+ mInitMap.put(new Pair<String, String>("func_70071_h_", "onUpdate"));
+ mInitMap.put(new Pair<String, String>("func_70072_I", "handleWaterMovement"));
+ mInitMap.put(new Pair<String, String>("func_70074_a", "onKillEntity"));
+ mInitMap.put(new Pair<String, String>("func_70075_an", "canAttackWithItem"));
+ mInitMap.put(new Pair<String, String>("func_70076_C", "kill"));
+ mInitMap.put(new Pair<String, String>("func_70077_a", "onStruckByLightning"));
+ mInitMap.put(new Pair<String, String>("func_70078_a", "mountEntity"));
+ mInitMap.put(new Pair<String, String>("func_70079_am", "getRotationYawHead"));
+ mInitMap.put(new Pair<String, String>("func_70080_a", "setPositionAndRotation"));
+ mInitMap.put(new Pair<String, String>("func_70081_e", "dealFireDamage"));
+ mInitMap.put(new Pair<String, String>("func_70082_c", "setAngles"));
+ mInitMap.put(new Pair<String, String>("func_70083_f", "getFlag"));
+ mInitMap.put(new Pair<String, String>("func_70084_c", "addToPlayerScore"));
+ mInitMap.put(new Pair<String, String>("func_70085_c", "interact"));
+ mInitMap.put(new Pair<String, String>("func_70086_ai", "getAir"));
+ mInitMap.put(new Pair<String, String>("func_70087_a", "mInitMap.put(newDoubleNBTList"));
+ mInitMap.put(new Pair<String, String>("func_70088_a", "entityInit"));
+ mInitMap.put(new Pair<String, String>("func_70089_S", "isEntityAlive"));
+ mInitMap.put(new Pair<String, String>("func_70090_H", "isInWater"));
+ mInitMap.put(new Pair<String, String>("func_70091_d", "moveEntity"));
+ mInitMap.put(new Pair<String, String>("func_70092_e", "getDistanceSq"));
+ mInitMap.put(new Pair<String, String>("func_70093_af", "isSneaking"));
+ mInitMap.put(new Pair<String, String>("func_70094_T", "isEntityInsideOpaqueBlock"));
+ mInitMap.put(new Pair<String, String>("func_70095_a", "setSneaking"));
+ mInitMap.put(new Pair<String, String>("func_70096_w", "getDataWatcher"));
+ mInitMap.put(new Pair<String, String>("func_70097_a", "attackEntityFrom"));
+ mInitMap.put(new Pair<String, String>("func_70098_U", "updateRidden"));
+ mInitMap.put(new Pair<String, String>("func_70099_a", "entityDropItem"));
+ mInitMap.put(new Pair<String, String>("func_70100_b_", "onCollideWithPlayer"));
+ mInitMap.put(new Pair<String, String>("func_70101_b", "setRotation"));
+ mInitMap.put(new Pair<String, String>("func_70103_a", "handleHealthUpdate"));
+ mInitMap.put(new Pair<String, String>("func_70104_M", "canBePushed"));
+ mInitMap.put(new Pair<String, String>("func_70105_a", "setSize"));
+ mInitMap.put(new Pair<String, String>("func_70106_y", "setDead"));
+ mInitMap.put(new Pair<String, String>("func_70107_b", "setPosition"));
+ mInitMap.put(new Pair<String, String>("func_70108_f", "applyEntityCollision"));
+ mInitMap.put(new Pair<String, String>("func_70109_d", "writeToNBT"));
+ mInitMap.put(new Pair<String, String>("func_70110_aj", "setInWeb"));
+ mInitMap.put(new Pair<String, String>("func_70111_Y", "getCollisionBorderSize"));
+ mInitMap.put(new Pair<String, String>("func_70112_a", "isInRangeToRenderDist"));
+ mInitMap.put(new Pair<String, String>("func_70113_ah", "isEating"));
+ mInitMap.put(new Pair<String, String>("func_70114_g", "getCollisionBox"));
+ mInitMap.put(new Pair<String, String>("func_70115_ae", "isRiding"));
+ mInitMap.put(new Pair<String, String>("func_70184_a", "onImpact"));
+ mInitMap.put(new Pair<String, String>("func_70185_h", "getGravityVelocity"));
+ mInitMap.put(new Pair<String, String>("func_70186_c", "setThrowableHeading"));
+ mInitMap.put(new Pair<String, String>("func_70196_i", "getPotionDamage"));
+ mInitMap.put(new Pair<String, String>("func_70220_a", "moveTowards"));
+ mInitMap.put(new Pair<String, String>("func_70227_a", "onImpact"));
+ mInitMap.put(new Pair<String, String>("func_70239_b", "setDamage"));
+ mInitMap.put(new Pair<String, String>("func_70240_a", "setKnockbackStrength"));
+ mInitMap.put(new Pair<String, String>("func_70241_g", "getIsCritical"));
+ mInitMap.put(new Pair<String, String>("func_70242_d", "getDamage"));
+ mInitMap.put(new Pair<String, String>("func_70243_d", "setIsCritical"));
+ mInitMap.put(new Pair<String, String>("func_70265_b", "setTimeSinceHit"));
+ mInitMap.put(new Pair<String, String>("func_70266_a", "setDamageTaken"));
+ mInitMap.put(new Pair<String, String>("func_70267_i", "getForwardDirection"));
+ mInitMap.put(new Pair<String, String>("func_70268_h", "getTimeSinceHit"));
+ mInitMap.put(new Pair<String, String>("func_70269_c", "setForwardDirection"));
+ mInitMap.put(new Pair<String, String>("func_70270_d", "setIsBoatEmpty"));
+ mInitMap.put(new Pair<String, String>("func_70271_g", "getDamageTaken"));
+ mInitMap.put(new Pair<String, String>("func_70288_d", "setAgeToCreativeDespawnTime"));
+ mInitMap.put(new Pair<String, String>("func_70289_a", "combineItems"));
+ mInitMap.put(new Pair<String, String>("func_70295_k_", "openChest"));
+ mInitMap.put(new Pair<String, String>("func_70296_d", "markDirty"));
+ mInitMap.put(new Pair<String, String>("func_70297_j_", "getInventoryStackLimit"));
+ mInitMap.put(new Pair<String, String>("func_70298_a", "decrStackSize"));
+ mInitMap.put(new Pair<String, String>("func_70299_a", "setInventorySlotContents"));
+ mInitMap.put(new Pair<String, String>("func_70300_a", "isUseableByPlayer"));
+ mInitMap.put(new Pair<String, String>("func_70301_a", "getStackInSlot"));
+ mInitMap.put(new Pair<String, String>("func_70302_i_", "getSizeInventory"));
+ mInitMap.put(new Pair<String, String>("func_70304_b", "getStackInSlotOnClosing"));
+ mInitMap.put(new Pair<String, String>("func_70305_f", "closeChest"));
+ mInitMap.put(new Pair<String, String>("func_70429_k", "decrementAnimations"));
+ mInitMap.put(new Pair<String, String>("func_70430_l", "getTotalArmorValue"));
+ mInitMap.put(new Pair<String, String>("func_70431_c", "hasItemStack"));
+ mInitMap.put(new Pair<String, String>("func_70432_d", "storeItemStack"));
+ mInitMap.put(new Pair<String, String>("func_70436_m", "dropAllItems"));
+ mInitMap.put(new Pair<String, String>("func_70437_b", "setItemStack"));
+ mInitMap.put(new Pair<String, String>("func_70440_f", "armorItemInSlot"));
+ mInitMap.put(new Pair<String, String>("func_70441_a", "addItemStackToInventory"));
+ mInitMap.put(new Pair<String, String>("func_70442_a", "writeToNBT"));
+ mInitMap.put(new Pair<String, String>("func_70443_b", "readFromNBT"));
+ mInitMap.put(new Pair<String, String>("func_70445_o", "getItemStack"));
+ mInitMap.put(new Pair<String, String>("func_70447_i", "getFirstEmptyStack"));
+ mInitMap.put(new Pair<String, String>("func_70448_g", "getCurrentItem"));
+ mInitMap.put(new Pair<String, String>("func_70449_g", "damageArmor"));
+ mInitMap.put(new Pair<String, String>("func_70451_h", "getHotbarSize"));
+ mInitMap.put(new Pair<String, String>("func_70452_e", "storePartialItemStack"));
+ mInitMap.put(new Pair<String, String>("func_70453_c", "changeCurrentItem"));
+ mInitMap.put(new Pair<String, String>("func_70455_b", "copyInventory"));
+ mInitMap.put(new Pair<String, String>("func_70463_b", "getStackInRowAndColumn"));
+ mInitMap.put(new Pair<String, String>("func_70468_h", "getCurrentRecipe"));
+ mInitMap.put(new Pair<String, String>("func_70469_d", "inventoryResetNeededOnSlotChange"));
+ mInitMap.put(new Pair<String, String>("func_70470_g", "resetRecipeAndSlots"));
+ mInitMap.put(new Pair<String, String>("func_70471_c", "setCurrentRecipeIndex"));
+ mInitMap.put(new Pair<String, String>("func_70486_a", "loadInventoryFromNBT"));
+ mInitMap.put(new Pair<String, String>("func_70487_g", "saveInventoryToNBT"));
+ mInitMap.put(new Pair<String, String>("func_70491_i", "getDamage"));
+ mInitMap.put(new Pair<String, String>("func_70492_c", "setDamage"));
+ mInitMap.put(new Pair<String, String>("func_70493_k", "getRollingDirection"));
+ mInitMap.put(new Pair<String, String>("func_70494_i", "setRollingDirection"));
+ mInitMap.put(new Pair<String, String>("func_70496_j", "getRollingAmplitude"));
+ mInitMap.put(new Pair<String, String>("func_70497_h", "setRollingAmplitude"));
+ mInitMap.put(new Pair<String, String>("func_70515_d", "explode"));
+ mInitMap.put(new Pair<String, String>("func_70518_d", "onValidSurface"));
+ mInitMap.put(new Pair<String, String>("func_70526_d", "getXpValue"));
+ mInitMap.put(new Pair<String, String>("func_70527_a", "getXPSplit"));
+ mInitMap.put(new Pair<String, String>("func_70528_g", "getTextureByXP"));
+ mInitMap.put(new Pair<String, String>("func_70534_d", "getRedColorF"));
+ mInitMap.put(new Pair<String, String>("func_70535_g", "getBlueColorF"));
+ mInitMap.put(new Pair<String, String>("func_70536_a", "setParticleTextureIndex"));
+ mInitMap.put(new Pair<String, String>("func_70537_b", "getFXLayer"));
+ mInitMap.put(new Pair<String, String>("func_70538_b", "setRBGColorF"));
+ mInitMap.put(new Pair<String, String>("func_70539_a", "renderParticle"));
+ mInitMap.put(new Pair<String, String>("func_70541_f", "multipleParticleScaleBy"));
+ mInitMap.put(new Pair<String, String>("func_70542_f", "getGreenColorF"));
+ mInitMap.put(new Pair<String, String>("func_70543_e", "multiplyVelocity"));
+ mInitMap.put(new Pair<String, String>("func_70589_b", "setBaseSpellTextureIndex"));
+ mInitMap.put(new Pair<String, String>("func_70596_a", "applyColourMultiplier"));
+ mInitMap.put(new Pair<String, String>("func_70599_aP", "getSoundVolume"));
+ mInitMap.put(new Pair<String, String>("func_70600_l", "dropRareDrop"));
+ mInitMap.put(new Pair<String, String>("func_70601_bi", "getCanSpawnHere"));
+ mInitMap.put(new Pair<String, String>("func_70603_bj", "getRenderSizeModifier"));
+ mInitMap.put(new Pair<String, String>("func_70604_c", "setRevengeTarget"));
+ mInitMap.put(new Pair<String, String>("func_70605_aq", "getMoveHelper"));
+ mInitMap.put(new Pair<String, String>("func_70606_j", "setHealth"));
+ mInitMap.put(new Pair<String, String>("func_70608_bn", "isPlayerSleeping"));
+ mInitMap.put(new Pair<String, String>("func_70609_aI", "onDeathUpdate"));
+ mInitMap.put(new Pair<String, String>("func_70610_aX", "isMovementBlocked"));
+ mInitMap.put(new Pair<String, String>("func_70612_e", "moveEntityWithHeading"));
+ mInitMap.put(new Pair<String, String>("func_70613_aW", "isServerWorld"));
+ mInitMap.put(new Pair<String, String>("func_70614_a", "rayTrace"));
+ mInitMap.put(new Pair<String, String>("func_70615_aA", "eatGrassBonus"));
+ mInitMap.put(new Pair<String, String>("func_70617_f_", "isOnLadder"));
+ mInitMap.put(new Pair<String, String>("func_70618_n", "removePotionEffectClient"));
+ mInitMap.put(new Pair<String, String>("func_70619_bc", "updateAITasks"));
+ mInitMap.put(new Pair<String, String>("func_70620_b", "getItemIcon"));
+ mInitMap.put(new Pair<String, String>("func_70621_aR", "getHurtSound"));
+ mInitMap.put(new Pair<String, String>("func_70623_bb", "despawnEntity"));
+ mInitMap.put(new Pair<String, String>("func_70624_b", "setAttackTarget"));
+ mInitMap.put(new Pair<String, String>("func_70625_a", "faceEntity"));
+ mInitMap.put(new Pair<String, String>("func_70626_be", "updateEntityActionState"));
+ mInitMap.put(new Pair<String, String>("func_70627_aG", "getTalkInterval"));
+ mInitMap.put(new Pair<String, String>("func_70628_a", "dropFewItems"));
+ mInitMap.put(new Pair<String, String>("func_70629_bd", "updateAITick"));
+ mInitMap.put(new Pair<String, String>("func_70631_g_", "isChild"));
+ mInitMap.put(new Pair<String, String>("func_70632_aY", "isBlocking"));
+ mInitMap.put(new Pair<String, String>("func_70634_a", "setPositionAndUpdate"));
+ mInitMap.put(new Pair<String, String>("func_70635_at", "getEntitySenses"));
+ mInitMap.put(new Pair<String, String>("func_70636_d", "onLivingUpdate"));
+ mInitMap.put(new Pair<String, String>("func_70637_d", "setJumping"));
+ mInitMap.put(new Pair<String, String>("func_70638_az", "getAttackTarget"));
+ mInitMap.put(new Pair<String, String>("func_70639_aQ", "getLivingSound"));
+ mInitMap.put(new Pair<String, String>("func_70641_bl", "getMaxSpawnedInChunk"));
+ mInitMap.put(new Pair<String, String>("func_70642_aH", "playLivingSound"));
+ mInitMap.put(new Pair<String, String>("func_70643_av", "getAITarget"));
+ mInitMap.put(new Pair<String, String>("func_70644_a", "isPotionActive"));
+ mInitMap.put(new Pair<String, String>("func_70645_a", "onDeath"));
+ mInitMap.put(new Pair<String, String>("func_70646_bf", "getVerticalFaceSpeed"));
+ mInitMap.put(new Pair<String, String>("func_70647_i", "getSoundPitch"));
+ mInitMap.put(new Pair<String, String>("func_70648_aU", "canBreatheUnderwater"));
+ mInitMap.put(new Pair<String, String>("func_70650_aV", "isAIEnabled"));
+ mInitMap.put(new Pair<String, String>("func_70651_bq", "getActivePotionEffects"));
+ mInitMap.put(new Pair<String, String>("func_70652_k", "attackEntityAsMob"));
+ mInitMap.put(new Pair<String, String>("func_70653_a", "knockBack"));
+ mInitMap.put(new Pair<String, String>("func_70654_ax", "getAge"));
+ mInitMap.put(new Pair<String, String>("func_70655_b", "applyArmorCalculations"));
+ mInitMap.put(new Pair<String, String>("func_70656_aK", "spawnExplosionParticle"));
+ mInitMap.put(new Pair<String, String>("func_70657_f", "setMoveForward"));
+ mInitMap.put(new Pair<String, String>("func_70658_aO", "getTotalArmorValue"));
+ mInitMap.put(new Pair<String, String>("func_70659_e", "setAIMoveSpeed"));
+ mInitMap.put(new Pair<String, String>("func_70660_b", "getActivePotionEffect"));
+ mInitMap.put(new Pair<String, String>("func_70661_as", "getNavigator"));
+ mInitMap.put(new Pair<String, String>("func_70662_br", "isEntityUndead"));
+ mInitMap.put(new Pair<String, String>("func_70663_b", "updateRotation"));
+ mInitMap.put(new Pair<String, String>("func_70664_aZ", "jump"));
+ mInitMap.put(new Pair<String, String>("func_70665_d", "damageEntity"));
+ mInitMap.put(new Pair<String, String>("func_70666_h", "getPosition"));
+ mInitMap.put(new Pair<String, String>("func_70668_bt", "getCreatureAttribute"));
+ mInitMap.put(new Pair<String, String>("func_70669_a", "renderBrokenItemStack"));
+ mInitMap.put(new Pair<String, String>("func_70670_a", "onmInitMap.put(newPotionEffect"));
+ mInitMap.put(new Pair<String, String>("func_70671_ap", "getLookHelper"));
+ mInitMap.put(new Pair<String, String>("func_70672_c", "applyPotionDamageCalculations"));
+ mInitMap.put(new Pair<String, String>("func_70673_aS", "getDeathSound"));
+ mInitMap.put(new Pair<String, String>("func_70674_bp", "clearActivePotions"));
+ mInitMap.put(new Pair<String, String>("func_70675_k", "damageArmor"));
+ mInitMap.put(new Pair<String, String>("func_70676_i", "getLook"));
+ mInitMap.put(new Pair<String, String>("func_70678_g", "getSwingProgress"));
+ mInitMap.put(new Pair<String, String>("func_70679_bo", "updatePotionEffects"));
+ mInitMap.put(new Pair<String, String>("func_70681_au", "getRNG"));
+ mInitMap.put(new Pair<String, String>("func_70682_h", "decreaseAirSupply"));
+ mInitMap.put(new Pair<String, String>("func_70683_ar", "getJumpHelper"));
+ mInitMap.put(new Pair<String, String>("func_70684_aJ", "isPlayer"));
+ mInitMap.put(new Pair<String, String>("func_70685_l", "canEntityBeSeen"));
+ mInitMap.put(new Pair<String, String>("func_70686_a", "canAttackClass"));
+ mInitMap.put(new Pair<String, String>("func_70687_e", "isPotionApplicable"));
+ mInitMap.put(new Pair<String, String>("func_70688_c", "onFinishedPotionEffect"));
+ mInitMap.put(new Pair<String, String>("func_70689_ay", "getAIMoveSpeed"));
+ mInitMap.put(new Pair<String, String>("func_70690_d", "addPotionEffect"));
+ mInitMap.put(new Pair<String, String>("func_70691_i", "heal"));
+ mInitMap.put(new Pair<String, String>("func_70692_ba", "canDespawn"));
+ mInitMap.put(new Pair<String, String>("func_70693_a", "getExperiencePoints"));
+ mInitMap.put(new Pair<String, String>("func_70694_bm", "getHeldItem"));
+ mInitMap.put(new Pair<String, String>("func_70695_b", "onChangedPotionEffect"));
+ mInitMap.put(new Pair<String, String>("func_70777_m", "getEntityToAttack"));
+ mInitMap.put(new Pair<String, String>("func_70778_a", "setPathToEntity"));
+ mInitMap.put(new Pair<String, String>("func_70779_j", "updateWanderPath"));
+ mInitMap.put(new Pair<String, String>("func_70780_i", "isMovementCeased"));
+ mInitMap.put(new Pair<String, String>("func_70781_l", "hasPath"));
+ mInitMap.put(new Pair<String, String>("func_70782_k", "findPlayerToAttack"));
+ mInitMap.put(new Pair<String, String>("func_70783_a", "getBlockPathWeight"));
+ mInitMap.put(new Pair<String, String>("func_70784_b", "setTarget"));
+ mInitMap.put(new Pair<String, String>("func_70785_a", "attackEntity"));
+ mInitMap.put(new Pair<String, String>("func_70790_a", "isCourseTraversable"));
+ mInitMap.put(new Pair<String, String>("func_70799_a", "setSlimeSize"));
+ mInitMap.put(new Pair<String, String>("func_70800_m", "canDamagePlayer"));
+ mInitMap.put(new Pair<String, String>("func_70801_i", "getSlimeParticle"));
+ mInitMap.put(new Pair<String, String>("func_70802_j", "createInstance"));
+ mInitMap.put(new Pair<String, String>("func_70803_o", "getJumpSound"));
+ mInitMap.put(new Pair<String, String>("func_70804_p", "makesSoundOnLand"));
+ mInitMap.put(new Pair<String, String>("func_70805_n", "getAttackStrength"));
+ mInitMap.put(new Pair<String, String>("func_70806_k", "getJumpDelay"));
+ mInitMap.put(new Pair<String, String>("func_70807_r", "makesSoundOnJump"));
+ mInitMap.put(new Pair<String, String>("func_70808_l", "alterSquishAmount"));
+ mInitMap.put(new Pair<String, String>("func_70809_q", "getSlimeSize"));
+ mInitMap.put(new Pair<String, String>("func_70814_o", "isValidLightLevel"));
+ mInitMap.put(new Pair<String, String>("func_70816_c", "teleportToEntity"));
+ mInitMap.put(new Pair<String, String>("func_70817_b", "setCarryingData"));
+ mInitMap.put(new Pair<String, String>("func_70819_e", "setScreaming"));
+ mInitMap.put(new Pair<String, String>("func_70820_n", "teleportRandomly"));
+ mInitMap.put(new Pair<String, String>("func_70821_d", "shouldAttackPlayer"));
+ mInitMap.put(new Pair<String, String>("func_70823_r", "isScreaming"));
+ mInitMap.put(new Pair<String, String>("func_70824_q", "getCarryingData"));
+ mInitMap.put(new Pair<String, String>("func_70825_j", "teleportTo"));
+ mInitMap.put(new Pair<String, String>("func_70829_a", "setCreeperState"));
+ mInitMap.put(new Pair<String, String>("func_70830_n", "getPowered"));
+ mInitMap.put(new Pair<String, String>("func_70831_j", "getCreeperFlashIntensity"));
+ mInitMap.put(new Pair<String, String>("func_70832_p", "getCreeperState"));
+ mInitMap.put(new Pair<String, String>("func_70835_c", "becomeAngryAt"));
+ mInitMap.put(new Pair<String, String>("func_70839_e", "setBesideClimbableBlock"));
+ mInitMap.put(new Pair<String, String>("func_70841_p", "isBesideClimbableBlock"));
+ mInitMap.put(new Pair<String, String>("func_70849_f", "setPlayerCreated"));
+ mInitMap.put(new Pair<String, String>("func_70850_q", "isPlayerCreated"));
+ mInitMap.put(new Pair<String, String>("func_70851_e", "setHoldingRose"));
+ mInitMap.put(new Pair<String, String>("func_70852_n", "getVillage"));
+ mInitMap.put(new Pair<String, String>("func_70853_p", "getHoldRoseTick"));
+ mInitMap.put(new Pair<String, String>("func_70854_o", "getAttackTimer"));
+ mInitMap.put(new Pair<String, String>("func_70873_a", "setGrowingAge"));
+ mInitMap.put(new Pair<String, String>("func_70874_b", "getGrowingAge"));
+ mInitMap.put(new Pair<String, String>("func_70875_t", "resetInLove"));
+ mInitMap.put(new Pair<String, String>("func_70876_c", "procreate"));
+ mInitMap.put(new Pair<String, String>("func_70877_b", "isBreedingItem"));
+ mInitMap.put(new Pair<String, String>("func_70878_b", "canMateWith"));
+ mInitMap.put(new Pair<String, String>("func_70880_s", "isInLove"));
+ mInitMap.put(new Pair<String, String>("func_70890_k", "getHeadRotationAngleX"));
+ mInitMap.put(new Pair<String, String>("func_70891_b", "setFleeceColor"));
+ mInitMap.put(new Pair<String, String>("func_70892_o", "getSheared"));
+ mInitMap.put(new Pair<String, String>("func_70893_e", "setSheared"));
+ mInitMap.put(new Pair<String, String>("func_70894_j", "getHeadRotationPointY"));
+ mInitMap.put(new Pair<String, String>("func_70895_a", "getRandomFleeceColor"));
+ mInitMap.put(new Pair<String, String>("func_70896_n", "getFleeceColor"));
+ mInitMap.put(new Pair<String, String>("func_70900_e", "setSaddled"));
+ mInitMap.put(new Pair<String, String>("func_70901_n", "getSaddled"));
+ mInitMap.put(new Pair<String, String>("func_70902_q", "getOwner"));
+ mInitMap.put(new Pair<String, String>("func_70903_f", "setTamed"));
+ mInitMap.put(new Pair<String, String>("func_70904_g", "setSitting"));
+ mInitMap.put(new Pair<String, String>("func_70906_o", "isSitting"));
+ mInitMap.put(new Pair<String, String>("func_70907_r", "getAISit"));
+ mInitMap.put(new Pair<String, String>("func_70908_e", "playTameEffect"));
+ mInitMap.put(new Pair<String, String>("func_70909_n", "isTamed"));
+ mInitMap.put(new Pair<String, String>("func_70912_b", "setTameSkin"));
+ mInitMap.put(new Pair<String, String>("func_70913_u", "getTameSkin"));
+ mInitMap.put(new Pair<String, String>("func_70915_j", "getShadingWhileWet"));
+ mInitMap.put(new Pair<String, String>("func_70916_h", "setAngry"));
+ mInitMap.put(new Pair<String, String>("func_70917_k", "getInterestedAngle"));
+ mInitMap.put(new Pair<String, String>("func_70919_bu", "isAngry"));
+ mInitMap.put(new Pair<String, String>("func_70920_v", "getTailRotation"));
+ mInitMap.put(new Pair<String, String>("func_70921_u", "isWolfWet"));
+ mInitMap.put(new Pair<String, String>("func_70923_f", "getShakeAngle"));
+ mInitMap.put(new Pair<String, String>("func_70930_a", "setRecipes"));
+ mInitMap.put(new Pair<String, String>("func_70931_l_", "getCustomer"));
+ mInitMap.put(new Pair<String, String>("func_70932_a_", "setCustomer"));
+ mInitMap.put(new Pair<String, String>("func_70933_a", "useRecipe"));
+ mInitMap.put(new Pair<String, String>("func_70934_b", "getRecipes"));
+ mInitMap.put(new Pair<String, String>("func_70938_b", "setProfession"));
+ mInitMap.put(new Pair<String, String>("func_70939_f", "setPlaying"));
+ mInitMap.put(new Pair<String, String>("func_70940_q", "isTrading"));
+ mInitMap.put(new Pair<String, String>("func_70941_o", "isMating"));
+ mInitMap.put(new Pair<String, String>("func_70942_a", "generateRandomParticles"));
+ mInitMap.put(new Pair<String, String>("func_70945_p", "isPlaying"));
+ mInitMap.put(new Pair<String, String>("func_70946_n", "getProfession"));
+ mInitMap.put(new Pair<String, String>("func_70947_e", "setMating"));
+ mInitMap.put(new Pair<String, String>("func_70950_c", "addDefaultEquipmentAndRecipies"));
+ mInitMap.put(new Pair<String, String>("func_70965_a", "attackEntityFromPart"));
+ mInitMap.put(new Pair<String, String>("func_70967_k", "setmInitMap.put(newTarget"));
+ mInitMap.put(new Pair<String, String>("func_70969_j", "updateDragonEnderCrystal"));
+ mInitMap.put(new Pair<String, String>("func_70970_a", "collideWithEntities"));
+ mInitMap.put(new Pair<String, String>("func_70971_b", "attackEntitiesInList"));
+ mInitMap.put(new Pair<String, String>("func_70972_a", "destroyBlocksInAABB"));
+ mInitMap.put(new Pair<String, String>("func_70973_b", "simplifyAngle"));
+ mInitMap.put(new Pair<String, String>("func_70974_a", "getMovementOffsets"));
+ mInitMap.put(new Pair<String, String>("func_70975_a", "createEnderPortal"));
+ mInitMap.put(new Pair<String, String>("func_70996_bM", "shouldHeal"));
+ mInitMap.put(new Pair<String, String>("func_70997_bJ", "getBedLocation"));
+ mInitMap.put(new Pair<String, String>("func_70998_m", "interactWith"));
+ mInitMap.put(new Pair<String, String>("func_70999_a", "wakeUpPlayer"));
+ mInitMap.put(new Pair<String, String>("func_71000_j", "addMovementStat"));
+ mInitMap.put(new Pair<String, String>("func_71001_a", "onItemPickup"));
+ mInitMap.put(new Pair<String, String>("func_71002_c", "displayGUIEnchantment"));
+ mInitMap.put(new Pair<String, String>("func_71004_bE", "respawnPlayer"));
+ mInitMap.put(new Pair<String, String>("func_71005_bN", "getInventoryEnderChest"));
+ mInitMap.put(new Pair<String, String>("func_71007_a", "displayGUIChest"));
+ mInitMap.put(new Pair<String, String>("func_71008_a", "setItemInUse"));
+ mInitMap.put(new Pair<String, String>("func_71009_b", "onCriticalHit"));
+ mInitMap.put(new Pair<String, String>("func_71010_c", "updateItemUse"));
+ mInitMap.put(new Pair<String, String>("func_71011_bu", "getItemInUse"));
+ mInitMap.put(new Pair<String, String>("func_71012_a", "joinEntityItemWithWorld"));
+ mInitMap.put(new Pair<String, String>("func_71015_k", "addMountedMovementStat"));
+ mInitMap.put(new Pair<String, String>("func_71016_p", "sendPlayerAbilities"));
+ mInitMap.put(new Pair<String, String>("func_71018_a", "sleepInBedAt"));
+ mInitMap.put(new Pair<String, String>("func_71019_a", "dropPlayerItemWithRandomChoice"));
+ mInitMap.put(new Pair<String, String>("func_71020_j", "addExhaustion"));
+ mInitMap.put(new Pair<String, String>("func_71023_q", "addExperience"));
+ mInitMap.put(new Pair<String, String>("func_71024_bL", "getFoodStats"));
+ mInitMap.put(new Pair<String, String>("func_71026_bH", "isPlayerFullyAsleep"));
+ mInitMap.put(new Pair<String, String>("func_71027_c", "travelToDimension"));
+ mInitMap.put(new Pair<String, String>("func_71028_bD", "destroyCurrentEquippedItem"));
+ mInitMap.put(new Pair<String, String>("func_71029_a", "triggerAchievement"));
+ mInitMap.put(new Pair<String, String>("func_71030_a", "displayGUIMerchant"));
+ mInitMap.put(new Pair<String, String>("func_71033_a", "setGameType"));
+ mInitMap.put(new Pair<String, String>("func_71034_by", "stopUsingItem"));
+ mInitMap.put(new Pair<String, String>("func_71036_o", "onItemUseFinish"));
+ mInitMap.put(new Pair<String, String>("func_71037_bA", "getScore"));
+ mInitMap.put(new Pair<String, String>("func_71038_i", "swingItem"));
+ mInitMap.put(new Pair<String, String>("func_71039_bw", "isUsingItem"));
+ mInitMap.put(new Pair<String, String>("func_71040_bB", "dropOneItem"));
+ mInitMap.put(new Pair<String, String>("func_71041_bz", "clearItemInUse"));
+ mInitMap.put(new Pair<String, String>("func_71043_e", "canEat"));
+ mInitMap.put(new Pair<String, String>("func_71044_o", "collideWithPlayer"));
+ mInitMap.put(new Pair<String, String>("func_71045_bC", "getCurrentEquippedItem"));
+ mInitMap.put(new Pair<String, String>("func_71047_c", "onEnchantmentCritical"));
+ mInitMap.put(new Pair<String, String>("func_71048_c", "displayGUIBook"));
+ mInitMap.put(new Pair<String, String>("func_71049_a", "clonePlayer"));
+ mInitMap.put(new Pair<String, String>("func_71050_bK", "xpBarCap"));
+ mInitMap.put(new Pair<String, String>("func_71051_bG", "getBedOrientationInDegrees"));
+ mInitMap.put(new Pair<String, String>("func_71052_bv", "getItemInUseCount"));
+ mInitMap.put(new Pair<String, String>("func_71053_j", "closeScreen"));
+ mInitMap.put(new Pair<String, String>("func_71056_a", "verifyRespawnCoordinates"));
+ mInitMap.put(new Pair<String, String>("func_71057_bx", "getItemInUseDuration"));
+ mInitMap.put(new Pair<String, String>("func_71058_b", "displayGUIWorkbench"));
+ mInitMap.put(new Pair<String, String>("func_71059_n", "attackTargetEntityWithCurrentItem"));
+ mInitMap.put(new Pair<String, String>("func_71060_bI", "getSleepTimer"));
+ mInitMap.put(new Pair<String, String>("func_71061_d_", "resetHeight"));
+ mInitMap.put(new Pair<String, String>("func_71063_a", "setSpawnChunk"));
+ mInitMap.put(new Pair<String, String>("func_71064_a", "addStat"));
+ mInitMap.put(new Pair<String, String>("func_71065_l", "isInBed"));
+ mInitMap.put(new Pair<String, String>("func_71110_a", "updateCraftingInventory"));
+ mInitMap.put(new Pair<String, String>("func_71111_a", "sendSlotContents"));
+ mInitMap.put(new Pair<String, String>("func_71112_a", "sendProgressBarUpdate"));
+ mInitMap.put(new Pair<String, String>("func_71113_k", "updateHeldItem"));
+ mInitMap.put(new Pair<String, String>("func_71114_r", "getPlayerIP"));
+ mInitMap.put(new Pair<String, String>("func_71116_b", "addSelfToInternalCraftingInventory"));
+ mInitMap.put(new Pair<String, String>("func_71117_bO", "getNextWindowId"));
+ mInitMap.put(new Pair<String, String>("func_71118_n", "setPlayerHealthUpdated"));
+ mInitMap.put(new Pair<String, String>("func_71120_a", "sendContainerToPlayer"));
+ mInitMap.put(new Pair<String, String>("func_71121_q", "getServerForPlayer"));
+ mInitMap.put(new Pair<String, String>("func_71122_b", "handleFalling"));
+ mInitMap.put(new Pair<String, String>("func_71123_m", "mountEntityAndWakeUp"));
+ mInitMap.put(new Pair<String, String>("func_71124_b", "getEquipmentInSlot"));
+ mInitMap.put(new Pair<String, String>("func_71127_g", "onUpdateEntity"));
+ mInitMap.put(new Pair<String, String>("func_71128_l", "closeContainer"));
+ mInitMap.put(new Pair<String, String>("func_71150_b", "setPlayerSPHealth"));
+ mInitMap.put(new Pair<String, String>("func_71151_f", "getFOVMultiplier"));
+ mInitMap.put(new Pair<String, String>("func_71152_a", "setXPStats"));
+ mInitMap.put(new Pair<String, String>("func_71153_f", "isBlockNormal"));
+ mInitMap.put(new Pair<String, String>("func_71165_d", "sendChatMessage"));
+ mInitMap.put(new Pair<String, String>("func_71166_b", "sendMotionUpdates"));
+ mInitMap.put(new Pair<String, String>("func_71187_D", "getCommandManager"));
+ mInitMap.put(new Pair<String, String>("func_71188_g", "setAllowPvp"));
+ mInitMap.put(new Pair<String, String>("func_71189_e", "setHostname"));
+ mInitMap.put(new Pair<String, String>("func_71190_q", "updateTimeLightAndEntities"));
+ mInitMap.put(new Pair<String, String>("func_71191_d", "setBuildLimit"));
+ mInitMap.put(new Pair<String, String>("func_71192_d", "setUserMessage"));
+ mInitMap.put(new Pair<String, String>("func_71193_K", "allowSpawnMonsters"));
+ mInitMap.put(new Pair<String, String>("func_71194_c", "canCreateBonusChest"));
+ mInitMap.put(new Pair<String, String>("func_71195_b_", "getUserMessage"));
+ mInitMap.put(new Pair<String, String>("func_71197_b", "startServer"));
+ mInitMap.put(new Pair<String, String>("func_71198_k", "logDebug"));
+ mInitMap.put(new Pair<String, String>("func_71199_h", "isHardcore"));
+ mInitMap.put(new Pair<String, String>("func_71200_ad", "serverIsInRunLoop"));
+ mInitMap.put(new Pair<String, String>("func_71201_j", "logSevere"));
+ mInitMap.put(new Pair<String, String>("func_71203_ab", "getConfigurationManager"));
+ mInitMap.put(new Pair<String, String>("func_71204_b", "setDemo"));
+ mInitMap.put(new Pair<String, String>("func_71205_p", "setMOTD"));
+ mInitMap.put(new Pair<String, String>("func_71206_a", "shareToLAN"));
+ mInitMap.put(new Pair<String, String>("func_71207_Z", "getBuildLimit"));
+ mInitMap.put(new Pair<String, String>("func_71208_b", "setServerPort"));
+ mInitMap.put(new Pair<String, String>("func_71209_f", "getFile"));
+ mInitMap.put(new Pair<String, String>("func_71211_k", "getServerHostname"));
+ mInitMap.put(new Pair<String, String>("func_71213_z", "getAllUsernames"));
+ mInitMap.put(new Pair<String, String>("func_71214_G", "getServerOwner"));
+ mInitMap.put(new Pair<String, String>("func_71215_F", "getServerPort"));
+ mInitMap.put(new Pair<String, String>("func_71216_a_", "outputPercentRemaining"));
+ mInitMap.put(new Pair<String, String>("func_71217_p", "tick"));
+ mInitMap.put(new Pair<String, String>("func_71218_a", "worldServerForDimension"));
+ mInitMap.put(new Pair<String, String>("func_71219_W", "isPVPEnabled"));
+ mInitMap.put(new Pair<String, String>("func_71220_V", "getCanSpawnNPCs"));
+ mInitMap.put(new Pair<String, String>("func_71221_J", "getWorldName"));
+ mInitMap.put(new Pair<String, String>("func_71222_d", "initialWorldChunkLoad"));
+ mInitMap.put(new Pair<String, String>("func_71223_ag", "enableProfiling"));
+ mInitMap.put(new Pair<String, String>("func_71224_l", "setServerOwner"));
+ mInitMap.put(new Pair<String, String>("func_71225_e", "canStructuresSpawn"));
+ mInitMap.put(new Pair<String, String>("func_71228_a", "finalTick"));
+ mInitMap.put(new Pair<String, String>("func_71229_d", "setOnlineMode"));
+ mInitMap.put(new Pair<String, String>("func_71230_b", "addServerInfoToCrashReport"));
+ mInitMap.put(new Pair<String, String>("func_71231_X", "isFlightAllowed"));
+ mInitMap.put(new Pair<String, String>("func_71233_x", "getCurrentPlayerCount"));
+ mInitMap.put(new Pair<String, String>("func_71234_u", "getPort"));
+ mInitMap.put(new Pair<String, String>("func_71235_a", "setGameType"));
+ mInitMap.put(new Pair<String, String>("func_71236_h", "logWarning"));
+ mInitMap.put(new Pair<String, String>("func_71237_c", "convertMapIfNeeded"));
+ mInitMap.put(new Pair<String, String>("func_71238_n", "getDataDirectory"));
+ mInitMap.put(new Pair<String, String>("func_71239_B", "isDebuggingEnabled"));
+ mInitMap.put(new Pair<String, String>("func_71240_o", "systemExitNow"));
+ mInitMap.put(new Pair<String, String>("func_71241_aa", "isServerStopped"));
+ mInitMap.put(new Pair<String, String>("func_71242_L", "isDemo"));
+ mInitMap.put(new Pair<String, String>("func_71243_i", "clearCurrentTask"));
+ mInitMap.put(new Pair<String, String>("func_71244_g", "logInfo"));
+ mInitMap.put(new Pair<String, String>("func_71245_h", "setAllowFlight"));
+ mInitMap.put(new Pair<String, String>("func_71246_n", "setWorldName"));
+ mInitMap.put(new Pair<String, String>("func_71247_a", "loadAllWorlds"));
+ mInitMap.put(new Pair<String, String>("func_71248_a", "getPossibleCompletions"));
+ mInitMap.put(new Pair<String, String>("func_71249_w", "getMinecraftVersion"));
+ mInitMap.put(new Pair<String, String>("func_71250_E", "getKeyPair"));
+ mInitMap.put(new Pair<String, String>("func_71251_e", "setCanSpawnAnimals"));
+ mInitMap.put(new Pair<String, String>("func_71252_i", "handleRConCommand"));
+ mInitMap.put(new Pair<String, String>("func_71253_a", "setKeyPair"));
+ mInitMap.put(new Pair<String, String>("func_71254_M", "getActiveAnvilConverter"));
+ mInitMap.put(new Pair<String, String>("func_71255_r", "getAllowNether"));
+ mInitMap.put(new Pair<String, String>("func_71256_s", "startServerThread"));
+ mInitMap.put(new Pair<String, String>("func_71257_f", "setCanSpawnNPCs"));
+ mInitMap.put(new Pair<String, String>("func_71258_A", "getPlugins"));
+ mInitMap.put(new Pair<String, String>("func_71259_af", "getTickCounter"));
+ mInitMap.put(new Pair<String, String>("func_71260_j", "stopServer"));
+ mInitMap.put(new Pair<String, String>("func_71261_m", "setFolderName"));
+ mInitMap.put(new Pair<String, String>("func_71262_S", "isDedicatedServer"));
+ mInitMap.put(new Pair<String, String>("func_71263_m", "initiateShutdown"));
+ mInitMap.put(new Pair<String, String>("func_71264_H", "isSinglePlayer"));
+ mInitMap.put(new Pair<String, String>("func_71265_f", "getGameType"));
+ mInitMap.put(new Pair<String, String>("func_71266_T", "isServerInOnlineMode"));
+ mInitMap.put(new Pair<String, String>("func_71267_a", "saveAllWorlds"));
+ mInitMap.put(new Pair<String, String>("func_71268_U", "getCanSpawnAnimals"));
+ mInitMap.put(new Pair<String, String>("func_71270_I", "getFolderName"));
+ mInitMap.put(new Pair<String, String>("func_71272_O", "deleteWorldAndStopServer"));
+ mInitMap.put(new Pair<String, String>("func_71273_Y", "getMOTD"));
+ mInitMap.put(new Pair<String, String>("func_71274_v", "getMotd"));
+ mInitMap.put(new Pair<String, String>("func_71275_y", "getMaxPlayers"));
+ mInitMap.put(new Pair<String, String>("func_71276_C", "getServer"));
+ mInitMap.put(new Pair<String, String>("func_71277_t", "getHostname"));
+ mInitMap.put(new Pair<String, String>("func_71278_l", "isServerRunning"));
+ mInitMap.put(new Pair<String, String>("func_71279_ae", "getGuiEnabled"));
+ mInitMap.put(new Pair<String, String>("func_71326_a", "saveProperties"));
+ mInitMap.put(new Pair<String, String>("func_71327_a", "getIntProperty"));
+ mInitMap.put(new Pair<String, String>("func_71328_a", "setProperty"));
+ mInitMap.put(new Pair<String, String>("func_71329_c", "getSettingsFilename"));
+ mInitMap.put(new Pair<String, String>("func_71330_a", "getStringProperty"));
+ mInitMap.put(new Pair<String, String>("func_71331_a", "addPendingCommand"));
+ mInitMap.put(new Pair<String, String>("func_71332_a", "getBooleanProperty"));
+ mInitMap.put(new Pair<String, String>("func_71333_ah", "executePendingCommands"));
+ mInitMap.put(new Pair<String, String>("func_71344_c", "getPublic"));
+ mInitMap.put(new Pair<String, String>("func_71351_a", "setServerData"));
+ mInitMap.put(new Pair<String, String>("func_71352_k", "toggleFullscreen"));
+ mInitMap.put(new Pair<String, String>("func_71353_a", "loadWorld"));
+ mInitMap.put(new Pair<String, String>("func_71354_a", "setDimensionAndSpawnPlayer"));
+ mInitMap.put(new Pair<String, String>("func_71355_q", "isDemo"));
+ mInitMap.put(new Pair<String, String>("func_71356_B", "isSingleplayer"));
+ mInitMap.put(new Pair<String, String>("func_71357_I", "loadScreen"));
+ mInitMap.put(new Pair<String, String>("func_71359_d", "getSaveLoader"));
+ mInitMap.put(new Pair<String, String>("func_71361_d", "checkGLError"));
+ mInitMap.put(new Pair<String, String>("func_71363_D", "stopIntegratedServer"));
+ mInitMap.put(new Pair<String, String>("func_71364_i", "setIngameNotInFocus"));
+ mInitMap.put(new Pair<String, String>("func_71366_a", "displayDebugInfo"));
+ mInitMap.put(new Pair<String, String>("func_71367_a", "setServer"));
+ mInitMap.put(new Pair<String, String>("func_71369_N", "getGLMaximumTextureSize"));
+ mInitMap.put(new Pair<String, String>("func_71370_a", "resize"));
+ mInitMap.put(new Pair<String, String>("func_71371_a", "launchIntegratedServer"));
+ mInitMap.put(new Pair<String, String>("func_71372_G", "isFullScreen"));
+ mInitMap.put(new Pair<String, String>("func_71374_p", "debugInfoEntities"));
+ mInitMap.put(new Pair<String, String>("func_71375_t", "isFancyGraphicsEnabled"));
+ mInitMap.put(new Pair<String, String>("func_71377_b", "displayCrashReport"));
+ mInitMap.put(new Pair<String, String>("func_71378_E", "getPlayerUsageSnooper"));
+ mInitMap.put(new Pair<String, String>("func_71379_u", "isAmbientOcclusionEnabled"));
+ mInitMap.put(new Pair<String, String>("func_71381_h", "setIngameFocus"));
+ mInitMap.put(new Pair<String, String>("func_71382_s", "isGuiEnabled"));
+ mInitMap.put(new Pair<String, String>("func_71383_b", "updateDebugProfilerName"));
+ mInitMap.put(new Pair<String, String>("func_71384_a", "startGame"));
+ mInitMap.put(new Pair<String, String>("func_71385_j", "displayInGameMenu"));
+ mInitMap.put(new Pair<String, String>("func_71386_F", "getSystemTime"));
+ mInitMap.put(new Pair<String, String>("func_71387_A", "isIntegratedServerRunning"));
+ mInitMap.put(new Pair<String, String>("func_71388_o", "getWorldProviderName"));
+ mInitMap.put(new Pair<String, String>("func_71389_H", "startTimerHackThread"));
+ mInitMap.put(new Pair<String, String>("func_71392_a", "scaledTessellator"));
+ mInitMap.put(new Pair<String, String>("func_71393_m", "debugInfoRenders"));
+ mInitMap.put(new Pair<String, String>("func_71396_d", "addGraphicsAndWorldToCrashReport"));
+ mInitMap.put(new Pair<String, String>("func_71398_f", "freeMemory"));
+ mInitMap.put(new Pair<String, String>("func_71400_g", "shutdown"));
+ mInitMap.put(new Pair<String, String>("func_71401_C", "getIntegratedServer"));
+ mInitMap.put(new Pair<String, String>("func_71403_a", "loadWorld"));
+ mInitMap.put(new Pair<String, String>("func_71404_a", "crashed"));
+ mInitMap.put(new Pair<String, String>("func_71405_e", "shutdownMinecraftApplet"));
+ mInitMap.put(new Pair<String, String>("func_71407_l", "runTick"));
+ mInitMap.put(new Pair<String, String>("func_71408_n", "getEntityDebug"));
+ mInitMap.put(new Pair<String, String>("func_71410_x", "getMinecraft"));
+ mInitMap.put(new Pair<String, String>("func_71411_J", "runGameLoop"));
+ mInitMap.put(new Pair<String, String>("func_71497_f", "getFile"));
+ mInitMap.put(new Pair<String, String>("func_71498_d", "getCauseStackTraceOrString"));
+ mInitMap.put(new Pair<String, String>("func_71499_a", "addCrashSectionThrowable"));
+ mInitMap.put(new Pair<String, String>("func_71500_a", "addCrashSectionCallable"));
+ mInitMap.put(new Pair<String, String>("func_71501_a", "getDescription"));
+ mInitMap.put(new Pair<String, String>("func_71502_e", "getCompleteReport"));
+ mInitMap.put(new Pair<String, String>("func_71503_h", "getWittyComment"));
+ mInitMap.put(new Pair<String, String>("func_71504_g", "populateEnvironment"));
+ mInitMap.put(new Pair<String, String>("func_71505_b", "getCrashCause"));
+ mInitMap.put(new Pair<String, String>("func_71506_a", "getSectionsInStringBuilder"));
+ mInitMap.put(new Pair<String, String>("func_71507_a", "addCrashSection"));
+ mInitMap.put(new Pair<String, String>("func_71514_a", "getCommandAliases"));
+ mInitMap.put(new Pair<String, String>("func_71515_b", "processCommand"));
+ mInitMap.put(new Pair<String, String>("func_71516_a", "addTabCompletionOptions"));
+ mInitMap.put(new Pair<String, String>("func_71517_b", "getCommandName"));
+ mInitMap.put(new Pair<String, String>("func_71518_a", "getCommandUsage"));
+ mInitMap.put(new Pair<String, String>("func_71519_b", "canCommandSenderUseCommand"));
+ mInitMap.put(new Pair<String, String>("func_71521_c", "getCommandSenderAsPlayer"));
+ mInitMap.put(new Pair<String, String>("func_71523_a", "doesStringStartWith"));
+ mInitMap.put(new Pair<String, String>("func_71526_a", "parseInt"));
+ mInitMap.put(new Pair<String, String>("func_71527_a", "joinNiceString"));
+ mInitMap.put(new Pair<String, String>("func_71528_a", "parseIntWithMin"));
+ mInitMap.put(new Pair<String, String>("func_71529_a", "setAdminCommander"));
+ mInitMap.put(new Pair<String, String>("func_71530_a", "getListOfStringsMatchingLastWord"));
+ mInitMap.put(new Pair<String, String>("func_71531_a", "getListOfStringsFromIterableMatchingLastWord"));
+ mInitMap.put(new Pair<String, String>("func_71532_a", "parseIntBounded"));
+ mInitMap.put(new Pair<String, String>("func_71534_d", "getSortedPossibleCommands"));
+ mInitMap.put(new Pair<String, String>("func_71535_c", "getCommands"));
+ mInitMap.put(new Pair<String, String>("func_71536_c", "getPlayers"));
+ mInitMap.put(new Pair<String, String>("func_71538_c", "getListOfPlayerUsernames"));
+ mInitMap.put(new Pair<String, String>("func_71539_b", "getGameModeFromCommand"));
+ mInitMap.put(new Pair<String, String>("func_71541_a", "setGameType"));
+ mInitMap.put(new Pair<String, String>("func_71542_c", "getAllUsernames"));
+ mInitMap.put(new Pair<String, String>("func_71552_a", "setTime"));
+ mInitMap.put(new Pair<String, String>("func_71553_b", "addTime"));
+ mInitMap.put(new Pair<String, String>("func_71554_c", "toggleDownfall"));
+ mInitMap.put(new Pair<String, String>("func_71555_a", "getCommands"));
+ mInitMap.put(new Pair<String, String>("func_71556_a", "executeCommand"));
+ mInitMap.put(new Pair<String, String>("func_71557_a", "getPossibleCommands"));
+ mInitMap.put(new Pair<String, String>("func_71558_b", "getPossibleCommands"));
+ mInitMap.put(new Pair<String, String>("func_71559_a", "dropFirstString"));
+ mInitMap.put(new Pair<String, String>("func_71560_a", "registerCommand"));
+ mInitMap.put(new Pair<String, String>("func_71565_a", "filterAllowedCharacters"));
+ mInitMap.put(new Pair<String, String>("func_71566_a", "isAllowedCharacter"));
+ mInitMap.put(new Pair<String, String>("func_71569_e", "getDistanceSquared"));
+ mInitMap.put(new Pair<String, String>("func_71571_b", "set"));
+ mInitMap.put(new Pair<String, String>("func_71575_a", "getCrashReport"));
+ mInitMap.put(new Pair<String, String>("func_72314_b", "expand"));
+ mInitMap.put(new Pair<String, String>("func_72315_c", "isVecInXZ"));
+ mInitMap.put(new Pair<String, String>("func_72316_a", "calculateXOffset"));
+ mInitMap.put(new Pair<String, String>("func_72317_d", "offset"));
+ mInitMap.put(new Pair<String, String>("func_72318_a", "isVecInside"));
+ mInitMap.put(new Pair<String, String>("func_72319_d", "isVecInXY"));
+ mInitMap.put(new Pair<String, String>("func_72320_b", "getAverageEdgeLength"));
+ mInitMap.put(new Pair<String, String>("func_72321_a", "addCoord"));
+ mInitMap.put(new Pair<String, String>("func_72322_c", "calculateZOffset"));
+ mInitMap.put(new Pair<String, String>("func_72323_b", "calculateYOffset"));
+ mInitMap.put(new Pair<String, String>("func_72324_b", "setBounds"));
+ mInitMap.put(new Pair<String, String>("func_72325_c", "getOffsetBoundingBox"));
+ mInitMap.put(new Pair<String, String>("func_72326_a", "intersectsWith"));
+ mInitMap.put(new Pair<String, String>("func_72327_a", "calculateIntercept"));
+ mInitMap.put(new Pair<String, String>("func_72328_c", "setBB"));
+ mInitMap.put(new Pair<String, String>("func_72329_c", "copy"));
+ mInitMap.put(new Pair<String, String>("func_72330_a", "getBoundingBox"));
+ mInitMap.put(new Pair<String, String>("func_72331_e", "contract"));
+ mInitMap.put(new Pair<String, String>("func_72333_b", "isVecInYZ"));
+ mInitMap.put(new Pair<String, String>("func_72352_l", "getMaxPlayers"));
+ mInitMap.put(new Pair<String, String>("func_72354_b", "updateTimeAndWeatherForPlayer"));
+ mInitMap.put(new Pair<String, String>("func_72355_a", "initializeConnectionToPlayer"));
+ mInitMap.put(new Pair<String, String>("func_72356_a", "transferPlayerToDimension"));
+ mInitMap.put(new Pair<String, String>("func_72358_d", "serverUpdateMountedMovingPlayer"));
+ mInitMap.put(new Pair<String, String>("func_72362_j", "loadWhiteList"));
+ mInitMap.put(new Pair<String, String>("func_72363_f", "getBannedIPs"));
+ mInitMap.put(new Pair<String, String>("func_72364_a", "setPlayerManager"));
+ mInitMap.put(new Pair<String, String>("func_72365_p", "getServerInstance"));
+ mInitMap.put(new Pair<String, String>("func_72367_e", "playerLoggedOut"));
+ mInitMap.put(new Pair<String, String>("func_72368_a", "recreatePlayerEntity"));
+ mInitMap.put(new Pair<String, String>("func_72369_d", "getAllUsernames"));
+ mInitMap.put(new Pair<String, String>("func_72371_a", "setWhiteListEnabled"));
+ mInitMap.put(new Pair<String, String>("func_72372_a", "getEntityViewDistance"));
+ mInitMap.put(new Pair<String, String>("func_72373_m", "getAvailablePlayerDat"));
+ mInitMap.put(new Pair<String, String>("func_72374_b", "onTick"));
+ mInitMap.put(new Pair<String, String>("func_72377_c", "playerLoggedIn"));
+ mInitMap.put(new Pair<String, String>("func_72378_q", "getHostPlayerData"));
+ mInitMap.put(new Pair<String, String>("func_72380_a", "readPlayerDataFromFile"));
+ mInitMap.put(new Pair<String, String>("func_72382_j", "getPlayersMatchingAddress"));
+ mInitMap.put(new Pair<String, String>("func_72383_n", "isWhiteListEnabled"));
+ mInitMap.put(new Pair<String, String>("func_72385_f", "syncPlayerInventory"));
+ mInitMap.put(new Pair<String, String>("func_72387_b", "setCommandsAllowedForAll"));
+ mInitMap.put(new Pair<String, String>("func_72389_g", "saveAllPlayerData"));
+ mInitMap.put(new Pair<String, String>("func_72391_b", "writePlayerData"));
+ mInitMap.put(new Pair<String, String>("func_72392_r", "removeAllPlayers"));
+ mInitMap.put(new Pair<String, String>("func_72394_k", "getCurrentPlayerCount"));
+ mInitMap.put(new Pair<String, String>("func_72395_o", "getViewDistance"));
+ mInitMap.put(new Pair<String, String>("func_72417_t", "loadOpsList"));
+ mInitMap.put(new Pair<String, String>("func_72418_v", "readWhiteList"));
+ mInitMap.put(new Pair<String, String>("func_72419_u", "saveOpsList"));
+ mInitMap.put(new Pair<String, String>("func_72421_w", "saveWhiteList"));
+ mInitMap.put(new Pair<String, String>("func_72429_b", "getIntermediateWithXValue"));
+ mInitMap.put(new Pair<String, String>("func_72430_b", "dotProduct"));
+ mInitMap.put(new Pair<String, String>("func_72431_c", "crossProduct"));
+ mInitMap.put(new Pair<String, String>("func_72432_b", "normalize"));
+ mInitMap.put(new Pair<String, String>("func_72433_c", "lengthVector"));
+ mInitMap.put(new Pair<String, String>("func_72434_d", "getIntermediateWithZValue"));
+ mInitMap.put(new Pair<String, String>("func_72435_c", "getIntermediateWithYValue"));
+ mInitMap.put(new Pair<String, String>("func_72436_e", "squareDistanceTo"));
+ mInitMap.put(new Pair<String, String>("func_72438_d", "distanceTo"));
+ mInitMap.put(new Pair<String, String>("func_72439_b", "setComponents"));
+ mInitMap.put(new Pair<String, String>("func_72440_a", "rotateAroundX"));
+ mInitMap.put(new Pair<String, String>("func_72441_c", "addVector"));
+ mInitMap.put(new Pair<String, String>("func_72442_b", "rotateAroundY"));
+ mInitMap.put(new Pair<String, String>("func_72443_a", "createVectorHelper"));
+ mInitMap.put(new Pair<String, String>("func_72444_a", "subtract"));
+ mInitMap.put(new Pair<String, String>("func_72445_d", "squareDistanceTo"));
+ mInitMap.put(new Pair<String, String>("func_72446_c", "rotateAroundZ"));
+ mInitMap.put(new Pair<String, String>("func_72591_c", "getRequestId"));
+ mInitMap.put(new Pair<String, String>("func_72592_a", "getRandomChallenge"));
+ mInitMap.put(new Pair<String, String>("func_72593_a", "hasExpired"));
+ mInitMap.put(new Pair<String, String>("func_72594_b", "getChallengeValue"));
+ mInitMap.put(new Pair<String, String>("func_72601_a", "registerSocket"));
+ mInitMap.put(new Pair<String, String>("func_72602_a", "startThread"));
+ mInitMap.put(new Pair<String, String>("func_72603_d", "getNumberOfPlayers"));
+ mInitMap.put(new Pair<String, String>("func_72604_a", "closeSocket"));
+ mInitMap.put(new Pair<String, String>("func_72605_a", "closeServerSocket_do"));
+ mInitMap.put(new Pair<String, String>("func_72606_c", "logWarning"));
+ mInitMap.put(new Pair<String, String>("func_72607_a", "logDebug"));
+ mInitMap.put(new Pair<String, String>("func_72608_b", "closeServerSocket"));
+ mInitMap.put(new Pair<String, String>("func_72609_b", "logInfo"));
+ mInitMap.put(new Pair<String, String>("func_72610_d", "logSevere"));
+ mInitMap.put(new Pair<String, String>("func_72611_e", "closeAllSockets"));
+ mInitMap.put(new Pair<String, String>("func_72612_a", "closeAllSockets_do"));
+ mInitMap.put(new Pair<String, String>("func_72613_c", "isRunning"));
+ mInitMap.put(new Pair<String, String>("func_72620_a", "sendResponsePacket"));
+ mInitMap.put(new Pair<String, String>("func_72621_a", "parseIncomingPacket"));
+ mInitMap.put(new Pair<String, String>("func_72622_d", "sendAuthChallenge"));
+ mInitMap.put(new Pair<String, String>("func_72623_a", "stopWithException"));
+ mInitMap.put(new Pair<String, String>("func_72624_b", "createQueryResponse"));
+ mInitMap.put(new Pair<String, String>("func_72625_a", "getRequestID"));
+ mInitMap.put(new Pair<String, String>("func_72626_g", "initQuerySystem"));
+ mInitMap.put(new Pair<String, String>("func_72627_c", "verifyClientAuth"));
+ mInitMap.put(new Pair<String, String>("func_72628_f", "cleanQueryClientsMap"));
+ mInitMap.put(new Pair<String, String>("func_72645_g", "cleanClientThreadsMap"));
+ mInitMap.put(new Pair<String, String>("func_72646_f", "initClientThreadList"));
+ mInitMap.put(new Pair<String, String>("func_72653_g", "closeSocket"));
+ mInitMap.put(new Pair<String, String>("func_72654_a", "sendResponse"));
+ mInitMap.put(new Pair<String, String>("func_72655_a", "sendMultipacketResponse"));
+ mInitMap.put(new Pair<String, String>("func_72656_f", "sendLoginFailedResponse"));
+ mInitMap.put(new Pair<String, String>("func_72661_a", "getBytesAsString"));
+ mInitMap.put(new Pair<String, String>("func_72662_b", "getRemainingBytesAsLEInt"));
+ mInitMap.put(new Pair<String, String>("func_72663_a", "getByteAsHexString"));
+ mInitMap.put(new Pair<String, String>("func_72664_c", "getBytesAsBEint"));
+ mInitMap.put(new Pair<String, String>("func_72665_b", "getBytesAsLEInt"));
+ mInitMap.put(new Pair<String, String>("func_72667_a", "writeInt"));
+ mInitMap.put(new Pair<String, String>("func_72668_a", "writeShort"));
+ mInitMap.put(new Pair<String, String>("func_72669_b", "reset"));
+ mInitMap.put(new Pair<String, String>("func_72670_a", "writeByteArray"));
+ mInitMap.put(new Pair<String, String>("func_72671_a", "writeString"));
+ mInitMap.put(new Pair<String, String>("func_72672_a", "toByteArray"));
+ mInitMap.put(new Pair<String, String>("func_72683_a", "addPlayer"));
+ mInitMap.put(new Pair<String, String>("func_72684_a", "overlaps"));
+ mInitMap.put(new Pair<String, String>("func_72685_d", "updateMountedMovingPlayer"));
+ mInitMap.put(new Pair<String, String>("func_72686_a", "getFurthestViewableBlock"));
+ mInitMap.put(new Pair<String, String>("func_72688_a", "getMinecraftServer"));
+ mInitMap.put(new Pair<String, String>("func_72690_a", "getPlayerInstance"));
+ mInitMap.put(new Pair<String, String>("func_72691_b", "filterChunkLoadQueue"));
+ mInitMap.put(new Pair<String, String>("func_72693_b", "updatePlayerInstances"));
+ mInitMap.put(new Pair<String, String>("func_72694_a", "isPlayerWatchingChunk"));
+ mInitMap.put(new Pair<String, String>("func_72695_c", "removePlayer"));
+ mInitMap.put(new Pair<String, String>("func_72702_a", "playRecord"));
+ mInitMap.put(new Pair<String, String>("func_72703_a", "onEntityCreate"));
+ mInitMap.put(new Pair<String, String>("func_72704_a", "playSound"));
+ mInitMap.put(new Pair<String, String>("func_72706_a", "playAuxSFX"));
+ mInitMap.put(new Pair<String, String>("func_72708_a", "spawnParticle"));
+ mInitMap.put(new Pair<String, String>("func_72709_b", "onEntityDestroy"));
+ mInitMap.put(new Pair<String, String>("func_72712_a", "loadRenderers"));
+ mInitMap.put(new Pair<String, String>("func_72714_a", "renderSky"));
+ mInitMap.put(new Pair<String, String>("func_72716_a", "updateRenderers"));
+ mInitMap.put(new Pair<String, String>("func_72717_a", "drawBlockDamageTexture"));
+ mInitMap.put(new Pair<String, String>("func_72718_b", "renderClouds"));
+ mInitMap.put(new Pair<String, String>("func_72719_a", "sortAndRender"));
+ mInitMap.put(new Pair<String, String>("func_72720_a", "checkOcclusionQueryResult"));
+ mInitMap.put(new Pair<String, String>("func_72721_a", "hasCloudFog"));
+ mInitMap.put(new Pair<String, String>("func_72722_c", "markRenderersFormInitMap.put(newPosition"));
+ mInitMap.put(new Pair<String, String>("func_72723_d", "getDebugInfoEntities"));
+ mInitMap.put(new Pair<String, String>("func_72724_a", "renderSortedRenderers"));
+ mInitMap.put(new Pair<String, String>("func_72725_b", "markBlocksForUpdate"));
+ mInitMap.put(new Pair<String, String>("func_72726_b", "doSpawnParticle"));
+ mInitMap.put(new Pair<String, String>("func_72728_f", "deleteAllDisplayLists"));
+ mInitMap.put(new Pair<String, String>("func_72729_a", "clipRenderersByFrustum"));
+ mInitMap.put(new Pair<String, String>("func_72730_g", "renderStars"));
+ mInitMap.put(new Pair<String, String>("func_72731_b", "drawSelectionBox"));
+ mInitMap.put(new Pair<String, String>("func_72732_a", "setWorldAndLoadRenderers"));
+ mInitMap.put(new Pair<String, String>("func_72733_a", "renderAllRenderLists"));
+ mInitMap.put(new Pair<String, String>("func_72734_e", "updateClouds"));
+ mInitMap.put(new Pair<String, String>("func_72735_c", "getDebugInfoRenders"));
+ mInitMap.put(new Pair<String, String>("func_72736_c", "renderCloudsFancy"));
+ mInitMap.put(new Pair<String, String>("func_72785_a", "addEntityToTracker"));
+ mInitMap.put(new Pair<String, String>("func_72786_a", "trackEntity"));
+ mInitMap.put(new Pair<String, String>("func_72787_a", "removePlayerFromTrackers"));
+ mInitMap.put(new Pair<String, String>("func_72788_a", "updateTrackedEntities"));
+ mInitMap.put(new Pair<String, String>("func_72790_b", "untrackEntity"));
+ mInitMap.put(new Pair<String, String>("func_72791_a", "trackEntity"));
+ mInitMap.put(new Pair<String, String>("func_72800_K", "getHeight"));
+ mInitMap.put(new Pair<String, String>("func_72801_o", "getLightBrightness"));
+ mInitMap.put(new Pair<String, String>("func_72802_i", "getLightBrightnessForSkyBlocks"));
+ mInitMap.put(new Pair<String, String>("func_72805_g", "getBlockMetadata"));
+ mInitMap.put(new Pair<String, String>("func_72806_N", "extendedLevelsInChunkCache"));
+ mInitMap.put(new Pair<String, String>("func_72807_a", "getBiomeGenForCoords"));
+ mInitMap.put(new Pair<String, String>("func_72810_a", "getSkyBlockTypeBrightness"));
+ mInitMap.put(new Pair<String, String>("func_72812_b", "getSpecialBlockBrightness"));
+ mInitMap.put(new Pair<String, String>("func_72819_i", "getWeightedThunderStrength"));
+ mInitMap.put(new Pair<String, String>("func_72820_D", "getWorldTime"));
+ mInitMap.put(new Pair<String, String>("func_72823_a", "setItemData"));
+ mInitMap.put(new Pair<String, String>("func_72824_f", "getCloudColour"));
+ mInitMap.put(new Pair<String, String>("func_72825_h", "getTopSolidOrLiquidBlock"));
+ mInitMap.put(new Pair<String, String>("func_72826_c", "getCelestialAngle"));
+ mInitMap.put(new Pair<String, String>("func_72827_u", "getProviderName"));
+ mInitMap.put(new Pair<String, String>("func_72828_b", "unloadEntities"));
+ mInitMap.put(new Pair<String, String>("func_72829_c", "checkBlockCollision"));
+ mInitMap.put(new Pair<String, String>("func_72830_b", "isAABBInMaterial"));
+ mInitMap.put(new Pair<String, String>("func_72833_a", "getSkyColor"));
+ mInitMap.put(new Pair<String, String>("func_72834_c", "canBlockFreeze"));
+ mInitMap.put(new Pair<String, String>("func_72835_b", "tick"));
+ mInitMap.put(new Pair<String, String>("func_72838_d", "spawnEntityInWorld"));
+ mInitMap.put(new Pair<String, String>("func_72839_b", "getEntitiesWithinAABBExcludingEntity"));
+ mInitMap.put(new Pair<String, String>("func_72841_b", "getUniqueDataId"));
+ mInitMap.put(new Pair<String, String>("func_72842_a", "getBlockDensity"));
+ mInitMap.put(new Pair<String, String>("func_72843_D", "setRandomSeed"));
+ mInitMap.put(new Pair<String, String>("func_72844_a", "getEntityPathToXYZ"));
+ mInitMap.put(new Pair<String, String>("func_72846_b", "getClosestVulnerablePlayer"));
+ mInitMap.put(new Pair<String, String>("func_72847_b", "onEntityRemoved"));
+ mInitMap.put(new Pair<String, String>("func_72848_b", "removeWorldAccess"));
+ mInitMap.put(new Pair<String, String>("func_72849_a", "getBlockLightValue_do"));
+ mInitMap.put(new Pair<String, String>("func_72850_v", "isBlockFreezableNaturally"));
+ mInitMap.put(new Pair<String, String>("func_72853_d", "getMoonPhase"));
+ mInitMap.put(new Pair<String, String>("func_72854_c", "updateAllPlayersSleepingFlag"));
+ mInitMap.put(new Pair<String, String>("func_72855_b", "checkNoEntityCollision"));
+ mInitMap.put(new Pair<String, String>("func_72856_b", "getClosestVulnerablePlayerToEntity"));
+ mInitMap.put(new Pair<String, String>("func_72857_a", "findNearestEntityWithinAABB"));
+ mInitMap.put(new Pair<String, String>("func_72860_G", "getSaveHandler"));
+ mInitMap.put(new Pair<String, String>("func_72861_E", "getSpawnPoint"));
+ mInitMap.put(new Pair<String, String>("func_72863_F", "getChunkProvider"));
+ mInitMap.put(new Pair<String, String>("func_72864_z", "isBlockIndirectlyGettingPowered"));
+ mInitMap.put(new Pair<String, String>("func_72865_a", "getPathEntityToEntity"));
+ mInitMap.put(new Pair<String, String>("func_72866_a", "updateEntityWithOptionalForce"));
+ mInitMap.put(new Pair<String, String>("func_72867_j", "getRainStrength"));
+ mInitMap.put(new Pair<String, String>("func_72868_a", "addLoadedEntities"));
+ mInitMap.put(new Pair<String, String>("func_72869_a", "spawnParticle"));
+ mInitMap.put(new Pair<String, String>("func_72870_g", "updateEntity"));
+ mInitMap.put(new Pair<String, String>("func_72872_a", "getEntitiesWithinAABB"));
+ mInitMap.put(new Pair<String, String>("func_72873_a", "doChunksNearChunkExist"));
+ mInitMap.put(new Pair<String, String>("func_72874_g", "getPrecipitationHeight"));
+ mInitMap.put(new Pair<String, String>("func_72875_a", "isMaterialInBB"));
+ mInitMap.put(new Pair<String, String>("func_72876_a", "createExplosion"));
+ mInitMap.put(new Pair<String, String>("func_72877_b", "setWorldTime"));
+ mInitMap.put(new Pair<String, String>("func_72878_l", "getIndirectPowerLevelTo"));
+ mInitMap.put(new Pair<String, String>("func_72879_k", "isBlockProvidingPowerTo"));
+ mInitMap.put(new Pair<String, String>("func_72880_h", "getStarBrightness"));
+ mInitMap.put(new Pair<String, String>("func_72882_A", "sendQuittingDisconnectingPacket"));
+ mInitMap.put(new Pair<String, String>("func_72883_k", "getFullBlockLightValue"));
+ mInitMap.put(new Pair<String, String>("func_72884_u", "isBlockFreezable"));
+ mInitMap.put(new Pair<String, String>("func_72885_a", "mInitMap.put(newExplosion"));
+ mInitMap.put(new Pair<String, String>("func_72886_a", "extinguishFire"));
+ mInitMap.put(new Pair<String, String>("func_72889_a", "playAuxSFXAtEntity"));
+ mInitMap.put(new Pair<String, String>("func_72890_a", "getClosestPlayerToEntity"));
+ mInitMap.put(new Pair<String, String>("func_72891_a", "setAllowedSpawnTypes"));
+ mInitMap.put(new Pair<String, String>("func_72894_k", "setRainStrength"));
+ mInitMap.put(new Pair<String, String>("func_72896_J", "isRaining"));
+ mInitMap.put(new Pair<String, String>("func_72897_h", "joinEntityInSurroundings"));
+ mInitMap.put(new Pair<String, String>("func_72899_e", "blockExists"));
+ mInitMap.put(new Pair<String, String>("func_72900_e", "removeEntity"));
+ mInitMap.put(new Pair<String, String>("func_72901_a", "rayTraceBlocks"));
+ mInitMap.put(new Pair<String, String>("func_72903_x", "setActivePlayerChunksAndCheckLight"));
+ mInitMap.put(new Pair<String, String>("func_72904_c", "checkChunksExist"));
+ mInitMap.put(new Pair<String, String>("func_72905_C", "getSeed"));
+ mInitMap.put(new Pair<String, String>("func_72906_B", "checkSessionLock"));
+ mInitMap.put(new Pair<String, String>("func_72907_a", "countEntities"));
+ mInitMap.put(new Pair<String, String>("func_72908_a", "playSoundEffect"));
+ mInitMap.put(new Pair<String, String>("func_72910_y", "getLoadedEntityList"));
+ mInitMap.put(new Pair<String, String>("func_72911_I", "isThundering"));
+ mInitMap.put(new Pair<String, String>("func_72912_H", "getWorldInfo"));
+ mInitMap.put(new Pair<String, String>("func_72914_a", "addWorldInfoToCrashReport"));
+ mInitMap.put(new Pair<String, String>("func_72915_b", "setLightValue"));
+ mInitMap.put(new Pair<String, String>("func_72916_c", "chunkExists"));
+ mInitMap.put(new Pair<String, String>("func_72917_a", "checkNoEntityCollision"));
+ mInitMap.put(new Pair<String, String>("func_72918_a", "handleMaterialAcceleration"));
+ mInitMap.put(new Pair<String, String>("func_72919_O", "getHorizon"));
+ mInitMap.put(new Pair<String, String>("func_72920_a", "getPendingBlockUpdates"));
+ mInitMap.put(new Pair<String, String>("func_72921_c", "setBlockMetadataWithNotify"));
+ mInitMap.put(new Pair<String, String>("func_72923_a", "onEntityAdded"));
+ mInitMap.put(new Pair<String, String>("func_72924_a", "getPlayerEntityByName"));
+ mInitMap.put(new Pair<String, String>("func_72925_a", "getSkyBlockTypeBrightness"));
+ mInitMap.put(new Pair<String, String>("func_72926_e", "playAuxSFX"));
+ mInitMap.put(new Pair<String, String>("func_72929_e", "getCelestialAngleRadians"));
+ mInitMap.put(new Pair<String, String>("func_72933_a", "rayTraceBlocks"));
+ mInitMap.put(new Pair<String, String>("func_72934_a", "playRecord"));
+ mInitMap.put(new Pair<String, String>("func_72935_r", "isDaytime"));
+ mInitMap.put(new Pair<String, String>("func_72937_j", "canBlockSeeTheSky"));
+ mInitMap.put(new Pair<String, String>("func_72938_d", "getChunkFromBlockCoords"));
+ mInitMap.put(new Pair<String, String>("func_72939_s", "updateEntities"));
+ mInitMap.put(new Pair<String, String>("func_72940_L", "getActualHeight"));
+ mInitMap.put(new Pair<String, String>("func_72942_c", "addWeatherEffect"));
+ mInitMap.put(new Pair<String, String>("func_72943_a", "loadItemData"));
+ mInitMap.put(new Pair<String, String>("func_72945_a", "getCollidingBoundingBoxes"));
+ mInitMap.put(new Pair<String, String>("func_72947_a", "calculateInitialWeather"));
+ mInitMap.put(new Pair<String, String>("func_72948_g", "getFogColor"));
+ mInitMap.put(new Pair<String, String>("func_72950_A", "setSpawnLocation"));
+ mInitMap.put(new Pair<String, String>("func_72951_B", "isRainingAt"));
+ mInitMap.put(new Pair<String, String>("func_72953_d", "isAnyLiquid"));
+ mInitMap.put(new Pair<String, String>("func_72954_a", "addWorldAccess"));
+ mInitMap.put(new Pair<String, String>("func_72955_a", "tickUpdates"));
+ mInitMap.put(new Pair<String, String>("func_72956_a", "playSoundAtEntity"));
+ mInitMap.put(new Pair<String, String>("func_72957_l", "getBlockLightValue"));
+ mInitMap.put(new Pair<String, String>("func_72958_C", "isBlockHighHumidity"));
+ mInitMap.put(new Pair<String, String>("func_72959_q", "getWorldChunkManager"));
+ mInitMap.put(new Pair<String, String>("func_72960_a", "setEntityState"));
+ mInitMap.put(new Pair<String, String>("func_72962_a", "canMineBlock"));
+ mInitMap.put(new Pair<String, String>("func_72963_a", "initialize"));
+ mInitMap.put(new Pair<String, String>("func_72964_e", "getChunkFromChunkCoords"));
+ mInitMap.put(new Pair<String, String>("func_72966_v", "calculateInitialSkylight"));
+ mInitMap.put(new Pair<String, String>("func_72967_a", "calculateSkylightSubtracted"));
+ mInitMap.put(new Pair<String, String>("func_72970_h", "createChunkProvider"));
+ mInitMap.put(new Pair<String, String>("func_72971_b", "getSunBrightness"));
+ mInitMap.put(new Pair<String, String>("func_72972_b", "getSavedLightValue"));
+ mInitMap.put(new Pair<String, String>("func_72973_f", "removePlayerEntityDangerously"));
+ mInitMap.put(new Pair<String, String>("func_72974_f", "setSpawnLocation"));
+ mInitMap.put(new Pair<String, String>("func_72975_g", "markBlocksDirtyVertical"));
+ mInitMap.put(new Pair<String, String>("func_72976_f", "getHeightValue"));
+ mInitMap.put(new Pair<String, String>("func_72977_a", "getClosestPlayer"));
+ mInitMap.put(new Pair<String, String>("func_72979_l", "updateWeather"));
+ mInitMap.put(new Pair<String, String>("func_72980_b", "playSound"));
+ mInitMap.put(new Pair<String, String>("func_72981_t", "getDebugLoadedEntities"));
+ mInitMap.put(new Pair<String, String>("func_73022_a", "removeAllEntities"));
+ mInitMap.put(new Pair<String, String>("func_73025_a", "doPreChunk"));
+ mInitMap.put(new Pair<String, String>("func_73027_a", "addEntityToWorld"));
+ mInitMap.put(new Pair<String, String>("func_73028_b", "removeEntityFromWorld"));
+ mInitMap.put(new Pair<String, String>("func_73029_E", "doVoidFogParticles"));
+ mInitMap.put(new Pair<String, String>("func_73031_a", "invalidateBlockReceiveRegion"));
+ mInitMap.put(new Pair<String, String>("func_73039_n", "getEntityTracker"));
+ mInitMap.put(new Pair<String, String>("func_73040_p", "getPlayerManager"));
+ mInitMap.put(new Pair<String, String>("func_73041_k", "flush"));
+ mInitMap.put(new Pair<String, String>("func_73042_a", "saveLevel"));
+ mInitMap.put(new Pair<String, String>("func_73044_a", "saveAllChunks"));
+ mInitMap.put(new Pair<String, String>("func_73045_a", "getEntityByID"));
+ mInitMap.put(new Pair<String, String>("func_73047_i", "createBonusChest"));
+ mInitMap.put(new Pair<String, String>("func_73051_P", "resetRainAndThunder"));
+ mInitMap.put(new Pair<String, String>("func_73052_b", "createSpawnPosition"));
+ mInitMap.put(new Pair<String, String>("func_73053_d", "wakeAllPlayers"));
+ mInitMap.put(new Pair<String, String>("func_73054_j", "getEntrancePortalLocation"));
+ mInitMap.put(new Pair<String, String>("func_73056_e", "areAllPlayersAsleep"));
+ mInitMap.put(new Pair<String, String>("func_73057_a", "spawnRandomCreature"));
+ mInitMap.put(new Pair<String, String>("func_73073_c", "cancelDestroyingBlock"));
+ mInitMap.put(new Pair<String, String>("func_73074_a", "onBlockClicked"));
+ mInitMap.put(new Pair<String, String>("func_73075_a", "updateBlockRemoving"));
+ mInitMap.put(new Pair<String, String>("func_73076_a", "setGameType"));
+ mInitMap.put(new Pair<String, String>("func_73077_b", "initializeGameType"));
+ mInitMap.put(new Pair<String, String>("func_73078_a", "activateBlockOrUseItem"));
+ mInitMap.put(new Pair<String, String>("func_73079_d", "removeBlock"));
+ mInitMap.put(new Pair<String, String>("func_73080_a", "setWorld"));
+ mInitMap.put(new Pair<String, String>("func_73081_b", "getGameType"));
+ mInitMap.put(new Pair<String, String>("func_73082_a", "blockRemoving"));
+ mInitMap.put(new Pair<String, String>("func_73083_d", "isCreative"));
+ mInitMap.put(new Pair<String, String>("func_73084_b", "tryHarvestBlock"));
+ mInitMap.put(new Pair<String, String>("func_73085_a", "tryUseItem"));
+ mInitMap.put(new Pair<String, String>("func_73101_e", "sendDemoReminder"));
+ mInitMap.put(new Pair<String, String>("func_73106_e", "getPartialBlockDamage"));
+ mInitMap.put(new Pair<String, String>("func_73107_a", "setPartialBlockDamage"));
+ mInitMap.put(new Pair<String, String>("func_73108_d", "getPartialBlockZ"));
+ mInitMap.put(new Pair<String, String>("func_73109_c", "getPartialBlockY"));
+ mInitMap.put(new Pair<String, String>("func_73110_b", "getPartialBlockX"));
+ mInitMap.put(new Pair<String, String>("func_73117_b", "updatePlayerEntity"));
+ mInitMap.put(new Pair<String, String>("func_73118_a", "removeFromTrackedPlayers"));
+ mInitMap.put(new Pair<String, String>("func_73119_a", "sendDestroyEntityPacketToTrackedPlayers"));
+ mInitMap.put(new Pair<String, String>("func_73121_d", "isPlayerWatchingThisChunk"));
+ mInitMap.put(new Pair<String, String>("func_73122_a", "updatePlayerList"));
+ mInitMap.put(new Pair<String, String>("func_73123_c", "removeTrackedPlayerSymmetric"));
+ mInitMap.put(new Pair<String, String>("func_73125_b", "updatePlayerEntities"));
+ mInitMap.put(new Pair<String, String>("func_73148_d", "makeString"));
+ mInitMap.put(new Pair<String, String>("func_73149_a", "chunkExists"));
+ mInitMap.put(new Pair<String, String>("func_73151_a", "saveChunks"));
+ mInitMap.put(new Pair<String, String>("func_73152_e", "getLoadedChunkCount"));
+ mInitMap.put(new Pair<String, String>("func_73153_a", "populate"));
+ mInitMap.put(new Pair<String, String>("func_73154_d", "provideChunk"));
+ mInitMap.put(new Pair<String, String>("func_73155_a", "getPossibleCreatures"));
+ mInitMap.put(new Pair<String, String>("func_73156_b", "unloadQueuedChunks"));
+ mInitMap.put(new Pair<String, String>("func_73157_c", "canSave"));
+ mInitMap.put(new Pair<String, String>("func_73158_c", "loadChunk"));
+ mInitMap.put(new Pair<String, String>("func_73164_a", "initializeNoiseField"));
+ mInitMap.put(new Pair<String, String>("func_73187_a", "initializeNoiseField"));
+ mInitMap.put(new Pair<String, String>("func_73234_b", "unloadChunk"));
+ mInitMap.put(new Pair<String, String>("func_73239_e", "loadChunkFromFile"));
+ mInitMap.put(new Pair<String, String>("func_73240_a", "unloadAllChunks"));
+ mInitMap.put(new Pair<String, String>("func_73241_b", "dropChunk"));
+ mInitMap.put(new Pair<String, String>("func_73242_b", "saveChunkData"));
+ mInitMap.put(new Pair<String, String>("func_73243_a", "saveChunkExtraData"));
+ mInitMap.put(new Pair<String, String>("func_73252_b", "removePlayer"));
+ mInitMap.put(new Pair<String, String>("func_73254_a", "onUpdate"));
+ mInitMap.put(new Pair<String, String>("func_73255_a", "addPlayer"));
+ mInitMap.put(new Pair<String, String>("func_73660_a", "update"));
+ mInitMap.put(new Pair<String, String>("func_73665_c", "getPropertiesFile"));
+ mInitMap.put(new Pair<String, String>("func_73666_a", "generatemInitMap.put(newProperties"));
+ mInitMap.put(new Pair<String, String>("func_73667_a", "setProperty"));
+ mInitMap.put(new Pair<String, String>("func_73668_b", "saveProperties"));
+ mInitMap.put(new Pair<String, String>("func_73669_a", "getIntProperty"));
+ mInitMap.put(new Pair<String, String>("func_73670_a", "getBooleanProperty"));
+ mInitMap.put(new Pair<String, String>("func_73671_a", "getStringProperty"));
+ mInitMap.put(new Pair<String, String>("func_73680_d", "getBanEndDate"));
+ mInitMap.put(new Pair<String, String>("func_73682_e", "hasBanExpired"));
+ mInitMap.put(new Pair<String, String>("func_73686_f", "getBanReason"));
+ mInitMap.put(new Pair<String, String>("func_73718_a", "setLoadingProgress"));
+ mInitMap.put(new Pair<String, String>("func_73719_c", "displayLoadingString"));
+ mInitMap.put(new Pair<String, String>("func_73720_a", "displaySavingString"));
+ mInitMap.put(new Pair<String, String>("func_73721_b", "resetProgressAndMessage"));
+ mInitMap.put(new Pair<String, String>("func_73728_b", "drawVerticalLine"));
+ mInitMap.put(new Pair<String, String>("func_73729_b", "drawTexturedModalRect"));
+ mInitMap.put(new Pair<String, String>("func_73730_a", "drawHorizontalLine"));
+ mInitMap.put(new Pair<String, String>("func_73731_b", "drawString"));
+ mInitMap.put(new Pair<String, String>("func_73732_a", "drawCenteredString"));
+ mInitMap.put(new Pair<String, String>("func_73733_a", "drawGradientRect"));
+ mInitMap.put(new Pair<String, String>("func_73734_a", "drawRect"));
+ mInitMap.put(new Pair<String, String>("func_73828_d", "renderBossHealth"));
+ mInitMap.put(new Pair<String, String>("func_73829_a", "renderVignette"));
+ mInitMap.put(new Pair<String, String>("func_73830_a", "renderGameOverlay"));
+ mInitMap.put(new Pair<String, String>("func_73831_a", "updateTick"));
+ mInitMap.put(new Pair<String, String>("func_73832_a", "renderInventorySlot"));
+ mInitMap.put(new Pair<String, String>("func_73833_a", "setRecordPlayingMessage"));
+ mInitMap.put(new Pair<String, String>("func_73834_c", "getUpdateCounter"));
+ mInitMap.put(new Pair<String, String>("func_73836_a", "renderPumpkinBlur"));
+ mInitMap.put(new Pair<String, String>("func_73863_a", "drawScreen"));
+ mInitMap.put(new Pair<String, String>("func_73864_a", "mouseClicked"));
+ mInitMap.put(new Pair<String, String>("func_73866_w_", "initGui"));
+ mInitMap.put(new Pair<String, String>("func_73868_f", "doesGuiPauseGame"));
+ mInitMap.put(new Pair<String, String>("func_73869_a", "keyTyped"));
+ mInitMap.put(new Pair<String, String>("func_73876_c", "updateScreen"));
+ mInitMap.put(new Pair<String, String>("func_73878_a", "confirmClicked"));
+ mInitMap.put(new Pair<String, String>("func_73968_a", "rotateAndBlurSkybox"));
+ mInitMap.put(new Pair<String, String>("func_73969_a", "addSingleplayerMultiplayerButtons"));
+ mInitMap.put(new Pair<String, String>("func_73970_b", "drawPanorama"));
+ mInitMap.put(new Pair<String, String>("func_73971_c", "renderSkybox"));
+ mInitMap.put(new Pair<String, String>("func_73972_b", "addDemoButtons"));
+ mInitMap.put(new Pair<String, String>("func_74275_a", "updateTimer"));
+ mInitMap.put(new Pair<String, String>("func_74290_a", "getTimestampedPNGFileForDirectory"));
+ mInitMap.put(new Pair<String, String>("func_74296_a", "getOptionFloatValue"));
+ mInitMap.put(new Pair<String, String>("func_74297_c", "getKeyBinding"));
+ mInitMap.put(new Pair<String, String>("func_74298_c", "getKeyDisplayString"));
+ mInitMap.put(new Pair<String, String>("func_74299_a", "getTranslation"));
+ mInitMap.put(new Pair<String, String>("func_74300_a", "loadOptions"));
+ mInitMap.put(new Pair<String, String>("func_74303_b", "saveOptions"));
+ mInitMap.put(new Pair<String, String>("func_74304_a", "setOptionFloatValue"));
+ mInitMap.put(new Pair<String, String>("func_74305_a", "parseFloat"));
+ mInitMap.put(new Pair<String, String>("func_74306_a", "setOptionValue"));
+ mInitMap.put(new Pair<String, String>("func_74308_b", "getOptionOrdinalValue"));
+ mInitMap.put(new Pair<String, String>("func_74309_c", "shouldRenderClouds"));
+ mInitMap.put(new Pair<String, String>("func_74371_a", "checkARBOcclusion"));
+ mInitMap.put(new Pair<String, String>("func_74372_a", "grabMouseCursor"));
+ mInitMap.put(new Pair<String, String>("func_74373_b", "ungrabMouseCursor"));
+ mInitMap.put(new Pair<String, String>("func_74374_c", "mouseXYChange"));
+ mInitMap.put(new Pair<String, String>("func_74378_d", "getEnumString"));
+ mInitMap.put(new Pair<String, String>("func_74379_a", "getEnumOptions"));
+ mInitMap.put(new Pair<String, String>("func_74380_a", "getEnumFloat"));
+ mInitMap.put(new Pair<String, String>("func_74381_c", "returnEnumOrdinal"));
+ mInitMap.put(new Pair<String, String>("func_74382_b", "getEnumBoolean"));
+ mInitMap.put(new Pair<String, String>("func_74428_b", "processReceivedPackets"));
+ mInitMap.put(new Pair<String, String>("func_74430_c", "getRemoteAddress"));
+ mInitMap.put(new Pair<String, String>("func_74505_d", "unpressKey"));
+ mInitMap.put(new Pair<String, String>("func_74506_a", "unPressAllKeys"));
+ mInitMap.put(new Pair<String, String>("func_74507_a", "onTick"));
+ mInitMap.put(new Pair<String, String>("func_74508_b", "resetKeyBindingArrayAndHash"));
+ mInitMap.put(new Pair<String, String>("func_74510_a", "setKeyBindState"));
+ mInitMap.put(new Pair<String, String>("func_74517_a", "setColorBuffer"));
+ mInitMap.put(new Pair<String, String>("func_74518_a", "disableStandardItemLighting"));
+ mInitMap.put(new Pair<String, String>("func_74519_b", "enableStandardItemLighting"));
+ mInitMap.put(new Pair<String, String>("func_74520_c", "enableGUIStandardItemLighting"));
+ mInitMap.put(new Pair<String, String>("func_74521_a", "setColorBuffer"));
+ mInitMap.put(new Pair<String, String>("func_74523_b", "deleteDisplayLists"));
+ mInitMap.put(new Pair<String, String>("func_74524_c", "createDirectByteBuffer"));
+ mInitMap.put(new Pair<String, String>("func_74525_a", "deleteTexturesAndDisplayLists"));
+ mInitMap.put(new Pair<String, String>("func_74526_a", "generateDisplayLists"));
+ mInitMap.put(new Pair<String, String>("func_74527_f", "createDirectIntBuffer"));
+ mInitMap.put(new Pair<String, String>("func_74529_h", "createDirectFloatBuffer"));
+ mInitMap.put(new Pair<String, String>("func_74535_a", "formatString"));
+ mInitMap.put(new Pair<String, String>("func_74539_c", "getChatLineID"));
+ mInitMap.put(new Pair<String, String>("func_74540_b", "getUpdatedCounter"));
+ mInitMap.put(new Pair<String, String>("func_74583_a", "updateRenderInfo"));
+ mInitMap.put(new Pair<String, String>("func_74585_b", "projectViewFromEntity"));
+ mInitMap.put(new Pair<String, String>("func_74732_a", "getId"));
+ mInitMap.put(new Pair<String, String>("func_74734_a", "write"));
+ mInitMap.put(new Pair<String, String>("func_74737_b", "copy"));
+ mInitMap.put(new Pair<String, String>("func_74742_a", "appendTag"));
+ mInitMap.put(new Pair<String, String>("func_74744_a", "removeTag"));
+ mInitMap.put(new Pair<String, String>("func_74745_c", "tagCount"));
+ mInitMap.put(new Pair<String, String>("func_74757_a", "setBoolean"));
+ mInitMap.put(new Pair<String, String>("func_74759_k", "getIntArray"));
+ mInitMap.put(new Pair<String, String>("func_74760_g", "getFloat"));
+ mInitMap.put(new Pair<String, String>("func_74762_e", "getInteger"));
+ mInitMap.put(new Pair<String, String>("func_74763_f", "getLong"));
+ mInitMap.put(new Pair<String, String>("func_74764_b", "hasKey"));
+ mInitMap.put(new Pair<String, String>("func_74765_d", "getShort"));
+ mInitMap.put(new Pair<String, String>("func_74767_n", "getBoolean"));
+ mInitMap.put(new Pair<String, String>("func_74768_a", "setInteger"));
+ mInitMap.put(new Pair<String, String>("func_74769_h", "getDouble"));
+ mInitMap.put(new Pair<String, String>("func_74770_j", "getByteArray"));
+ mInitMap.put(new Pair<String, String>("func_74771_c", "getByte"));
+ mInitMap.put(new Pair<String, String>("func_74772_a", "setLong"));
+ mInitMap.put(new Pair<String, String>("func_74773_a", "setByteArray"));
+ mInitMap.put(new Pair<String, String>("func_74774_a", "setByte"));
+ mInitMap.put(new Pair<String, String>("func_74775_l", "getCompoundTag"));
+ mInitMap.put(new Pair<String, String>("func_74776_a", "setFloat"));
+ mInitMap.put(new Pair<String, String>("func_74777_a", "setShort"));
+ mInitMap.put(new Pair<String, String>("func_74778_a", "setString"));
+ mInitMap.put(new Pair<String, String>("func_74779_i", "getString"));
+ mInitMap.put(new Pair<String, String>("func_74780_a", "setDouble"));
+ mInitMap.put(new Pair<String, String>("func_74781_a", "getTag"));
+ mInitMap.put(new Pair<String, String>("func_74782_a", "setTag"));
+ mInitMap.put(new Pair<String, String>("func_74783_a", "setIntArray"));
+ mInitMap.put(new Pair<String, String>("func_74793_a", "safeWrite"));
+ mInitMap.put(new Pair<String, String>("func_74794_a", "read"));
+ mInitMap.put(new Pair<String, String>("func_74795_b", "write"));
+ mInitMap.put(new Pair<String, String>("func_74796_a", "readCompressed"));
+ mInitMap.put(new Pair<String, String>("func_74797_a", "read"));
+ mInitMap.put(new Pair<String, String>("func_74798_a", "compress"));
+ mInitMap.put(new Pair<String, String>("func_74799_a", "writeCompressed"));
+ mInitMap.put(new Pair<String, String>("func_74800_a", "write"));
+ mInitMap.put(new Pair<String, String>("func_74803_a", "translateKeyFormat"));
+ mInitMap.put(new Pair<String, String>("func_74805_b", "translateKey"));
+ mInitMap.put(new Pair<String, String>("func_74808_a", "getInstance"));
+ mInitMap.put(new Pair<String, String>("func_74837_a", "translateToLocalFormatted"));
+ mInitMap.put(new Pair<String, String>("func_74838_a", "translateToLocal"));
+ mInitMap.put(new Pair<String, String>("func_74844_a", "getErrorOjbects"));
+ mInitMap.put(new Pair<String, String>("func_74860_a", "isLiquidInStructureBoundingBox"));
+ mInitMap.put(new Pair<String, String>("func_74861_a", "buildComponent"));
+ mInitMap.put(new Pair<String, String>("func_74862_a", "getYWithOffset"));
+ mInitMap.put(new Pair<String, String>("func_74865_a", "getXWithOffset"));
+ mInitMap.put(new Pair<String, String>("func_74869_a", "generateStructureDispenserContents"));
+ mInitMap.put(new Pair<String, String>("func_74871_b", "clearCurrentPositionBlocksUpwards"));
+ mInitMap.put(new Pair<String, String>("func_74873_b", "getZWithOffset"));
+ mInitMap.put(new Pair<String, String>("func_74874_b", "getBoundingBox"));
+ mInitMap.put(new Pair<String, String>("func_74875_a", "addComponentParts"));
+ mInitMap.put(new Pair<String, String>("func_74877_c", "getComponentType"));
+ mInitMap.put(new Pair<String, String>("func_74878_a", "fillWithAir"));
+ mInitMap.put(new Pair<String, String>("func_74879_a", "generateStructureChestContents"));
+ mInitMap.put(new Pair<String, String>("func_74881_a", "placeDoorAtCurrentPosition"));
+ mInitMap.put(new Pair<String, String>("func_74882_a", "fillWithRandomizedBlocks"));
+ mInitMap.put(new Pair<String, String>("func_74883_a", "findIntersecting"));
+ mInitMap.put(new Pair<String, String>("func_74888_b", "getVillagerType"));
+ mInitMap.put(new Pair<String, String>("func_74889_b", "getAverageGroundLevel"));
+ mInitMap.put(new Pair<String, String>("func_74891_a", "getNextComponentNN"));
+ mInitMap.put(new Pair<String, String>("func_74893_a", "spawnVillagers"));
+ mInitMap.put(new Pair<String, String>("func_74894_b", "getNextComponentPP"));
+ mInitMap.put(new Pair<String, String>("func_74895_a", "canVillageGoDeeper"));
+ mInitMap.put(new Pair<String, String>("func_74925_d", "getWorldChunkManager"));
+ mInitMap.put(new Pair<String, String>("func_74950_a", "findValidPlacement"));
+ mInitMap.put(new Pair<String, String>("func_74951_a", "findValidPlacement"));
+ mInitMap.put(new Pair<String, String>("func_74954_a", "findValidPlacement"));
+ mInitMap.put(new Pair<String, String>("func_74959_a", "getNextComponent"));
+ mInitMap.put(new Pair<String, String>("func_74960_a", "getTotalWeight"));
+ mInitMap.put(new Pair<String, String>("func_74961_b", "getNextComponentX"));
+ mInitMap.put(new Pair<String, String>("func_74962_a", "getNextComponent"));
+ mInitMap.put(new Pair<String, String>("func_74963_a", "getNextComponentNormal"));
+ mInitMap.put(new Pair<String, String>("func_74964_a", "isAboveGround"));
+ mInitMap.put(new Pair<String, String>("func_74965_c", "getNextComponentZ"));
+ mInitMap.put(new Pair<String, String>("func_74966_a", "createValidComponent"));
+ mInitMap.put(new Pair<String, String>("func_74973_a", "createValidComponent"));
+ mInitMap.put(new Pair<String, String>("func_74974_a", "createValidComponent"));
+ mInitMap.put(new Pair<String, String>("func_74975_a", "createValidComponent"));
+ mInitMap.put(new Pair<String, String>("func_74977_a", "createValidComponent"));
+ mInitMap.put(new Pair<String, String>("func_74978_a", "createValidComponent"));
+ mInitMap.put(new Pair<String, String>("func_74979_a", "createValidComponent"));
+ mInitMap.put(new Pair<String, String>("func_74980_a", "createValidComponent"));
+ mInitMap.put(new Pair<String, String>("func_74981_a", "createValidComponent"));
+ mInitMap.put(new Pair<String, String>("func_74982_a", "createValidComponent"));
+ mInitMap.put(new Pair<String, String>("func_74983_a", "createValidComponent"));
+ mInitMap.put(new Pair<String, String>("func_74984_a", "createValidComponent"));
+ mInitMap.put(new Pair<String, String>("func_74985_a", "createValidComponent"));
+ mInitMap.put(new Pair<String, String>("func_74986_a", "getNextComponentNormal"));
+ mInitMap.put(new Pair<String, String>("func_74987_c", "getNextComponentZ"));
+ mInitMap.put(new Pair<String, String>("func_74988_a", "getRandomDoor"));
+ mInitMap.put(new Pair<String, String>("func_74989_b", "getNextComponentX"));
+ mInitMap.put(new Pair<String, String>("func_74990_a", "placeDoor"));
+ mInitMap.put(new Pair<String, String>("func_74991_a", "canStrongholdGoDeeper"));
+ mInitMap.put(new Pair<String, String>("func_74994_a", "findValidPlacement"));
+ mInitMap.put(new Pair<String, String>("func_75000_a", "findValidPlacement"));
+ mInitMap.put(new Pair<String, String>("func_75004_a", "findValidPlacement"));
+ mInitMap.put(new Pair<String, String>("func_75006_a", "findValidPlacement"));
+ mInitMap.put(new Pair<String, String>("func_75010_a", "findValidPlacement"));
+ mInitMap.put(new Pair<String, String>("func_75012_a", "findValidPlacement"));
+ mInitMap.put(new Pair<String, String>("func_75016_a", "findValidPlacement"));
+ mInitMap.put(new Pair<String, String>("func_75018_a", "findValidPlacement"));
+ mInitMap.put(new Pair<String, String>("func_75022_a", "getStrongholdStairsComponent"));
+ mInitMap.put(new Pair<String, String>("func_75028_a", "findValidPlacement"));
+ mInitMap.put(new Pair<String, String>("func_75047_a", "canSpawnStructureAtCoords"));
+ mInitMap.put(new Pair<String, String>("func_75048_a", "hasStructureAt"));
+ mInitMap.put(new Pair<String, String>("func_75049_b", "getStructureStart"));
+ mInitMap.put(new Pair<String, String>("func_75051_a", "generateStructuresInChunk"));
+ mInitMap.put(new Pair<String, String>("func_75052_o_", "getCoordList"));
+ mInitMap.put(new Pair<String, String>("func_75059_a", "getSpawnList"));
+ mInitMap.put(new Pair<String, String>("func_75062_a", "selectBlocks"));
+ mInitMap.put(new Pair<String, String>("func_75064_b", "getSelectedBlockMetaData"));
+ mInitMap.put(new Pair<String, String>("func_75067_a", "markAvailableHeight"));
+ mInitMap.put(new Pair<String, String>("func_75068_a", "generateStructure"));
+ mInitMap.put(new Pair<String, String>("func_75069_d", "isSizeableStructure"));
+ mInitMap.put(new Pair<String, String>("func_75070_a", "setRandomHeight"));
+ mInitMap.put(new Pair<String, String>("func_75071_a", "getBoundingBox"));
+ mInitMap.put(new Pair<String, String>("func_75072_c", "updateBoundingBox"));
+ mInitMap.put(new Pair<String, String>("func_75073_b", "getComponents"));
+ mInitMap.put(new Pair<String, String>("func_75077_d", "getNextVillageStructureComponent"));
+ mInitMap.put(new Pair<String, String>("func_75080_e", "getNextComponentVillagePath"));
+ mInitMap.put(new Pair<String, String>("func_75081_c", "getNextVillageComponent"));
+ mInitMap.put(new Pair<String, String>("func_75084_a", "getStructureVillageWeightedPieceList"));
+ mInitMap.put(new Pair<String, String>("func_75085_a", "canSpawnMoreVillagePiecesOfType"));
+ mInitMap.put(new Pair<String, String>("func_75086_a", "canSpawnMoreVillagePieces"));
+ mInitMap.put(new Pair<String, String>("func_75091_a", "writeCapabilitiesToNBT"));
+ mInitMap.put(new Pair<String, String>("func_75092_a", "setFlySpeed"));
+ mInitMap.put(new Pair<String, String>("func_75093_a", "getFlySpeed"));
+ mInitMap.put(new Pair<String, String>("func_75094_b", "getWalkSpeed"));
+ mInitMap.put(new Pair<String, String>("func_75095_b", "readCapabilitiesFromNBT"));
+ mInitMap.put(new Pair<String, String>("func_75112_a", "readNBT"));
+ mInitMap.put(new Pair<String, String>("func_75113_a", "addExhaustion"));
+ mInitMap.put(new Pair<String, String>("func_75114_a", "setFoodLevel"));
+ mInitMap.put(new Pair<String, String>("func_75115_e", "getSaturationLevel"));
+ mInitMap.put(new Pair<String, String>("func_75116_a", "getFoodLevel"));
+ mInitMap.put(new Pair<String, String>("func_75117_b", "writeNBT"));
+ mInitMap.put(new Pair<String, String>("func_75118_a", "onUpdate"));
+ mInitMap.put(new Pair<String, String>("func_75119_b", "setFoodSaturationLevel"));
+ mInitMap.put(new Pair<String, String>("func_75120_b", "getPrevFoodLevel"));
+ mInitMap.put(new Pair<String, String>("func_75121_c", "needFood"));
+ mInitMap.put(new Pair<String, String>("func_75122_a", "addStats"));
+ mInitMap.put(new Pair<String, String>("func_75128_a", "setCanCraft"));
+ mInitMap.put(new Pair<String, String>("func_75129_b", "getCanCraft"));
+ mInitMap.put(new Pair<String, String>("func_75130_a", "onCraftMatrixChanged"));
+ mInitMap.put(new Pair<String, String>("func_75131_a", "putStacksInSlots"));
+ mInitMap.put(new Pair<String, String>("func_75132_a", "onCraftGuiOpened"));
+ mInitMap.put(new Pair<String, String>("func_75133_b", "retrySlotClick"));
+ mInitMap.put(new Pair<String, String>("func_75134_a", "onContainerClosed"));
+ mInitMap.put(new Pair<String, String>("func_75135_a", "mergeItemStack"));
+ mInitMap.put(new Pair<String, String>("func_75136_a", "getNextTransactionID"));
+ mInitMap.put(new Pair<String, String>("func_75137_b", "updateProgressBar"));
+ mInitMap.put(new Pair<String, String>("func_75138_a", "getInventory"));
+ mInitMap.put(new Pair<String, String>("func_75139_a", "getSlot"));
+ mInitMap.put(new Pair<String, String>("func_75140_a", "enchantItem"));
+ mInitMap.put(new Pair<String, String>("func_75141_a", "putStackInSlot"));
+ mInitMap.put(new Pair<String, String>("func_75142_b", "detectAndSendChanges"));
+ mInitMap.put(new Pair<String, String>("func_75144_a", "slotClick"));
+ mInitMap.put(new Pair<String, String>("func_75145_c", "canInteractWith"));
+ mInitMap.put(new Pair<String, String>("func_75146_a", "addSlotToContainer"));
+ mInitMap.put(new Pair<String, String>("func_75147_a", "getSlotFromInventory"));
+ mInitMap.put(new Pair<String, String>("func_75174_d", "getMerchantInventory"));
+ mInitMap.put(new Pair<String, String>("func_75175_c", "setCurrentRecipeIndex"));
+ mInitMap.put(new Pair<String, String>("func_75189_a", "canSpawnMoreStructuresOfType"));
+ mInitMap.put(new Pair<String, String>("func_75190_a", "canSpawnMoreStructures"));
+ mInitMap.put(new Pair<String, String>("func_75196_c", "getNextValidComponent"));
+ mInitMap.put(new Pair<String, String>("func_75198_a", "prepareStructurePieces"));
+ mInitMap.put(new Pair<String, String>("func_75200_a", "getStrongholdComponentFromWeightedPiece"));
+ mInitMap.put(new Pair<String, String>("func_75201_b", "getNextComponent"));
+ mInitMap.put(new Pair<String, String>("func_75202_c", "canAddStructurePieces"));
+ mInitMap.put(new Pair<String, String>("func_75208_c", "onCrafting"));
+ mInitMap.put(new Pair<String, String>("func_75209_a", "decrStackSize"));
+ mInitMap.put(new Pair<String, String>("func_75210_a", "onCrafting"));
+ mInitMap.put(new Pair<String, String>("func_75211_c", "getStack"));
+ mInitMap.put(new Pair<String, String>("func_75212_b", "getBackgroundIconIndex"));
+ mInitMap.put(new Pair<String, String>("func_75214_a", "isItemValid"));
+ mInitMap.put(new Pair<String, String>("func_75215_d", "putStack"));
+ mInitMap.put(new Pair<String, String>("func_75216_d", "getHasStack"));
+ mInitMap.put(new Pair<String, String>("func_75217_a", "isHere"));
+ mInitMap.put(new Pair<String, String>("func_75218_e", "onSlotChanged"));
+ mInitMap.put(new Pair<String, String>("func_75219_a", "getSlotStackLimit"));
+ mInitMap.put(new Pair<String, String>("func_75220_a", "onSlotChange"));
+ mInitMap.put(new Pair<String, String>("func_75230_a", "doTrade"));
+ mInitMap.put(new Pair<String, String>("func_75243_a_", "canHoldPotion"));
+ mInitMap.put(new Pair<String, String>("func_75246_d", "updateTask"));
+ mInitMap.put(new Pair<String, String>("func_75247_h", "getMutexBits"));
+ mInitMap.put(new Pair<String, String>("func_75248_a", "setMutexBits"));
+ mInitMap.put(new Pair<String, String>("func_75249_e", "startExecuting"));
+ mInitMap.put(new Pair<String, String>("func_75250_a", "shouldExecute"));
+ mInitMap.put(new Pair<String, String>("func_75251_c", "resetTask"));
+ mInitMap.put(new Pair<String, String>("func_75252_g", "isInterruptible"));
+ mInitMap.put(new Pair<String, String>("func_75253_b", "continueExecuting"));
+ mInitMap.put(new Pair<String, String>("func_75270_a", "setSitting"));
+ mInitMap.put(new Pair<String, String>("func_75277_f", "isRunning"));
+ mInitMap.put(new Pair<String, String>("func_75295_a", "canEasilyReach"));
+ mInitMap.put(new Pair<String, String>("func_75296_a", "isSuitableTarget"));
+ mInitMap.put(new Pair<String, String>("func_75366_f", "findPossibleShelter"));
+ mInitMap.put(new Pair<String, String>("func_75382_a", "hasPlayerGotBoneInHand"));
+ mInitMap.put(new Pair<String, String>("func_75388_i", "spawnBaby"));
+ mInitMap.put(new Pair<String, String>("func_75389_f", "getNearbyMate"));
+ mInitMap.put(new Pair<String, String>("func_75446_f", "checkSufficientDoorsPresentFormInitMap.put(newVillager"));
+ mInitMap.put(new Pair<String, String>("func_75447_i", "giveBirth"));
+ mInitMap.put(new Pair<String, String>("func_75461_b", "findRandomTargetBlockAwayFrom"));
+ mInitMap.put(new Pair<String, String>("func_75462_c", "findRandomTargetBlock"));
+ mInitMap.put(new Pair<String, String>("func_75463_a", "findRandomTarget"));
+ mInitMap.put(new Pair<String, String>("func_75464_a", "findRandomTargetBlockTowards"));
+ mInitMap.put(new Pair<String, String>("func_75466_d", "resetDoorOpeningRestrictionCounter"));
+ mInitMap.put(new Pair<String, String>("func_75467_a", "isInside"));
+ mInitMap.put(new Pair<String, String>("func_75468_f", "getDoorOpeningRestrictionCounter"));
+ mInitMap.put(new Pair<String, String>("func_75469_c", "getInsideDistanceSquare"));
+ mInitMap.put(new Pair<String, String>("func_75470_e", "incrementDoorOpeningRestrictionCounter"));
+ mInitMap.put(new Pair<String, String>("func_75471_a", "getInsidePosX"));
+ mInitMap.put(new Pair<String, String>("func_75472_c", "getInsidePosZ"));
+ mInitMap.put(new Pair<String, String>("func_75473_b", "getInsidePosY"));
+ mInitMap.put(new Pair<String, String>("func_75474_b", "getDistanceSquared"));
+ mInitMap.put(new Pair<String, String>("func_75483_a", "isSafeToStandAt"));
+ mInitMap.put(new Pair<String, String>("func_75484_a", "setPath"));
+ mInitMap.put(new Pair<String, String>("func_75485_k", "canNavigate"));
+ mInitMap.put(new Pair<String, String>("func_75486_a", "getAvoidsWater"));
+ mInitMap.put(new Pair<String, String>("func_75487_m", "removeSunnyPath"));
+ mInitMap.put(new Pair<String, String>("func_75488_a", "getPathToXYZ"));
+ mInitMap.put(new Pair<String, String>("func_75489_a", "setSpeed"));
+ mInitMap.put(new Pair<String, String>("func_75490_c", "setEnterDoors"));
+ mInitMap.put(new Pair<String, String>("func_75491_a", "setAvoidsWater"));
+ mInitMap.put(new Pair<String, String>("func_75492_a", "tryMoveToXYZ"));
+ mInitMap.put(new Pair<String, String>("func_75493_a", "isDirectPathBetweenPoints"));
+ mInitMap.put(new Pair<String, String>("func_75494_a", "getPathToEntityLiving"));
+ mInitMap.put(new Pair<String, String>("func_75495_e", "setCanSwim"));
+ mInitMap.put(new Pair<String, String>("func_75496_b", "isPositionClear"));
+ mInitMap.put(new Pair<String, String>("func_75497_a", "tryMoveToEntityLiving"));
+ mInitMap.put(new Pair<String, String>("func_75498_b", "setBreakDoors"));
+ mInitMap.put(new Pair<String, String>("func_75499_g", "clearPathEntity"));
+ mInitMap.put(new Pair<String, String>("func_75500_f", "noPath"));
+ mInitMap.put(new Pair<String, String>("func_75501_e", "onUpdateNavigation"));
+ mInitMap.put(new Pair<String, String>("func_75502_i", "getEntityPosition"));
+ mInitMap.put(new Pair<String, String>("func_75503_j", "getPathableYPos"));
+ mInitMap.put(new Pair<String, String>("func_75504_d", "setAvoidSun"));
+ mInitMap.put(new Pair<String, String>("func_75505_d", "getPath"));
+ mInitMap.put(new Pair<String, String>("func_75506_l", "isInLiquid"));
+ mInitMap.put(new Pair<String, String>("func_75507_c", "getCanBreakDoors"));
+ mInitMap.put(new Pair<String, String>("func_75508_h", "pathFollow"));
+ mInitMap.put(new Pair<String, String>("func_75522_a", "canSee"));
+ mInitMap.put(new Pair<String, String>("func_75523_a", "clearSensingCache"));
+ mInitMap.put(new Pair<String, String>("func_75528_a", "tick"));
+ mInitMap.put(new Pair<String, String>("func_75530_c", "spawnZombie"));
+ mInitMap.put(new Pair<String, String>("func_75540_b", "getVillageList"));
+ mInitMap.put(new Pair<String, String>("func_75541_e", "isWoodenDoorAt"));
+ mInitMap.put(new Pair<String, String>("func_75542_c", "addDoorTomInitMap.put(newListIfAppropriate"));
+ mInitMap.put(new Pair<String, String>("func_75543_d", "dropOldestVillagerPosition"));
+ mInitMap.put(new Pair<String, String>("func_75544_a", "tick"));
+ mInitMap.put(new Pair<String, String>("func_75545_e", "addmInitMap.put(newDoorsToVillageOrCreateVillage"));
+ mInitMap.put(new Pair<String, String>("func_75546_a", "addUnassignedWoodenDoorsAroundTomInitMap.put(newDoorsList"));
+ mInitMap.put(new Pair<String, String>("func_75547_b", "getVillageDoorAt"));
+ mInitMap.put(new Pair<String, String>("func_75548_d", "isVillagerPositionPresent"));
+ mInitMap.put(new Pair<String, String>("func_75549_c", "removeAnnihilatedVillages"));
+ mInitMap.put(new Pair<String, String>("func_75550_a", "findNearestVillage"));
+ mInitMap.put(new Pair<String, String>("func_75551_a", "addVillagerPosition"));
+ mInitMap.put(new Pair<String, String>("func_75557_k", "removeDeadAndOutOfRangeDoors"));
+ mInitMap.put(new Pair<String, String>("func_75558_f", "getVillageDoorInfoList"));
+ mInitMap.put(new Pair<String, String>("func_75559_a", "tryGetIronGolemSpawningLocation"));
+ mInitMap.put(new Pair<String, String>("func_75560_a", "tick"));
+ mInitMap.put(new Pair<String, String>("func_75561_d", "getTicksSinceLastDoorAdding"));
+ mInitMap.put(new Pair<String, String>("func_75562_e", "getNumVillagers"));
+ mInitMap.put(new Pair<String, String>("func_75563_b", "isValidIronGolemSpawningLocation"));
+ mInitMap.put(new Pair<String, String>("func_75564_b", "findNearestDoor"));
+ mInitMap.put(new Pair<String, String>("func_75565_j", "removeDeadAndOldAgressors"));
+ mInitMap.put(new Pair<String, String>("func_75566_g", "isAnnihilated"));
+ mInitMap.put(new Pair<String, String>("func_75567_c", "getNumVillageDoors"));
+ mInitMap.put(new Pair<String, String>("func_75568_b", "getVillageRadius"));
+ mInitMap.put(new Pair<String, String>("func_75569_c", "findNearestDoorUnrestricted"));
+ mInitMap.put(new Pair<String, String>("func_75570_a", "isInRange"));
+ mInitMap.put(new Pair<String, String>("func_75571_b", "findNearestVillageAggressor"));
+ mInitMap.put(new Pair<String, String>("func_75572_i", "updateNumVillagers"));
+ mInitMap.put(new Pair<String, String>("func_75573_l", "updateVillageRadiusAndCenter"));
+ mInitMap.put(new Pair<String, String>("func_75574_f", "isBlockDoor"));
+ mInitMap.put(new Pair<String, String>("func_75575_a", "addOrRemInitMap.put(newAgressor"));
+ mInitMap.put(new Pair<String, String>("func_75576_a", "addVillageDoorInfo"));
+ mInitMap.put(new Pair<String, String>("func_75577_a", "getCenter"));
+ mInitMap.put(new Pair<String, String>("func_75578_e", "getVillageDoorAt"));
+ mInitMap.put(new Pair<String, String>("func_75579_h", "updateNumIronGolems"));
+ mInitMap.put(new Pair<String, String>("func_75598_a", "getCreatureClass"));
+ mInitMap.put(new Pair<String, String>("func_75599_d", "getPeacefulCreature"));
+ mInitMap.put(new Pair<String, String>("func_75600_c", "getCreatureMaterial"));
+ mInitMap.put(new Pair<String, String>("func_75601_b", "getMaxNumberOfCreature"));
+ mInitMap.put(new Pair<String, String>("func_75614_a", "addMapping"));
+ mInitMap.put(new Pair<String, String>("func_75615_a", "createEntityFromNBT"));
+ mInitMap.put(new Pair<String, String>("func_75616_a", "createEntityByID"));
+ mInitMap.put(new Pair<String, String>("func_75617_a", "getStringFromID"));
+ mInitMap.put(new Pair<String, String>("func_75618_a", "addMapping"));
+ mInitMap.put(new Pair<String, String>("func_75619_a", "getEntityID"));
+ mInitMap.put(new Pair<String, String>("func_75620_a", "createEntityByName"));
+ mInitMap.put(new Pair<String, String>("func_75621_b", "getEntityString"));
+ mInitMap.put(new Pair<String, String>("func_75630_a", "multiplyBy32AndRound"));
+ mInitMap.put(new Pair<String, String>("func_75638_b", "getSpeed"));
+ mInitMap.put(new Pair<String, String>("func_75639_a", "limitAngle"));
+ mInitMap.put(new Pair<String, String>("func_75640_a", "isUpdating"));
+ mInitMap.put(new Pair<String, String>("func_75641_c", "onUpdateMoveHelper"));
+ mInitMap.put(new Pair<String, String>("func_75642_a", "setMoveTo"));
+ mInitMap.put(new Pair<String, String>("func_75649_a", "onUpdateLook"));
+ mInitMap.put(new Pair<String, String>("func_75650_a", "setLookPosition"));
+ mInitMap.put(new Pair<String, String>("func_75651_a", "setLookPositionWithEntity"));
+ mInitMap.put(new Pair<String, String>("func_75652_a", "updateRotation"));
+ mInitMap.put(new Pair<String, String>("func_75660_a", "setJumping"));
+ mInitMap.put(new Pair<String, String>("func_75661_b", "doJump"));
+ mInitMap.put(new Pair<String, String>("func_75664_a", "updateRenderAngles"));
+ mInitMap.put(new Pair<String, String>("func_75665_a", "computeAngleWithBound"));
+ mInitMap.put(new Pair<String, String>("func_75669_b", "getObject"));
+ mInitMap.put(new Pair<String, String>("func_75670_d", "isWatched"));
+ mInitMap.put(new Pair<String, String>("func_75671_a", "setWatched"));
+ mInitMap.put(new Pair<String, String>("func_75672_a", "getDataValueId"));
+ mInitMap.put(new Pair<String, String>("func_75673_a", "setObject"));
+ mInitMap.put(new Pair<String, String>("func_75674_c", "getObjectType"));
+ mInitMap.put(new Pair<String, String>("func_75679_c", "getWatchableObjectInt"));
+ mInitMap.put(new Pair<String, String>("func_75681_e", "getWatchableObjectString"));
+ mInitMap.put(new Pair<String, String>("func_75682_a", "addObject"));
+ mInitMap.put(new Pair<String, String>("func_75683_a", "getWatchableObjectByte"));
+ mInitMap.put(new Pair<String, String>("func_75684_a", "hasObjectChanged"));
+ mInitMap.put(new Pair<String, String>("func_75685_c", "getAllWatched"));
+ mInitMap.put(new Pair<String, String>("func_75687_a", "updateWatchedObjectsFromList"));
+ mInitMap.put(new Pair<String, String>("func_75688_b", "getChanged"));
+ mInitMap.put(new Pair<String, String>("func_75691_i", "getWatchedObject"));
+ mInitMap.put(new Pair<String, String>("func_75692_b", "updateObject"));
+ mInitMap.put(new Pair<String, String>("func_75693_b", "getWatchableObjectShort"));
+ mInitMap.put(new Pair<String, String>("func_75734_a", "waitForFinish"));
+ mInitMap.put(new Pair<String, String>("func_75735_a", "queueIO"));
+ mInitMap.put(new Pair<String, String>("func_75736_b", "processQueue"));
+ mInitMap.put(new Pair<String, String>("func_75742_a", "loadData"));
+ mInitMap.put(new Pair<String, String>("func_75743_a", "getUniqueDataId"));
+ mInitMap.put(new Pair<String, String>("func_75744_a", "saveAllData"));
+ mInitMap.put(new Pair<String, String>("func_75745_a", "setData"));
+ mInitMap.put(new Pair<String, String>("func_75746_b", "loadIdCounts"));
+ mInitMap.put(new Pair<String, String>("func_75747_a", "saveData"));
+ mInitMap.put(new Pair<String, String>("func_75752_b", "readPlayerData"));
+ mInitMap.put(new Pair<String, String>("func_75753_a", "writePlayerData"));
+ mInitMap.put(new Pair<String, String>("func_75754_f", "getAvailablePlayerDat"));
+ mInitMap.put(new Pair<String, String>("func_75755_a", "saveWorldInfoWithPlayer"));
+ mInitMap.put(new Pair<String, String>("func_75756_e", "getPlayerNBTManager"));
+ mInitMap.put(new Pair<String, String>("func_75757_d", "loadWorldInfo"));
+ mInitMap.put(new Pair<String, String>("func_75758_b", "getMapFileFromName"));
+ mInitMap.put(new Pair<String, String>("func_75759_a", "flush"));
+ mInitMap.put(new Pair<String, String>("func_75760_g", "getWorldDirectoryName"));
+ mInitMap.put(new Pair<String, String>("func_75761_a", "saveWorldInfo"));
+ mInitMap.put(new Pair<String, String>("func_75762_c", "checkSessionLock"));
+ mInitMap.put(new Pair<String, String>("func_75763_a", "getChunkLoader"));
+ mInitMap.put(new Pair<String, String>("func_75765_b", "getWorldDirectory"));
+ mInitMap.put(new Pair<String, String>("func_75766_h", "setSessionLock"));
+ mInitMap.put(new Pair<String, String>("func_75773_a", "canContinue"));
+ mInitMap.put(new Pair<String, String>("func_75774_a", "onUpdateTasks"));
+ mInitMap.put(new Pair<String, String>("func_75775_b", "canUse"));
+ mInitMap.put(new Pair<String, String>("func_75776_a", "addTask"));
+ mInitMap.put(new Pair<String, String>("func_75777_a", "areTasksCompatible"));
+ mInitMap.put(new Pair<String, String>("func_75783_h", "getCheatsEnabled"));
+ mInitMap.put(new Pair<String, String>("func_75784_e", "getLastTimePlayed"));
+ mInitMap.put(new Pair<String, String>("func_75785_d", "requiresConversion"));
+ mInitMap.put(new Pair<String, String>("func_75786_a", "getFileName"));
+ mInitMap.put(new Pair<String, String>("func_75788_b", "getDisplayName"));
+ mInitMap.put(new Pair<String, String>("func_75789_g", "isHardcoreModeEnabled"));
+ mInitMap.put(new Pair<String, String>("func_75790_f", "getEnumGameType"));
+ mInitMap.put(new Pair<String, String>("func_75799_b", "getSaveList"));
+ mInitMap.put(new Pair<String, String>("func_75800_d", "flushCache"));
+ mInitMap.put(new Pair<String, String>("func_75801_b", "isOldMapFormat"));
+ mInitMap.put(new Pair<String, String>("func_75802_e", "deleteWorldDirectory"));
+ mInitMap.put(new Pair<String, String>("func_75803_c", "getWorldInfo"));
+ mInitMap.put(new Pair<String, String>("func_75804_a", "getSaveLoader"));
+ mInitMap.put(new Pair<String, String>("func_75805_a", "convertMapFormat"));
+ mInitMap.put(new Pair<String, String>("func_75806_a", "renameWorld"));
+ mInitMap.put(new Pair<String, String>("func_75807_a", "deleteFiles"));
+ mInitMap.put(new Pair<String, String>("func_75809_f", "createFile"));
+ mInitMap.put(new Pair<String, String>("func_75810_a", "addRegionFilesToCollection"));
+ mInitMap.put(new Pair<String, String>("func_75811_a", "convertChunks"));
+ mInitMap.put(new Pair<String, String>("func_75812_c", "getSaveVersion"));
+ mInitMap.put(new Pair<String, String>("func_75813_a", "convertFile"));
+ mInitMap.put(new Pair<String, String>("func_75814_c", "writeNextIO"));
+ mInitMap.put(new Pair<String, String>("func_75815_a", "loadChunk"));
+ mInitMap.put(new Pair<String, String>("func_75816_a", "saveChunk"));
+ mInitMap.put(new Pair<String, String>("func_75817_a", "chunkTick"));
+ mInitMap.put(new Pair<String, String>("func_75818_b", "saveExtraData"));
+ mInitMap.put(new Pair<String, String>("func_75819_b", "saveExtraChunkData"));
+ mInitMap.put(new Pair<String, String>("func_75820_a", "writeChunkToNBT"));
+ mInitMap.put(new Pair<String, String>("func_75821_a", "writeChunkNBTTags"));
+ mInitMap.put(new Pair<String, String>("func_75822_a", "checkedReadChunkFromNBT"));
+ mInitMap.put(new Pair<String, String>("func_75823_a", "readChunkFromNBT"));
+ mInitMap.put(new Pair<String, String>("func_75824_a", "addChunkToPending"));
+ mInitMap.put(new Pair<String, String>("func_75829_a", "distanceTo"));
+ mInitMap.put(new Pair<String, String>("func_75830_a", "makeHash"));
+ mInitMap.put(new Pair<String, String>("func_75831_a", "isAssigned"));
+ mInitMap.put(new Pair<String, String>("func_75832_b", "distanceToSquared"));
+ mInitMap.put(new Pair<String, String>("func_75843_a", "format"));
+ mInitMap.put(new Pair<String, String>("func_75844_c", "dequeue"));
+ mInitMap.put(new Pair<String, String>("func_75845_e", "isPathEmpty"));
+ mInitMap.put(new Pair<String, String>("func_75846_b", "sortForward"));
+ mInitMap.put(new Pair<String, String>("func_75847_a", "sortBack"));
+ mInitMap.put(new Pair<String, String>("func_75848_a", "clearPath"));
+ mInitMap.put(new Pair<String, String>("func_75849_a", "addPoint"));
+ mInitMap.put(new Pair<String, String>("func_75850_a", "changeDistance"));
+ mInitMap.put(new Pair<String, String>("func_75853_a", "createEntityPath"));
+ mInitMap.put(new Pair<String, String>("func_75854_a", "openPoint"));
+ mInitMap.put(new Pair<String, String>("func_75855_a", "canEntityStandAt"));
+ mInitMap.put(new Pair<String, String>("func_75856_a", "createEntityPathTo"));
+ mInitMap.put(new Pair<String, String>("func_75857_a", "createEntityPathTo"));
+ mInitMap.put(new Pair<String, String>("func_75858_a", "getSafePoint"));
+ mInitMap.put(new Pair<String, String>("func_75859_a", "createEntityPathTo"));
+ mInitMap.put(new Pair<String, String>("func_75860_b", "findPathOptions"));
+ mInitMap.put(new Pair<String, String>("func_75861_a", "addToPath"));
+ mInitMap.put(new Pair<String, String>("func_75870_c", "getFinalPathPoint"));
+ mInitMap.put(new Pair<String, String>("func_75871_b", "setCurrentPathLength"));
+ mInitMap.put(new Pair<String, String>("func_75872_c", "setCurrentPathIndex"));
+ mInitMap.put(new Pair<String, String>("func_75873_e", "getCurrentPathIndex"));
+ mInitMap.put(new Pair<String, String>("func_75874_d", "getCurrentPathLength"));
+ mInitMap.put(new Pair<String, String>("func_75875_a", "incrementPathIndex"));
+ mInitMap.put(new Pair<String, String>("func_75876_a", "isSamePath"));
+ mInitMap.put(new Pair<String, String>("func_75877_a", "getPathPointFromIndex"));
+ mInitMap.put(new Pair<String, String>("func_75878_a", "getPosition"));
+ mInitMap.put(new Pair<String, String>("func_75879_b", "isFinished"));
+ mInitMap.put(new Pair<String, String>("func_75880_b", "isDestinationSame"));
+ mInitMap.put(new Pair<String, String>("func_75881_a", "getVectorFromIndex"));
+ mInitMap.put(new Pair<String, String>("func_75885_a", "cipherOperation"));
+ mInitMap.put(new Pair<String, String>("func_75886_a", "createTheCipherInstance"));
+ mInitMap.put(new Pair<String, String>("func_75887_a", "decryptSharedKey"));
+ mInitMap.put(new Pair<String, String>("func_75889_b", "decryptData"));
+ mInitMap.put(new Pair<String, String>("func_75890_a", "createmInitMap.put(newSharedKey"));
+ mInitMap.put(new Pair<String, String>("func_75891_b", "generateKeyPair"));
+ mInitMap.put(new Pair<String, String>("func_75893_a", "digestOperation"));
+ mInitMap.put(new Pair<String, String>("func_75894_a", "encryptData"));
+ mInitMap.put(new Pair<String, String>("func_75895_a", "getServerIdHash"));
+ mInitMap.put(new Pair<String, String>("func_75896_a", "decodePublicKey"));
+ mInitMap.put(new Pair<String, String>("func_75901_a", "initializeAllBiomeGenerators"));
+ mInitMap.put(new Pair<String, String>("func_75902_a", "nextInt"));
+ mInitMap.put(new Pair<String, String>("func_75903_a", "initChunkSeed"));
+ mInitMap.put(new Pair<String, String>("func_75904_a", "getInts"));
+ mInitMap.put(new Pair<String, String>("func_75905_a", "initWorldGenSeed"));
+ mInitMap.put(new Pair<String, String>("func_75915_a", "magnify"));
+ mInitMap.put(new Pair<String, String>("func_75918_d", "initCraftableStats"));
+ mInitMap.put(new Pair<String, String>("func_75924_a", "replaceAllSimilarBlocks"));
+ mInitMap.put(new Pair<String, String>("func_75925_c", "initStats"));
+ mInitMap.put(new Pair<String, String>("func_75966_h", "initIndependentStat"));
+ mInitMap.put(new Pair<String, String>("func_75967_d", "isAchievement"));
+ mInitMap.put(new Pair<String, String>("func_75971_g", "registerStat"));
+ mInitMap.put(new Pair<String, String>("func_75984_f", "getSpecial"));
+ mInitMap.put(new Pair<String, String>("func_75987_b", "setSpecial"));
+ mInitMap.put(new Pair<String, String>("func_75988_a", "setStatStringFormatter"));
+ mInitMap.put(new Pair<String, String>("func_75989_e", "getDescription"));
+ mInitMap.put(new Pair<String, String>("func_75997_a", "init"));
+ mInitMap.put(new Pair<String, String>("func_76030_b", "getValue"));
+ mInitMap.put(new Pair<String, String>("func_76031_a", "getHash"));
+ mInitMap.put(new Pair<String, String>("func_76036_e", "removeEntry"));
+ mInitMap.put(new Pair<String, String>("func_76037_b", "containsItem"));
+ mInitMap.put(new Pair<String, String>("func_76038_a", "addKey"));
+ mInitMap.put(new Pair<String, String>("func_76040_a", "insert"));
+ mInitMap.put(new Pair<String, String>("func_76041_a", "lookup"));
+ mInitMap.put(new Pair<String, String>("func_76043_a", "getSlotIndex"));
+ mInitMap.put(new Pair<String, String>("func_76044_g", "computeHash"));
+ mInitMap.put(new Pair<String, String>("func_76045_c", "lookupEntry"));
+ mInitMap.put(new Pair<String, String>("func_76046_c", "clearMap"));
+ mInitMap.put(new Pair<String, String>("func_76047_h", "grow"));
+ mInitMap.put(new Pair<String, String>("func_76048_a", "copyTo"));
+ mInitMap.put(new Pair<String, String>("func_76049_d", "removeObject"));
+ mInitMap.put(new Pair<String, String>("func_76056_b", "setSpawnY"));
+ mInitMap.put(new Pair<String, String>("func_76057_l", "getLastTimePlayed"));
+ mInitMap.put(new Pair<String, String>("func_76058_a", "setSpawnX"));
+ mInitMap.put(new Pair<String, String>("func_76059_o", "isRaining"));
+ mInitMap.put(new Pair<String, String>("func_76060_a", "setGameType"));
+ mInitMap.put(new Pair<String, String>("func_76061_m", "isThundering"));
+ mInitMap.put(new Pair<String, String>("func_76062_a", "setWorldName"));
+ mInitMap.put(new Pair<String, String>("func_76063_b", "getSeed"));
+ mInitMap.put(new Pair<String, String>("func_76064_a", "updateTagCompound"));
+ mInitMap.put(new Pair<String, String>("func_76065_j", "getWorldName"));
+ mInitMap.put(new Pair<String, String>("func_76066_a", "getNBTTagCompound"));
+ mInitMap.put(new Pair<String, String>("func_76067_t", "getTerrainType"));
+ mInitMap.put(new Pair<String, String>("func_76068_b", "setWorldTime"));
+ mInitMap.put(new Pair<String, String>("func_76069_a", "setThundering"));
+ mInitMap.put(new Pair<String, String>("func_76070_v", "isInitialized"));
+ mInitMap.put(new Pair<String, String>("func_76071_n", "getThunderTime"));
+ mInitMap.put(new Pair<String, String>("func_76072_h", "getPlayerNBTTagCompound"));
+ mInitMap.put(new Pair<String, String>("func_76073_f", "getWorldTime"));
+ mInitMap.put(new Pair<String, String>("func_76074_e", "getSpawnZ"));
+ mInitMap.put(new Pair<String, String>("func_76075_d", "getSpawnY"));
+ mInitMap.put(new Pair<String, String>("func_76076_i", "getDimension"));
+ mInitMap.put(new Pair<String, String>("func_76077_q", "getGameType"));
+ mInitMap.put(new Pair<String, String>("func_76078_e", "setSaveVersion"));
+ mInitMap.put(new Pair<String, String>("func_76079_c", "getSpawnX"));
+ mInitMap.put(new Pair<String, String>("func_76080_g", "setRainTime"));
+ mInitMap.put(new Pair<String, String>("func_76081_a", "setSpawnPosition"));
+ mInitMap.put(new Pair<String, String>("func_76082_a", "cloneNBTCompound"));
+ mInitMap.put(new Pair<String, String>("func_76083_p", "getRainTime"));
+ mInitMap.put(new Pair<String, String>("func_76084_b", "setRaining"));
+ mInitMap.put(new Pair<String, String>("func_76085_a", "setTerrainType"));
+ mInitMap.put(new Pair<String, String>("func_76086_u", "areCommandsAllowed"));
+ mInitMap.put(new Pair<String, String>("func_76087_c", "setSpawnZ"));
+ mInitMap.put(new Pair<String, String>("func_76088_k", "getSaveVersion"));
+ mInitMap.put(new Pair<String, String>("func_76089_r", "isMapFeaturesEnabled"));
+ mInitMap.put(new Pair<String, String>("func_76090_f", "setThunderTime"));
+ mInitMap.put(new Pair<String, String>("func_76091_d", "setServerInitialized"));
+ mInitMap.put(new Pair<String, String>("func_76092_g", "getSizeOnDisk"));
+ mInitMap.put(new Pair<String, String>("func_76093_s", "isHardcoreModeEnabled"));
+ mInitMap.put(new Pair<String, String>("func_76123_f", "ceiling_float_int"));
+ mInitMap.put(new Pair<String, String>("func_76124_d", "floor_double_long"));
+ mInitMap.put(new Pair<String, String>("func_76125_a", "clamp_int"));
+ mInitMap.put(new Pair<String, String>("func_76126_a", "sin"));
+ mInitMap.put(new Pair<String, String>("func_76127_a", "average"));
+ mInitMap.put(new Pair<String, String>("func_76128_c", "floor_double"));
+ mInitMap.put(new Pair<String, String>("func_76129_c", "sqrt_float"));
+ mInitMap.put(new Pair<String, String>("func_76130_a", "abs_int"));
+ mInitMap.put(new Pair<String, String>("func_76131_a", "clamp_float"));
+ mInitMap.put(new Pair<String, String>("func_76132_a", "abs_max"));
+ mInitMap.put(new Pair<String, String>("func_76133_a", "sqrt_double"));
+ mInitMap.put(new Pair<String, String>("func_76134_b", "cos"));
+ mInitMap.put(new Pair<String, String>("func_76135_e", "abs"));
+ mInitMap.put(new Pair<String, String>("func_76136_a", "getRandomIntegerInRange"));
+ mInitMap.put(new Pair<String, String>("func_76137_a", "bucketInt"));
+ mInitMap.put(new Pair<String, String>("func_76138_g", "wrapAngleTo180_double"));
+ mInitMap.put(new Pair<String, String>("func_76139_a", "stringNullOrLengthZero"));
+ mInitMap.put(new Pair<String, String>("func_76140_b", "truncateDoubleToInt"));
+ mInitMap.put(new Pair<String, String>("func_76141_d", "floor_float"));
+ mInitMap.put(new Pair<String, String>("func_76142_g", "wrapAngleTo180_float"));
+ mInitMap.put(new Pair<String, String>("func_76143_f", "ceiling_double_int"));
+ mInitMap.put(new Pair<String, String>("func_76145_b", "getValue"));
+ mInitMap.put(new Pair<String, String>("func_76146_a", "getKey"));
+ mInitMap.put(new Pair<String, String>("func_76152_e", "removeKey"));
+ mInitMap.put(new Pair<String, String>("func_76153_b", "resizeTable"));
+ mInitMap.put(new Pair<String, String>("func_76154_a", "copyHashTableTo"));
+ mInitMap.put(new Pair<String, String>("func_76155_g", "getHashedKey"));
+ mInitMap.put(new Pair<String, String>("func_76156_a", "createKey"));
+ mInitMap.put(new Pair<String, String>("func_76157_a", "hash"));
+ mInitMap.put(new Pair<String, String>("func_76158_a", "getHashIndex"));
+ mInitMap.put(new Pair<String, String>("func_76159_d", "remove"));
+ mInitMap.put(new Pair<String, String>("func_76160_c", "getEntry"));
+ mInitMap.put(new Pair<String, String>("func_76161_b", "containsItem"));
+ mInitMap.put(new Pair<String, String>("func_76162_a", "getNumHashElements"));
+ mInitMap.put(new Pair<String, String>("func_76163_a", "add"));
+ mInitMap.put(new Pair<String, String>("func_76164_a", "getValueByKey"));
+ mInitMap.put(new Pair<String, String>("func_76179_a", "buildPostString"));
+ mInitMap.put(new Pair<String, String>("func_76181_a", "getSuitableLanPort"));
+ mInitMap.put(new Pair<String, String>("func_76184_a", "readFromNBT"));
+ mInitMap.put(new Pair<String, String>("func_76185_a", "markDirty"));
+ mInitMap.put(new Pair<String, String>("func_76186_a", "setDirty"));
+ mInitMap.put(new Pair<String, String>("func_76187_b", "writeToNBT"));
+ mInitMap.put(new Pair<String, String>("func_76188_b", "isDirty"));
+ mInitMap.put(new Pair<String, String>("func_76191_a", "updateVisiblePlayers"));
+ mInitMap.put(new Pair<String, String>("func_76192_a", "updateMPMapData"));
+ mInitMap.put(new Pair<String, String>("func_76193_a", "getUpdatePacketData"));
+ mInitMap.put(new Pair<String, String>("func_76194_a", "setColumnDirty"));
+ mInitMap.put(new Pair<String, String>("func_76204_a", "getPlayersOnMap"));
+ mInitMap.put(new Pair<String, String>("func_76217_h", "getCanBurn"));
+ mInitMap.put(new Pair<String, String>("func_76218_k", "isOpaque"));
+ mInitMap.put(new Pair<String, String>("func_76219_n", "setNoPushMobility"));
+ mInitMap.put(new Pair<String, String>("func_76220_a", "isSolid"));
+ mInitMap.put(new Pair<String, String>("func_76221_f", "setRequiresTool"));
+ mInitMap.put(new Pair<String, String>("func_76222_j", "isReplaceable"));
+ mInitMap.put(new Pair<String, String>("func_76223_p", "setTranslucent"));
+ mInitMap.put(new Pair<String, String>("func_76224_d", "isLiquid"));
+ mInitMap.put(new Pair<String, String>("func_76225_o", "setImmovableMobility"));
+ mInitMap.put(new Pair<String, String>("func_76226_g", "setBurning"));
+ mInitMap.put(new Pair<String, String>("func_76227_m", "getMaterialMobility"));
+ mInitMap.put(new Pair<String, String>("func_76228_b", "blocksLight"));
+ mInitMap.put(new Pair<String, String>("func_76229_l", "isToolNotRequired"));
+ mInitMap.put(new Pair<String, String>("func_76230_c", "blocksMovement"));
+ mInitMap.put(new Pair<String, String>("func_76231_i", "setReplaceable"));
+ mInitMap.put(new Pair<String, String>("func_76269_a", "getRandomItem"));
+ mInitMap.put(new Pair<String, String>("func_76270_a", "getTotalWeight"));
+ mInitMap.put(new Pair<String, String>("func_76271_a", "getRandomItem"));
+ mInitMap.put(new Pair<String, String>("func_76272_a", "getTotalWeight"));
+ mInitMap.put(new Pair<String, String>("func_76273_a", "getRandomItem"));
+ mInitMap.put(new Pair<String, String>("func_76274_a", "getRandomItem"));
+ mInitMap.put(new Pair<String, String>("func_76293_a", "generateChestContents"));
+ mInitMap.put(new Pair<String, String>("func_76304_a", "generateNoiseOctaves"));
+ mInitMap.put(new Pair<String, String>("func_76305_a", "generateNoiseOctaves"));
+ mInitMap.put(new Pair<String, String>("func_76308_a", "populateNoiseArray"));
+ mInitMap.put(new Pair<String, String>("func_76310_a", "grad"));
+ mInitMap.put(new Pair<String, String>("func_76311_b", "lerp"));
+ mInitMap.put(new Pair<String, String>("func_76316_a", "onInventoryChanged"));
+ mInitMap.put(new Pair<String, String>("func_76317_a", "clearProfiling"));
+ mInitMap.put(new Pair<String, String>("func_76318_c", "endStartSection"));
+ mInitMap.put(new Pair<String, String>("func_76319_b", "endSection"));
+ mInitMap.put(new Pair<String, String>("func_76320_a", "startSection"));
+ mInitMap.put(new Pair<String, String>("func_76321_b", "getProfilingData"));
+ mInitMap.put(new Pair<String, String>("func_76322_c", "getNameOfLastSection"));
+ mInitMap.put(new Pair<String, String>("func_76333_a", "smooth"));
+ mInitMap.put(new Pair<String, String>("func_76337_a", "ticksToElapsedTime"));
+ mInitMap.put(new Pair<String, String>("func_76338_a", "stripControlCodes"));
+ mInitMap.put(new Pair<String, String>("func_76340_b", "getSecond"));
+ mInitMap.put(new Pair<String, String>("func_76341_a", "getFirst"));
+ mInitMap.put(new Pair<String, String>("func_76345_d", "getHungerDamage"));
+ mInitMap.put(new Pair<String, String>("func_76346_g", "getEntity"));
+ mInitMap.put(new Pair<String, String>("func_76347_k", "isFireDamage"));
+ mInitMap.put(new Pair<String, String>("func_76348_h", "setDamageBypassesArmor"));
+ mInitMap.put(new Pair<String, String>("func_76349_b", "setProjectile"));
+ mInitMap.put(new Pair<String, String>("func_76350_n", "isDifficultyScaled"));
+ mInitMap.put(new Pair<String, String>("func_76351_m", "setDifficultyScaled"));
+ mInitMap.put(new Pair<String, String>("func_76352_a", "isProjectile"));
+ mInitMap.put(new Pair<String, String>("func_76353_a", "causeArrowDamage"));
+ mInitMap.put(new Pair<String, String>("func_76354_b", "causeIndirectMagicDamage"));
+ mInitMap.put(new Pair<String, String>("func_76355_l", "getDamageType"));
+ mInitMap.put(new Pair<String, String>("func_76356_a", "causeThrownDamage"));
+ mInitMap.put(new Pair<String, String>("func_76357_e", "canHarmInCreative"));
+ mInitMap.put(new Pair<String, String>("func_76358_a", "causeMobDamage"));
+ mInitMap.put(new Pair<String, String>("func_76359_i", "setDamageAllowedInCreativeMode"));
+ mInitMap.put(new Pair<String, String>("func_76361_j", "setFireDamage"));
+ mInitMap.put(new Pair<String, String>("func_76362_a", "causeFireballDamage"));
+ mInitMap.put(new Pair<String, String>("func_76363_c", "isUnblockable"));
+ mInitMap.put(new Pair<String, String>("func_76364_f", "getSourceOfDamage"));
+ mInitMap.put(new Pair<String, String>("func_76365_a", "causePlayerDamage"));
+ mInitMap.put(new Pair<String, String>("func_76388_g", "getEffectiveness"));
+ mInitMap.put(new Pair<String, String>("func_76389_a", "getDurationString"));
+ mInitMap.put(new Pair<String, String>("func_76390_b", "setPotionName"));
+ mInitMap.put(new Pair<String, String>("func_76392_e", "getStatusIconIndex"));
+ mInitMap.put(new Pair<String, String>("func_76393_a", "getName"));
+ mInitMap.put(new Pair<String, String>("func_76394_a", "performEffect"));
+ mInitMap.put(new Pair<String, String>("func_76395_i", "isUsable"));
+ mInitMap.put(new Pair<String, String>("func_76396_c", "getId"));
+ mInitMap.put(new Pair<String, String>("func_76397_a", "isReady"));
+ mInitMap.put(new Pair<String, String>("func_76398_f", "isBadEffect"));
+ mInitMap.put(new Pair<String, String>("func_76399_b", "setIconIndex"));
+ mInitMap.put(new Pair<String, String>("func_76400_d", "hasStatusIcon"));
+ mInitMap.put(new Pair<String, String>("func_76401_j", "getLiquidColor"));
+ mInitMap.put(new Pair<String, String>("func_76402_a", "affectEntity"));
+ mInitMap.put(new Pair<String, String>("func_76403_b", "isInstant"));
+ mInitMap.put(new Pair<String, String>("func_76404_a", "setEffectiveness"));
+ mInitMap.put(new Pair<String, String>("func_76445_a", "getIntCache"));
+ mInitMap.put(new Pair<String, String>("func_76446_a", "resetIntCache"));
+ mInitMap.put(new Pair<String, String>("func_76452_a", "combine"));
+ mInitMap.put(new Pair<String, String>("func_76453_d", "getEffectName"));
+ mInitMap.put(new Pair<String, String>("func_76454_e", "deincrementDuration"));
+ mInitMap.put(new Pair<String, String>("func_76455_a", "onUpdate"));
+ mInitMap.put(new Pair<String, String>("func_76456_a", "getPotionID"));
+ mInitMap.put(new Pair<String, String>("func_76457_b", "performEffect"));
+ mInitMap.put(new Pair<String, String>("func_76458_c", "getAmplifier"));
+ mInitMap.put(new Pair<String, String>("func_76459_b", "getDuration"));
+ mInitMap.put(new Pair<String, String>("func_76463_a", "startSnooper"));
+ mInitMap.put(new Pair<String, String>("func_76465_c", "getCurrentStats"));
+ mInitMap.put(new Pair<String, String>("func_76467_g", "addJvmArgsToSnooper"));
+ mInitMap.put(new Pair<String, String>("func_76468_d", "isSnooperRunning"));
+ mInitMap.put(new Pair<String, String>("func_76470_e", "stopSnooper"));
+ mInitMap.put(new Pair<String, String>("func_76471_b", "addMemoryStatsToSnooper"));
+ mInitMap.put(new Pair<String, String>("func_76484_a", "generate"));
+ mInitMap.put(new Pair<String, String>("func_76487_a", "setScale"));
+ mInitMap.put(new Pair<String, String>("func_76489_a", "generateLeafNodeList"));
+ mInitMap.put(new Pair<String, String>("func_76490_a", "layerSize"));
+ mInitMap.put(new Pair<String, String>("func_76491_a", "generateLeafNode"));
+ mInitMap.put(new Pair<String, String>("func_76493_c", "leafNodeNeedsBase"));
+ mInitMap.put(new Pair<String, String>("func_76494_d", "generateLeafNodeBases"));
+ mInitMap.put(new Pair<String, String>("func_76495_b", "leafSize"));
+ mInitMap.put(new Pair<String, String>("func_76496_a", "checkBlockLine"));
+ mInitMap.put(new Pair<String, String>("func_76497_e", "validTreeLocation"));
+ mInitMap.put(new Pair<String, String>("func_76498_b", "generateLeaves"));
+ mInitMap.put(new Pair<String, String>("func_76499_c", "generateTrunk"));
+ mInitMap.put(new Pair<String, String>("func_76529_b", "growVines"));
+ mInitMap.put(new Pair<String, String>("func_76536_b", "generateVines"));
+ mInitMap.put(new Pair<String, String>("func_76543_b", "pickMobSpawner"));
+ mInitMap.put(new Pair<String, String>("func_76549_c", "getChunkInputStream"));
+ mInitMap.put(new Pair<String, String>("func_76550_a", "createOrLoadRegionFile"));
+ mInitMap.put(new Pair<String, String>("func_76551_a", "clearRegionFileReferences"));
+ mInitMap.put(new Pair<String, String>("func_76552_d", "getChunkOutputStream"));
+ mInitMap.put(new Pair<String, String>("func_76554_h", "getEntrancePortalLocation"));
+ mInitMap.put(new Pair<String, String>("func_76555_c", "createChunkGenerator"));
+ mInitMap.put(new Pair<String, String>("func_76556_a", "generateLightBrightnessTable"));
+ mInitMap.put(new Pair<String, String>("func_76557_i", "getAverageGroundLevel"));
+ mInitMap.put(new Pair<String, String>("func_76558_a", "registerWorld"));
+ mInitMap.put(new Pair<String, String>("func_76559_b", "getMoonPhase"));
+ mInitMap.put(new Pair<String, String>("func_76560_a", "calcSunriseSunsetColors"));
+ mInitMap.put(new Pair<String, String>("func_76561_g", "isSkyColored"));
+ mInitMap.put(new Pair<String, String>("func_76562_b", "getFogColor"));
+ mInitMap.put(new Pair<String, String>("func_76563_a", "calculateCelestialAngle"));
+ mInitMap.put(new Pair<String, String>("func_76564_j", "getWorldHasVoidParticles"));
+ mInitMap.put(new Pair<String, String>("func_76565_k", "getVoidFogYFactor"));
+ mInitMap.put(new Pair<String, String>("func_76566_a", "canCoordinateBeSpawn"));
+ mInitMap.put(new Pair<String, String>("func_76567_e", "canRespawnHere"));
+ mInitMap.put(new Pair<String, String>("func_76568_b", "doesXZShowFog"));
+ mInitMap.put(new Pair<String, String>("func_76569_d", "isSurfaceWorld"));
+ mInitMap.put(new Pair<String, String>("func_76570_a", "getProviderForDimension"));
+ mInitMap.put(new Pair<String, String>("func_76571_f", "getCloudHeight"));
+ mInitMap.put(new Pair<String, String>("func_76572_b", "registerWorldChunkManager"));
+ mInitMap.put(new Pair<String, String>("func_76581_a", "set"));
+ mInitMap.put(new Pair<String, String>("func_76582_a", "get"));
+ mInitMap.put(new Pair<String, String>("func_76587_i", "getBlockStorageArray"));
+ mInitMap.put(new Pair<String, String>("func_76588_a", "getEntitiesWithinAABBForEntity"));
+ mInitMap.put(new Pair<String, String>("func_76589_b", "setBlockMetadata"));
+ mInitMap.put(new Pair<String, String>("func_76590_a", "generateHeightMap"));
+ mInitMap.put(new Pair<String, String>("func_76591_a", "getBiomeGenForWorldCoords"));
+ mInitMap.put(new Pair<String, String>("func_76594_o", "enqueueRelightChecks"));
+ mInitMap.put(new Pair<String, String>("func_76595_e", "propagateSkylightOcclusion"));
+ mInitMap.put(new Pair<String, String>("func_76599_g", "checkSkylightNeighborHeight"));
+ mInitMap.put(new Pair<String, String>("func_76600_a", "isAtLocation"));
+ mInitMap.put(new Pair<String, String>("func_76601_a", "needsSaving"));
+ mInitMap.put(new Pair<String, String>("func_76602_a", "setStorageArrays"));
+ mInitMap.put(new Pair<String, String>("func_76603_b", "generateSkylightMap"));
+ mInitMap.put(new Pair<String, String>("func_76605_m", "getBiomeArray"));
+ mInitMap.put(new Pair<String, String>("func_76606_c", "getAreLevelsEmpty"));
+ mInitMap.put(new Pair<String, String>("func_76607_a", "fillChunk"));
+ mInitMap.put(new Pair<String, String>("func_76608_a", "removeEntityAtIndex"));
+ mInitMap.put(new Pair<String, String>("func_76609_d", "updateSkylightNeighborHeight"));
+ mInitMap.put(new Pair<String, String>("func_76611_b", "getHeightValue"));
+ mInitMap.put(new Pair<String, String>("func_76612_a", "addEntity"));
+ mInitMap.put(new Pair<String, String>("func_76613_n", "resetRelightChecks"));
+ mInitMap.put(new Pair<String, String>("func_76614_a", "getSavedLightValue"));
+ mInitMap.put(new Pair<String, String>("func_76615_h", "relightBlock"));
+ mInitMap.put(new Pair<String, String>("func_76616_a", "setBiomeArray"));
+ mInitMap.put(new Pair<String, String>("func_76617_a", "getRandomWithSeed"));
+ mInitMap.put(new Pair<String, String>("func_76618_a", "getEntitiesOfTypeWithinAAAB"));
+ mInitMap.put(new Pair<String, String>("func_76619_d", "canBlockSeeTheSky"));
+ mInitMap.put(new Pair<String, String>("func_76621_g", "isEmpty"));
+ mInitMap.put(new Pair<String, String>("func_76622_b", "removeEntity"));
+ mInitMap.put(new Pair<String, String>("func_76623_d", "onChunkUnload"));
+ mInitMap.put(new Pair<String, String>("func_76624_a", "populateChunk"));
+ mInitMap.put(new Pair<String, String>("func_76625_h", "getTopFilledSegment"));
+ mInitMap.put(new Pair<String, String>("func_76626_d", "getPrecipitationHeight"));
+ mInitMap.put(new Pair<String, String>("func_76628_c", "getBlockMetadata"));
+ mInitMap.put(new Pair<String, String>("func_76629_c", "getBlockLightValue"));
+ mInitMap.put(new Pair<String, String>("func_76630_e", "setChunkModified"));
+ mInitMap.put(new Pair<String, String>("func_76631_c", "onChunkLoad"));
+ mInitMap.put(new Pair<String, String>("func_76632_l", "getChunkCoordIntPair"));
+ mInitMap.put(new Pair<String, String>("func_76633_a", "setLightValue"));
+ mInitMap.put(new Pair<String, String>("func_76654_b", "setExtBlockMetadata"));
+ mInitMap.put(new Pair<String, String>("func_76657_c", "setExtSkylightValue"));
+ mInitMap.put(new Pair<String, String>("func_76658_g", "getBlockLSBArray"));
+ mInitMap.put(new Pair<String, String>("func_76659_c", "setBlocklightArray"));
+ mInitMap.put(new Pair<String, String>("func_76660_i", "getBlockMSBArray"));
+ mInitMap.put(new Pair<String, String>("func_76661_k", "getBlocklightArray"));
+ mInitMap.put(new Pair<String, String>("func_76662_d", "getYLocation"));
+ mInitMap.put(new Pair<String, String>("func_76663_a", "isEmpty"));
+ mInitMap.put(new Pair<String, String>("func_76664_a", "setBlockLSBArray"));
+ mInitMap.put(new Pair<String, String>("func_76665_b", "getExtBlockMetadata"));
+ mInitMap.put(new Pair<String, String>("func_76666_d", "setSkylightArray"));
+ mInitMap.put(new Pair<String, String>("func_76667_m", "createBlockMSBArray"));
+ mInitMap.put(new Pair<String, String>("func_76668_b", "setBlockMetadataArray"));
+ mInitMap.put(new Pair<String, String>("func_76669_j", "getMetadataArray"));
+ mInitMap.put(new Pair<String, String>("func_76670_c", "getExtSkylightValue"));
+ mInitMap.put(new Pair<String, String>("func_76671_l", "getSkylightArray"));
+ mInitMap.put(new Pair<String, String>("func_76672_e", "removeInvalidBlocks"));
+ mInitMap.put(new Pair<String, String>("func_76673_a", "setBlockMSBArray"));
+ mInitMap.put(new Pair<String, String>("func_76674_d", "getExtBlocklightValue"));
+ mInitMap.put(new Pair<String, String>("func_76675_b", "getNeedsRandomTick"));
+ mInitMap.put(new Pair<String, String>("func_76676_h", "clearMSBArray"));
+ mInitMap.put(new Pair<String, String>("func_76677_d", "setExtBlocklightValue"));
+ mInitMap.put(new Pair<String, String>("func_76686_a", "get"));
+ mInitMap.put(new Pair<String, String>("func_76690_a", "convertToAnvilFormat"));
+ mInitMap.put(new Pair<String, String>("func_76691_a", "load"));
+ mInitMap.put(new Pair<String, String>("func_76704_a", "getChunkDataInputStream"));
+ mInitMap.put(new Pair<String, String>("func_76705_d", "outOfBounds"));
+ mInitMap.put(new Pair<String, String>("func_76706_a", "write"));
+ mInitMap.put(new Pair<String, String>("func_76707_e", "getOffset"));
+ mInitMap.put(new Pair<String, String>("func_76708_c", "close"));
+ mInitMap.put(new Pair<String, String>("func_76709_c", "isChunkSaved"));
+ mInitMap.put(new Pair<String, String>("func_76710_b", "getChunkDataOutputStream"));
+ mInitMap.put(new Pair<String, String>("func_76711_a", "setOffset"));
+ mInitMap.put(new Pair<String, String>("func_76712_a", "write"));
+ mInitMap.put(new Pair<String, String>("func_76713_b", "setChunkTimestamp"));
+ mInitMap.put(new Pair<String, String>("func_76727_i", "getFloatRainfall"));
+ mInitMap.put(new Pair<String, String>("func_76728_a", "decorate"));
+ mInitMap.put(new Pair<String, String>("func_76729_a", "createBiomeDecorator"));
+ mInitMap.put(new Pair<String, String>("func_76730_b", "getRandomWorldGenForGrass"));
+ mInitMap.put(new Pair<String, String>("func_76731_a", "getSkyColorByTemp"));
+ mInitMap.put(new Pair<String, String>("func_76732_a", "setTemperatureRainfall"));
+ mInitMap.put(new Pair<String, String>("func_76735_a", "setBiomeName"));
+ mInitMap.put(new Pair<String, String>("func_76736_e", "isHighHumidity"));
+ mInitMap.put(new Pair<String, String>("func_76738_d", "canSpawnLightningBolt"));
+ mInitMap.put(new Pair<String, String>("func_76739_b", "setColor"));
+ mInitMap.put(new Pair<String, String>("func_76741_f", "getSpawningChance"));
+ mInitMap.put(new Pair<String, String>("func_76742_b", "setEnableSnow"));
+ mInitMap.put(new Pair<String, String>("func_76744_g", "getIntRainfall"));
+ mInitMap.put(new Pair<String, String>("func_76745_m", "setDisableRain"));
+ mInitMap.put(new Pair<String, String>("func_76746_c", "getEnableSnow"));
+ mInitMap.put(new Pair<String, String>("func_76747_a", "getSpawnableList"));
+ mInitMap.put(new Pair<String, String>("func_76793_b", "genStandardOre2"));
+ mInitMap.put(new Pair<String, String>("func_76795_a", "genStandardOre1"));
+ mInitMap.put(new Pair<String, String>("func_76797_b", "generateOres"));
+ mInitMap.put(new Pair<String, String>("func_76837_b", "getBiomeGenAt"));
+ mInitMap.put(new Pair<String, String>("func_76838_a", "cleanupCache"));
+ mInitMap.put(new Pair<String, String>("func_76839_e", "getCachedBiomes"));
+ mInitMap.put(new Pair<String, String>("func_76840_a", "getBiomeCacheBlock"));
+ mInitMap.put(new Pair<String, String>("func_76885_a", "getBiomeGenAt"));
+ mInitMap.put(new Pair<String, String>("func_76931_a", "getBiomeGenAt"));
+ mInitMap.put(new Pair<String, String>("func_76932_a", "getBiomesToSpawnIn"));
+ mInitMap.put(new Pair<String, String>("func_76933_b", "loadBlockGeneratorData"));
+ mInitMap.put(new Pair<String, String>("func_76935_a", "getBiomeGenAt"));
+ mInitMap.put(new Pair<String, String>("func_76936_a", "getRainfall"));
+ mInitMap.put(new Pair<String, String>("func_76937_a", "getBiomesForGeneration"));
+ mInitMap.put(new Pair<String, String>("func_76938_b", "cleanupCache"));
+ mInitMap.put(new Pair<String, String>("func_76939_a", "getTemperatureAtHeight"));
+ mInitMap.put(new Pair<String, String>("func_76940_a", "areBiomesViable"));
+ mInitMap.put(new Pair<String, String>("func_76975_c", "renderShadow"));
+ mInitMap.put(new Pair<String, String>("func_76976_a", "setRenderManager"));
+ mInitMap.put(new Pair<String, String>("func_76977_a", "renderEntityOnFire"));
+ mInitMap.put(new Pair<String, String>("func_76978_a", "renderOffsetAABB"));
+ mInitMap.put(new Pair<String, String>("func_76979_b", "doRenderShadowAndFire"));
+ mInitMap.put(new Pair<String, String>("func_76980_a", "renderAABB"));
+ mInitMap.put(new Pair<String, String>("func_76982_b", "getWorldFromRenderManager"));
+ mInitMap.put(new Pair<String, String>("func_76983_a", "getFontRendererFromRenderManager"));
+ mInitMap.put(new Pair<String, String>("func_76986_a", "doRender"));
+ mInitMap.put(new Pair<String, String>("func_77015_a", "renderItemIntoGUI"));
+ mInitMap.put(new Pair<String, String>("func_77017_a", "renderQuad"));
+ mInitMap.put(new Pair<String, String>("func_77018_a", "renderGlint"));
+ mInitMap.put(new Pair<String, String>("func_77020_a", "renderDroppedItem"));
+ mInitMap.put(new Pair<String, String>("func_77021_b", "renderItemOverlayIntoGUI"));
+ mInitMap.put(new Pair<String, String>("func_77026_a", "renderEntity"));
+ mInitMap.put(new Pair<String, String>("func_77029_c", "renderEquippedItems"));
+ mInitMap.put(new Pair<String, String>("func_77030_a", "getColorMultiplier"));
+ mInitMap.put(new Pair<String, String>("func_77032_a", "shouldRenderPass"));
+ mInitMap.put(new Pair<String, String>("func_77033_b", "passSpecialRender"));
+ mInitMap.put(new Pair<String, String>("func_77034_a", "interpolateRotation"));
+ mInitMap.put(new Pair<String, String>("func_77035_b", "inheritRenderPass"));
+ mInitMap.put(new Pair<String, String>("func_77036_a", "renderModel"));
+ mInitMap.put(new Pair<String, String>("func_77037_a", "getDeathMaxRotation"));
+ mInitMap.put(new Pair<String, String>("func_77039_a", "renderLivingAt"));
+ mInitMap.put(new Pair<String, String>("func_77040_d", "getSwingProgress"));
+ mInitMap.put(new Pair<String, String>("func_77041_b", "preRenderCallback"));
+ mInitMap.put(new Pair<String, String>("func_77042_a", "setRenderPassModel"));
+ mInitMap.put(new Pair<String, String>("func_77043_a", "rotateCorpse"));
+ mInitMap.put(new Pair<String, String>("func_77044_a", "handleRotationFloat"));
+ mInitMap.put(new Pair<String, String>("func_77124_a", "setCanBeCreated"));
+ mInitMap.put(new Pair<String, String>("func_77125_e", "isVersioned"));
+ mInitMap.put(new Pair<String, String>("func_77126_d", "getCanBeCreated"));
+ mInitMap.put(new Pair<String, String>("func_77127_a", "getWorldTypeName"));
+ mInitMap.put(new Pair<String, String>("func_77128_b", "getTranslateName"));
+ mInitMap.put(new Pair<String, String>("func_77129_f", "setVersioned"));
+ mInitMap.put(new Pair<String, String>("func_77130_a", "parseWorldType"));
+ mInitMap.put(new Pair<String, String>("func_77131_c", "getGeneratorVersion"));
+ mInitMap.put(new Pair<String, String>("func_77132_a", "getWorldTypeForGeneratorVersion"));
+ mInitMap.put(new Pair<String, String>("func_77142_a", "getByName"));
+ mInitMap.put(new Pair<String, String>("func_77144_e", "isSurvivalOrAdventure"));
+ mInitMap.put(new Pair<String, String>("func_77145_d", "isCreative"));
+ mInitMap.put(new Pair<String, String>("func_77146_a", "getByID"));
+ mInitMap.put(new Pair<String, String>("func_77147_a", "configurePlayerCapabilities"));
+ mInitMap.put(new Pair<String, String>("func_77148_a", "getID"));
+ mInitMap.put(new Pair<String, String>("func_77149_b", "getName"));
+ mInitMap.put(new Pair<String, String>("func_77158_f", "getHardcoreEnabled"));
+ mInitMap.put(new Pair<String, String>("func_77159_a", "enableBonusChest"));
+ mInitMap.put(new Pair<String, String>("func_77160_d", "getSeed"));
+ mInitMap.put(new Pair<String, String>("func_77161_a", "getGameTypeById"));
+ mInitMap.put(new Pair<String, String>("func_77162_e", "getGameType"));
+ mInitMap.put(new Pair<String, String>("func_77163_i", "areCommandsAllowed"));
+ mInitMap.put(new Pair<String, String>("func_77164_g", "isMapFeaturesEnabled"));
+ mInitMap.put(new Pair<String, String>("func_77165_h", "getTerrainType"));
+ mInitMap.put(new Pair<String, String>("func_77166_b", "enableCommands"));
+ mInitMap.put(new Pair<String, String>("func_77167_c", "isBonusChestEnabled"));
+ mInitMap.put(new Pair<String, String>("func_77176_a", "setScheduledTime"));
+ mInitMap.put(new Pair<String, String>("func_77184_b", "placeInExistingPortal"));
+ mInitMap.put(new Pair<String, String>("func_77185_a", "placeInPortal"));
+ mInitMap.put(new Pair<String, String>("func_77190_a", "canCreatureTypeSpawnAtLocation"));
+ mInitMap.put(new Pair<String, String>("func_77191_a", "performWorldGenSpawning"));
+ mInitMap.put(new Pair<String, String>("func_77192_a", "findChunksForSpawning"));
+ mInitMap.put(new Pair<String, String>("func_77201_a", "readRecipiesFromTags"));
+ mInitMap.put(new Pair<String, String>("func_77202_a", "getRecipiesAsTags"));
+ mInitMap.put(new Pair<String, String>("func_77203_a", "canRecipeBeUsed"));
+ mInitMap.put(new Pair<String, String>("func_77205_a", "addToListWithCheck"));
+ mInitMap.put(new Pair<String, String>("func_77272_a", "chunkXZ2Int"));
+ mInitMap.put(new Pair<String, String>("func_77273_a", "getCenterXPos"));
+ mInitMap.put(new Pair<String, String>("func_77274_b", "getCenterZPosition"));
+ mInitMap.put(new Pair<String, String>("func_77278_a", "doExplosionA"));
+ mInitMap.put(new Pair<String, String>("func_77279_a", "doExplosionB"));
+ mInitMap.put(new Pair<String, String>("func_77316_c", "getTranslatedName"));
+ mInitMap.put(new Pair<String, String>("func_77317_b", "getMaxEnchantability"));
+ mInitMap.put(new Pair<String, String>("func_77318_a", "calcModifierDamage"));
+ mInitMap.put(new Pair<String, String>("func_77319_d", "getMinLevel"));
+ mInitMap.put(new Pair<String, String>("func_77320_a", "getName"));
+ mInitMap.put(new Pair<String, String>("func_77321_a", "getMinEnchantability"));
+ mInitMap.put(new Pair<String, String>("func_77322_b", "setName"));
+ mInitMap.put(new Pair<String, String>("func_77324_c", "getWeight"));
+ mInitMap.put(new Pair<String, String>("func_77325_b", "getMaxLevel"));
+ mInitMap.put(new Pair<String, String>("func_77326_a", "canApplyTogether"));
+ mInitMap.put(new Pair<String, String>("func_77390_a", "readFromTags"));
+ mInitMap.put(new Pair<String, String>("func_77391_b", "hasSameItemsAs"));
+ mInitMap.put(new Pair<String, String>("func_77393_a", "hasSameIDsAs"));
+ mInitMap.put(new Pair<String, String>("func_77394_a", "getItemToBuy"));
+ mInitMap.put(new Pair<String, String>("func_77395_g", "writeToTags"));
+ mInitMap.put(new Pair<String, String>("func_77396_b", "getSecondItemToBuy"));
+ mInitMap.put(new Pair<String, String>("func_77397_d", "getItemToSell"));
+ mInitMap.put(new Pair<String, String>("func_77398_c", "hasSecondItemToBuy"));
+ mInitMap.put(new Pair<String, String>("func_77399_f", "incrementToolUses"));
+ mInitMap.put(new Pair<String, String>("func_77442_b", "canUnlockAchievement"));
+ mInitMap.put(new Pair<String, String>("func_77443_a", "hasAchievementUnlocked"));
+ mInitMap.put(new Pair<String, String>("func_77444_a", "writeStat"));
+ mInitMap.put(new Pair<String, String>("func_77466_a", "getFoliageColorPine"));
+ mInitMap.put(new Pair<String, String>("func_77467_a", "setFoliageBiomeColorizer"));
+ mInitMap.put(new Pair<String, String>("func_77468_c", "getFoliageColorBasic"));
+ mInitMap.put(new Pair<String, String>("func_77469_b", "getFoliageColorBirch"));
+ mInitMap.put(new Pair<String, String>("func_77470_a", "getFoliageColor"));
+ mInitMap.put(new Pair<String, String>("func_77472_b", "setClientActiveTexture"));
+ mInitMap.put(new Pair<String, String>("func_77473_a", "setActiveTexture"));
+ mInitMap.put(new Pair<String, String>("func_77474_a", "initializeTextures"));
+ mInitMap.put(new Pair<String, String>("func_77475_a", "setLightmapTextureCoords"));
+ mInitMap.put(new Pair<String, String>("func_77479_a", "setGrassBiomeColorizer"));
+ mInitMap.put(new Pair<String, String>("func_77480_a", "getGrassColor"));
+ mInitMap.put(new Pair<String, String>("func_77487_a", "getServerMotd"));
+ mInitMap.put(new Pair<String, String>("func_77488_b", "getServerIpPort"));
+ mInitMap.put(new Pair<String, String>("func_77489_c", "updateLastSeen"));
+ mInitMap.put(new Pair<String, String>("func_77493_a", "calculateModifier"));
+ mInitMap.put(new Pair<String, String>("func_77501_a", "getRespiration"));
+ mInitMap.put(new Pair<String, String>("func_77502_d", "getSilkTouchModifier"));
+ mInitMap.put(new Pair<String, String>("func_77504_a", "addRandomEnchantment"));
+ mInitMap.put(new Pair<String, String>("func_77505_b", "mapEnchantmentData"));
+ mInitMap.put(new Pair<String, String>("func_77506_a", "getEnchantmentLevel"));
+ mInitMap.put(new Pair<String, String>("func_77507_b", "getKnockbackModifier"));
+ mInitMap.put(new Pair<String, String>("func_77508_a", "getEnchantmentModifierDamage"));
+ mInitMap.put(new Pair<String, String>("func_77509_b", "getEfficiencyModifier"));
+ mInitMap.put(new Pair<String, String>("func_77510_g", "getAquaAffinityModifier"));
+ mInitMap.put(new Pair<String, String>("func_77511_a", "getMaxEnchantmentLevel"));
+ mInitMap.put(new Pair<String, String>("func_77512_a", "getEnchantmentModifierLiving"));
+ mInitMap.put(new Pair<String, String>("func_77513_b", "buildEnchantmentList"));
+ mInitMap.put(new Pair<String, String>("func_77514_a", "calcItemStackEnchantability"));
+ mInitMap.put(new Pair<String, String>("func_77516_a", "applyEnchantmentModifierArray"));
+ mInitMap.put(new Pair<String, String>("func_77517_e", "getFortuneModifier"));
+ mInitMap.put(new Pair<String, String>("func_77518_a", "applyEnchantmentModifier"));
+ mInitMap.put(new Pair<String, String>("func_77519_f", "getLootingModifier"));
+ mInitMap.put(new Pair<String, String>("func_77523_b", "getAdFromPingResponse"));
+ mInitMap.put(new Pair<String, String>("func_77524_a", "getMotdFromPingResponse"));
+ mInitMap.put(new Pair<String, String>("func_77525_a", "getPingResponse"));
+ mInitMap.put(new Pair<String, String>("func_77552_b", "setWasNotUpdated"));
+ mInitMap.put(new Pair<String, String>("func_77553_a", "getWasUpdated"));
+ mInitMap.put(new Pair<String, String>("func_77554_c", "getLanServers"));
+ mInitMap.put(new Pair<String, String>("func_77557_a", "canEnchantItem"));
+ mInitMap.put(new Pair<String, String>("func_77569_a", "matches"));
+ mInitMap.put(new Pair<String, String>("func_77570_a", "getRecipeSize"));
+ mInitMap.put(new Pair<String, String>("func_77571_b", "getRecipeOutput"));
+ mInitMap.put(new Pair<String, String>("func_77572_b", "getCraftingResult"));
+ mInitMap.put(new Pair<String, String>("func_77573_a", "checkMatch"));
+ mInitMap.put(new Pair<String, String>("func_77583_a", "addRecipes"));
+ mInitMap.put(new Pair<String, String>("func_77586_a", "addRecipes"));
+ mInitMap.put(new Pair<String, String>("func_77589_a", "addRecipes"));
+ mInitMap.put(new Pair<String, String>("func_77590_a", "addRecipes"));
+ mInitMap.put(new Pair<String, String>("func_77592_b", "getRecipeList"));
+ mInitMap.put(new Pair<String, String>("func_77594_a", "getInstance"));
+ mInitMap.put(new Pair<String, String>("func_77596_b", "addShapelessRecipe"));
+ mInitMap.put(new Pair<String, String>("func_77599_b", "getSmeltingList"));
+ mInitMap.put(new Pair<String, String>("func_77602_a", "instance"));
+ mInitMap.put(new Pair<String, String>("func_77607_a", "addRecipes"));
+ mInitMap.put(new Pair<String, String>("func_77608_a", "addRecipes"));
+ mInitMap.put(new Pair<String, String>("func_77609_a", "addRecipes"));
+ mInitMap.put(new Pair<String, String>("func_77612_l", "getMaxDurability"));
+ mInitMap.put(new Pair<String, String>("func_77613_e", "getRarity"));
+ mInitMap.put(new Pair<String, String>("func_77614_k", "getHasSubtypes"));
+ mInitMap.put(new Pair<String, String>("func_77615_a", "onPlayerStoppedUsing"));
+ mInitMap.put(new Pair<String, String>("func_77616_k", "isItemTool"));
+ mInitMap.put(new Pair<String, String>("func_77617_a", "getIconFromDamage"));
+ mInitMap.put(new Pair<String, String>("func_77618_c", "getIconFromDamageForRenderPass"));
+ mInitMap.put(new Pair<String, String>("func_77619_b", "getItemEnchantability"));
+ mInitMap.put(new Pair<String, String>("func_77620_a", "getColorFromDamage"));
+ mInitMap.put(new Pair<String, String>("func_77621_a", "getMovingObjectPositionFromPlayer"));
+ mInitMap.put(new Pair<String, String>("func_77622_d", "onCreated"));
+ mInitMap.put(new Pair<String, String>("func_77623_v", "requiresMultipleRenderPasses"));
+ mInitMap.put(new Pair<String, String>("func_77624_a", "addInformation"));
+ mInitMap.put(new Pair<String, String>("func_77625_d", "setMaxStackSize"));
+ mInitMap.put(new Pair<String, String>("func_77626_a", "getMaxItemUseDuration"));
+ mInitMap.put(new Pair<String, String>("func_77627_a", "setHasSubtypes"));
+ mInitMap.put(new Pair<String, String>("func_77629_n_", "shouldRotateAroundWhenRendering"));
+ mInitMap.put(new Pair<String, String>("func_77630_h", "doesContainerItemLeaveCraftingGrid"));
+ mInitMap.put(new Pair<String, String>("func_77631_c", "setPotionEffect"));
+ mInitMap.put(new Pair<String, String>("func_77634_r", "hasContainerItem"));
+ mInitMap.put(new Pair<String, String>("func_77636_d", "hasEffect"));
+ mInitMap.put(new Pair<String, String>("func_77637_a", "setCreativeTab"));
+ mInitMap.put(new Pair<String, String>("func_77639_j", "getItemStackLimit"));
+ mInitMap.put(new Pair<String, String>("func_77640_w", "getCreativeTab"));
+ mInitMap.put(new Pair<String, String>("func_77642_a", "setContainerItem"));
+ mInitMap.put(new Pair<String, String>("func_77643_m_", "isMap"));
+ mInitMap.put(new Pair<String, String>("func_77644_a", "hitEntity"));
+ mInitMap.put(new Pair<String, String>("func_77645_m", "isDamageable"));
+ mInitMap.put(new Pair<String, String>("func_77647_b", "getMetadata"));
+ mInitMap.put(new Pair<String, String>("func_77648_a", "onItemUse"));
+ mInitMap.put(new Pair<String, String>("func_77650_f", "getIconIndex"));
+ mInitMap.put(new Pair<String, String>("func_77651_p", "getShareTag"));
+ mInitMap.put(new Pair<String, String>("func_77653_i", "getItemStackDisplayName"));
+ mInitMap.put(new Pair<String, String>("func_77654_b", "onItemUseFinish"));
+ mInitMap.put(new Pair<String, String>("func_77655_b", "setUnlocalizedName"));
+ mInitMap.put(new Pair<String, String>("func_77656_e", "setMaxDurability"));
+ mInitMap.put(new Pair<String, String>("func_77657_g", "getUnlocalizedNameInefficiently"));
+ mInitMap.put(new Pair<String, String>("func_77658_a", "getUnlocalizedName"));
+ mInitMap.put(new Pair<String, String>("func_77659_a", "onItemRightClick"));
+ mInitMap.put(new Pair<String, String>("func_77661_b", "getItemUseAction"));
+ mInitMap.put(new Pair<String, String>("func_77662_d", "isFull3D"));
+ mInitMap.put(new Pair<String, String>("func_77663_a", "onUpdate"));
+ mInitMap.put(new Pair<String, String>("func_77664_n", "setFull3D"));
+ mInitMap.put(new Pair<String, String>("func_77667_c", "getUnlocalizedName"));
+ mInitMap.put(new Pair<String, String>("func_77668_q", "getContainerItem"));
+ mInitMap.put(new Pair<String, String>("func_77828_a", "validBookTagContents"));
+ mInitMap.put(new Pair<String, String>("func_77831_g", "isSplash"));
+ mInitMap.put(new Pair<String, String>("func_77832_l", "getEffects"));
+ mInitMap.put(new Pair<String, String>("func_77833_h", "isEffectInstant"));
+ mInitMap.put(new Pair<String, String>("func_77834_f", "getEffects"));
+ mInitMap.put(new Pair<String, String>("func_77840_a", "spawnCreature"));
+ mInitMap.put(new Pair<String, String>("func_77842_f", "getMaterialName"));
+ mInitMap.put(new Pair<String, String>("func_77844_a", "setPotionEffect"));
+ mInitMap.put(new Pair<String, String>("func_77845_h", "isWolfsFavoriteMeat"));
+ mInitMap.put(new Pair<String, String>("func_77848_i", "setAlwaysEdible"));
+ mInitMap.put(new Pair<String, String>("func_77849_c", "onFoodEaten"));
+ mInitMap.put(new Pair<String, String>("func_77861_e", "getToolMaterialName"));
+ mInitMap.put(new Pair<String, String>("func_77872_a", "updateMapData"));
+ mInitMap.put(new Pair<String, String>("func_77873_a", "getMapData"));
+ mInitMap.put(new Pair<String, String>("func_77875_a", "tryPlaceContainedLiquid"));
+ mInitMap.put(new Pair<String, String>("func_77906_a", "brewBitOperations"));
+ mInitMap.put(new Pair<String, String>("func_77907_h", "countSetFlags"));
+ mInitMap.put(new Pair<String, String>("func_77910_c", "isFlagSet"));
+ mInitMap.put(new Pair<String, String>("func_77911_a", "calcPotionLiquidColor"));
+ mInitMap.put(new Pair<String, String>("func_77912_a", "parsePotionEffects"));
+ mInitMap.put(new Pair<String, String>("func_77913_a", "applyIngredient"));
+ mInitMap.put(new Pair<String, String>("func_77914_a", "checkFlag"));
+ mInitMap.put(new Pair<String, String>("func_77916_d", "isFlagUnset"));
+ mInitMap.put(new Pair<String, String>("func_77917_b", "getPotionEffects"));
+ mInitMap.put(new Pair<String, String>("func_77942_o", "hasTagCompound"));
+ mInitMap.put(new Pair<String, String>("func_77943_a", "tryPlaceItemIntoWorld"));
+ mInitMap.put(new Pair<String, String>("func_77944_b", "copyItemStack"));
+ mInitMap.put(new Pair<String, String>("func_77945_a", "updateAnimation"));
+ mInitMap.put(new Pair<String, String>("func_77946_l", "copy"));
+ mInitMap.put(new Pair<String, String>("func_77948_v", "isItemEnchanted"));
+ mInitMap.put(new Pair<String, String>("func_77949_a", "loadItemStackFromNBT"));
+ mInitMap.put(new Pair<String, String>("func_77950_b", "onItemUseFinish"));
+ mInitMap.put(new Pair<String, String>("func_77951_h", "isItemDamaged"));
+ mInitMap.put(new Pair<String, String>("func_77952_i", "getCurrentDurability"));
+ mInitMap.put(new Pair<String, String>("func_77953_t", "getRarity"));
+ mInitMap.put(new Pair<String, String>("func_77954_c", "getIconIndex"));
+ mInitMap.put(new Pair<String, String>("func_77955_b", "writeToNBT"));
+ mInitMap.put(new Pair<String, String>("func_77956_u", "isItemEnchantable"));
+ mInitMap.put(new Pair<String, String>("func_77957_a", "useItemRightClick"));
+ mInitMap.put(new Pair<String, String>("func_77958_k", "getMaxDurability"));
+ mInitMap.put(new Pair<String, String>("func_77959_d", "isItemStackEqual"));
+ mInitMap.put(new Pair<String, String>("func_77960_j", "getMetadata"));
+ mInitMap.put(new Pair<String, String>("func_77961_a", "hitEntity"));
+ mInitMap.put(new Pair<String, String>("func_77962_s", "hasEffect"));
+ mInitMap.put(new Pair<String, String>("func_77963_c", "readFromNBT"));
+ mInitMap.put(new Pair<String, String>("func_77964_b", "setMetadata"));
+ mInitMap.put(new Pair<String, String>("func_77966_a", "addEnchantment"));
+ mInitMap.put(new Pair<String, String>("func_77969_a", "isItemEqual"));
+ mInitMap.put(new Pair<String, String>("func_77970_a", "areItemStackTagsEqual"));
+ mInitMap.put(new Pair<String, String>("func_77972_a", "damageItem"));
+ mInitMap.put(new Pair<String, String>("func_77973_b", "getItem"));
+ mInitMap.put(new Pair<String, String>("func_77974_b", "onPlayerStoppedUsing"));
+ mInitMap.put(new Pair<String, String>("func_77975_n", "getItemUseAction"));
+ mInitMap.put(new Pair<String, String>("func_77976_d", "getMaxStackSize"));
+ mInitMap.put(new Pair<String, String>("func_77977_a", "getUnlocalizedName"));
+ mInitMap.put(new Pair<String, String>("func_77978_p", "getTagCompound"));
+ mInitMap.put(new Pair<String, String>("func_77979_a", "splitStack"));
+ mInitMap.put(new Pair<String, String>("func_77980_a", "onCrafting"));
+ mInitMap.put(new Pair<String, String>("func_77981_g", "getHasSubtypes"));
+ mInitMap.put(new Pair<String, String>("func_77982_d", "setTagCompound"));
+ mInitMap.put(new Pair<String, String>("func_77983_a", "setTagInfo"));
+ mInitMap.put(new Pair<String, String>("func_77984_f", "isItemStackDamageable"));
+ mInitMap.put(new Pair<String, String>("func_77985_e", "isStackable"));
+ mInitMap.put(new Pair<String, String>("func_77986_q", "getEnchantmentTagList"));
+ mInitMap.put(new Pair<String, String>("func_77988_m", "getMaxItemUseDuration"));
+ mInitMap.put(new Pair<String, String>("func_77989_b", "areItemStacksEqual"));
+ mInitMap.put(new Pair<String, String>("func_77995_e", "getEnchantability"));
+ mInitMap.put(new Pair<String, String>("func_77996_d", "getHarvestLevel"));
+ mInitMap.put(new Pair<String, String>("func_77997_a", "getMaxUses"));
+ mInitMap.put(new Pair<String, String>("func_77998_b", "getEfficiencyOnProperMaterial"));
+ mInitMap.put(new Pair<String, String>("func_78000_c", "getDamageVsEntity"));
+ mInitMap.put(new Pair<String, String>("func_78013_b", "getTabLabel"));
+ mInitMap.put(new Pair<String, String>("func_78014_h", "setNoTitle"));
+ mInitMap.put(new Pair<String, String>("func_78015_f", "getBackgroundImageName"));
+ mInitMap.put(new Pair<String, String>("func_78016_d", "getTabIconItem"));
+ mInitMap.put(new Pair<String, String>("func_78017_i", "shouldHidePlayerInventory"));
+ mInitMap.put(new Pair<String, String>("func_78018_a", "displayAllReleventItems"));
+ mInitMap.put(new Pair<String, String>("func_78019_g", "drawInForegroundOfTab"));
+ mInitMap.put(new Pair<String, String>("func_78020_k", "getTabColumn"));
+ mInitMap.put(new Pair<String, String>("func_78021_a", "getTabIndex"));
+ mInitMap.put(new Pair<String, String>("func_78022_j", "setNoScrollbar"));
+ mInitMap.put(new Pair<String, String>("func_78023_l", "isTabInFirstRow"));
+ mInitMap.put(new Pair<String, String>("func_78024_c", "getTranslatedTabLabel"));
+ mInitMap.put(new Pair<String, String>("func_78025_a", "setBackgroundImageName"));
+ mInitMap.put(new Pair<String, String>("func_78044_b", "getDamageReductionAmount"));
+ mInitMap.put(new Pair<String, String>("func_78045_a", "getEnchantability"));
+ mInitMap.put(new Pair<String, String>("func_78046_a", "getDurability"));
+ mInitMap.put(new Pair<String, String>("func_78084_a", "getTextureOffset"));
+ mInitMap.put(new Pair<String, String>("func_78085_a", "setTextureOffset"));
+ mInitMap.put(new Pair<String, String>("func_78086_a", "setLivingAnimations"));
+ mInitMap.put(new Pair<String, String>("func_78087_a", "setRotationAngles"));
+ mInitMap.put(new Pair<String, String>("func_78088_a", "render"));
+ mInitMap.put(new Pair<String, String>("func_78110_b", "renderEars"));
+ mInitMap.put(new Pair<String, String>("func_78111_c", "renderCloak"));
+ mInitMap.put(new Pair<String, String>("func_78164_a", "renderSign"));
+ mInitMap.put(new Pair<String, String>("func_78214_a", "updateRotations"));
+ mInitMap.put(new Pair<String, String>("func_78231_a", "renderAll"));
+ mInitMap.put(new Pair<String, String>("func_78235_a", "flipFace"));
+ mInitMap.put(new Pair<String, String>("func_78236_a", "draw"));
+ mInitMap.put(new Pair<String, String>("func_78240_a", "setTexturePosition"));
+ mInitMap.put(new Pair<String, String>("func_78245_a", "render"));
+ mInitMap.put(new Pair<String, String>("func_78255_a", "renderStringAtPos"));
+ mInitMap.put(new Pair<String, String>("func_78256_a", "getStringWidth"));
+ mInitMap.put(new Pair<String, String>("func_78257_a", "loadGlyphTexture"));
+ mInitMap.put(new Pair<String, String>("func_78258_a", "renderString"));
+ mInitMap.put(new Pair<String, String>("func_78259_e", "sizeStringToWidth"));
+ mInitMap.put(new Pair<String, String>("func_78260_a", "getBidiFlag"));
+ mInitMap.put(new Pair<String, String>("func_78261_a", "drawStringWithShadow"));
+ mInitMap.put(new Pair<String, String>("func_78262_a", "trimStringToWidth"));
+ mInitMap.put(new Pair<String, String>("func_78263_a", "getCharWidth"));
+ mInitMap.put(new Pair<String, String>("func_78264_a", "setUnicodeFlag"));
+ mInitMap.put(new Pair<String, String>("func_78265_b", "resetStyles"));
+ mInitMap.put(new Pair<String, String>("func_78266_a", "renderDefaultChar"));
+ mInitMap.put(new Pair<String, String>("func_78267_b", "splitStringWidth"));
+ mInitMap.put(new Pair<String, String>("func_78268_b", "renderSplitString"));
+ mInitMap.put(new Pair<String, String>("func_78269_a", "trimStringToWidth"));
+ mInitMap.put(new Pair<String, String>("func_78270_c", "isFormatSpecial"));
+ mInitMap.put(new Pair<String, String>("func_78271_c", "listFormattedStringToWidth"));
+ mInitMap.put(new Pair<String, String>("func_78272_b", "isFormatColor"));
+ mInitMap.put(new Pair<String, String>("func_78273_d", "trimStringmInitMap.put(newline"));
+ mInitMap.put(new Pair<String, String>("func_78274_b", "renderStringAligned"));
+ mInitMap.put(new Pair<String, String>("func_78275_b", "setBidiFlag"));
+ mInitMap.put(new Pair<String, String>("func_78276_b", "drawString"));
+ mInitMap.put(new Pair<String, String>("func_78277_a", "renderUnicodeChar"));
+ mInitMap.put(new Pair<String, String>("func_78278_a", "renderCharAtPos"));
+ mInitMap.put(new Pair<String, String>("func_78279_b", "drawSplitString"));
+ mInitMap.put(new Pair<String, String>("func_78280_d", "wrapFormattedStringToWidth"));
+ mInitMap.put(new Pair<String, String>("func_78282_e", "getFormatFromString"));
+ mInitMap.put(new Pair<String, String>("func_78324_d", "getScaledHeight_double"));
+ mInitMap.put(new Pair<String, String>("func_78325_e", "getScaleFactor"));
+ mInitMap.put(new Pair<String, String>("func_78326_a", "getScaledWidth"));
+ mInitMap.put(new Pair<String, String>("func_78327_c", "getScaledWidth_double"));
+ mInitMap.put(new Pair<String, String>("func_78328_b", "getScaledHeight"));
+ mInitMap.put(new Pair<String, String>("func_78369_a", "setColorRGBA_F"));
+ mInitMap.put(new Pair<String, String>("func_78370_a", "setColorRGBA"));
+ mInitMap.put(new Pair<String, String>("func_78371_b", "startDrawing"));
+ mInitMap.put(new Pair<String, String>("func_78372_c", "addTranslation"));
+ mInitMap.put(new Pair<String, String>("func_78373_b", "setTranslation"));
+ mInitMap.put(new Pair<String, String>("func_78374_a", "addVertexWithUV"));
+ mInitMap.put(new Pair<String, String>("func_78375_b", "setNormal"));
+ mInitMap.put(new Pair<String, String>("func_78376_a", "setColorOpaque"));
+ mInitMap.put(new Pair<String, String>("func_78377_a", "addVertex"));
+ mInitMap.put(new Pair<String, String>("func_78378_d", "setColorOpaque_I"));
+ mInitMap.put(new Pair<String, String>("func_78379_d", "reset"));
+ mInitMap.put(new Pair<String, String>("func_78380_c", "setBrightness"));
+ mInitMap.put(new Pair<String, String>("func_78381_a", "draw"));
+ mInitMap.put(new Pair<String, String>("func_78382_b", "startDrawingQuads"));
+ mInitMap.put(new Pair<String, String>("func_78383_c", "disableColor"));
+ mInitMap.put(new Pair<String, String>("func_78384_a", "setColorRGBA_I"));
+ mInitMap.put(new Pair<String, String>("func_78385_a", "setTextureUV"));
+ mInitMap.put(new Pair<String, String>("func_78386_a", "setColorOpaque_F"));
+ mInitMap.put(new Pair<String, String>("func_78418_a", "rendersChunk"));
+ mInitMap.put(new Pair<String, String>("func_78419_a", "callLists"));
+ mInitMap.put(new Pair<String, String>("func_78420_a", "addGLRenderList"));
+ mInitMap.put(new Pair<String, String>("func_78421_b", "resetList"));
+ mInitMap.put(new Pair<String, String>("func_78422_a", "setupRenderList"));
+ mInitMap.put(new Pair<String, String>("func_78432_a", "parseUserSkin"));
+ mInitMap.put(new Pair<String, String>("func_78433_b", "setAreaOpaque"));
+ mInitMap.put(new Pair<String, String>("func_78434_a", "setAreaTransparent"));
+ mInitMap.put(new Pair<String, String>("func_78435_c", "hasTransparency"));
+ mInitMap.put(new Pair<String, String>("func_78439_a", "renderItemIn2D"));
+ mInitMap.put(new Pair<String, String>("func_78440_a", "renderItemInFirstPerson"));
+ mInitMap.put(new Pair<String, String>("func_78441_a", "updateEquippedItem"));
+ mInitMap.put(new Pair<String, String>("func_78442_d", "renderFireInFirstPerson"));
+ mInitMap.put(new Pair<String, String>("func_78443_a", "renderItem"));
+ mInitMap.put(new Pair<String, String>("func_78444_b", "resetEquippedProgress"));
+ mInitMap.put(new Pair<String, String>("func_78445_c", "resetEquippedProgress2"));
+ mInitMap.put(new Pair<String, String>("func_78446_a", "renderInsideOfBlock"));
+ mInitMap.put(new Pair<String, String>("func_78447_b", "renderOverlays"));
+ mInitMap.put(new Pair<String, String>("func_78448_c", "renderWaterOverlayTexture"));
+ mInitMap.put(new Pair<String, String>("func_78463_b", "enableLightmap"));
+ mInitMap.put(new Pair<String, String>("func_78464_a", "updateRenderer"));
+ mInitMap.put(new Pair<String, String>("func_78466_h", "updateFogColor"));
+ mInitMap.put(new Pair<String, String>("func_78467_g", "orientCamera"));
+ mInitMap.put(new Pair<String, String>("func_78468_a", "setupFog"));
+ mInitMap.put(new Pair<String, String>("func_78469_a", "setFogColorBuffer"));
+ mInitMap.put(new Pair<String, String>("func_78470_f", "updateTorchFlicker"));
+ mInitMap.put(new Pair<String, String>("func_78471_a", "renderWorld"));
+ mInitMap.put(new Pair<String, String>("func_78472_g", "updateLightmap"));
+ mInitMap.put(new Pair<String, String>("func_78473_a", "getMouseOver"));
+ mInitMap.put(new Pair<String, String>("func_78474_d", "renderRainSnow"));
+ mInitMap.put(new Pair<String, String>("func_78475_f", "setupViewBobbing"));
+ mInitMap.put(new Pair<String, String>("func_78476_b", "renderHand"));
+ mInitMap.put(new Pair<String, String>("func_78477_e", "updateFovModifierHand"));
+ mInitMap.put(new Pair<String, String>("func_78478_c", "setupOverlayRendering"));
+ mInitMap.put(new Pair<String, String>("func_78479_a", "setupCameraTransform"));
+ mInitMap.put(new Pair<String, String>("func_78480_b", "updateCameraAndRender"));
+ mInitMap.put(new Pair<String, String>("func_78481_a", "getFOVModifier"));
+ mInitMap.put(new Pair<String, String>("func_78482_e", "hurtCameraEffect"));
+ mInitMap.put(new Pair<String, String>("func_78483_a", "disableLightmap"));
+ mInitMap.put(new Pair<String, String>("func_78484_h", "addRainParticles"));
+ mInitMap.put(new Pair<String, String>("func_78546_a", "isBoundingBoxInFrustum"));
+ mInitMap.put(new Pair<String, String>("func_78547_a", "setPosition"));
+ mInitMap.put(new Pair<String, String>("func_78548_b", "isBoxInFrustum"));
+ mInitMap.put(new Pair<String, String>("func_78553_b", "isBoxInFrustum"));
+ mInitMap.put(new Pair<String, String>("func_78558_a", "getInstance"));
+ mInitMap.put(new Pair<String, String>("func_78559_a", "normalize"));
+ mInitMap.put(new Pair<String, String>("func_78560_b", "init"));
+ mInitMap.put(new Pair<String, String>("func_78713_a", "getEntityRenderObject"));
+ mInitMap.put(new Pair<String, String>("func_78714_a", "getDistanceToCamera"));
+ mInitMap.put(new Pair<String, String>("func_78715_a", "getEntityClassRenderObject"));
+ mInitMap.put(new Pair<String, String>("func_78716_a", "getFontRenderer"));
+ mInitMap.put(new Pair<String, String>("func_78717_a", "set"));
+ mInitMap.put(new Pair<String, String>("func_78738_b", "createNextComponentRandom"));
+ mInitMap.put(new Pair<String, String>("func_78743_b", "clickBlock"));
+ mInitMap.put(new Pair<String, String>("func_78744_a", "clickBlockCreative"));
+ mInitMap.put(new Pair<String, String>("func_78745_b", "flipPlayer"));
+ mInitMap.put(new Pair<String, String>("func_78746_a", "setGameType"));
+ mInitMap.put(new Pair<String, String>("func_78747_a", "enableEverythingIsScrewedUpMode"));
+ mInitMap.put(new Pair<String, String>("func_78748_a", "setPlayerCapabilities"));
+ mInitMap.put(new Pair<String, String>("func_78749_i", "extendedReach"));
+ mInitMap.put(new Pair<String, String>("func_78750_j", "syncCurrentPlayItem"));
+ mInitMap.put(new Pair<String, String>("func_78751_a", "onPlayerDestroyBlock"));
+ mInitMap.put(new Pair<String, String>("func_78752_a", "sendPacketDropItem"));
+ mInitMap.put(new Pair<String, String>("func_78753_a", "windowClick"));
+ mInitMap.put(new Pair<String, String>("func_78755_b", "shouldDrawHUD"));
+ mInitMap.put(new Pair<String, String>("func_78756_a", "sendEnchantPacket"));
+ mInitMap.put(new Pair<String, String>("func_78757_d", "getBlockReachDistance"));
+ mInitMap.put(new Pair<String, String>("func_78758_h", "isInCreativeMode"));
+ mInitMap.put(new Pair<String, String>("func_78759_c", "onPlayerDamageBlock"));
+ mInitMap.put(new Pair<String, String>("func_78760_a", "onPlayerRightClick"));
+ mInitMap.put(new Pair<String, String>("func_78761_a", "sendSlotPacket"));
+ mInitMap.put(new Pair<String, String>("func_78762_g", "isNotCreative"));
+ mInitMap.put(new Pair<String, String>("func_78763_f", "gameIsSurvivalOrAdventure"));
+ mInitMap.put(new Pair<String, String>("func_78764_a", "attackEntity"));
+ mInitMap.put(new Pair<String, String>("func_78765_e", "updateController"));
+ mInitMap.put(new Pair<String, String>("func_78766_c", "onStoppedUsingItem"));
+ mInitMap.put(new Pair<String, String>("func_78767_c", "resetBlockRemoving"));
+ mInitMap.put(new Pair<String, String>("func_78768_b", "interactWithEntitySendPacket"));
+ mInitMap.put(new Pair<String, String>("func_78769_a", "sendUseItem"));
+ mInitMap.put(new Pair<String, String>("func_78784_a", "setTextureOffset"));
+ mInitMap.put(new Pair<String, String>("func_78785_a", "render"));
+ mInitMap.put(new Pair<String, String>("func_78786_a", "addBox"));
+ mInitMap.put(new Pair<String, String>("func_78787_b", "setTextureSize"));
+ mInitMap.put(new Pair<String, String>("func_78788_d", "compileDisplayList"));
+ mInitMap.put(new Pair<String, String>("func_78789_a", "addBox"));
+ mInitMap.put(new Pair<String, String>("func_78790_a", "addBox"));
+ mInitMap.put(new Pair<String, String>("func_78791_b", "renderWithRotation"));
+ mInitMap.put(new Pair<String, String>("func_78792_a", "addChild"));
+ mInitMap.put(new Pair<String, String>("func_78793_a", "setRotationPoint"));
+ mInitMap.put(new Pair<String, String>("func_78794_c", "postRender"));
+ mInitMap.put(new Pair<String, String>("func_78815_a", "getRandomComponent"));
+ mInitMap.put(new Pair<String, String>("func_78817_b", "getNextMineShaftComponent"));
+ mInitMap.put(new Pair<String, String>("func_78836_a", "getNBTCompound"));
+ mInitMap.put(new Pair<String, String>("func_78837_a", "getServerDataFromNBTCompound"));
+ mInitMap.put(new Pair<String, String>("func_78849_a", "addServerData"));
+ mInitMap.put(new Pair<String, String>("func_78850_a", "getServerData"));
+ mInitMap.put(new Pair<String, String>("func_78851_b", "removeServerData"));
+ mInitMap.put(new Pair<String, String>("func_78853_a", "loadServerList"));
+ mInitMap.put(new Pair<String, String>("func_78855_b", "saveServerList"));
+ mInitMap.put(new Pair<String, String>("func_78856_c", "countServers"));
+ mInitMap.put(new Pair<String, String>("func_78857_a", "swapServers"));
+ mInitMap.put(new Pair<String, String>("func_78861_a", "getIP"));
+ mInitMap.put(new Pair<String, String>("func_78862_a", "parseIntWithDefault"));
+ mInitMap.put(new Pair<String, String>("func_78863_b", "getServerAddress"));
+ mInitMap.put(new Pair<String, String>("func_78864_b", "getPort"));
+ mInitMap.put(new Pair<String, String>("func_78867_a", "addBlockHitEffects"));
+ mInitMap.put(new Pair<String, String>("func_78868_a", "updateEffects"));
+ mInitMap.put(new Pair<String, String>("func_78869_b", "getStatistics"));
+ mInitMap.put(new Pair<String, String>("func_78870_a", "clearEffects"));
+ mInitMap.put(new Pair<String, String>("func_78872_b", "renderLitParticles"));
+ mInitMap.put(new Pair<String, String>("func_78873_a", "addEffect"));
+ mInitMap.put(new Pair<String, String>("func_78874_a", "renderParticles"));
+ mInitMap.put(new Pair<String, String>("func_78879_f", "getCenterY"));
+ mInitMap.put(new Pair<String, String>("func_78880_d", "getZSize"));
+ mInitMap.put(new Pair<String, String>("func_78881_e", "getCenterX"));
+ mInitMap.put(new Pair<String, String>("func_78882_c", "getYSize"));
+ mInitMap.put(new Pair<String, String>("func_78883_b", "getXSize"));
+ mInitMap.put(new Pair<String, String>("func_78884_a", "intersectsWith"));
+ mInitMap.put(new Pair<String, String>("func_78885_a", "intersectsWith"));
+ mInitMap.put(new Pair<String, String>("func_78886_a", "offset"));
+ mInitMap.put(new Pair<String, String>("func_78887_a", "getmInitMap.put(newBoundingBox"));
+ mInitMap.put(new Pair<String, String>("func_78888_b", "expandTo"));
+ mInitMap.put(new Pair<String, String>("func_78889_a", "getComponentToAddBoundingBox"));
+ mInitMap.put(new Pair<String, String>("func_78890_b", "isVecInside"));
+ mInitMap.put(new Pair<String, String>("func_78891_g", "getCenterZ"));
+ mInitMap.put(new Pair<String, String>("func_78898_a", "updatePlayerMoveState"));
+ mInitMap.put(new Pair<String, String>("func_78904_d", "callOcclusionQueryList"));
+ mInitMap.put(new Pair<String, String>("func_78905_g", "setupGLTranslation"));
+ mInitMap.put(new Pair<String, String>("func_78906_e", "skipAllRenderPasses"));
+ mInitMap.put(new Pair<String, String>("func_78908_a", "updateInFrustum"));
+ mInitMap.put(new Pair<String, String>("func_78909_a", "getGLCallListForPass"));
+ mInitMap.put(new Pair<String, String>("func_78910_b", "setDontDraw"));
+ mInitMap.put(new Pair<String, String>("func_78911_c", "stopRendering"));
+ mInitMap.put(new Pair<String, String>("func_78912_a", "distanceToEntitySquared"));
+ mInitMap.put(new Pair<String, String>("func_78913_a", "setPosition"));
+ mInitMap.put(new Pair<String, String>("func_78914_f", "markDirty"));
+ mInitMap.put(new Pair<String, String>("func_80003_ah", "getPlayerUsageSnooper"));
+ mInitMap.put(new Pair<String, String>("func_80006_f", "getUniqueID"));
+ mInitMap.put(new Pair<String, String>("func_80007_l", "getDimensionName"));
+ mInitMap.put(new Pair<String, String>("func_82114_b", "getCommandSenderPosition"));
+ mInitMap.put(new Pair<String, String>("func_82141_a", "copyDataFrom"));
+ mInitMap.put(new Pair<String, String>("func_82142_c", "setInvisible"));
+ mInitMap.put(new Pair<String, String>("func_82143_as", "getMaxFallHeight"));
+ mInitMap.put(new Pair<String, String>("func_82145_z", "getMaxInPortalTime"));
+ mInitMap.put(new Pair<String, String>("func_82147_ab", "getPortalCooldown"));
+ mInitMap.put(new Pair<String, String>("func_82148_at", "getTeleportDirection"));
+ mInitMap.put(new Pair<String, String>("func_82149_j", "copyLocationAndAnglesFrom"));
+ mInitMap.put(new Pair<String, String>("func_82150_aj", "isInvisible"));
+ mInitMap.put(new Pair<String, String>("func_82159_b", "getArmorPosition"));
+ mInitMap.put(new Pair<String, String>("func_82160_b", "dropEquipment"));
+ mInitMap.put(new Pair<String, String>("func_82161_a", "getArmorItemForSlot"));
+ mInitMap.put(new Pair<String, String>("func_82162_bC", "enchantEquipment"));
+ mInitMap.put(new Pair<String, String>("func_82164_bB", "addRandomArmor"));
+ mInitMap.put(new Pair<String, String>("func_82165_m", "isPotionActive"));
+ mInitMap.put(new Pair<String, String>("func_82166_i", "getArmSwingAnimationEnd"));
+ mInitMap.put(new Pair<String, String>("func_82167_n", "collideWithEntity"));
+ mInitMap.put(new Pair<String, String>("func_82168_bl", "updateArmSwingProgress"));
+ mInitMap.put(new Pair<String, String>("func_82169_q", "getCurrentArmor"));
+ mInitMap.put(new Pair<String, String>("func_82170_o", "removePotionEffect"));
+ mInitMap.put(new Pair<String, String>("func_82171_bF", "canBeSteered"));
+ mInitMap.put(new Pair<String, String>("func_82183_n", "getAIControlledByPlayer"));
+ mInitMap.put(new Pair<String, String>("func_82185_r", "setCollarColor"));
+ mInitMap.put(new Pair<String, String>("func_82186_bH", "getCollarColor"));
+ mInitMap.put(new Pair<String, String>("func_82187_q", "setLookingForHome"));
+ mInitMap.put(new Pair<String, String>("func_82188_j", "adjustProbability"));
+ mInitMap.put(new Pair<String, String>("func_82196_d", "attackEntityWithRangedAttack"));
+ mInitMap.put(new Pair<String, String>("func_82197_f", "setAggressive"));
+ mInitMap.put(new Pair<String, String>("func_82198_m", "getAggressive"));
+ mInitMap.put(new Pair<String, String>("func_82201_a", "setSkeletonType"));
+ mInitMap.put(new Pair<String, String>("func_82202_m", "getSkeletonType"));
+ mInitMap.put(new Pair<String, String>("func_82203_t", "getWatchedTargetId"));
+ mInitMap.put(new Pair<String, String>("func_82205_o", "isArmored"));
+ mInitMap.put(new Pair<String, String>("func_82209_a", "launchWitherSkullToCoords"));
+ mInitMap.put(new Pair<String, String>("func_82212_n", "getInvulTime"));
+ mInitMap.put(new Pair<String, String>("func_82215_s", "setInvulTime"));
+ mInitMap.put(new Pair<String, String>("func_82216_a", "launchWitherSkullToEntity"));
+ mInitMap.put(new Pair<String, String>("func_82227_f", "setChild"));
+ mInitMap.put(new Pair<String, String>("func_82228_a", "startConversion"));
+ mInitMap.put(new Pair<String, String>("func_82229_g", "setVillager"));
+ mInitMap.put(new Pair<String, String>("func_82230_o", "isConverting"));
+ mInitMap.put(new Pair<String, String>("func_82231_m", "isVillager"));
+ mInitMap.put(new Pair<String, String>("func_82232_p", "convertToVillager"));
+ mInitMap.put(new Pair<String, String>("func_82233_q", "getConversionTimeBoost"));
+ mInitMap.put(new Pair<String, String>("func_82235_h", "getIsBatHanging"));
+ mInitMap.put(new Pair<String, String>("func_82236_f", "setIsBatHanging"));
+ mInitMap.put(new Pair<String, String>("func_82238_cc", "getHideCape"));
+ mInitMap.put(new Pair<String, String>("func_82239_b", "setHideCape"));
+ mInitMap.put(new Pair<String, String>("func_82241_s", "getHideCape"));
+ mInitMap.put(new Pair<String, String>("func_82242_a", "addExperienceLevel"));
+ mInitMap.put(new Pair<String, String>("func_82243_bO", "getArmorVisibility"));
+ mInitMap.put(new Pair<String, String>("func_82244_d", "displayGUIAnvil"));
+ mInitMap.put(new Pair<String, String>("func_82245_bX", "isSpawnForced"));
+ mInitMap.put(new Pair<String, String>("func_82246_f", "isCurrentToolAdventureModeExempt"));
+ mInitMap.put(new Pair<String, String>("func_82247_a", "canPlayerEdit"));
+ mInitMap.put(new Pair<String, String>("func_82328_a", "setDirection"));
+ mInitMap.put(new Pair<String, String>("func_82329_d", "getWidthPixels"));
+ mInitMap.put(new Pair<String, String>("func_82330_g", "getHeightPixels"));
+ mInitMap.put(new Pair<String, String>("func_82333_j", "getRotation"));
+ mInitMap.put(new Pair<String, String>("func_82334_a", "setDisplayedItem"));
+ mInitMap.put(new Pair<String, String>("func_82335_i", "getDisplayedItem"));
+ mInitMap.put(new Pair<String, String>("func_82336_g", "setItemRotation"));
+ mInitMap.put(new Pair<String, String>("func_82338_g", "setAlphaF"));
+ mInitMap.put(new Pair<String, String>("func_82340_a", "setPotionDamage"));
+ mInitMap.put(new Pair<String, String>("func_82341_c", "getMotionFactor"));
+ mInitMap.put(new Pair<String, String>("func_82342_d", "isInvulnerable"));
+ mInitMap.put(new Pair<String, String>("func_82343_e", "setInvulnerable"));
+ mInitMap.put(new Pair<String, String>("func_82356_Z", "isCommandBlockEnabled"));
+ mInitMap.put(new Pair<String, String>("func_82357_ak", "getSpawnProtectionSize"));
+ mInitMap.put(new Pair<String, String>("func_82358_a", "isUsernameIndex"));
+ mInitMap.put(new Pair<String, String>("func_82359_c", "getPlayer"));
+ mInitMap.put(new Pair<String, String>("func_82360_a", "getStringFromNthArg"));
+ mInitMap.put(new Pair<String, String>("func_82362_a", "getRequiredPermissionLevel"));
+ mInitMap.put(new Pair<String, String>("func_82363_b", "parseDouble"));
+ mInitMap.put(new Pair<String, String>("func_82366_d", "getGameRules"));
+ mInitMap.put(new Pair<String, String>("func_82370_a", "getUsernameIndex"));
+ mInitMap.put(new Pair<String, String>("func_82371_e", "getDistanceSquaredToChunkCoordinates"));
+ mInitMap.put(new Pair<String, String>("func_82372_a", "getMovementDirection"));
+ mInitMap.put(new Pair<String, String>("func_82375_f", "getDefaultMinimumLevel"));
+ mInitMap.put(new Pair<String, String>("func_82376_e", "getDefaultMaximumLevel"));
+ mInitMap.put(new Pair<String, String>("func_82377_a", "matchesMultiplePlayers"));
+ mInitMap.put(new Pair<String, String>("func_82378_b", "hasArguments"));
+ mInitMap.put(new Pair<String, String>("func_82379_d", "getDefaultMaximumRange"));
+ mInitMap.put(new Pair<String, String>("func_82380_c", "matchPlayers"));
+ mInitMap.put(new Pair<String, String>("func_82381_h", "getArgumentMap"));
+ mInitMap.put(new Pair<String, String>("func_82382_g", "getDefaultCount"));
+ mInitMap.put(new Pair<String, String>("func_82383_a", "hasTheseArguments"));
+ mInitMap.put(new Pair<String, String>("func_82384_c", "getDefaultMinimumRange"));
+ mInitMap.put(new Pair<String, String>("func_82386_a", "matchOnePlayer"));
+ mInitMap.put(new Pair<String, String>("func_82403_a", "renderFrameItemAsBlock"));
+ mInitMap.put(new Pair<String, String>("func_82406_b", "renderItemAndEffectIntoGUI"));
+ mInitMap.put(new Pair<String, String>("func_82441_a", "renderFirstPersonArm"));
+ mInitMap.put(new Pair<String, String>("func_82448_a", "transferEntityToWorld"));
+ mInitMap.put(new Pair<String, String>("func_82449_a", "findPlayers"));
+ mInitMap.put(new Pair<String, String>("func_82482_a", "dispense"));
+ mInitMap.put(new Pair<String, String>("func_82485_a", "playDispenseSound"));
+ mInitMap.put(new Pair<String, String>("func_82486_a", "doDispense"));
+ mInitMap.put(new Pair<String, String>("func_82487_b", "dispenseStack"));
+ mInitMap.put(new Pair<String, String>("func_82489_a", "spawnDispenseParticles"));
+ mInitMap.put(new Pair<String, String>("func_82499_a", "getProjectileEntity"));
+ mInitMap.put(new Pair<String, String>("func_82565_a", "canEntityStandAt"));
+ mInitMap.put(new Pair<String, String>("func_82571_y", "getGeneratorOptions"));
+ mInitMap.put(new Pair<String, String>("func_82572_b", "incrementTotalWorldTime"));
+ mInitMap.put(new Pair<String, String>("func_82573_f", "getWorldTotalTime"));
+ mInitMap.put(new Pair<String, String>("func_82574_x", "getGameRulesInstance"));
+ mInitMap.put(new Pair<String, String>("func_82580_o", "removeTag"));
+ mInitMap.put(new Pair<String, String>("func_82581_a", "createCrashReport"));
+ mInitMap.put(new Pair<String, String>("func_82582_d", "hasNoTags"));
+ mInitMap.put(new Pair<String, String>("func_82594_a", "getObject"));
+ mInitMap.put(new Pair<String, String>("func_82595_a", "putObject"));
+ mInitMap.put(new Pair<String, String>("func_82599_e", "getFrontOffsetZ"));
+ mInitMap.put(new Pair<String, String>("func_82600_a", "getFront"));
+ mInitMap.put(new Pair<String, String>("func_82601_c", "getFrontOffsetX"));
+ mInitMap.put(new Pair<String, String>("func_82615_a", "getX"));
+ mInitMap.put(new Pair<String, String>("func_82616_c", "getZ"));
+ mInitMap.put(new Pair<String, String>("func_82617_b", "getY"));
+ mInitMap.put(new Pair<String, String>("func_82618_k", "getWorld"));
+ mInitMap.put(new Pair<String, String>("func_82620_h", "getBlockMetadata"));
+ mInitMap.put(new Pair<String, String>("func_82621_f", "getZInt"));
+ mInitMap.put(new Pair<String, String>("func_82622_e", "getYInt"));
+ mInitMap.put(new Pair<String, String>("func_82623_d", "getXInt"));
+ mInitMap.put(new Pair<String, String>("func_82632_g", "boostSpeed"));
+ mInitMap.put(new Pair<String, String>("func_82633_h", "isControlledByPlayer"));
+ mInitMap.put(new Pair<String, String>("func_82634_f", "isSpeedBoosted"));
+ mInitMap.put(new Pair<String, String>("func_82644_b", "getWorldFeatures"));
+ mInitMap.put(new Pair<String, String>("func_82647_a", "setBiome"));
+ mInitMap.put(new Pair<String, String>("func_82648_a", "getBiome"));
+ mInitMap.put(new Pair<String, String>("func_82649_e", "getDefaultFlatGenerator"));
+ mInitMap.put(new Pair<String, String>("func_82650_c", "getFlatLayers"));
+ mInitMap.put(new Pair<String, String>("func_82651_a", "createFlatGeneratorFromString"));
+ mInitMap.put(new Pair<String, String>("func_82656_d", "getMinY"));
+ mInitMap.put(new Pair<String, String>("func_82657_a", "getLayerCount"));
+ mInitMap.put(new Pair<String, String>("func_82658_c", "getFillBlockMeta"));
+ mInitMap.put(new Pair<String, String>("func_82660_d", "setMinY"));
+ mInitMap.put(new Pair<String, String>("func_82667_a", "getScatteredFeatureSpawnList"));
+ mInitMap.put(new Pair<String, String>("func_82683_b", "setDefaultPlayerReputation"));
+ mInitMap.put(new Pair<String, String>("func_82684_a", "getReputationForPlayer"));
+ mInitMap.put(new Pair<String, String>("func_82686_i", "isMatingSeason"));
+ mInitMap.put(new Pair<String, String>("func_82687_d", "isPlayerReputationTooLow"));
+ mInitMap.put(new Pair<String, String>("func_82688_a", "setReputationForPlayer"));
+ mInitMap.put(new Pair<String, String>("func_82689_b", "writeVillageDataToNBT"));
+ mInitMap.put(new Pair<String, String>("func_82690_a", "readVillageDataFromNBT"));
+ mInitMap.put(new Pair<String, String>("func_82692_h", "endMatingSeason"));
+ mInitMap.put(new Pair<String, String>("func_82695_e", "recreateStructures"));
+ mInitMap.put(new Pair<String, String>("func_82704_a", "isEntityApplicable"));
+ mInitMap.put(new Pair<String, String>("func_82705_e", "getAnimal"));
+ mInitMap.put(new Pair<String, String>("func_82708_h", "setObjectWatched"));
+ mInitMap.put(new Pair<String, String>("func_82709_a", "addObjectByDataType"));
+ mInitMap.put(new Pair<String, String>("func_82710_f", "getWatchableObjectItemStack"));
+ mInitMap.put(new Pair<String, String>("func_82712_a", "parseDoubleWithDefault"));
+ mInitMap.put(new Pair<String, String>("func_82713_a", "parseDoubleWithDefaultAndMax"));
+ mInitMap.put(new Pair<String, String>("func_82714_a", "parseIntWithDefaultAndMax"));
+ mInitMap.put(new Pair<String, String>("func_82715_a", "parseIntWithDefault"));
+ mInitMap.put(new Pair<String, String>("func_82716_a", "getRandomDoubleInRange"));
+ mInitMap.put(new Pair<String, String>("func_82719_a", "writeCustomPotionEffectToNBT"));
+ mInitMap.put(new Pair<String, String>("func_82720_e", "getIsAmbient"));
+ mInitMap.put(new Pair<String, String>("func_82721_a", "setSplashPotion"));
+ mInitMap.put(new Pair<String, String>("func_82722_b", "readCustomPotionEffectFromNBT"));
+ mInitMap.put(new Pair<String, String>("func_82725_o", "isMagicDamage"));
+ mInitMap.put(new Pair<String, String>("func_82726_p", "setMagicDamage"));
+ mInitMap.put(new Pair<String, String>("func_82733_a", "selectEntitiesWithinAABB"));
+ mInitMap.put(new Pair<String, String>("func_82734_g", "getChunkHeightMapMinimum"));
+ mInitMap.put(new Pair<String, String>("func_82736_K", "getGameRules"));
+ mInitMap.put(new Pair<String, String>("func_82737_E", "getTotalWorldTime"));
+ mInitMap.put(new Pair<String, String>("func_82739_e", "playBroadcastSound"));
+ mInitMap.put(new Pair<String, String>("func_82742_i", "resetUpdateEntityTick"));
+ mInitMap.put(new Pair<String, String>("func_82743_f", "getCreationCloudUpdateTick"));
+ mInitMap.put(new Pair<String, String>("func_82744_b", "setCloudUpdateTick"));
+ mInitMap.put(new Pair<String, String>("func_82746_a", "broadcastSound"));
+ mInitMap.put(new Pair<String, String>("func_82747_f", "getWorldTypeID"));
+ mInitMap.put(new Pair<String, String>("func_82750_a", "setWorldName"));
+ mInitMap.put(new Pair<String, String>("func_82752_c", "isAdventure"));
+ mInitMap.put(new Pair<String, String>("func_82753_a", "setPriority"));
+ mInitMap.put(new Pair<String, String>("func_82756_a", "getGameRuleStringValue"));
+ mInitMap.put(new Pair<String, String>("func_82757_a", "setValue"));
+ mInitMap.put(new Pair<String, String>("func_82758_b", "getGameRuleBooleanValue"));
+ mInitMap.put(new Pair<String, String>("func_82763_b", "getRules"));
+ mInitMap.put(new Pair<String, String>("func_82764_b", "setOrCreateGameRule"));
+ mInitMap.put(new Pair<String, String>("func_82765_e", "hasRule"));
+ mInitMap.put(new Pair<String, String>("func_82766_b", "getGameRuleBooleanValue"));
+ mInitMap.put(new Pair<String, String>("func_82767_a", "getGameRuleStringValue"));
+ mInitMap.put(new Pair<String, String>("func_82768_a", "readGameRulesFromNBT"));
+ mInitMap.put(new Pair<String, String>("func_82769_a", "addGameRule"));
+ mInitMap.put(new Pair<String, String>("func_82770_a", "writeGameRulesToNBT"));
+ mInitMap.put(new Pair<String, String>("func_82781_a", "getEnchantments"));
+ mInitMap.put(new Pair<String, String>("func_82782_a", "setEnchantments"));
+ mInitMap.put(new Pair<String, String>("func_82784_g", "isRecipeDisabled"));
+ mInitMap.put(new Pair<String, String>("func_82787_a", "findMatchingRecipe"));
+ mInitMap.put(new Pair<String, String>("func_82788_x", "canItemEditBlocks"));
+ mInitMap.put(new Pair<String, String>("func_82789_a", "getIsRepairable"));
+ mInitMap.put(new Pair<String, String>("func_82790_a", "getColorFromItemStack"));
+ mInitMap.put(new Pair<String, String>("func_82810_a", "createHangingEntity"));
+ mInitMap.put(new Pair<String, String>("func_82812_d", "getArmorMaterial"));
+ mInitMap.put(new Pair<String, String>("func_82814_b", "getColor"));
+ mInitMap.put(new Pair<String, String>("func_82815_c", "removeColor"));
+ mInitMap.put(new Pair<String, String>("func_82816_b_", "hasColor"));
+ mInitMap.put(new Pair<String, String>("func_82824_a", "setBossStatus"));
+ mInitMap.put(new Pair<String, String>("func_82829_a", "renderCloudsCheck"));
+ mInitMap.put(new Pair<String, String>("func_82830_a", "getNightVisionBrightness"));
+ mInitMap.put(new Pair<String, String>("func_82833_r", "getDisplayName"));
+ mInitMap.put(new Pair<String, String>("func_82835_x", "canEditBlocks"));
+ mInitMap.put(new Pair<String, String>("func_82836_z", "getItemFrame"));
+ mInitMap.put(new Pair<String, String>("func_82837_s", "hasDisplayName"));
+ mInitMap.put(new Pair<String, String>("func_82838_A", "getRepairCost"));
+ mInitMap.put(new Pair<String, String>("func_82839_y", "isOnItemFrame"));
+ mInitMap.put(new Pair<String, String>("func_82840_a", "getTooltip"));
+ mInitMap.put(new Pair<String, String>("func_82841_c", "setRepairCost"));
+ mInitMap.put(new Pair<String, String>("func_82842_a", "setItemFrame"));
+ mInitMap.put(new Pair<String, String>("func_82846_b", "transferStackInSlot"));
+ mInitMap.put(new Pair<String, String>("func_82847_b", "removeCraftingFromCrafters"));
+ mInitMap.put(new Pair<String, String>("func_82848_d", "updateRepairOutput"));
+ mInitMap.put(new Pair<String, String>("func_82850_a", "updateItemName"));
+ mInitMap.put(new Pair<String, String>("func_82869_a", "canTakeStack"));
+ mInitMap.put(new Pair<String, String>("func_82870_a", "onPickupFromSlot"));
+ mInitMap.put(new Pair<String, String>("func_82877_b", "setPlayerWalkSpeed"));
+ mInitMap.put(new Pair<String, String>("func_82879_c", "sendSettingsToServer"));
+ mInitMap.put(new Pair<String, String>("func_82883_a", "getUnicodeFlag"));
+ mInitMap.put(new Pair<String, String>("func_82889_a", "getBatSize"));
+ mInitMap.put(new Pair<String, String>("func_83015_S", "getCurrentDate"));
+ mInitMap.put(new Pair<String, String>("func_85029_a", "addEntityCrashInfo"));
+ mInitMap.put(new Pair<String, String>("func_85030_a", "playSound"));
+ mInitMap.put(new Pair<String, String>("func_85031_j", "hitByEntity"));
+ mInitMap.put(new Pair<String, String>("func_85032_ar", "isEntityInvulnerable"));
+ mInitMap.put(new Pair<String, String>("func_85033_bc", "collideWithNearbyEntities"));
+ mInitMap.put(new Pair<String, String>("func_85034_r", "setArrowCountInEntity"));
+ mInitMap.put(new Pair<String, String>("func_85035_bI", "getArrowCountInEntity"));
+ mInitMap.put(new Pair<String, String>("func_85036_m", "setCombatTask"));
+ mInitMap.put(new Pair<String, String>("func_85039_t", "addScore"));
+ mInitMap.put(new Pair<String, String>("func_85040_s", "setScore"));
+ mInitMap.put(new Pair<String, String>("func_85052_h", "getThrower"));
+ mInitMap.put(new Pair<String, String>("func_85054_d", "searchForOtherItemsNearby"));
+ mInitMap.put(new Pair<String, String>("func_85055_a", "makeCrashReport"));
+ mInitMap.put(new Pair<String, String>("func_85056_g", "getCategory"));
+ mInitMap.put(new Pair<String, String>("func_85057_a", "makeCategoryDepth"));
+ mInitMap.put(new Pair<String, String>("func_85058_a", "makeCategory"));
+ mInitMap.put(new Pair<String, String>("func_85069_a", "firstTwoElementsOfStackTraceMatch"));
+ mInitMap.put(new Pair<String, String>("func_85070_b", "trimStackTraceEntriesFromBottom"));
+ mInitMap.put(new Pair<String, String>("func_85071_a", "getLocationInfo"));
+ mInitMap.put(new Pair<String, String>("func_85072_a", "appendToStringBuilder"));
+ mInitMap.put(new Pair<String, String>("func_85073_a", "getPrunedStackTrace"));
+ mInitMap.put(new Pair<String, String>("func_85093_e", "renderArrowsStuckInEntity"));
+ mInitMap.put(new Pair<String, String>("func_85094_b", "renderDebugBoundingBox"));
+ mInitMap.put(new Pair<String, String>("func_85102_a", "playSoundToNearExcept"));
+ mInitMap.put(new Pair<String, String>("func_85118_a", "addToCrashReport"));
+ mInitMap.put(new Pair<String, String>("func_85144_b", "getCacheSizes"));
+ mInitMap.put(new Pair<String, String>("func_85151_d", "getLowerChestInventory"));
+ mInitMap.put(new Pair<String, String>("func_85156_a", "removeTask"));
+ mInitMap.put(new Pair<String, String>("func_85157_q", "isAdventureModeExempt"));
+ mInitMap.put(new Pair<String, String>("func_85158_p", "setAdventureModeExempt"));
+ mInitMap.put(new Pair<String, String>("func_85173_a", "playSoundToNearExcept"));
+ mInitMap.put(new Pair<String, String>("func_85176_s", "getDefaultTeleporter"));
+ mInitMap.put(new Pair<String, String>("func_85181_a", "getRandomModelBox"));
+ mInitMap.put(new Pair<String, String>("func_85182_a", "sameToolAndBlock"));
+ mInitMap.put(new Pair<String, String>("func_85187_a", "drawString"));
+ mInitMap.put(new Pair<String, String>("func_85188_a", "makePortal"));
+ mInitMap.put(new Pair<String, String>("func_85189_a", "removeStalePortalLocations"));
+ mInitMap.put(new Pair<String, String>("func_90010_a", "isPartOfLargeChest"));
+ mInitMap.put(new Pair<String, String>("func_90011_a", "createChild"));
+ mInitMap.put(new Pair<String, String>("func_90013_b", "getDyeFromFleeceColor"));
+ mInitMap.put(new Pair<String, String>("func_90014_a", "getDyeBasedOnParents"));
+ mInitMap.put(new Pair<String, String>("func_90019_g", "applyRenderColor"));
+ mInitMap.put(new Pair<String, String>("func_90020_K", "getLimitFramerate"));
+ mInitMap.put(new Pair<String, String>("func_90022_d", "getListOfPlayers"));
+ mInitMap.put(new Pair<String, String>("func_90033_f", "canLoadWorld"));
+ mInitMap.put(new Pair<String, String>("func_90035_a", "getClassFromID"));
+ mInitMap.put(new Pair<String, String>("func_90036_a", "getFireAspectModifier"));
+ mInitMap.put(new Pair<String, String>("func_90999_ad", "canRenderOnFire"));
+ mInitMap.put(new Pair<String, String>("func_92015_f", "closeScreenNoPacket"));
+ mInitMap.put(new Pair<String, String>("func_92034_a", "createParticle"));
+ mInitMap.put(new Pair<String, String>("func_92035_a", "createBall"));
+ mInitMap.put(new Pair<String, String>("func_92036_a", "createBurst"));
+ mInitMap.put(new Pair<String, String>("func_92038_a", "createShaped"));
+ mInitMap.put(new Pair<String, String>("func_92043_f", "setTwinkle"));
+ mInitMap.put(new Pair<String, String>("func_92044_a", "setColour"));
+ mInitMap.put(new Pair<String, String>("func_92045_e", "setTrail"));
+ mInitMap.put(new Pair<String, String>("func_92046_g", "setFadeColour"));
+ mInitMap.put(new Pair<String, String>("func_92058_a", "setEntityItemStack"));
+ mInitMap.put(new Pair<String, String>("func_92059_d", "getEntityItem"));
+ mInitMap.put(new Pair<String, String>("func_92085_d", "getIsBlank"));
+ mInitMap.put(new Pair<String, String>("func_92087_a", "causeThornsDamage"));
+ mInitMap.put(new Pair<String, String>("func_92088_a", "makeFireworks"));
+ mInitMap.put(new Pair<String, String>("func_92089_a", "canApply"));
+ mInitMap.put(new Pair<String, String>("func_92093_a", "getFireTimeForEntity"));
+ mInitMap.put(new Pair<String, String>("func_92097_a", "negateDamage"));
+ mInitMap.put(new Pair<String, String>("func_92103_a", "addRecipe"));
+ mInitMap.put(new Pair<String, String>("func_92111_a", "getEnchantedItemStack"));
+ mInitMap.put(new Pair<String, String>("func_92115_a", "addEnchantment"));
+ mInitMap.put(new Pair<String, String>("func_92116_a", "addEnchantmentBooksToList"));
+ mInitMap.put(new Pair<String, String>("func_94041_b", "isItemValidForSlot"));
+ mInitMap.put(new Pair<String, String>("func_94053_h", "nextTextureIndexX"));
+ mInitMap.put(new Pair<String, String>("func_94056_bM", "hasCustomNameTag"));
+ mInitMap.put(new Pair<String, String>("func_94057_bL", "getCustomNameTag"));
+ mInitMap.put(new Pair<String, String>("func_94058_c", "setCustomNameTag"));
+ mInitMap.put(new Pair<String, String>("func_94059_bO", "getAlwaysRenderNameTagForRender"));
+ mInitMap.put(new Pair<String, String>("func_94061_f", "setAlwaysRenderNameTag"));
+ mInitMap.put(new Pair<String, String>("func_94062_bN", "getAlwaysRenderNameTag"));
+ mInitMap.put(new Pair<String, String>("func_94065_a", "drawTexturedModelRectFromIcon"));
+ mInitMap.put(new Pair<String, String>("func_94083_c", "getTntPlacedBy"));
+ mInitMap.put(new Pair<String, String>("func_94085_r", "getDefaultDisplayTileOffset"));
+ mInitMap.put(new Pair<String, String>("func_94086_l", "setDisplayTileOffset"));
+ mInitMap.put(new Pair<String, String>("func_94087_l", "getMinecartType"));
+ mInitMap.put(new Pair<String, String>("func_94090_a", "createMinecart"));
+ mInitMap.put(new Pair<String, String>("func_94092_k", "setDisplayTileData"));
+ mInitMap.put(new Pair<String, String>("func_94095_a", "killMinecart"));
+ mInitMap.put(new Pair<String, String>("func_94096_e", "setHasDisplayTile"));
+ mInitMap.put(new Pair<String, String>("func_94097_p", "getDefaultDisplayTileData"));
+ mInitMap.put(new Pair<String, String>("func_94098_o", "getDisplayTileData"));
+ mInitMap.put(new Pair<String, String>("func_94099_q", "getDisplayTileOffset"));
+ mInitMap.put(new Pair<String, String>("func_94100_s", "hasDisplayTile"));
+ mInitMap.put(new Pair<String, String>("func_94101_h", "applyDrag"));
+ mInitMap.put(new Pair<String, String>("func_94103_c", "explodeCart"));
+ mInitMap.put(new Pair<String, String>("func_94105_c", "ignite"));
+ mInitMap.put(new Pair<String, String>("func_94107_f", "setMinecartPowered"));
+ mInitMap.put(new Pair<String, String>("func_94108_c", "isMinecartPowered"));
+ mInitMap.put(new Pair<String, String>("func_94128_d", "getSlotsForFace"));
+ mInitMap.put(new Pair<String, String>("func_94140_a", "registerDestroyBlockIcons"));
+ mInitMap.put(new Pair<String, String>("func_94143_a", "updateIcons"));
+ mInitMap.put(new Pair<String, String>("func_94148_a", "renderItemOverlayIntoGUI"));
+ mInitMap.put(new Pair<String, String>("func_94149_a", "renderIcon"));
+ mInitMap.put(new Pair<String, String>("func_94178_a", "updateIcons"));
+ mInitMap.put(new Pair<String, String>("func_94182_a", "addSlot"));
+ mInitMap.put(new Pair<String, String>("func_94183_a", "getStitchHolder"));
+ mInitMap.put(new Pair<String, String>("func_94184_a", "getAllStitchSlots"));
+ mInitMap.put(new Pair<String, String>("func_94185_c", "getOriginY"));
+ mInitMap.put(new Pair<String, String>("func_94186_b", "getOriginX"));
+ mInitMap.put(new Pair<String, String>("func_94194_d", "rotate"));
+ mInitMap.put(new Pair<String, String>("func_94195_e", "isRotated"));
+ mInitMap.put(new Pair<String, String>("func_94196_a", "setmInitMap.put(newDimension"));
+ mInitMap.put(new Pair<String, String>("func_94197_a", "getWidth"));
+ mInitMap.put(new Pair<String, String>("func_94199_b", "getHeight"));
+ mInitMap.put(new Pair<String, String>("func_94206_g", "getMinV"));
+ mInitMap.put(new Pair<String, String>("func_94207_b", "getInterpolatedV"));
+ mInitMap.put(new Pair<String, String>("func_94209_e", "getMinU"));
+ mInitMap.put(new Pair<String, String>("func_94210_h", "getMaxV"));
+ mInitMap.put(new Pair<String, String>("func_94211_a", "getIconWidth"));
+ mInitMap.put(new Pair<String, String>("func_94212_f", "getMaxU"));
+ mInitMap.put(new Pair<String, String>("func_94214_a", "getInterpolatedU"));
+ mInitMap.put(new Pair<String, String>("func_94215_i", "getIconName"));
+ mInitMap.put(new Pair<String, String>("func_94216_b", "getIconHeight"));
+ mInitMap.put(new Pair<String, String>("func_94217_a", "copyFrom"));
+ mInitMap.put(new Pair<String, String>("func_94219_l", "updateAnimation"));
+ mInitMap.put(new Pair<String, String>("func_94241_a", "updateCompass"));
+ mInitMap.put(new Pair<String, String>("func_94245_a", "registerIcon"));
+ mInitMap.put(new Pair<String, String>("func_94248_c", "updateAnimations"));
+ mInitMap.put(new Pair<String, String>("func_94277_a", "bindTexture"));
+ mInitMap.put(new Pair<String, String>("func_94305_f", "doStitch"));
+ mInitMap.put(new Pair<String, String>("func_94309_g", "getStichSlots"));
+ mInitMap.put(new Pair<String, String>("func_94310_b", "allocateSlot"));
+ mInitMap.put(new Pair<String, String>("func_94311_c", "expandAndAllocateSlot"));
+ mInitMap.put(new Pair<String, String>("func_94520_b", "isKeyTranslated"));
+ mInitMap.put(new Pair<String, String>("func_94522_b", "canTranslate"));
+ mInitMap.put(new Pair<String, String>("func_94525_a", "computeStackSize"));
+ mInitMap.put(new Pair<String, String>("func_94526_b", "calcRedstoneFromInventory"));
+ mInitMap.put(new Pair<String, String>("func_94527_a", "canAddItemToSlot"));
+ mInitMap.put(new Pair<String, String>("func_94528_d", "isValidDragMode"));
+ mInitMap.put(new Pair<String, String>("func_94529_b", "extractDragMode"));
+ mInitMap.put(new Pair<String, String>("func_94531_b", "canDragIntoSlot"));
+ mInitMap.put(new Pair<String, String>("func_94532_c", "getDragEvent"));
+ mInitMap.put(new Pair<String, String>("func_94533_d", "resetDrag"));
+ mInitMap.put(new Pair<String, String>("func_94539_a", "setExplosionSource"));
+ mInitMap.put(new Pair<String, String>("func_94540_d", "setExplosion"));
+ mInitMap.put(new Pair<String, String>("func_94541_c", "isExplosion"));
+ mInitMap.put(new Pair<String, String>("func_94560_a", "getDamageSrc"));
+ mInitMap.put(new Pair<String, String>("func_94572_D", "getStrongestIndirectPower"));
+ mInitMap.put(new Pair<String, String>("func_94574_k", "getIndirectPowerOutput"));
+ mInitMap.put(new Pair<String, String>("func_94576_a", "getEntitiesWithinAABBExcludingEntity"));
+ mInitMap.put(new Pair<String, String>("func_94577_B", "getBlockPowerInput"));
+ mInitMap.put(new Pair<String, String>("func_94581_a", "registerIcons"));
+ mInitMap.put(new Pair<String, String>("func_94599_c", "getItemIconForUseDuration"));
+ mInitMap.put(new Pair<String, String>("func_94602_b", "getBackgroundIcon"));
+ mInitMap.put(new Pair<String, String>("func_94608_d", "getItemSpriteNumber"));
+ mInitMap.put(new Pair<String, String>("func_94613_c", "getExplosivePlacedBy"));
+ mInitMap.put(new Pair<String, String>("func_94901_k", "getSpriteNumber"));
+ mInitMap.put(new Pair<String, String>("func_96092_aw", "isPushedByWater"));
+ mInitMap.put(new Pair<String, String>("func_96094_a", "setMinecartName"));
+ mInitMap.put(new Pair<String, String>("func_96095_a", "onActivatorRailPass"));
+ mInitMap.put(new Pair<String, String>("func_96096_ay", "isIgnited"));
+ mInitMap.put(new Pair<String, String>("func_96107_aA", "getXPos"));
+ mInitMap.put(new Pair<String, String>("func_96108_aC", "getZPos"));
+ mInitMap.put(new Pair<String, String>("func_96109_aB", "getYPos"));
+ mInitMap.put(new Pair<String, String>("func_96110_f", "setBlocked"));
+ mInitMap.put(new Pair<String, String>("func_96111_ay", "getBlocked"));
+ mInitMap.put(new Pair<String, String>("func_96120_a", "setEquipmentDropChance"));
+ mInitMap.put(new Pair<String, String>("func_96122_a", "canAttackPlayer"));
+ mInitMap.put(new Pair<String, String>("func_96123_co", "getWorldScoreboard"));
+ mInitMap.put(new Pair<String, String>("func_96124_cp", "getTeam"));
+ mInitMap.put(new Pair<String, String>("func_96125_a", "displayGUIHopperMinecart"));
+ mInitMap.put(new Pair<String, String>("func_96136_a", "renderScoreboard"));
+ mInitMap.put(new Pair<String, String>("func_96290_a", "isBlockProtected"));
+ mInitMap.put(new Pair<String, String>("func_96296_a", "getValidValues"));
+ mInitMap.put(new Pair<String, String>("func_96297_d", "getFriendlyName"));
+ mInitMap.put(new Pair<String, String>("func_96298_a", "getFormattingCode"));
+ mInitMap.put(new Pair<String, String>("func_96300_b", "getValueByName"));
+ mInitMap.put(new Pair<String, String>("func_96301_b", "isFancyStyling"));
+ mInitMap.put(new Pair<String, String>("func_96302_c", "isColor"));
+ mInitMap.put(new Pair<String, String>("func_96332_d", "getPlayerName"));
+ mInitMap.put(new Pair<String, String>("func_96333_a", "joinNiceStringFromCollection"));
+ mInitMap.put(new Pair<String, String>("func_96441_U", "getScoreboard"));
+ mInitMap.put(new Pair<String, String>("func_96443_a", "setWorldScoreboard"));
+ mInitMap.put(new Pair<String, String>("func_96449_a", "renderOffsetLivingLabel"));
+ mInitMap.put(new Pair<String, String>("func_96457_a", "matchesScoreboardCriteria"));
+ mInitMap.put(new Pair<String, String>("func_96508_e", "getTeam"));
+ mInitMap.put(new Pair<String, String>("func_96509_i", "getPlayersTeam"));
+ mInitMap.put(new Pair<String, String>("func_96511_d", "removeTeam"));
+ mInitMap.put(new Pair<String, String>("func_96512_b", "removePlayerFromTeam"));
+ mInitMap.put(new Pair<String, String>("func_96514_c", "getScoreObjectives"));
+ mInitMap.put(new Pair<String, String>("func_96517_b", "getObjectiveDisplaySlot"));
+ mInitMap.put(new Pair<String, String>("func_96518_b", "getObjective"));
+ mInitMap.put(new Pair<String, String>("func_96523_a", "broadcastTeamCreated"));
+ mInitMap.put(new Pair<String, String>("func_96524_g", "removePlayerFromTeams"));
+ mInitMap.put(new Pair<String, String>("func_96525_g", "getTeams"));
+ mInitMap.put(new Pair<String, String>("func_96526_d", "getObjectiveNames"));
+ mInitMap.put(new Pair<String, String>("func_96527_f", "createTeam"));
+ mInitMap.put(new Pair<String, String>("func_96529_a", "getValueFromObjective"));
+ mInitMap.put(new Pair<String, String>("func_96530_a", "setObjectiveInDisplaySlot"));
+ mInitMap.put(new Pair<String, String>("func_96531_f", "getTeamNames"));
+ mInitMap.put(new Pair<String, String>("func_96534_i", "getSortedScores"));
+ mInitMap.put(new Pair<String, String>("func_96535_a", "addScoreObjective"));
+ mInitMap.put(new Pair<String, String>("func_96537_j", "getObjectiveDisplaySlotNumber"));
+ mInitMap.put(new Pair<String, String>("func_96538_b", "broadcastTeamRemoved"));
+ mInitMap.put(new Pair<String, String>("func_96539_a", "getObjectiveInDisplaySlot"));
+ mInitMap.put(new Pair<String, String>("func_96559_d", "getFrontOffsetY"));
+ mInitMap.put(new Pair<String, String>("func_96631_a", "attemptDamageItem"));
+ mInitMap.put(new Pair<String, String>("func_96636_a", "getName"));
+ mInitMap.put(new Pair<String, String>("func_96637_b", "isReadOnly"));
+ mInitMap.put(new Pair<String, String>("func_96646_b", "decreaseScore"));
+ mInitMap.put(new Pair<String, String>("func_96647_c", "setScorePoints"));
+ mInitMap.put(new Pair<String, String>("func_96649_a", "increseScore"));
+ mInitMap.put(new Pair<String, String>("func_96650_f", "getScoreScoreboard"));
+ mInitMap.put(new Pair<String, String>("func_96652_c", "getScorePoints"));
+ mInitMap.put(new Pair<String, String>("func_96653_e", "getPlayerName"));
+ mInitMap.put(new Pair<String, String>("func_96660_a", "setAllowFriendlyFire"));
+ mInitMap.put(new Pair<String, String>("func_96661_b", "getRegisteredName"));
+ mInitMap.put(new Pair<String, String>("func_96662_c", "setNameSuffix"));
+ mInitMap.put(new Pair<String, String>("func_96663_f", "getColorSuffix"));
+ mInitMap.put(new Pair<String, String>("func_96664_a", "setTeamName"));
+ mInitMap.put(new Pair<String, String>("func_96665_g", "getAllowFriendlyFire"));
+ mInitMap.put(new Pair<String, String>("func_96666_b", "setNamePrefix"));
+ mInitMap.put(new Pair<String, String>("func_96667_a", "formatPlayerName"));
+ mInitMap.put(new Pair<String, String>("func_96668_e", "getColorPrefix"));
+ mInitMap.put(new Pair<String, String>("func_96670_d", "getMembershipCollection"));
+ mInitMap.put(new Pair<String, String>("func_96678_d", "getDisplayName"));
+ mInitMap.put(new Pair<String, String>("func_96679_b", "getName"));
+ mInitMap.put(new Pair<String, String>("func_96680_c", "getCriteria"));
+ mInitMap.put(new Pair<String, String>("func_96681_a", "setDisplayName"));
+ mInitMap.put(new Pair<String, String>("func_96682_a", "getScoreboard"));
+ mInitMap.put(new Pair<String, String>("func_98034_c", "isInvisibleToPlayer"));
+ mInitMap.put(new Pair<String, String>("func_98035_c", "writeMountToNBT"));
+ mInitMap.put(new Pair<String, String>("func_98042_n", "setTransferTicker"));
+ mInitMap.put(new Pair<String, String>("func_98043_aE", "canTransfer"));
+ mInitMap.put(new Pair<String, String>("func_98052_bS", "canPickUpLoot"));
+ mInitMap.put(new Pair<String, String>("func_98053_h", "setCanPickUpLoot"));
+ mInitMap.put(new Pair<String, String>("func_98054_a", "setScaleForAge"));
+ mInitMap.put(new Pair<String, String>("func_98055_j", "setScale"));
+ mInitMap.put(new Pair<String, String>("func_98150_a", "getAtlasSprite"));
+ mInitMap.put(new Pair<String, String>("func_98152_d", "getAllUsernames"));
+ mInitMap.put(new Pair<String, String>("func_98179_a", "computeLightValue"));
+ mInitMap.put(new Pair<String, String>("func_98265_a", "spawnEntity"));
+ mInitMap.put(new Pair<String, String>("func_98266_d", "getSpawnerZ"));
+ mInitMap.put(new Pair<String, String>("func_98268_b", "setDelayToMin"));
+ mInitMap.put(new Pair<String, String>("func_98269_i", "getRandomEntity"));
+ mInitMap.put(new Pair<String, String>("func_98270_a", "readFromNBT"));
+ mInitMap.put(new Pair<String, String>("func_98271_a", "getSpawnerWorld"));
+ mInitMap.put(new Pair<String, String>("func_98272_a", "setEntityName"));
+ mInitMap.put(new Pair<String, String>("func_98273_j", "resetTimer"));
+ mInitMap.put(new Pair<String, String>("func_98274_c", "getSpawnerY"));
+ mInitMap.put(new Pair<String, String>("func_98275_b", "getSpawnerX"));
+ mInitMap.put(new Pair<String, String>("func_98276_e", "getEntityNameToSpawn"));
+ mInitMap.put(new Pair<String, String>("func_98277_a", "setRandomEntity"));
+ mInitMap.put(new Pair<String, String>("func_98278_g", "updateSpawner"));
+ mInitMap.put(new Pair<String, String>("func_98279_f", "isActivated"));
+ mInitMap.put(new Pair<String, String>("func_98280_b", "writeToNBT"));
+ mInitMap.put(new Pair<String, String>("func_98281_h", "getEntityToRender"));
+ mInitMap.put(new Pair<String, String>("func_98300_b", "setSeeFriendlyInvisiblesEnabled"));
+ mInitMap.put(new Pair<String, String>("func_98306_d", "readGlyphSizes"));
+ mInitMap.put(new Pair<String, String>("func_99999_d", "run"));
+ }
+
+ public static void init4() {
+ mObInitMap.put(new Pair<String, String>("aqc", "net/minecraft/world/chunk/storage/IChunkLoader"));
+ mObInitMap.put(new Pair<String, String>("amd", "net/minecraft/block/BlockMycelium"));
+ mObInitMap.put(new Pair<String, String>("aag", "net/minecraft/inventory/ContainerEnchantment"));
+ mObInitMap.put(new Pair<String, String>("aie", "net/minecraft/world/biome/WorldChunkManagerHell"));
+ mObInitMap.put(new Pair<String, String>("aub",
+ "net/minecraft/world/gen/structure/ComponentScatteredFeaturePieces$DesertPyramid"));
+ mObInitMap.put(new Pair<String, String>("bue", "net/minecraft/client/stream/ChatController"));
+ mObInitMap.put(new Pair<String, String>("bqf", "net/minecraft/client/renderer/texture/TextureManager"));
+ mObInitMap.put(new Pair<String, String>("bei", "net/minecraft/client/gui/achievement/GuiAchievements"));
+ mObInitMap.put(new Pair<String, String>("bih", "net/minecraft/client/model/ModelSquid"));
+ mObInitMap.put(new Pair<String, String>("bmg", "net/minecraft/client/shader/Framebuffer"));
+ mObInitMap.put(new Pair<String, String>("na", "net/minecraft/client/network/NetHandlerHandshakeMemory"));
+ mObInitMap
+ .put(new Pair<String, String>("jb", "net/minecraft/network/play/client/C02PacketUseEntity$Action"));
+ mObInitMap.put(new Pair<String, String>("fc", "net/minecraft/util/MessageDeserializer2"));
+ mObInitMap.put(new Pair<String, String>("bd", "net/minecraft/command/server/CommandPardonIp"));
+ mObInitMap.put(new Pair<String, String>("amw", "net/minecraft/block/BlockPumpkin"));
+ mObInitMap.put(new Pair<String, String>("aey", "net/minecraft/item/crafting/RecipeFireworks"));
+ mObInitMap.put(new Pair<String, String>("aaz", "net/minecraft/inventory/ContainerDispenser"));
+ mObInitMap.put(new Pair<String, String>("aix", "net/minecraft/world/biome/BiomeGenEnd"));
+ mObInitMap.put(new Pair<String, String>("z", "net/minecraft/command/CommandHandler"));
+ mObInitMap.put(new Pair<String, String>("bqy", "net/minecraft/client/resources/IResourceManager"));
+ mObInitMap.put(new Pair<String, String>("nt", "net/minecraft/server/management/PlayerProfileCache$1"));
+ mObInitMap.put(new Pair<String, String>("ju", "net/minecraft/network/login/server/S00PacketDisconnect"));
+ mObInitMap.put(new Pair<String, String>("fv", "net/minecraft/network/play/INetHandlerPlayClient"));
+ mObInitMap.put(new Pair<String, String>("abn", "net/minecraft/item/ItemSoup"));
+ mObInitMap.put(new Pair<String, String>("afm", "net/minecraft/enchantment/EnchantmentArrowDamage"));
+ mObInitMap.put(new Pair<String, String>("brm", "net/minecraft/client/resources/SkinManager$3"));
+ mObInitMap.put(new Pair<String, String>("aqu", "net/minecraft/world/gen/ChunkProviderFlat"));
+ mObInitMap.put(new Pair<String, String>("aut",
+ "net/minecraft/world/gen/structure/StructureStrongholdPieces$Prison"));
+ mObInitMap.put(new Pair<String, String>("ays", "net/minecraft/world/storage/WorldInfo"));
+ mObInitMap.put(new Pair<String, String>("bbq", "net/minecraft/util/MinecraftError"));
+ mObInitMap.put(new Pair<String, String>("bfp", "net/minecraft/util/EnchantmentNameParts"));
+ mObInitMap.put(
+ new Pair<String, String>("bjo", "net/minecraft/client/multiplayer/ServerData$ServerResourceMode"));
+ mObInitMap.put(new Pair<String, String>("bnn", "net/minecraft/client/renderer/entity/RenderManager"));
+ mObInitMap.put(new Pair<String, String>("ck", "net/minecraft/dispenser/IBlockSource"));
+ mObInitMap.put(new Pair<String, String>("zp", "net/minecraft/entity/projectile/EntityWitherSkull"));
+ mObInitMap.put(
+ new Pair<String, String>("vq", "net/minecraft/entity/ai/EntityAINearestAttackableTarget$Sorter"));
+ mObInitMap.put(new Pair<String, String>("rr", "net/minecraft/potion/PotionAbsoption"));
+ mObInitMap.put(new Pair<String, String>("ns", "net/minecraft/server/management/PlayerProfileCache"));
+ mObInitMap.put(new Pair<String, String>("anj", "net/minecraft/block/BlockSapling"));
+ mObInitMap.put(new Pair<String, String>("afl", "net/minecraft/item/crafting/RecipesWeapons"));
+ mObInitMap.put(new Pair<String, String>("ajk", "net/minecraft/block/Block$2"));
+ mObInitMap.put(new Pair<String, String>("avh", "net/minecraft/world/gen/structure/MapGenStructure$3"));
+ mObInitMap.put(new Pair<String, String>("bce", "net/minecraft/client/gui/GuiLabel"));
+ mObInitMap.put(new Pair<String, String>("bgd", "net/minecraft/client/gui/ServerListEntryNormal$1"));
+ mObInitMap.put(new Pair<String, String>("brl", "net/minecraft/client/resources/SkinManager$2"));
+ mObInitMap.put(new Pair<String, String>("we", "net/minecraft/entity/passive/EntityBat"));
+ mObInitMap.put(new Pair<String, String>("og", "net/minecraft/server/management/PreYggdrasilConverter$7"));
+ mObInitMap.put(new Pair<String, String>("kh", "net/minecraft/network/status/INetHandlerStatusServer"));
+ mObInitMap.put(new Pair<String, String>("gi", "net/minecraft/network/play/server/S3APacketTabComplete"));
+ mObInitMap.put(new Pair<String, String>("aca", "net/minecraft/creativetab/CreativeTabs$4"));
+ mObInitMap.put(new Pair<String, String>("azz", "net/minecraft/scoreboard/Score"));
+ mObInitMap.put(new Pair<String, String>("bgc", "net/minecraft/client/gui/ServerListEntryNormal"));
+ mObInitMap.put(new Pair<String, String>("boa", "net/minecraft/client/renderer/entity/RenderItem$2"));
+ mObInitMap.put(new Pair<String, String>("wx", "net/minecraft/entity/IEntityMultiPart"));
+ mObInitMap.put(new Pair<String, String>("sy", "net/minecraft/entity/IEntityLivingData"));
+ mObInitMap.put(new Pair<String, String>("oz", "net/minecraft/network/rcon/RConThreadClient"));
+ mObInitMap.put(new Pair<String, String>("aoq", "net/minecraft/tileentity/TileEntityBeacon"));
+ mObInitMap.put(new Pair<String, String>("akr", "net/minecraft/block/BlockDynamicLiquid"));
+ mObInitMap.put(new Pair<String, String>("act", "net/minecraft/item/ItemFishFood"));
+ mObInitMap.put(new Pair<String, String>("ags", "net/minecraft/block/BlockEventData"));
+ mObInitMap.put(new Pair<String, String>("bss", "net/minecraft/client/audio/SoundListSerializer"));
+ mObInitMap.put(new Pair<String, String>("bot", "net/minecraft/client/renderer/entity/RenderSlime"));
+ mObInitMap.put(new Pair<String, String>("azy", "net/minecraft/scoreboard/ScorePlayerTeam"));
+ mObInitMap.put(new Pair<String, String>("bcw", "net/minecraft/client/gui/GuiYesNo"));
+ mObInitMap.put(new Pair<String, String>("bgv", "net/minecraft/client/main/Main$2"));
+ mObInitMap.put(new Pair<String, String>("bku", "net/minecraft/client/particle/EntityReddustFX"));
+ mObInitMap.put(new Pair<String, String>("pn", "net/minecraft/util/TupleIntJsonSerializable"));
+ mObInitMap.put(new Pair<String, String>("lo", "net/minecraft/network/rcon/IServer"));
+ mObInitMap.put(new Pair<String, String>("hp", "net/minecraft/network/play/server/S0APacketUseBed"));
+ mObInitMap.put(new Pair<String, String>("dq", "net/minecraft/nbt/NBTTagList"));
+ mObInitMap.put(new Pair<String, String>("adh", "net/minecraft/item/ItemMap"));
+ mObInitMap.put(new Pair<String, String>("bph", "net/minecraft/client/shader/ShaderDefault"));
+ mObInitMap.put(new Pair<String, String>("aso", "net/minecraft/world/gen/feature/WorldGenSwamp"));
+ mObInitMap.put(new Pair<String, String>("aop", "net/minecraft/block/BlockCarpet"));
+ mObInitMap.put(new Pair<String, String>("bdk", "net/minecraft/client/gui/GuiLanguage$List"));
+ mObInitMap.put(new Pair<String, String>("bhj", "net/minecraft/client/model/ModelCreeper"));
+ mObInitMap.put(new Pair<String, String>("bli", "net/minecraft/util/MovementInput"));
+ mObInitMap.put(new Pair<String, String>("ee", "net/minecraft/nbt/JsonToNBT$List"));
+ mObInitMap.put(new Pair<String, String>("af", "net/minecraft/command/server/CommandBanIp"));
+ mObInitMap.put(new Pair<String, String>("xk", "net/minecraft/entity/item/EntityItem"));
+ mObInitMap.put(new Pair<String, String>("tl", "net/minecraft/entity/ai/attributes/BaseAttributeMap"));
+ mObInitMap.put(new Pair<String, String>("pm", "net/minecraft/stats/IStatType"));
+ mObInitMap
+ .put(new Pair<String, String>("atc", "net/minecraft/world/gen/structure/StructureMineshaftStart"));
+ mObInitMap.put(new Pair<String, String>("apd", "net/minecraft/tileentity/TileEntityEnchantmentTable"));
+ mObInitMap.put(new Pair<String, String>("ale", "net/minecraft/block/BlockFurnace"));
+ mObInitMap.put(new Pair<String, String>("adg", "net/minecraft/item/ItemLeaves"));
+ mObInitMap.put(new Pair<String, String>("ahf", "net/minecraft/world/World$4"));
+ mObInitMap.put(new Pair<String, String>("axb", "net/minecraft/world/gen/layer/GenLayerAddIsland"));
+ mObInitMap.put(new Pair<String, String>("bpg", "net/minecraft/client/util/JsonBlendingMode"));
+ mObInitMap
+ .put(new Pair<String, String>("net/minecraft/realms/RealmsMth", "net/minecraft/realms/RealmsMth"));
+ mObInitMap.put(new Pair<String, String>("qa", "net/minecraft/util/IntHashMap$Entry"));
+ mObInitMap.put(new Pair<String, String>("mb", "net/minecraft/server/gui/MinecraftServerGui$3"));
+ mObInitMap.put(
+ new Pair<String, String>("ic", "net/minecraft/network/play/server/S3BPacketScoreboardObjective"));
+ mObInitMap.put(new Pair<String, String>("ed", "net/minecraft/nbt/JsonToNBT$Compound"));
+ mObInitMap.put(new Pair<String, String>("net/minecraft/realms/RendererUtility",
+ "net/minecraft/realms/RendererUtility"));
+ mObInitMap.put(new Pair<String, String>("atv",
+ "net/minecraft/world/gen/structure/StructureNetherBridgePieces$Stairs"));
+ mObInitMap.put(new Pair<String, String>("apw", "net/minecraft/world/chunk/EmptyChunk"));
+ mObInitMap.put(new Pair<String, String>("alx", "net/minecraft/block/BlockLog"));
+ mObInitMap.put(new Pair<String, String>("adz", "net/minecraft/item/ItemSign"));
+ mObInitMap.put(new Pair<String, String>("ahy", "net/minecraft/world/biome/BiomeCache"));
+ mObInitMap.put(new Pair<String, String>("axu", "net/minecraft/world/gen/layer/GenLayerRiver"));
+ mObInitMap.put(new Pair<String, String>("bpz", "net/minecraft/client/renderer/texture/TextureMap"));
+ mObInitMap.put(new Pair<String, String>("yr", "net/minecraft/entity/monster/EntityZombie$1"));
+ mObInitMap.put(new Pair<String, String>("us", "net/minecraft/entity/ai/EntityAIMoveThroughVillage"));
+ mObInitMap.put(new Pair<String, String>("mu", "net/minecraft/world/WorldServer$1"));
+ mObInitMap.put(
+ new Pair<String, String>("iv", "net/minecraft/network/play/client/C0FPacketConfirmTransaction"));
+ mObInitMap.put(new Pair<String, String>("ew", "net/minecraft/network/NetworkStatistics$PacketStat"));
+ mObInitMap.put(new Pair<String, String>("ax", "net/minecraft/command/server/CommandListBans"));
+ mObInitMap.put(
+ new Pair<String, String>("net/minecraft/realms/ServerPing", "net/minecraft/realms/ServerPing"));
+ mObInitMap.put(new Pair<String, String>("aqk", "net/minecraft/world/chunk/storage/AnvilChunkLoader"));
+ mObInitMap.put(new Pair<String, String>("aml", "net/minecraft/block/BlockOldLeaf"));
+ mObInitMap.put(new Pair<String, String>("aen", "net/minecraft/potion/PotionHelper"));
+ mObInitMap.put(new Pair<String, String>("aao", "net/minecraft/inventory/ContainerHorseInventory$2"));
+ mObInitMap.put(new Pair<String, String>("aim", "net/minecraft/world/biome/BiomeGenMushroomIsland"));
+ mObInitMap.put(new Pair<String, String>("o", "net/minecraft/crash/CrashReportCategory$Entry"));
+ mObInitMap.put(new Pair<String, String>("bum", "net/minecraft/client/stream/IStream"));
+ mObInitMap.put(new Pair<String, String>("bqn", "net/minecraft/client/resources/AbstractResourcePack"));
+ mObInitMap.put(new Pair<String, String>("bar", "net/minecraft/client/Minecraft$11"));
+ mObInitMap.put(new Pair<String, String>("beq", "net/minecraft/client/gui/achievement/GuiStats$Stats"));
+ mObInitMap.put(new Pair<String, String>("bip", "net/minecraft/client/model/ModelZombie"));
+ mObInitMap.put(new Pair<String, String>("bmo",
+ "net/minecraft/client/renderer/tileentity/TileEntityEnderChestRenderer"));
+ mObInitMap.put(new Pair<String, String>("ni", "net/minecraft/network/NetHandlerPlayServer$1"));
+ mObInitMap.put(new Pair<String, String>("jj", "net/minecraft/network/play/client/C0BPacketEntityAction"));
+ mObInitMap.put(new Pair<String, String>("fk", "net/minecraft/util/IChatComponent$Serializer"));
+ mObInitMap.put(new Pair<String, String>("bl", "net/minecraft/command/ServerCommandManager"));
+ mObInitMap.put(new Pair<String, String>("yq", "net/minecraft/entity/monster/EntityZombie"));
+ mObInitMap.put(new Pair<String, String>("abc", "net/minecraft/item/ItemArmor$1"));
+ mObInitMap.put(new Pair<String, String>("afb", "net/minecraft/item/crafting/RecipesMapCloning"));
+ mObInitMap.put(new Pair<String, String>("brb",
+ "net/minecraft/client/resources/ResourcePackFileNotFoundException"));
+ mObInitMap.put(new Pair<String, String>("aqj", "net/minecraft/world/chunk/storage/RegionFileCache"));
+ mObInitMap.put(
+ new Pair<String, String>("aui", "net/minecraft/world/gen/structure/StructureStrongholdPieces"));
+ mObInitMap.put(new Pair<String, String>("bbf", "net/minecraft/client/Minecraft$9"));
+ mObInitMap.put(new Pair<String, String>("bfe", "net/minecraft/client/gui/GuiScreenBook"));
+ mObInitMap.put(new Pair<String, String>("bjd", "net/minecraft/client/multiplayer/ChunkProviderClient"));
+ mObInitMap.put(new Pair<String, String>("bnc", "net/minecraft/client/renderer/entity/RenderBat"));
+ mObInitMap.put(new Pair<String, String>("ze", "net/minecraft/entity/projectile/EntityFireball"));
+ mObInitMap.put(new Pair<String, String>("vf", "net/minecraft/entity/ai/EntityAIRestrictSun"));
+ mObInitMap.put(new Pair<String, String>("rg", "net/minecraft/client/renderer/texture/IIconRegister"));
+ mObInitMap.put(new Pair<String, String>("afa", "net/minecraft/item/crafting/FurnaceRecipes"));
+ mObInitMap.put(new Pair<String, String>("bby", "net/minecraft/client/gui/MapItemRenderer$1"));
+ mObInitMap.put(new Pair<String, String>("bfx", "net/minecraft/client/gui/inventory/GuiEditSign"));
+ mObInitMap.put(new Pair<String, String>("bra", "net/minecraft/client/resources/IResourcePack"));
+ mObInitMap.put(new Pair<String, String>("zx", "net/minecraft/inventory/ContainerBeacon"));
+ mObInitMap.put(new Pair<String, String>("vy", "net/minecraft/village/VillageDoorInfo"));
+ mObInitMap.put(new Pair<String, String>("arq", "net/minecraft/world/gen/feature/WorldGenFire"));
+ mObInitMap.put(new Pair<String, String>("anr", "net/minecraft/block/BlockStainedGlassPane"));
+ mObInitMap.put(new Pair<String, String>("abu", "net/minecraft/creativetab/CreativeTabs$1"));
+ mObInitMap.put(new Pair<String, String>("aft", "net/minecraft/enchantment/Enchantment"));
+ mObInitMap.put(new Pair<String, String>("ajs", "net/minecraft/block/BlockButton"));
+ mObInitMap.put(new Pair<String, String>("avp", "net/minecraft/world/gen/structure/StructureVillagePieces"));
+ mObInitMap.put(new Pair<String, String>("azo", "net/minecraft/world/storage/SaveHandlerMP"));
+ mObInitMap.put(new Pair<String, String>("brt",
+ "net/minecraft/client/resources/data/BaseMetadataSectionSerializer"));
+ mObInitMap.put(new Pair<String, String>("bfw", "net/minecraft/client/gui/GuiMerchant$MerchantButton"));
+ mObInitMap.put(new Pair<String, String>("bjv", "net/minecraft/client/particle/EntityBubbleFX"));
+ mObInitMap.put(new Pair<String, String>("bnu", "net/minecraft/client/renderer/entity/RenderGiantZombie"));
+ mObInitMap.put(new Pair<String, String>("wm", "net/minecraft/entity/passive/EntityMooshroom"));
+ mObInitMap.put(new Pair<String, String>("oo", "net/minecraft/server/management/UserList$Serializer"));
+ mObInitMap.put(new Pair<String, String>("kp", "net/minecraft/init/Bootstrap$12"));
+ mObInitMap.put(new Pair<String, String>("gq", "net/minecraft/network/play/server/S2FPacketSetSlot"));
+ mObInitMap.put(new Pair<String, String>("cr", "net/minecraft/util/EnumFacing"));
+ mObInitMap.put(new Pair<String, String>("aof", "net/minecraft/block/BlockTripWire"));
+ mObInitMap.put(new Pair<String, String>("akg", "net/minecraft/block/BlockDaylightDetector"));
+ mObInitMap.put(new Pair<String, String>("aci", "net/minecraft/item/ItemDoublePlant"));
+ mObInitMap.put(new Pair<String, String>("agh", "net/minecraft/enchantment/EnchantmentOxygen"));
+ mObInitMap.put(new Pair<String, String>("bsh",
+ "net/minecraft/client/resources/data/PackMetadataSectionSerializer"));
+ mObInitMap.put(new Pair<String, String>("bcl", "net/minecraft/client/gui/GuiOptionsRowList$Row"));
+ mObInitMap.put(new Pair<String, String>("bgk", "net/minecraft/client/gui/GuiResourcePackList"));
+ mObInitMap.put(new Pair<String, String>("bkj", "net/minecraft/client/particle/EntityHugeExplodeFX"));
+ mObInitMap.put(new Pair<String, String>("boi", "net/minecraft/client/renderer/entity/RenderMinecart"));
+ mObInitMap.put(new Pair<String, String>("pc", "net/minecraft/stats/AchievementList"));
+ mObInitMap.put(new Pair<String, String>("ld", "net/minecraft/client/util/JsonException$Entry"));
+ mObInitMap.put(new Pair<String, String>("he", "net/minecraft/network/play/server/S34PacketMaps"));
+ mObInitMap.put(new Pair<String, String>("df", "net/minecraft/nbt/NBTTagByteArray"));
+ mObInitMap.put(new Pair<String, String>("asd", "net/minecraft/world/gen/feature/WorldGenDungeons"));
+ mObInitMap.put(
+ new Pair<String, String>("awc", "net/minecraft/world/gen/structure/StructureVillagePieces$House3"));
+ mObInitMap.put(new Pair<String, String>("dy", "net/minecraft/nbt/NBTBase"));
+ mObInitMap.put(new Pair<String, String>("ta", "net/minecraft/entity/IEntityOwnable"));
+ mObInitMap.put(new Pair<String, String>("pb", "net/minecraft/stats/Achievement"));
+ mObInitMap.put(new Pair<String, String>("asw", "net/minecraft/world/gen/structure/MapGenMineshaft"));
+ mObInitMap.put(new Pair<String, String>("aox", "net/minecraft/tileentity/TileEntityCommandBlock"));
+ mObInitMap.put(new Pair<String, String>("aky", "net/minecraft/block/BlockFarmland"));
+ mObInitMap.put(new Pair<String, String>("agz", "net/minecraft/world/GameRules$Value"));
+ mObInitMap.put(new Pair<String, String>("awv", "net/minecraft/block/material/MapColor"));
+ mObInitMap.put(new Pair<String, String>("bds", "net/minecraft/client/gui/GuiFlatPresets$ListSlot"));
+ mObInitMap.put(new Pair<String, String>("bhr", "net/minecraft/client/model/ModelBase"));
+ mObInitMap.put(new Pair<String, String>("bsz", "net/minecraft/server/integrated/IntegratedServer$2"));
+ mObInitMap.put(new Pair<String, String>("xs", "net/minecraft/entity/item/EntityMinecartEmpty"));
+ mObInitMap.put(new Pair<String, String>("tt", "net/minecraft/entity/ai/EntityJumpHelper"));
+ mObInitMap.put(new Pair<String, String>("pu", "net/minecraft/util/JsonUtils"));
+ mObInitMap.put(new Pair<String, String>("lv", "net/minecraft/server/dedicated/DedicatedServer$2"));
+ mObInitMap.put(new Pair<String, String>("hw", "net/minecraft/network/play/server/S1CPacketEntityMetadata"));
+ mObInitMap.put(new Pair<String, String>("dx", "net/minecraft/nbt/NBTTagString"));
+ mObInitMap.put(new Pair<String, String>("atk",
+ "net/minecraft/world/gen/structure/StructureNetherBridgePieces$Corridor4"));
+ mObInitMap.put(new Pair<String, String>("apl", "net/minecraft/tileentity/TileEntityNote"));
+ mObInitMap.put(new Pair<String, String>("alm", "net/minecraft/block/BlockHay"));
+ mObInitMap.put(new Pair<String, String>("ado", "net/minecraft/item/ItemPiston"));
+ mObInitMap.put(new Pair<String, String>("ahn", "net/minecraft/world/EnumSkyBlock"));
+ mObInitMap.put(new Pair<String, String>("axj", "net/minecraft/world/gen/layer/GenLayerFuzzyZoom"));
+ mObInitMap.put(new Pair<String, String>("btn",
+ "net/minecraft/client/audio/SoundManager$SoundSystemStarterThread"));
+ mObInitMap.put(new Pair<String, String>("bpo", "net/minecraft/client/shader/ShaderUniform"));
+ mObInitMap.put(new Pair<String, String>("bhq", "net/minecraft/client/model/ModelMinecart"));
+ mObInitMap.put(new Pair<String, String>("blp", "net/minecraft/client/renderer/RenderSorter"));
+ mObInitMap.put(new Pair<String, String>("yg", "net/minecraft/entity/monster/EntityMob"));
+ mObInitMap.put(new Pair<String, String>("uh", "net/minecraft/entity/ai/EntityAIFollowParent"));
+ mObInitMap.put(new Pair<String, String>("qi", "net/minecraft/profiler/Profiler"));
+ mObInitMap.put(new Pair<String, String>("mj", "net/minecraft/client/renderer/DestroyBlockProgress"));
+ mObInitMap.put(new Pair<String, String>("ik", "net/minecraft/network/play/server/S18PacketEntityTeleport"));
+ mObInitMap.put(new Pair<String, String>("el", "net/minecraft/network/NetworkManager$2"));
+ mObInitMap.put(new Pair<String, String>("am", "net/minecraft/command/CommandEffect"));
+ mObInitMap.put(new Pair<String, String>("ama", "net/minecraft/block/BlockMobSpawner"));
+ mObInitMap.put(new Pair<String, String>("aec", "net/minecraft/item/ItemSnow"));
+ mObInitMap.put(new Pair<String, String>("aad", "net/minecraft/inventory/ContainerChest"));
+ mObInitMap.put(new Pair<String, String>("aib", "net/minecraft/world/biome/WorldChunkManager"));
+ mObInitMap.put(new Pair<String, String>("d", "net/minecraft/crash/CrashReport$2"));
+ mObInitMap.put(new Pair<String, String>("bub",
+ "net/minecraft/client/stream/BroadcastController$SwitchBroadcastState"));
+ mObInitMap.put(new Pair<String, String>("bqc", "net/minecraft/client/renderer/texture/TextureMap$3"));
+ mObInitMap.put(new Pair<String, String>("bag", "net/minecraft/scoreboard/ScoreHealthCriteria"));
+ mObInitMap.put(new Pair<String, String>("bef", "net/minecraft/client/gui/GuiVideoSettings"));
+ mObInitMap.put(new Pair<String, String>("bie", "net/minecraft/client/model/ModelSlime"));
+ mObInitMap.put(new Pair<String, String>("bmd", "net/minecraft/client/renderer/RenderList"));
+ mObInitMap.put(new Pair<String, String>("ba", "net/minecraft/command/server/CommandMessageRaw"));
+ mObInitMap.put(new Pair<String, String>("aev", "net/minecraft/item/crafting/RecipesArmor"));
+ mObInitMap.put(new Pair<String, String>("aaw", "net/minecraft/inventory/InventoryCraftResult"));
+ mObInitMap.put(new Pair<String, String>("w", "net/minecraft/client/audio/SoundCategory"));
+ mObInitMap
+ .put(new Pair<String, String>("bqv", "net/minecraft/client/resources/IReloadableResourceManager"));
+ mObInitMap.put(new Pair<String, String>("baz", "net/minecraft/client/Minecraft$3"));
+ mObInitMap.put(new Pair<String, String>("bey", "net/minecraft/client/gui/GuiRepair"));
+ mObInitMap.put(new Pair<String, String>("bix", "net/minecraft/client/model/ModelRenderer"));
+ mObInitMap.put(new Pair<String, String>("bmw", "net/minecraft/client/renderer/culling/ClippingHelperImpl"));
+ mObInitMap
+ .put(new Pair<String, String>("fs", "net/minecraft/util/ChatComponentTranslationFormatException"));
+ mObInitMap.put(new Pair<String, String>("bt", "net/minecraft/command/server/CommandStop"));
+ mObInitMap.put(new Pair<String, String>("yy", "net/minecraft/entity/player/InventoryPlayer$1"));
+ mObInitMap.put(new Pair<String, String>("uz", "net/minecraft/entity/ai/EntityAIPanic"));
+ mObInitMap.put(new Pair<String, String>("aqr", "net/minecraft/world/WorldProviderEnd"));
+ mObInitMap.put(new Pair<String, String>("ams", "net/minecraft/block/BlockCompressedPowered"));
+ mObInitMap.put(new Pair<String, String>("aeu", "net/minecraft/item/crafting/RecipesArmorDyes"));
+ mObInitMap.put(new Pair<String, String>("ait", "net/minecraft/world/biome/BiomeGenSavanna$Mutated"));
+ mObInitMap.put(new Pair<String, String>("auq",
+ "net/minecraft/world/gen/structure/StructureStrongholdPieces$Library"));
+ mObInitMap.put(new Pair<String, String>("ayp", "net/minecraft/world/storage/DerivedWorldInfo"));
+ mObInitMap.put(new Pair<String, String>("bbn", "net/minecraft/client/settings/GameSettings$Options$1"));
+ mObInitMap.put(new Pair<String, String>("bfm",
+ "net/minecraft/client/gui/inventory/GuiContainerCreative$ContainerCreative"));
+ mObInitMap.put(new Pair<String, String>("but", "net/minecraft/realms/RealmsServerStatusPinger$1"));
+ mObInitMap.put(new Pair<String, String>("bqu", "net/minecraft/client/resources/GrassColorReloadListener"));
+ mObInitMap.put(new Pair<String, String>("zm", "net/minecraft/entity/item/EntityEnderPearl"));
+ mObInitMap.put(new Pair<String, String>("vn", "net/minecraft/entity/ai/EntityAIHurtByTarget"));
+ mObInitMap.put(new Pair<String, String>("ro", "net/minecraft/util/DamageSource"));
+ mObInitMap.put(
+ new Pair<String, String>("np", "net/minecraft/server/network/NetHandlerLoginServer$LoginState"));
+ mObInitMap
+ .put(new Pair<String, String>("jq", "net/minecraft/network/handshake/INetHandlerHandshakeServer"));
+ mObInitMap.put(new Pair<String, String>("fr", "net/minecraft/util/ChatComponentTranslation"));
+ mObInitMap.put(new Pair<String, String>("arf", "net/minecraft/world/gen/feature/WorldGenBlockBlob"));
+ mObInitMap.put(new Pair<String, String>("ang", "net/minecraft/block/BlockRotatedPillar"));
+ mObInitMap.put(new Pair<String, String>("abj", "net/minecraft/item/ItemBoat"));
+ mObInitMap.put(new Pair<String, String>("afi", "net/minecraft/item/crafting/ShapelessRecipes"));
+ mObInitMap.put(new Pair<String, String>("ajh", "net/minecraft/block/BlockBed"));
+ mObInitMap.put(new Pair<String, String>("ave", "net/minecraft/world/gen/structure/MapGenStructure"));
+ mObInitMap.put(new Pair<String, String>("azd", "net/minecraft/client/AnvilConverterException"));
+ mObInitMap
+ .put(new Pair<String, String>("net/minecraft/client/main/Main", "net/minecraft/client/main/Main"));
+ mObInitMap.put(new Pair<String, String>("bri", "net/minecraft/client/resources/SimpleResource"));
+ mObInitMap.put(new Pair<String, String>("bfl", "net/minecraft/client/gui/inventory/GuiContainerCreative"));
+ mObInitMap.put(new Pair<String, String>("bjk", "net/minecraft/client/entity/EntityClientPlayerMP"));
+ mObInitMap.put(new Pair<String, String>("bnj", "net/minecraft/client/renderer/entity/RenderEntity"));
+ mObInitMap.put(new Pair<String, String>("wb", "net/minecraft/village/VillageSiege"));
+ mObInitMap.put(new Pair<String, String>("sc", "net/minecraft/entity/Entity$2"));
+ mObInitMap.put(new Pair<String, String>("od", "net/minecraft/server/management/PreYggdrasilConverter$4"));
+ mObInitMap.put(new Pair<String, String>("ke", "net/minecraft/network/ServerStatusResponse$Serializer"));
+ mObInitMap
+ .put(new Pair<String, String>("gf", "net/minecraft/network/play/server/S35PacketUpdateTileEntity"));
+ mObInitMap.put(new Pair<String, String>("cg", "net/minecraft/command/PlayerNotFoundException"));
+ mObInitMap.put(new Pair<String, String>("ary", "net/minecraft/world/gen/feature/WorldGenGlowStone1"));
+ mObInitMap.put(new Pair<String, String>("anz", "net/minecraft/block/BlockTallGrass"));
+ mObInitMap.put(new Pair<String, String>("bca", "net/minecraft/client/gui/ScaledResolution"));
+ mObInitMap.put(new Pair<String, String>("ow", "net/minecraft/network/rcon/RConThreadBase"));
+ mObInitMap.put(new Pair<String, String>("kx", "net/minecraft/init/Bootstrap$6"));
+ mObInitMap.put(
+ new Pair<String, String>("gy", "net/minecraft/network/play/server/S21PacketChunkData$Extracted"));
+ mObInitMap.put(new Pair<String, String>("cz", "net/minecraft/util/IRegistry"));
+ mObInitMap.put(new Pair<String, String>("acq", "net/minecraft/item/ItemFireball"));
+ mObInitMap.put(new Pair<String, String>("agp", "net/minecraft/command/server/CommandBlockLogic"));
+ mObInitMap.put(new Pair<String, String>("bsp", "net/minecraft/client/audio/SoundList"));
+ mObInitMap.put(new Pair<String, String>("boq", "net/minecraft/client/renderer/entity/RenderSheep"));
+ mObInitMap.put(new Pair<String, String>("arx", "net/minecraft/world/gen/feature/WorldGenLakes"));
+ mObInitMap.put(new Pair<String, String>("avw",
+ "net/minecraft/world/gen/structure/StructureVillagePieces$House4Garden"));
+ mObInitMap.put(new Pair<String, String>("azv", "net/minecraft/util/MovingObjectPosition$MovingObjectType"));
+ mObInitMap.put(new Pair<String, String>("bct", "net/minecraft/client/gui/GuiChat"));
+ mObInitMap.put(new Pair<String, String>("bgs", "net/minecraft/client/gui/stream/GuiTwitchUserMode"));
+ mObInitMap.put(new Pair<String, String>("bkr", "net/minecraft/client/particle/EffectRenderer$4"));
+ mObInitMap.put(new Pair<String, String>("dn", "net/minecraft/nbt/NBTTagIntArray"));
+ mObInitMap.put(new Pair<String, String>("wt", "net/minecraft/entity/monster/EntityIronGolem"));
+ mObInitMap.put(new Pair<String, String>("su", "net/minecraft/entity/EntityLeashKnot"));
+ mObInitMap.put(new Pair<String, String>("asl", "net/minecraft/world/gen/feature/WorldGenSpikes"));
+ mObInitMap.put(new Pair<String, String>("aom", "net/minecraft/block/BlockWood"));
+ mObInitMap.put(new Pair<String, String>("akn", "net/minecraft/block/BlockDoor"));
+ mObInitMap.put(new Pair<String, String>("ago", "net/minecraft/village/MerchantRecipeList"));
+ mObInitMap.put(new Pair<String, String>("awk", "net/minecraft/world/gen/NoiseGeneratorOctaves"));
+ mObInitMap.put(new Pair<String, String>("bdh", "net/minecraft/client/gui/GuiErrorScreen"));
+ mObInitMap.put(new Pair<String, String>("bhg", "net/minecraft/client/model/ModelChest"));
+ mObInitMap.put(new Pair<String, String>("bso", "net/minecraft/client/audio/PositionedSoundRecord"));
+ mObInitMap.put(new Pair<String, String>("xh", "net/minecraft/entity/effect/EntityLightningBolt"));
+ mObInitMap.put(new Pair<String, String>("ti", "net/minecraft/entity/ai/attributes/IAttributeInstance"));
+ mObInitMap.put(new Pair<String, String>("pj", "net/minecraft/stats/StatBase$2"));
+ mObInitMap.put(new Pair<String, String>("lk", "net/minecraft/server/MinecraftServer$4"));
+ mObInitMap.put(new Pair<String, String>("apa", "net/minecraft/tileentity/TileEntityDaylightDetector"));
+ mObInitMap.put(new Pair<String, String>("alb", "net/minecraft/block/BlockFire"));
+ mObInitMap.put(new Pair<String, String>("add", "net/minecraft/item/ItemStack"));
+ mObInitMap.put(new Pair<String, String>("ahc", "net/minecraft/world/World$1"));
+ mObInitMap.put(new Pair<String, String>("btc",
+ "net/minecraft/client/network/LanServerDetector$ThreadLanServerFind"));
+ mObInitMap
+ .put(new Pair<String, String>("bpd", "net/minecraft/client/renderer/tileentity/RenderWitherSkull"));
+ mObInitMap.put(new Pair<String, String>("bhf", "net/minecraft/client/model/ModelBook"));
+ mObInitMap.put(new Pair<String, String>("ble", "net/minecraft/client/particle/EntityFishWakeFX"));
+ mObInitMap.put(new Pair<String, String>("ea", "net/minecraft/nbt/NBTException"));
+ mObInitMap.put(new Pair<String, String>("ab", "net/minecraft/command/ICommandManager"));
+ mObInitMap.put(new Pair<String, String>("adw", "net/minecraft/item/ItemSeeds"));
+ mObInitMap.put(new Pair<String, String>("ahv", "net/minecraft/world/biome/BiomeGenBase$Height"));
+ mObInitMap.put(new Pair<String, String>("btv", "net/minecraft/client/audio/SoundEventAccessor"));
+ mObInitMap.put(new Pair<String, String>("bpw", "net/minecraft/client/renderer/texture/Stitcher$Holder"));
+ mObInitMap.put(new Pair<String, String>("bdz", "net/minecraft/client/gui/GuiShareToLan"));
+ mObInitMap.put(new Pair<String, String>("bhy", "net/minecraft/client/model/ModelSheep2"));
+ mObInitMap.put(new Pair<String, String>("blx", "net/minecraft/client/renderer/IImageBuffer"));
+ mObInitMap.put(
+ new Pair<String, String>("mr", "net/minecraft/server/management/PlayerManager$PlayerInstance"));
+ mObInitMap.put(new Pair<String, String>("is", "net/minecraft/network/play/client/C16PacketClientStatus"));
+ mObInitMap.put(new Pair<String, String>("et", "net/minecraft/network/PacketBuffer"));
+ mObInitMap.put(new Pair<String, String>("au", "net/minecraft/command/CommandHelp"));
+ mObInitMap.put(new Pair<String, String>("aek", "net/minecraft/item/ItemCloth"));
+ mObInitMap.put(new Pair<String, String>("aal", "net/minecraft/inventory/ContainerHopper"));
+ mObInitMap.put(new Pair<String, String>("l", "net/minecraft/crash/CrashReportCategory$1"));
+ mObInitMap.put(
+ new Pair<String, String>("bqk", "net/minecraft/client/renderer/texture/ITickableTextureObject"));
+ mObInitMap.put(new Pair<String, String>("atr",
+ "net/minecraft/world/gen/structure/StructureNetherBridgePieces$Throne"));
+ mObInitMap.put(new Pair<String, String>("aps", "net/minecraft/tileentity/TileEntityPiston"));
+ mObInitMap.put(new Pair<String, String>("axq", "net/minecraft/world/gen/layer/GenLayerRareBiome"));
+ mObInitMap.put(new Pair<String, String>("bao", "net/minecraft/client/Minecraft"));
+ mObInitMap.put(new Pair<String, String>("ben", "net/minecraft/client/gui/achievement/GuiStats$StatsItem"));
+ mObInitMap.put(new Pair<String, String>("bim", "net/minecraft/client/model/ModelWitch"));
+ mObInitMap.put(new Pair<String, String>("bml",
+ "net/minecraft/client/renderer/tileentity/TileEntitySpecialRenderer"));
+ mObInitMap.put(new Pair<String, String>("fh", "net/minecraft/event/ClickEvent"));
+ mObInitMap.put(new Pair<String, String>("bi", "net/minecraft/command/server/CommandSaveOff"));
+ mObInitMap.put(new Pair<String, String>("yn", "net/minecraft/entity/monster/EntitySpider"));
+ mObInitMap.put(new Pair<String, String>("uo", "net/minecraft/entity/ai/EntityAILookAtTradePlayer"));
+ mObInitMap.put(new Pair<String, String>("aqg",
+ "net/minecraft/world/chunk/storage/ChunkLoader$AnvilConverterData"));
+ mObInitMap.put(new Pair<String, String>("amh", "net/minecraft/block/BlockNewLeaf"));
+ mObInitMap.put(new Pair<String, String>("aii", "net/minecraft/world/biome/BiomeGenHell"));
+ mObInitMap.put(new Pair<String, String>("auf",
+ "net/minecraft/world/gen/structure/ComponentScatteredFeaturePieces$SwampHut"));
+ mObInitMap.put(new Pair<String, String>("aye", "net/minecraft/pathfinding/PathPoint"));
+ mObInitMap.put(new Pair<String, String>("bbc", "net/minecraft/client/Minecraft$6"));
+ mObInitMap
+ .put(new Pair<String, String>("bfb", "net/minecraft/client/gui/inventory/GuiBeacon$ConfirmButton"));
+ mObInitMap.put(new Pair<String, String>("bui", "net/minecraft/client/stream/IngestServerTester"));
+ mObInitMap.put(new Pair<String, String>("bqj", "net/minecraft/client/renderer/texture/ITickable"));
+ mObInitMap
+ .put(new Pair<String, String>("zb", "net/minecraft/entity/player/EntityPlayer$EnumChatVisibility"));
+ mObInitMap.put(new Pair<String, String>("vc", "net/minecraft/entity/ai/EntityAIWander"));
+ mObInitMap.put(new Pair<String, String>("rd", "net/minecraft/world/EnumDifficulty"));
+ mObInitMap.put(new Pair<String, String>("ne", "net/minecraft/network/NetworkSystem$2"));
+ mObInitMap.put(new Pair<String, String>("jf",
+ "net/minecraft/network/play/client/C03PacketPlayer$C06PacketPlayerPosLook"));
+ mObInitMap.put(new Pair<String, String>("fg", "net/minecraft/util/ChatComponentStyle$2"));
+ mObInitMap.put(new Pair<String, String>("aqz", "net/minecraft/world/gen/ChunkProviderGenerate"));
+ mObInitMap.put(new Pair<String, String>("auy",
+ "net/minecraft/world/gen/structure/StructureStrongholdPieces$Stairs"));
+ mObInitMap.put(new Pair<String, String>("ayx", "net/minecraft/world/storage/WorldInfo$5"));
+ mObInitMap.put(new Pair<String, String>("net/minecraft/realms/RealmsSliderButton",
+ "net/minecraft/realms/RealmsSliderButton"));
+ mObInitMap.put(new Pair<String, String>("zu", "net/minecraft/inventory/ContainerRepair"));
+ mObInitMap.put(new Pair<String, String>("vv", "net/minecraft/pathfinding/PathNavigate"));
+ mObInitMap.put(new Pair<String, String>("rw", "net/minecraft/potion/PotionEffect"));
+ mObInitMap.put(new Pair<String, String>("nx", "net/minecraft/server/management/BanList"));
+ mObInitMap.put(new Pair<String, String>("jy", "net/minecraft/network/status/INetHandlerStatusClient"));
+ mObInitMap.put(new Pair<String, String>("fz", "net/minecraft/network/play/server/S0FPacketSpawnMob"));
+ mObInitMap.put(new Pair<String, String>("arn", "net/minecraft/world/gen/feature/WorldGenerator"));
+ mObInitMap.put(new Pair<String, String>("ano", "net/minecraft/block/BlockSoulSand"));
+ mObInitMap.put(new Pair<String, String>("abr", "net/minecraft/item/ItemColored"));
+ mObInitMap.put(new Pair<String, String>("afq", "net/minecraft/enchantment/EnchantmentDamage"));
+ mObInitMap.put(new Pair<String, String>("ajp", "net/minecraft/block/BlockBookshelf"));
+ mObInitMap.put(new Pair<String, String>("brq", "net/minecraft/client/resources/Language"));
+ mObInitMap.put(new Pair<String, String>("bbu", "net/minecraft/client/gui/FontRenderer"));
+ mObInitMap
+ .put(new Pair<String, String>("bft", "net/minecraft/client/gui/inventory/GuiScreenHorseInventory"));
+ mObInitMap.put(new Pair<String, String>("bjs", "net/minecraft/client/network/OldServerPinger$2"));
+ mObInitMap.put(new Pair<String, String>("bnr", "net/minecraft/client/renderer/entity/RenderFireball"));
+ mObInitMap.put(new Pair<String, String>("sk", "net/minecraft/command/IEntitySelector$1"));
+ mObInitMap.put(new Pair<String, String>("ol", "net/minecraft/server/management/UserListEntry"));
+ mObInitMap.put(new Pair<String, String>("km", "net/minecraft/init/Bootstrap$1"));
+ mObInitMap.put(new Pair<String, String>("gn", "net/minecraft/network/play/server/S2DPacketOpenWindow"));
+ mObInitMap.put(new Pair<String, String>("co", "net/minecraft/util/RegistryDefaulted"));
+ mObInitMap.put(new Pair<String, String>("acf", "net/minecraft/creativetab/CreativeTabs$9"));
+ mObInitMap.put(new Pair<String, String>("age", "net/minecraft/enchantment/EnchantmentFishingSpeed"));
+ mObInitMap.put(
+ new Pair<String, String>("bse", "net/minecraft/client/resources/data/LanguageMetadataSection"));
+ mObInitMap.put(new Pair<String, String>("arm", "net/minecraft/world/gen/feature/WorldGenDoublePlant"));
+ mObInitMap.put(new Pair<String, String>("avl",
+ "net/minecraft/world/gen/structure/StructureComponent$BlockSelector"));
+ mObInitMap.put(new Pair<String, String>("bci", "net/minecraft/client/gui/GuiListExtended$IGuiListEntry"));
+ mObInitMap.put(
+ new Pair<String, String>("bgh", "net/minecraft/client/resources/ResourcePackListEntryDefault"));
+ mObInitMap.put(new Pair<String, String>("bkg", "net/minecraft/client/particle/EntityFootStepFX"));
+ mObInitMap.put(new Pair<String, String>("bof", "net/minecraft/client/renderer/entity/RenderLeashKnot"));
+ mObInitMap.put(new Pair<String, String>("net/minecraft/server/MinecraftServer",
+ "net/minecraft/server/MinecraftServer"));
+ mObInitMap.put(new Pair<String, String>("hb", "net/minecraft/network/play/server/S2APacketParticles"));
+ mObInitMap.put(new Pair<String, String>("wi", "net/minecraft/entity/passive/EntityHorse"));
+ mObInitMap.put(new Pair<String, String>("sj", "net/minecraft/command/IEntitySelector"));
+ mObInitMap.put(new Pair<String, String>("asa", "net/minecraft/world/gen/feature/WorldGenMegaPineTree"));
+ mObInitMap.put(new Pair<String, String>("aob", "net/minecraft/block/BlockTNT"));
+ mObInitMap.put(new Pair<String, String>("akc", "net/minecraft/block/BlockRedstoneComparator"));
+ mObInitMap.put(new Pair<String, String>("agd", "net/minecraft/enchantment/EnchantmentFireAspect"));
+ mObInitMap.put(new Pair<String, String>("bsd",
+ "net/minecraft/client/resources/data/FontMetadataSectionSerializer"));
+ mObInitMap.put(new Pair<String, String>("ha", "net/minecraft/network/play/server/S28PacketEffect"));
+ mObInitMap.put(new Pair<String, String>("ast", "net/minecraft/world/gen/FlatLayerInfo"));
+ mObInitMap.put(new Pair<String, String>("aou", "net/minecraft/tileentity/TileEntity$3"));
+ mObInitMap.put(new Pair<String, String>("akv", "net/minecraft/block/BlockEnderChest"));
+ mObInitMap.put(new Pair<String, String>("acx", "net/minecraft/item/ItemFood"));
+ mObInitMap.put(new Pair<String, String>("agw", "net/minecraft/world/Explosion"));
+ mObInitMap.put(new Pair<String, String>("aws", "net/minecraft/block/material/MaterialLiquid"));
+ mObInitMap.put(new Pair<String, String>("bsw", "net/minecraft/server/integrated/IntegratedPlayerList"));
+ mObInitMap.put(new Pair<String, String>("box", "net/minecraft/client/renderer/entity/RenderTntMinecart"));
+ mObInitMap.put(new Pair<String, String>("bky", "net/minecraft/client/particle/EntitySplashFX"));
+ mObInitMap.put(new Pair<String, String>("xp", "net/minecraft/entity/item/EntityMinecartContainer"));
+ mObInitMap.put(new Pair<String, String>("tq", "net/minecraft/entity/ai/attributes/ServersideAttributeMap"));
+ mObInitMap.put(new Pair<String, String>("pr", "net/minecraft/util/JsonSerializableSet"));
+ mObInitMap.put(new Pair<String, String>("ls", "net/minecraft/server/dedicated/DedicatedPlayerList"));
+ mObInitMap.put(new Pair<String, String>("ht", "net/minecraft/network/play/server/S19PacketEntityHeadLook"));
+ mObInitMap.put(new Pair<String, String>("du", "net/minecraft/nbt/CompressedStreamTools"));
+ mObInitMap.put(new Pair<String, String>("api", "net/minecraft/tileentity/TileEntityHopper"));
+ mObInitMap.put(new Pair<String, String>("alj", "net/minecraft/block/BlockSlab"));
+ mObInitMap.put(new Pair<String, String>("adl", "net/minecraft/item/ItemMultiTexture"));
+ mObInitMap.put(new Pair<String, String>("ahk", "net/minecraft/world/WorldSettings$GameType"));
+ mObInitMap.put(new Pair<String, String>("btk", "net/minecraft/client/audio/SoundManager$1"));
+ mObInitMap.put(new Pair<String, String>("bpl", "net/minecraft/client/shader/ShaderLoader"));
+ mObInitMap.put(new Pair<String, String>("bdo", "net/minecraft/client/gui/GuiMemoryErrorScreen"));
+ mObInitMap.put(new Pair<String, String>("bhn", "net/minecraft/client/model/ModelLargeChest"));
+ mObInitMap.put(new Pair<String, String>("blm", "net/minecraft/client/renderer/RenderBlocks"));
+ mObInitMap.put(new Pair<String, String>("qf", "net/minecraft/util/EnumTypeAdapterFactory"));
+ mObInitMap.put(new Pair<String, String>("mg", "net/minecraft/server/gui/StatsComponent$1"));
+ mObInitMap.put(new Pair<String, String>("ih", "net/minecraft/network/play/server/S03PacketTimeUpdate"));
+ mObInitMap.put(new Pair<String, String>("ei", "net/minecraft/network/NettyEncryptingEncoder"));
+ mObInitMap.put(new Pair<String, String>("aj", "net/minecraft/command/server/CommandDeOp"));
+ mObInitMap.put(new Pair<String, String>("aaa", "net/minecraft/inventory/ContainerBrewingStand$Ingredient"));
+ mObInitMap.put(new Pair<String, String>("a", "net/minecraft/util/EnumChatFormatting"));
+ mObInitMap.put(new Pair<String, String>("atg",
+ "net/minecraft/world/gen/structure/StructureNetherBridgePieces$Crossing3"));
+ mObInitMap.put(new Pair<String, String>("axf", "net/minecraft/world/gen/layer/GenLayerBiome"));
+ mObInitMap.put(new Pair<String, String>("bad", "net/minecraft/scoreboard/ScoreboardSaveData"));
+ mObInitMap.put(new Pair<String, String>("bec", "net/minecraft/client/gui/GuiScreenOptionsSounds"));
+ mObInitMap.put(new Pair<String, String>("bib", "net/minecraft/client/model/ModelSkeletonHead"));
+ mObInitMap.put(new Pair<String, String>("bma", "net/minecraft/client/renderer/RenderGlobal"));
+ mObInitMap.put(new Pair<String, String>("yc", "net/minecraft/entity/monster/IMob$1"));
+ mObInitMap.put(new Pair<String, String>("ud", "net/minecraft/entity/ai/EntityAIEatGrass"));
+ mObInitMap.put(new Pair<String, String>("qe", "net/minecraft/util/LongHashMap$Entry"));
+ mObInitMap.put(new Pair<String, String>("t", "net/minecraft/util/ChatAllowedCharacters"));
+ mObInitMap.put(new Pair<String, String>("atz",
+ "net/minecraft/world/gen/structure/ComponentScatteredFeaturePieces"));
+ mObInitMap.put(new Pair<String, String>("baw", "net/minecraft/client/Minecraft$16"));
+ mObInitMap.put(new Pair<String, String>("bev", "net/minecraft/client/gui/GuiKeyBindingList$KeyEntry"));
+ mObInitMap.put(new Pair<String, String>("yv", "net/minecraft/entity/passive/EntityVillager"));
+ mObInitMap.put(new Pair<String, String>("uw", "net/minecraft/entity/ai/EntityAIOcelotSit"));
+ mObInitMap.put(new Pair<String, String>("qx", "net/minecraft/util/WeightedRandomChestContent"));
+ mObInitMap.put(new Pair<String, String>("my", "net/minecraft/entity/EntityTrackerEntry"));
+ mObInitMap.put(new Pair<String, String>("iz", "net/minecraft/network/play/client/C17PacketCustomPayload"));
+ mObInitMap.put(new Pair<String, String>("aqo", "net/minecraft/world/WorldProvider"));
+ mObInitMap.put(new Pair<String, String>("amp", "net/minecraft/block/BlockPortal"));
+ mObInitMap.put(new Pair<String, String>("aas", "net/minecraft/inventory/InventoryMerchant"));
+ mObInitMap.put(new Pair<String, String>("aun",
+ "net/minecraft/world/gen/structure/StructureStrongholdPieces$Corridor"));
+ mObInitMap.put(new Pair<String, String>("aym", "net/minecraft/world/chunk/storage/AnvilSaveHandler"));
+ mObInitMap.put(new Pair<String, String>("buq", "net/minecraft/client/stream/TwitchStream$1$1"));
+ mObInitMap.put(new Pair<String, String>("bqr", "net/minecraft/client/resources/FileResourcePack"));
+ mObInitMap.put(new Pair<String, String>("bms",
+ "net/minecraft/client/renderer/tileentity/TileEntitySkullRenderer"));
+ mObInitMap.put(new Pair<String, String>("zj", "net/minecraft/entity/projectile/EntitySnowball"));
+ mObInitMap.put(new Pair<String, String>("vk", "net/minecraft/entity/ai/EntityAITempt"));
+ mObInitMap.put(new Pair<String, String>("rl", "net/minecraft/inventory/ISidedInventory"));
+ mObInitMap.put(new Pair<String, String>("nm",
+ "net/minecraft/server/network/NetHandlerHandshakeTCP$SwitchEnumConnectionState"));
+ mObInitMap.put(new Pair<String, String>("jn", "net/minecraft/network/play/client/C12PacketUpdateSign"));
+ mObInitMap.put(new Pair<String, String>("fo", "net/minecraft/util/ChatStyle$1"));
+ mObInitMap.put(new Pair<String, String>("bp", "net/minecraft/command/CommandSetSpawnpoint"));
+ mObInitMap.put(new Pair<String, String>("net/minecraft/realms/RealmsServerAddress",
+ "net/minecraft/realms/RealmsServerAddress"));
+ mObInitMap.put(new Pair<String, String>("arc", "net/minecraft/world/gen/feature/WorldGenAbstractTree"));
+ mObInitMap.put(new Pair<String, String>("and", "net/minecraft/block/BlockRedstoneTorch$Toggle"));
+ mObInitMap.put(new Pair<String, String>("abg", "net/minecraft/item/ItemBed"));
+ mObInitMap.put(new Pair<String, String>("aff", "net/minecraft/item/crafting/CraftingManager$1"));
+ mObInitMap.put(new Pair<String, String>("aje", "net/minecraft/block/BlockRailBase"));
+ mObInitMap.put(
+ new Pair<String, String>("brf", "net/minecraft/client/resources/ResourcePackRepository$Entry"));
+ mObInitMap.put(new Pair<String, String>("bbj", "net/minecraft/client/settings/GameSettings"));
+ mObInitMap.put(new Pair<String, String>("bfi", "net/minecraft/client/gui/inventory/GuiChest"));
+ mObInitMap.put(new Pair<String, String>("bjh", "net/minecraft/client/multiplayer/WorldClient$2"));
+ mObInitMap.put(new Pair<String, String>("bng", "net/minecraft/client/renderer/entity/RenderChicken"));
+ mObInitMap.put(new Pair<String, String>("oa", "net/minecraft/server/management/PreYggdrasilConverter$1"));
+ mObInitMap.put(new Pair<String, String>("kb", "net/minecraft/network/ServerStatusResponse"));
+ mObInitMap.put(new Pair<String, String>("gc", "net/minecraft/network/play/server/S0BPacketAnimation"));
+ mObInitMap.put(new Pair<String, String>("cd", "net/minecraft/command/CommandException"));
+ mObInitMap.put(new Pair<String, String>("abz", "net/minecraft/creativetab/CreativeTabs$3"));
+ mObInitMap.put(new Pair<String, String>("afy", "net/minecraft/enchantment/EnchantmentHelper$HurtIterator"));
+ mObInitMap.put(new Pair<String, String>("bry",
+ "net/minecraft/client/resources/data/IMetadataSerializer$Registration"));
+ mObInitMap.put(new Pair<String, String>("ava",
+ "net/minecraft/world/gen/structure/StructureStrongholdPieces$Straight"));
+ mObInitMap.put(new Pair<String, String>("bnz", "net/minecraft/client/renderer/entity/RenderItem$1"));
+ mObInitMap
+ .put(new Pair<String, String>("gv", "net/minecraft/network/play/server/S2BPacketChangeGameState"));
+ mObInitMap.put(new Pair<String, String>("cw", "net/minecraft/util/RegistryNamespaced"));
+ mObInitMap.put(new Pair<String, String>("net/minecraft/realms/RealmsScrolledSelectionList",
+ "net/minecraft/realms/RealmsScrolledSelectionList"));
+ mObInitMap.put(new Pair<String, String>("aru", "net/minecraft/world/gen/feature/WorldGenBigMushroom"));
+ mObInitMap.put(new Pair<String, String>("anv", "net/minecraft/block/BlockStone"));
+ mObInitMap
+ .put(new Pair<String, String>("afx", "net/minecraft/enchantment/EnchantmentHelper$DamageIterator"));
+ mObInitMap.put(new Pair<String, String>("ajw", "net/minecraft/block/BlockCauldron"));
+ mObInitMap.put(
+ new Pair<String, String>("avt", "net/minecraft/world/gen/structure/StructureVillagePieces$Torch"));
+ mObInitMap.put(new Pair<String, String>("azs", "net/minecraft/world/storage/IThreadedFileIO"));
+ mObInitMap.put(new Pair<String, String>("bcq", "net/minecraft/client/gui/GuiScreenRealmsProxy"));
+ mObInitMap.put(new Pair<String, String>("bgp", "net/minecraft/client/gui/stream/GuiStreamUnavailable"));
+ mObInitMap
+ .put(new Pair<String, String>("brx", "net/minecraft/client/resources/data/IMetadataSerializer$1"));
+ mObInitMap.put(new Pair<String, String>("wq", "net/minecraft/entity/passive/EntitySheep$1"));
+ mObInitMap.put(new Pair<String, String>("sr", "net/minecraft/entity/EntityFlying"));
+ mObInitMap.put(new Pair<String, String>("os", "net/minecraft/server/management/UserListWhitelistEntry"));
+ mObInitMap.put(new Pair<String, String>("kt", "net/minecraft/init/Bootstrap$3"));
+ mObInitMap.put(new Pair<String, String>("gu", "net/minecraft/network/play/server/S27PacketExplosion"));
+ mObInitMap.put(new Pair<String, String>("asi", "net/minecraft/world/gen/feature/WorldGenCanopyTree"));
+ mObInitMap.put(new Pair<String, String>("aoj", "net/minecraft/block/BlockLilyPad"));
+ mObInitMap.put(new Pair<String, String>("akk", "net/minecraft/block/BlockDirectional"));
+ mObInitMap.put(new Pair<String, String>("acm", "net/minecraft/item/ItemEnchantedBook"));
+ mObInitMap.put(new Pair<String, String>("agl", "net/minecraft/enchantment/EnchantmentWaterWorker"));
+ mObInitMap.put(new Pair<String, String>("bsl", "net/minecraft/client/audio/MovingSound"));
+ mObInitMap.put(new Pair<String, String>("bom", "net/minecraft/client/renderer/entity/RenderOcelot"));
+ mObInitMap.put(new Pair<String, String>("bgo", "net/minecraft/client/gui/stream/GuiStreamOptions"));
+ mObInitMap.put(new Pair<String, String>("bkn", "net/minecraft/client/particle/EffectRenderer"));
+ mObInitMap.put(
+ new Pair<String, String>("net/minecraft/realms/RealmsScreen", "net/minecraft/realms/RealmsScreen"));
+ mObInitMap.put(new Pair<String, String>("xe", "net/minecraft/entity/projectile/EntityFishHook"));
+ mObInitMap.put(new Pair<String, String>("tf", "net/minecraft/entity/DataWatcher$WatchableObject"));
+ mObInitMap.put(new Pair<String, String>("pg", "net/minecraft/stats/StatisticsFile"));
+ mObInitMap.put(new Pair<String, String>("lh", "net/minecraft/server/MinecraftServer$1"));
+ mObInitMap.put(new Pair<String, String>("hi",
+ "net/minecraft/network/play/server/S14PacketEntity$S16PacketEntityLook"));
+ mObInitMap.put(new Pair<String, String>("dj", "net/minecraft/nbt/NBTTagCompound$2"));
+ mObInitMap.put(new Pair<String, String>("ada", "net/minecraft/item/ItemHoe"));
+ mObInitMap.put(new Pair<String, String>("bpa", "net/minecraft/client/renderer/entity/RenderVillager"));
+ mObInitMap.put(new Pair<String, String>("bdd", "net/minecraft/client/gui/GuiScreenDemo"));
+ mObInitMap.put(new Pair<String, String>("bhc", "net/minecraft/client/model/ModelBat"));
+ mObInitMap.put(new Pair<String, String>("blb", "net/minecraft/client/particle/EntityPickupFX"));
+ mObInitMap.put(new Pair<String, String>("pz", "net/minecraft/util/IntHashMap"));
+ mObInitMap.put(new Pair<String, String>("adt", "net/minecraft/item/ItemSaddle"));
+ mObInitMap.put(new Pair<String, String>("ahs", "net/minecraft/world/NextTickListEntry"));
+ mObInitMap.put(new Pair<String, String>("bts", "net/minecraft/client/audio/SoundHandler$SwitchType"));
+ mObInitMap.put(new Pair<String, String>("bpt", "net/minecraft/client/renderer/texture/LayeredTexture"));
+ mObInitMap.put(new Pair<String, String>("awz", "net/minecraft/world/gen/layer/GenLayerEdge$SwitchMode"));
+ mObInitMap.put(new Pair<String, String>("bdw", "net/minecraft/client/gui/GuiScreen"));
+ mObInitMap.put(new Pair<String, String>("bhv", "net/minecraft/client/model/TexturedQuad"));
+ mObInitMap.put(new Pair<String, String>("blu", "net/minecraft/client/renderer/EntityRenderer$1"));
+ mObInitMap.put(new Pair<String, String>("ip", "net/minecraft/network/play/client/C0APacketAnimation"));
+ mObInitMap.put(new Pair<String, String>("eq", "net/minecraft/network/EnumConnectionState$4"));
+ mObInitMap.put(new Pair<String, String>("ar", "net/minecraft/command/CommandGameMode"));
+ mObInitMap.put(new Pair<String, String>("xw", "net/minecraft/entity/item/EntityTNTPrimed"));
+ mObInitMap.put(new Pair<String, String>("tx", "net/minecraft/entity/ai/EntityAIAvoidEntity$1"));
+ mObInitMap.put(new Pair<String, String>("i", "net/minecraft/crash/CrashReport$7"));
+ mObInitMap.put(new Pair<String, String>("ato",
+ "net/minecraft/world/gen/structure/StructureNetherBridgePieces$Corridor5"));
+ mObInitMap.put(new Pair<String, String>("app", "net/minecraft/block/BlockPistonBase"));
+ mObInitMap.put(new Pair<String, String>("alq", "net/minecraft/block/BlockJukebox"));
+ mObInitMap.put(new Pair<String, String>("ahr", "net/minecraft/world/ChunkCache"));
+ mObInitMap.put(new Pair<String, String>("axn", "net/minecraft/world/gen/layer/GenLayer"));
+ mObInitMap.put(new Pair<String, String>("bal", "net/minecraft/client/settings/KeyBinding"));
+ mObInitMap.put(new Pair<String, String>("bek", "net/minecraft/client/gui/achievement/GuiStats$StatsBlock"));
+ mObInitMap.put(new Pair<String, String>("bij", "net/minecraft/client/model/ModelIronGolem"));
+ mObInitMap.put(new Pair<String, String>("btr", "net/minecraft/client/audio/SoundHandler$2"));
+ mObInitMap.put(new Pair<String, String>("yk", "net/minecraft/entity/monster/EntitySilverfish"));
+ mObInitMap.put(new Pair<String, String>("ul", "net/minecraft/entity/ai/EntityAIWatchClosest2"));
+ mObInitMap.put(new Pair<String, String>("qm", "net/minecraft/util/MouseFilter"));
+ mObInitMap.put(new Pair<String, String>("mn", "net/minecraft/entity/EntityTracker"));
+ mObInitMap.put(new Pair<String, String>("io", "net/minecraft/network/play/INetHandlerPlayServer"));
+ mObInitMap.put(new Pair<String, String>("aeg", "net/minecraft/item/ItemSlab"));
+ mObInitMap.put(new Pair<String, String>("aah", "net/minecraft/inventory/ContainerEnchantment$1"));
+ mObInitMap.put(new Pair<String, String>("aif", "net/minecraft/world/biome/BiomeGenForest"));
+ mObInitMap.put(new Pair<String, String>("auc",
+ "net/minecraft/world/gen/structure/ComponentScatteredFeaturePieces$JunglePyramid"));
+ mObInitMap.put(new Pair<String, String>("ayb", "net/minecraft/world/gen/layer/GenLayerVoronoiZoom"));
+ mObInitMap
+ .put(new Pair<String, String>("buf", "net/minecraft/client/stream/ChatController$SwitchChatState"));
+ mObInitMap.put(new Pair<String, String>("bqg", "net/minecraft/client/renderer/texture/TextureManager$1"));
+ mObInitMap.put(new Pair<String, String>("bii", "net/minecraft/client/model/PositionTextureVertex"));
+ mObInitMap.put(new Pair<String, String>("bmh", "net/minecraft/client/renderer/Tessellator"));
+ mObInitMap.put(new Pair<String, String>("ra", "net/minecraft/inventory/InventoryLargeChest"));
+ mObInitMap.put(new Pair<String, String>("nb",
+ "net/minecraft/client/network/NetHandlerHandshakeMemory$SwitchEnumConnectionState"));
+ mObInitMap.put(new Pair<String, String>("jc", "net/minecraft/network/play/client/C00PacketKeepAlive"));
+ mObInitMap.put(new Pair<String, String>("fd", "net/minecraft/util/MessageSerializer2"));
+ mObInitMap.put(new Pair<String, String>("be", "net/minecraft/command/server/CommandPardonPlayer"));
+ mObInitMap.put(new Pair<String, String>("aqw", "net/minecraft/world/gen/MapGenCaves"));
+ mObInitMap.put(new Pair<String, String>("amx", "net/minecraft/block/BlockQuartz"));
+ mObInitMap.put(new Pair<String, String>("aez", "net/minecraft/item/crafting/RecipesFood"));
+ mObInitMap.put(new Pair<String, String>("aiy", "net/minecraft/world/biome/BiomeEndDecorator"));
+ mObInitMap.put(
+ new Pair<String, String>("bqz", "net/minecraft/client/resources/IResourceManagerReloadListener"));
+ mObInitMap.put(new Pair<String, String>("rt", "net/minecraft/potion/PotionHealthBoost"));
+ mObInitMap.put(new Pair<String, String>("nu", "net/minecraft/server/management/PlayerProfileCache$2"));
+ mObInitMap.put(new Pair<String, String>("jv", "net/minecraft/network/login/INetHandlerLoginServer"));
+ mObInitMap.put(new Pair<String, String>("fw", "net/minecraft/network/play/server/S0EPacketSpawnObject"));
+ mObInitMap.put(new Pair<String, String>("bx", "net/minecraft/command/server/CommandTestForBlock"));
+ mObInitMap.put(new Pair<String, String>("abo", "net/minecraft/item/ItemBucket"));
+ mObInitMap.put(new Pair<String, String>("afn", "net/minecraft/enchantment/EnchantmentArrowFire"));
+ mObInitMap.put(new Pair<String, String>("brn", "net/minecraft/client/resources/SkinManager$3$1"));
+ mObInitMap.put(new Pair<String, String>("aqv", "net/minecraft/world/gen/ChunkProviderHell"));
+ mObInitMap.put(new Pair<String, String>("auu",
+ "net/minecraft/world/gen/structure/StructureStrongholdPieces$RightTurn"));
+ mObInitMap.put(new Pair<String, String>("ayt", "net/minecraft/world/storage/WorldInfo$1"));
+ mObInitMap.put(new Pair<String, String>("bbr", "net/minecraft/util/Timer"));
+ mObInitMap.put(new Pair<String, String>("bfq", "net/minecraft/client/gui/GuiEnchantment"));
+ mObInitMap.put(new Pair<String, String>("bjp", "net/minecraft/client/multiplayer/ServerList"));
+ mObInitMap.put(new Pair<String, String>("bno", "net/minecraft/client/renderer/entity/Render"));
+ mObInitMap.put(new Pair<String, String>("net/minecraft/realms/RealmsLevelSummary",
+ "net/minecraft/realms/RealmsLevelSummary"));
+ mObInitMap
+ .put(new Pair<String, String>("gk", "net/minecraft/network/play/server/S22PacketMultiBlockChange"));
+ mObInitMap.put(new Pair<String, String>("cl", "net/minecraft/block/BlockSourceImpl"));
+ mObInitMap.put(new Pair<String, String>("vr", "net/minecraft/entity/ai/EntityAITargetNonTamed"));
+ mObInitMap.put(new Pair<String, String>("rs", "net/minecraft/potion/PotionAttackDamage"));
+ mObInitMap.put(new Pair<String, String>("arj", "net/minecraft/world/gen/feature/WorldGenClay"));
+ mObInitMap.put(new Pair<String, String>("ank", "net/minecraft/block/BlockSign"));
+ mObInitMap.put(new Pair<String, String>("ajl", "net/minecraft/block/Block$3"));
+ mObInitMap.put(new Pair<String, String>("avi", "net/minecraft/world/gen/structure/MapGenStructureIO"));
+ mObInitMap.put(new Pair<String, String>("bcf", "net/minecraft/client/gui/GuiButtonLanguage"));
+ mObInitMap.put(new Pair<String, String>("bge", "net/minecraft/client/gui/ServerSelectionList"));
+ mObInitMap.put(new Pair<String, String>("wf", "net/minecraft/entity/passive/EntityAnimal"));
+ mObInitMap.put(new Pair<String, String>("sg", "net/minecraft/entity/EntityList"));
+ mObInitMap.put(new Pair<String, String>("oh",
+ "net/minecraft/server/management/PreYggdrasilConverter$ConversionError"));
+ mObInitMap.put(new Pair<String, String>("ki", "net/minecraft/network/status/client/C01PacketPing"));
+ mObInitMap.put(new Pair<String, String>("gj", "net/minecraft/network/play/server/S02PacketChat"));
+ mObInitMap.put(new Pair<String, String>("acb", "net/minecraft/creativetab/CreativeTabs$5"));
+ mObInitMap
+ .put(new Pair<String, String>("aga", "net/minecraft/enchantment/EnchantmentHelper$ModifierLiving"));
+ mObInitMap.put(
+ new Pair<String, String>("bsa", "net/minecraft/client/resources/data/AnimationMetadataSection"));
+ mObInitMap.put(new Pair<String, String>("bkc", "net/minecraft/client/particle/EntityFireworkOverlayFX"));
+ mObInitMap.put(new Pair<String, String>("bob", "net/minecraft/client/renderer/entity/RenderItem$3"));
+ mObInitMap.put(new Pair<String, String>("wy", "net/minecraft/entity/boss/EntityDragonPart"));
+ mObInitMap.put(new Pair<String, String>("sz", "net/minecraft/entity/EnumCreatureAttribute"));
+ mObInitMap.put(new Pair<String, String>("asq", "net/minecraft/world/gen/feature/WorldGenTrees"));
+ mObInitMap.put(new Pair<String, String>("aor", "net/minecraft/tileentity/TileEntity"));
+ mObInitMap.put(new Pair<String, String>("aks", "net/minecraft/block/BlockEnchantmentTable"));
+ mObInitMap.put(new Pair<String, String>("acu", "net/minecraft/item/ItemFishFood$FishType"));
+ mObInitMap.put(new Pair<String, String>("agt", "net/minecraft/world/ChunkPosition"));
+ mObInitMap.put(new Pair<String, String>("bst", "net/minecraft/client/audio/ISound"));
+ mObInitMap.put(new Pair<String, String>("bou", "net/minecraft/client/renderer/entity/RenderSnowMan"));
+ mObInitMap.put(new Pair<String, String>("bcx", "net/minecraft/client/multiplayer/GuiConnecting"));
+ mObInitMap.put(new Pair<String, String>("bgw", "net/minecraft/client/main/Main$3"));
+ mObInitMap.put(new Pair<String, String>("bkv", "net/minecraft/client/particle/EntitySmokeFX"));
+ mObInitMap.put(
+ new Pair<String, String>("tn", "net/minecraft/entity/ai/attributes/ModifiableAttributeInstance"));
+ mObInitMap.put(new Pair<String, String>("po", "net/minecraft/util/IJsonSerializable"));
+ mObInitMap.put(new Pair<String, String>("lp", "net/minecraft/scoreboard/ServerScoreboard"));
+ mObInitMap
+ .put(new Pair<String, String>("hq", "net/minecraft/network/play/server/S13PacketDestroyEntities"));
+ mObInitMap.put(new Pair<String, String>("dr", "net/minecraft/nbt/NBTTagLong"));
+ mObInitMap.put(new Pair<String, String>("adi", "net/minecraft/item/ItemBucketMilk"));
+ mObInitMap.put(new Pair<String, String>("ahh", "net/minecraft/world/IWorldAccess"));
+ mObInitMap.put(new Pair<String, String>("bth", "net/minecraft/client/audio/MusicTicker$MusicType"));
+ mObInitMap.put(new Pair<String, String>("bpi", "net/minecraft/client/shader/ShaderManager"));
+ mObInitMap.put(new Pair<String, String>("asp", "net/minecraft/world/gen/feature/WorldGenTallGrass"));
+ mObInitMap.put(new Pair<String, String>("awo", "net/minecraft/world/gen/NoiseGeneratorSimplex"));
+ mObInitMap.put(new Pair<String, String>("bhk", "net/minecraft/client/model/ModelEnderman"));
+ mObInitMap.put(new Pair<String, String>("blj", "net/minecraft/util/MovementInputFromOptions"));
+ mObInitMap.put(new Pair<String, String>("ie", "net/minecraft/network/play/server/S3CPacketUpdateScore"));
+ mObInitMap.put(new Pair<String, String>("ef", "net/minecraft/nbt/JsonToNBT$Primitive"));
+ mObInitMap.put(new Pair<String, String>("ag", "net/minecraft/command/server/CommandBanPlayer"));
+ mObInitMap.put(new Pair<String, String>("xl", "net/minecraft/entity/item/EntityMinecart"));
+ mObInitMap.put(new Pair<String, String>("atd", "net/minecraft/world/gen/structure/MapGenNetherBridge"));
+ mObInitMap.put(new Pair<String, String>("ape", "net/minecraft/tileentity/TileEntityEnderChest"));
+ mObInitMap.put(new Pair<String, String>("alf", "net/minecraft/block/BlockGlass"));
+ mObInitMap.put(new Pair<String, String>("ahg", "net/minecraft/world/MinecraftException"));
+ mObInitMap.put(new Pair<String, String>("axc", "net/minecraft/world/gen/layer/GenLayerAddMushroomIsland"));
+ mObInitMap.put(new Pair<String, String>("baa", "net/minecraft/scoreboard/Score$1"));
+ mObInitMap.put(new Pair<String, String>("net/minecraft/realms/DisconnectedOnlineScreen",
+ "net/minecraft/realms/DisconnectedOnlineScreen"));
+ mObInitMap.put(new Pair<String, String>("btg", "net/minecraft/client/audio/MusicTicker"));
+ mObInitMap.put(new Pair<String, String>("ua", "net/minecraft/entity/ai/EntityAIMate"));
+ mObInitMap.put(new Pair<String, String>("mc", "net/minecraft/server/gui/MinecraftServerGui$4"));
+ mObInitMap.put(new Pair<String, String>("id", "net/minecraft/network/play/server/S3EPacketTeams"));
+ mObInitMap.put(new Pair<String, String>("q", "net/minecraft/util/Facing"));
+ mObInitMap.put(new Pair<String, String>("atw",
+ "net/minecraft/world/gen/structure/StructureNetherBridgePieces$Start"));
+ mObInitMap.put(new Pair<String, String>("apx", "net/minecraft/world/chunk/Chunk"));
+ mObInitMap.put(new Pair<String, String>("aly", "net/minecraft/block/BlockMelon"));
+ mObInitMap.put(new Pair<String, String>("ahz", "net/minecraft/world/biome/BiomeCache$Block"));
+ mObInitMap.put(new Pair<String, String>("axv", "net/minecraft/world/gen/layer/GenLayerRiverMix"));
+ mObInitMap.put(new Pair<String, String>("btz", "net/minecraft/client/stream/Metadata"));
+ mObInitMap.put(new Pair<String, String>("ys", "net/minecraft/entity/monster/EntityZombie$GroupData"));
+ mObInitMap.put(new Pair<String, String>("ut", "net/minecraft/entity/ai/EntityAIMoveTowardsRestriction"));
+ mObInitMap.put(new Pair<String, String>("qu", "net/minecraft/util/Tuple"));
+ mObInitMap.put(new Pair<String, String>("mv", "net/minecraft/world/WorldServer$ServerBlockEventList"));
+ mObInitMap.put(new Pair<String, String>("iw", "net/minecraft/network/play/client/C11PacketEnchantItem"));
+ mObInitMap.put(new Pair<String, String>("ex", "net/minecraft/network/NetworkStatistics$Tracker"));
+ mObInitMap.put(new Pair<String, String>("ay", "net/minecraft/command/server/CommandListPlayers"));
+ mObInitMap.put(
+ new Pair<String, String>("aql", "net/minecraft/world/chunk/storage/AnvilChunkLoader$PendingChunk"));
+ mObInitMap.put(new Pair<String, String>("amm", "net/minecraft/block/BlockOldLog"));
+ mObInitMap.put(new Pair<String, String>("aap", "net/minecraft/inventory/ContainerPlayer"));
+ mObInitMap.put(new Pair<String, String>("ain", "net/minecraft/world/biome/BiomeGenMutated"));
+ mObInitMap.put(new Pair<String, String>("p", "net/minecraft/util/Direction"));
+ mObInitMap.put(new Pair<String, String>("bun", "net/minecraft/client/stream/IStream$AuthFailureReason"));
+ mObInitMap.put(new Pair<String, String>("bqo", "net/minecraft/client/resources/ResourceIndex"));
+ mObInitMap.put(new Pair<String, String>("bas", "net/minecraft/client/Minecraft$12"));
+ mObInitMap.put(new Pair<String, String>("ber", "net/minecraft/client/gui/IProgressMeter"));
+ mObInitMap.put(new Pair<String, String>("biq", "net/minecraft/client/model/ModelDragon"));
+ mObInitMap.put(new Pair<String, String>("bmp",
+ "net/minecraft/client/renderer/tileentity/TileEntityMobSpawnerRenderer"));
+ mObInitMap.put(new Pair<String, String>("ri", "net/minecraft/profiler/PlayerUsageSnooper"));
+ mObInitMap.put(new Pair<String, String>("nj", "net/minecraft/network/NetHandlerPlayServer$2"));
+ mObInitMap.put(new Pair<String, String>("jk", "net/minecraft/network/play/client/C0CPacketInput"));
+ mObInitMap.put(new Pair<String, String>("fl", "net/minecraft/event/HoverEvent"));
+ mObInitMap.put(new Pair<String, String>("bm", "net/minecraft/command/server/CommandSetBlock"));
+ mObInitMap.put(new Pair<String, String>("abd", "net/minecraft/item/ItemArmor$ArmorMaterial"));
+ mObInitMap.put(new Pair<String, String>("afc", "net/minecraft/item/crafting/RecipesMapExtending"));
+ mObInitMap.put(new Pair<String, String>("ajb", "net/minecraft/block/BlockAnvil"));
+ mObInitMap.put(new Pair<String, String>("brc", "net/minecraft/client/resources/ResourcePackRepository"));
+ mObInitMap.put(
+ new Pair<String, String>("auj", "net/minecraft/world/gen/structure/StructureStrongholdPieces$1"));
+ mObInitMap.put(new Pair<String, String>("ayi", "net/minecraft/world/storage/MapData"));
+ mObInitMap.put(new Pair<String, String>("bbg", "net/minecraft/util/MouseHelper"));
+ mObInitMap.put(new Pair<String, String>("bff", "net/minecraft/client/gui/GuiScreenBook$NextPageButton"));
+ mObInitMap.put(new Pair<String, String>("bje", "net/minecraft/client/multiplayer/PlayerControllerMP"));
+ mObInitMap.put(new Pair<String, String>("bnd", "net/minecraft/client/renderer/entity/RenderBlaze"));
+ mObInitMap.put(new Pair<String, String>("ca", "net/minecraft/command/CommandToggleDownfall"));
+ mObInitMap.put(new Pair<String, String>("zf", "net/minecraft/entity/item/EntityFireworkRocket"));
+ mObInitMap.put(new Pair<String, String>("vg", "net/minecraft/entity/ai/EntityAIRunAroundLikeCrazy"));
+ mObInitMap.put(new Pair<String, String>("rh", "net/minecraft/inventory/InventoryBasic"));
+ mObInitMap.put(new Pair<String, String>("aja", "net/minecraft/block/BlockAir"));
+ mObInitMap.put(new Pair<String, String>("bbz", "net/minecraft/client/gui/MapItemRenderer$Instance"));
+ mObInitMap.put(new Pair<String, String>("bfy", "net/minecraft/client/gui/inventory/GuiDispenser"));
+ mObInitMap.put(new Pair<String, String>("bjx", "net/minecraft/client/particle/EntityCritFX"));
+ mObInitMap.put(new Pair<String, String>("zy", "net/minecraft/inventory/ContainerBeacon$BeaconSlot"));
+ mObInitMap.put(new Pair<String, String>("vz", "net/minecraft/village/Village"));
+ mObInitMap.put(new Pair<String, String>("arr", "net/minecraft/world/gen/feature/WorldGenGlowStone2"));
+ mObInitMap.put(new Pair<String, String>("ans", "net/minecraft/block/BlockStairs"));
+ mObInitMap.put(new Pair<String, String>("abv", "net/minecraft/creativetab/CreativeTabs$10"));
+ mObInitMap.put(new Pair<String, String>("afu", "net/minecraft/enchantment/EnumEnchantmentType"));
+ mObInitMap.put(new Pair<String, String>("ajt", "net/minecraft/block/BlockCactus"));
+ mObInitMap.put(
+ new Pair<String, String>("avq", "net/minecraft/world/gen/structure/StructureVillagePieces$House1"));
+ mObInitMap.put(new Pair<String, String>("azp", "net/minecraft/world/storage/IPlayerFileData"));
+ mObInitMap.put(new Pair<String, String>("bru", "net/minecraft/client/resources/data/IMetadataSection"));
+ mObInitMap.put(new Pair<String, String>("bjw", "net/minecraft/client/particle/EntityCrit2FX"));
+ mObInitMap.put(new Pair<String, String>("bnv", "net/minecraft/client/renderer/entity/RenderHorse"));
+ mObInitMap.put(new Pair<String, String>("wn", "net/minecraft/entity/passive/EntityOcelot"));
+ mObInitMap.put(new Pair<String, String>("op", "net/minecraft/server/management/UserListBans"));
+ mObInitMap.put(new Pair<String, String>("kq", "net/minecraft/init/Bootstrap$13"));
+ mObInitMap.put(new Pair<String, String>("gr", "net/minecraft/network/play/server/S3FPacketCustomPayload"));
+ mObInitMap.put(new Pair<String, String>("cs", "net/minecraft/util/IObjectIntIterable"));
+ mObInitMap.put(new Pair<String, String>("asf", "net/minecraft/world/gen/feature/WorldGenTaiga1"));
+ mObInitMap.put(new Pair<String, String>("aog", "net/minecraft/block/BlockTripWireHook"));
+ mObInitMap.put(new Pair<String, String>("akh", "net/minecraft/block/BlockDeadBush"));
+ mObInitMap.put(new Pair<String, String>("acj", "net/minecraft/item/ItemDye"));
+ mObInitMap.put(new Pair<String, String>("agi", "net/minecraft/enchantment/EnchantmentProtection"));
+ mObInitMap
+ .put(new Pair<String, String>("bsi", "net/minecraft/client/resources/data/TextureMetadataSection"));
+ mObInitMap.put(new Pair<String, String>("bcm", "net/minecraft/client/gui/GuiSlot"));
+ mObInitMap.put(new Pair<String, String>("bgl", "net/minecraft/client/gui/GuiResourcePackSelected"));
+ mObInitMap.put(new Pair<String, String>("bkk", "net/minecraft/client/particle/EntityLavaFX"));
+ mObInitMap.put(
+ new Pair<String, String>("boj", "net/minecraft/client/renderer/entity/RenderMinecartMobSpawner"));
+ mObInitMap.put(new Pair<String, String>("tc", "net/minecraft/entity/item/EntityPainting$EnumArt"));
+ mObInitMap.put(new Pair<String, String>("pd", "net/minecraft/stats/IStatStringFormat"));
+ mObInitMap.put(new Pair<String, String>("le", "net/minecraft/command/ServerCommand"));
+ mObInitMap.put(new Pair<String, String>("hf", "net/minecraft/network/play/server/S14PacketEntity"));
+ mObInitMap.put(new Pair<String, String>("dg", "net/minecraft/nbt/NBTTagByte"));
+ mObInitMap.put(new Pair<String, String>("ase", "net/minecraft/world/gen/feature/WorldGenMinable"));
+ mObInitMap.put(new Pair<String, String>("awd",
+ "net/minecraft/world/gen/structure/StructureVillagePieces$Village"));
+ mObInitMap.put(new Pair<String, String>("bda", "net/minecraft/client/gui/GuiCreateFlatWorld$Details"));
+ mObInitMap.put(new Pair<String, String>("hy", "net/minecraft/network/play/server/S12PacketEntityVelocity"));
+ mObInitMap.put(new Pair<String, String>("dz", "net/minecraft/nbt/NBTBase$NBTPrimitive"));
+ mObInitMap.put(new Pair<String, String>("xa", "net/minecraft/entity/boss/EntityDragon"));
+ mObInitMap.put(new Pair<String, String>("tb", "net/minecraft/entity/item/EntityPainting"));
+ mObInitMap
+ .put(new Pair<String, String>("asx", "net/minecraft/world/gen/structure/StructureMineshaftPieces"));
+ mObInitMap.put(new Pair<String, String>("aoy", "net/minecraft/tileentity/TileEntityCommandBlock$1"));
+ mObInitMap.put(new Pair<String, String>("akz", "net/minecraft/block/BlockFence"));
+ mObInitMap.put(new Pair<String, String>("aww", "net/minecraft/block/material/MaterialPortal"));
+ mObInitMap.put(new Pair<String, String>("bdt", "net/minecraft/client/gui/GuiScreenWorking"));
+ mObInitMap.put(new Pair<String, String>("bhs", "net/minecraft/client/model/ModelHorse"));
+ mObInitMap.put(new Pair<String, String>("xt", "net/minecraft/entity/ai/EntityMinecartMobSpawner"));
+ mObInitMap.put(new Pair<String, String>("tu", "net/minecraft/entity/ai/EntityLookHelper"));
+ mObInitMap.put(new Pair<String, String>("pv", "net/minecraft/util/HttpUtil"));
+ mObInitMap.put(new Pair<String, String>("lw", "net/minecraft/server/dedicated/DedicatedServer$3"));
+ mObInitMap.put(new Pair<String, String>("hx", "net/minecraft/network/play/server/S1BPacketEntityAttach"));
+ mObInitMap.put(new Pair<String, String>("f", "net/minecraft/crash/CrashReport$4"));
+ mObInitMap.put(new Pair<String, String>("atl",
+ "net/minecraft/world/gen/structure/StructureNetherBridgePieces$Entrance"));
+ mObInitMap.put(new Pair<String, String>("apm", "net/minecraft/tileentity/TileEntitySign"));
+ mObInitMap.put(new Pair<String, String>("aln", "net/minecraft/block/BlockHopper"));
+ mObInitMap.put(new Pair<String, String>("adp", "net/minecraft/item/ItemPotion"));
+ mObInitMap.put(new Pair<String, String>("aho", "net/minecraft/world/SpawnerAnimals"));
+ mObInitMap.put(new Pair<String, String>("bai", "net/minecraft/stats/ObjectiveStat"));
+ mObInitMap.put(new Pair<String, String>("bto", "net/minecraft/client/audio/SoundEventAccessorComposite"));
+ mObInitMap.put(new Pair<String, String>("bpp", "net/minecraft/client/renderer/texture/AbstractTexture"));
+ mObInitMap.put(new Pair<String, String>("blq", "net/minecraft/client/renderer/EntitySorter"));
+ mObInitMap.put(new Pair<String, String>("yh", "net/minecraft/entity/monster/EntityPigZombie"));
+ mObInitMap.put(new Pair<String, String>("ui", "net/minecraft/entity/ai/EntityAIBase"));
+ mObInitMap.put(new Pair<String, String>("qj", "net/minecraft/profiler/Profiler$Result"));
+ mObInitMap.put(new Pair<String, String>("net/minecraft/realms/RealmsServerStatusPinger",
+ "net/minecraft/realms/RealmsServerStatusPinger"));
+ mObInitMap.put(new Pair<String, String>("mk", "net/minecraft/world/demo/DemoWorldServer"));
+ mObInitMap
+ .put(new Pair<String, String>("il", "net/minecraft/network/play/server/S20PacketEntityProperties"));
+ mObInitMap.put(new Pair<String, String>("em", "net/minecraft/network/NetworkManager$3"));
+ mObInitMap.put(new Pair<String, String>("an", "net/minecraft/command/server/CommandEmote"));
+ mObInitMap.put(new Pair<String, String>("aqa", "net/minecraft/world/chunk/storage/NibbleArrayReader"));
+ mObInitMap.put(new Pair<String, String>("amb", "net/minecraft/block/BlockSilverfish"));
+ mObInitMap.put(new Pair<String, String>("aed", "net/minecraft/item/ItemSnowball"));
+ mObInitMap.put(new Pair<String, String>("aae", "net/minecraft/inventory/InventoryCrafting"));
+ mObInitMap.put(new Pair<String, String>("aic", "net/minecraft/world/biome/BiomeGenDesert"));
+ mObInitMap.put(new Pair<String, String>("e", "net/minecraft/crash/CrashReport$3"));
+ mObInitMap.put(
+ new Pair<String, String>("buc", "net/minecraft/client/stream/BroadcastController$BroadcastState"));
+ mObInitMap.put(new Pair<String, String>("bqd", "net/minecraft/client/renderer/texture/TextureAtlasSprite"));
+ mObInitMap.put(new Pair<String, String>("bah", "net/minecraft/scoreboard/IScoreObjectiveCriteria"));
+ mObInitMap.put(new Pair<String, String>("beg", "net/minecraft/client/gui/GuiWinGame"));
+ mObInitMap.put(new Pair<String, String>("bif", "net/minecraft/client/model/ModelSnowMan"));
+ mObInitMap.put(new Pair<String, String>("bme", "net/minecraft/client/util/QuadComparator"));
+ mObInitMap.put(new Pair<String, String>("fa", "net/minecraft/util/MessageSerializer"));
+ mObInitMap.put(new Pair<String, String>("bb", "net/minecraft/command/server/CommandNetstat"));
+ mObInitMap.put(new Pair<String, String>("aew", "net/minecraft/item/crafting/RecipeBookCloning"));
+ mObInitMap.put(new Pair<String, String>("aax", "net/minecraft/inventory/SlotCrafting"));
+ mObInitMap.put(new Pair<String, String>("aiv", "net/minecraft/world/biome/BiomeGenSwamp"));
+ mObInitMap.put(new Pair<String, String>("x", "net/minecraft/command/IAdminCommand"));
+ mObInitMap.put(new Pair<String, String>("bqw", "net/minecraft/client/resources/IResource"));
+ mObInitMap.put(new Pair<String, String>("bez", "net/minecraft/client/gui/inventory/GuiBeacon"));
+ mObInitMap.put(new Pair<String, String>("biy", "net/minecraft/client/model/TextureOffset"));
+ mObInitMap.put(new Pair<String, String>("bmx", "net/minecraft/client/renderer/culling/Frustrum"));
+ mObInitMap.put(new Pair<String, String>("js", "net/minecraft/network/login/server/S02PacketLoginSuccess"));
+ mObInitMap.put(new Pair<String, String>("ft", "net/minecraft/network/Packet"));
+ mObInitMap.put(new Pair<String, String>("bu", "net/minecraft/command/server/CommandSummon"));
+ mObInitMap.put(new Pair<String, String>("yz", "net/minecraft/entity/player/EntityPlayer"));
+ mObInitMap.put(new Pair<String, String>("aqs", "net/minecraft/world/gen/MapGenRavine"));
+ mObInitMap.put(new Pair<String, String>("amt", "net/minecraft/block/BlockRailPowered"));
+ mObInitMap.put(new Pair<String, String>("aiu", "net/minecraft/world/biome/BiomeGenStoneBeach"));
+ mObInitMap.put(new Pair<String, String>("aur",
+ "net/minecraft/world/gen/structure/StructureStrongholdPieces$PieceWeight"));
+ mObInitMap.put(new Pair<String, String>("ayq", "net/minecraft/world/storage/SaveHandler"));
+ mObInitMap.put(new Pair<String, String>("bbo", "net/minecraft/client/LoadingScreenRenderer"));
+ mObInitMap.put(new Pair<String, String>("bfn",
+ "net/minecraft/client/gui/inventory/GuiContainerCreative$CreativeSlot"));
+ mObInitMap.put(new Pair<String, String>("bjm", "net/minecraft/client/multiplayer/ServerAddress"));
+ mObInitMap.put(new Pair<String, String>("buu", "net/minecraft/client/renderer/OpenGlHelper"));
+ mObInitMap.put(new Pair<String, String>("zn", "net/minecraft/entity/item/EntityExpBottle"));
+ mObInitMap.put(new Pair<String, String>("vo", "net/minecraft/entity/ai/EntityAINearestAttackableTarget"));
+ mObInitMap.put(new Pair<String, String>("rp", "net/minecraft/util/EntityDamageSource"));
+ mObInitMap.put(new Pair<String, String>("nq", "net/minecraft/server/network/NetHandlerStatusServer"));
+ mObInitMap.put(new Pair<String, String>("jr", "net/minecraft/network/login/INetHandlerLoginClient"));
+ mObInitMap.put(new Pair<String, String>("arg", "net/minecraft/world/gen/feature/WorldGeneratorBonusChest"));
+ mObInitMap.put(new Pair<String, String>("anh", "net/minecraft/block/BlockSand"));
+ mObInitMap.put(new Pair<String, String>("abk", "net/minecraft/item/ItemBook"));
+ mObInitMap.put(new Pair<String, String>("afj", "net/minecraft/item/crafting/RecipesCrafting"));
+ mObInitMap.put(new Pair<String, String>("aji", "net/minecraft/block/Block"));
+ mObInitMap.put(new Pair<String, String>("avf", "net/minecraft/world/gen/structure/MapGenStructure$1"));
+ mObInitMap.put(new Pair<String, String>("aze", "net/minecraft/world/storage/ISaveFormat"));
+ mObInitMap.put(new Pair<String, String>("brj", "net/minecraft/client/resources/SkinManager"));
+ mObInitMap.put(new Pair<String, String>("bjl", "net/minecraft/client/gui/GuiPlayerInfo"));
+ mObInitMap.put(
+ new Pair<String, String>("bnk", "net/minecraft/client/renderer/tileentity/RenderEnderCrystal"));
+ mObInitMap.put(new Pair<String, String>("wc", "net/minecraft/village/VillageCollection"));
+ mObInitMap.put(new Pair<String, String>("sd", "net/minecraft/entity/Entity$SwitchEnumEntitySize"));
+ mObInitMap.put(new Pair<String, String>("oe", "net/minecraft/server/management/PreYggdrasilConverter$5"));
+ mObInitMap.put(new Pair<String, String>("kf",
+ "net/minecraft/network/ServerStatusResponse$MinecraftProtocolVersionIdentifier"));
+ mObInitMap.put(new Pair<String, String>("gg", "net/minecraft/network/play/server/S24PacketBlockAction"));
+ mObInitMap.put(new Pair<String, String>("ch", "net/minecraft/command/CommandNotFoundException"));
+ mObInitMap.put(new Pair<String, String>("arz", "net/minecraft/world/gen/feature/WorldGenMegaJungle"));
+ mObInitMap.put(new Pair<String, String>("bcb", "net/minecraft/client/gui/GuiButton"));
+ mObInitMap.put(new Pair<String, String>("bga", "net/minecraft/client/gui/ServerListEntryLanScan"));
+ mObInitMap.put(new Pair<String, String>("sw", "net/minecraft/entity/EntityLiving"));
+ mObInitMap.put(new Pair<String, String>("ox", "net/minecraft/network/rcon/RConThreadQuery"));
+ mObInitMap.put(new Pair<String, String>("ky", "net/minecraft/init/Bootstrap$7"));
+ mObInitMap.put(new Pair<String, String>("gz", "net/minecraft/network/play/server/S26PacketMapChunkBulk"));
+ mObInitMap.put(new Pair<String, String>("akp", "net/minecraft/block/BlockDragonEgg"));
+ mObInitMap.put(new Pair<String, String>("acr", "net/minecraft/item/ItemFireworkCharge"));
+ mObInitMap.put(new Pair<String, String>("agq", "net/minecraft/tileentity/MobSpawnerBaseLogic"));
+ mObInitMap.put(new Pair<String, String>("bsq", "net/minecraft/client/audio/SoundList$SoundEntry"));
+ mObInitMap.put(new Pair<String, String>("bor", "net/minecraft/client/renderer/entity/RenderSilverfish"));
+ mObInitMap.put(new Pair<String, String>("avx",
+ "net/minecraft/world/gen/structure/StructureVillagePieces$WoodHut"));
+ mObInitMap.put(new Pair<String, String>("azw", "net/minecraft/util/Vec3"));
+ mObInitMap.put(new Pair<String, String>("bcu", "net/minecraft/client/gui/GuiConfirmOpenLink"));
+ mObInitMap.put(new Pair<String, String>("bgt", "net/minecraft/client/main/Main$1"));
+ mObInitMap.put(new Pair<String, String>("bks", "net/minecraft/client/particle/EntityCloudFX"));
+ mObInitMap.put(new Pair<String, String>("wu", "net/minecraft/entity/passive/EntityWaterMob"));
+ mObInitMap.put(new Pair<String, String>("sv", "net/minecraft/entity/EntityLivingBase"));
+ mObInitMap.put(new Pair<String, String>("asm", "net/minecraft/world/gen/feature/WorldGenLiquids"));
+ mObInitMap.put(new Pair<String, String>("aon", "net/minecraft/block/BlockButtonWood"));
+ mObInitMap.put(new Pair<String, String>("ako", "net/minecraft/block/BlockDoublePlant"));
+ mObInitMap.put(new Pair<String, String>("awl", "net/minecraft/world/gen/NoiseGeneratorPerlin"));
+ mObInitMap.put(new Pair<String, String>("bdi", "net/minecraft/client/gui/GuiSleepMP"));
+ mObInitMap.put(new Pair<String, String>("bhh", "net/minecraft/client/model/ModelChicken"));
+ mObInitMap.put(new Pair<String, String>("blg", "net/minecraft/client/entity/AbstractClientPlayer"));
+ mObInitMap.put(new Pair<String, String>("xi", "net/minecraft/entity/item/EntityBoat"));
+ mObInitMap.put(new Pair<String, String>("tj", "net/minecraft/entity/ai/attributes/AttributeModifier"));
+ mObInitMap.put(new Pair<String, String>("pk", "net/minecraft/stats/StatBase$3"));
+ mObInitMap.put(new Pair<String, String>("ll", "net/minecraft/server/MinecraftServer$5"));
+ mObInitMap.put(
+ new Pair<String, String>("ata", "net/minecraft/world/gen/structure/StructureMineshaftPieces$Room"));
+ mObInitMap.put(new Pair<String, String>("apb", "net/minecraft/tileentity/TileEntityDispenser"));
+ mObInitMap.put(new Pair<String, String>("alc", "net/minecraft/block/BlockFlower"));
+ mObInitMap.put(new Pair<String, String>("ade", "net/minecraft/init/Items"));
+ mObInitMap.put(new Pair<String, String>("ahd", "net/minecraft/world/World$2"));
+ mObInitMap.put(
+ new Pair<String, String>("btd", "net/minecraft/client/network/LanServerDetector$LanServerList"));
+ mObInitMap.put(new Pair<String, String>("bpe", "net/minecraft/client/renderer/entity/RenderWolf"));
+ mObInitMap.put(new Pair<String, String>("blf", "net/minecraft/client/particle/EntityRainFX"));
+ mObInitMap.put(new Pair<String, String>("ia", "net/minecraft/network/play/server/S1FPacketSetExperience"));
+ mObInitMap.put(new Pair<String, String>("eb", "net/minecraft/nbt/JsonToNBT"));
+ mObInitMap.put(new Pair<String, String>("ac", "net/minecraft/command/ICommandSender"));
+ mObInitMap.put(new Pair<String, String>("att",
+ "net/minecraft/world/gen/structure/StructureNetherBridgePieces$PieceWeight"));
+ mObInitMap.put(new Pair<String, String>("apu", "net/minecraft/world/chunk/IChunkProvider"));
+ mObInitMap.put(new Pair<String, String>("alv", "net/minecraft/block/BlockLever"));
+ mObInitMap.put(new Pair<String, String>("adx", "net/minecraft/item/ItemShears"));
+ mObInitMap.put(new Pair<String, String>("ahw", "net/minecraft/world/biome/BiomeGenBase$TempCategory"));
+ mObInitMap.put(new Pair<String, String>("btw", "net/minecraft/client/stream/MetadataAchievement"));
+ mObInitMap.put(new Pair<String, String>("bpx", "net/minecraft/client/renderer/texture/Stitcher$Slot"));
+ mObInitMap.put(new Pair<String, String>("bhz", "net/minecraft/client/model/ModelSign"));
+ mObInitMap.put(new Pair<String, String>("bly", "net/minecraft/client/renderer/ItemRenderer"));
+ mObInitMap.put(new Pair<String, String>("uq", "net/minecraft/entity/ai/EntityAIAttackOnCollide"));
+ mObInitMap.put(new Pair<String, String>("ms", "net/minecraft/world/gen/ChunkProviderServer"));
+ mObInitMap.put(new Pair<String, String>("it",
+ "net/minecraft/network/play/client/C16PacketClientStatus$EnumState"));
+ mObInitMap.put(new Pair<String, String>("eu", "net/minecraft/network/NetworkStatistics"));
+ mObInitMap.put(new Pair<String, String>("av", "net/minecraft/command/CommandServerKick"));
+ mObInitMap.put(new Pair<String, String>("ael", "net/minecraft/item/ItemWritableBook"));
+ mObInitMap.put(new Pair<String, String>("aam", "net/minecraft/inventory/ContainerHorseInventory"));
+ mObInitMap.put(new Pair<String, String>("aik", "net/minecraft/world/biome/BiomeGenJungle"));
+ mObInitMap.put(new Pair<String, String>("m", "net/minecraft/crash/CrashReportCategory$2"));
+ mObInitMap.put(new Pair<String, String>("buk",
+ "net/minecraft/client/stream/IngestServerTester$IngestTestListener"));
+ mObInitMap.put(new Pair<String, String>("bql", "net/minecraft/client/renderer/texture/TextureClock"));
+ mObInitMap.put(new Pair<String, String>("ats",
+ "net/minecraft/world/gen/structure/StructureNetherBridgePieces$Piece"));
+ mObInitMap.put(new Pair<String, String>("axr", "net/minecraft/world/gen/layer/GenLayerHills"));
+ mObInitMap.put(new Pair<String, String>("bap", "net/minecraft/client/Minecraft$1"));
+ mObInitMap
+ .put(new Pair<String, String>("beo", "net/minecraft/client/gui/achievement/GuiStats$StatsItem$1"));
+ mObInitMap.put(new Pair<String, String>("bin", "net/minecraft/client/model/ModelWither"));
+ mObInitMap.put(new Pair<String, String>("bmm",
+ "net/minecraft/client/renderer/tileentity/TileEntityChestRenderer"));
+ mObInitMap
+ .put(new Pair<String, String>("jh", "net/minecraft/network/play/client/C13PacketPlayerAbilities"));
+ mObInitMap.put(new Pair<String, String>("fi", "net/minecraft/event/ClickEvent$Action"));
+ mObInitMap.put(new Pair<String, String>("bj", "net/minecraft/command/server/CommandSaveOn"));
+ mObInitMap.put(new Pair<String, String>("yo", "net/minecraft/entity/monster/EntitySpider$GroupData"));
+ mObInitMap.put(new Pair<String, String>("up", "net/minecraft/entity/ai/EntityAIVillagerMate"));
+ mObInitMap.put(new Pair<String, String>("aqh", "net/minecraft/world/chunk/storage/RegionFile"));
+ mObInitMap.put(new Pair<String, String>("ami", "net/minecraft/block/BlockNewLog"));
+ mObInitMap.put(new Pair<String, String>("aij", "net/minecraft/world/biome/BiomeGenSnow"));
+ mObInitMap.put(new Pair<String, String>("aug", "net/minecraft/world/gen/structure/MapGenStronghold"));
+ mObInitMap.put(new Pair<String, String>("ayf", "net/minecraft/pathfinding/PathEntity"));
+ mObInitMap.put(new Pair<String, String>("bbd", "net/minecraft/client/Minecraft$7"));
+ mObInitMap.put(new Pair<String, String>("bfc", "net/minecraft/client/gui/inventory/GuiBeacon$PowerButton"));
+ mObInitMap.put(new Pair<String, String>("bjb", "net/minecraft/client/network/NetHandlerPlayClient"));
+ mObInitMap.put(
+ new Pair<String, String>("buj", "net/minecraft/client/stream/IngestServerTester$SwitchStatType"));
+ mObInitMap.put(new Pair<String, String>("zc", "net/minecraft/entity/projectile/EntityArrow"));
+ mObInitMap.put(new Pair<String, String>("vd", "net/minecraft/entity/ai/EntityAIArrowAttack"));
+ mObInitMap.put(new Pair<String, String>("re", "net/minecraft/client/renderer/IconFlipped"));
+ mObInitMap.put(new Pair<String, String>("nf", "net/minecraft/network/NetworkSystem$3"));
+ mObInitMap.put(new Pair<String, String>("jg",
+ "net/minecraft/network/play/client/C03PacketPlayer$C05PacketPlayerLook"));
+ mObInitMap.put(new Pair<String, String>("auz",
+ "net/minecraft/world/gen/structure/StructureStrongholdPieces$Stairs2"));
+ mObInitMap.put(new Pair<String, String>("ayy", "net/minecraft/world/storage/WorldInfo$6"));
+ mObInitMap.put(new Pair<String, String>("bja", "net/minecraft/client/network/NetHandlerLoginClient$1"));
+ mObInitMap.put(new Pair<String, String>("net/minecraft/realms/RealmsSharedConstants",
+ "net/minecraft/realms/RealmsSharedConstants"));
+ mObInitMap.put(new Pair<String, String>("zv", "net/minecraft/inventory/ContainerRepair$1"));
+ mObInitMap.put(new Pair<String, String>("vw", "net/minecraft/entity/ai/EntitySenses"));
+ mObInitMap.put(new Pair<String, String>("rx", "net/minecraft/entity/EntityAgeable"));
+ mObInitMap.put(new Pair<String, String>("ny", "net/minecraft/server/management/IPBanEntry"));
+ mObInitMap.put(new Pair<String, String>("jz", "net/minecraft/network/status/server/S01PacketPong"));
+ mObInitMap.put(new Pair<String, String>("aro", "net/minecraft/world/gen/feature/WorldGenFlowers"));
+ mObInitMap.put(new Pair<String, String>("anp", "net/minecraft/block/BlockSponge"));
+ mObInitMap.put(new Pair<String, String>("abs", "net/minecraft/item/ItemMapBase"));
+ mObInitMap.put(new Pair<String, String>("afr", "net/minecraft/enchantment/EnchantmentDurability"));
+ mObInitMap.put(new Pair<String, String>("ajq", "net/minecraft/block/BlockBrewingStand"));
+ mObInitMap.put(new Pair<String, String>("avn", "net/minecraft/world/gen/structure/MapGenVillage"));
+ mObInitMap.put(new Pair<String, String>("brr", "net/minecraft/client/resources/LanguageManager"));
+ mObInitMap.put(new Pair<String, String>("bbv", "net/minecraft/client/gui/GuiIngame"));
+ mObInitMap.put(new Pair<String, String>("bfu", "net/minecraft/client/gui/inventory/GuiInventory"));
+ mObInitMap.put(new Pair<String, String>("bjt", "net/minecraft/client/network/OldServerPinger$2$1"));
+ mObInitMap.put(new Pair<String, String>("bns", "net/minecraft/client/renderer/entity/RenderFish"));
+ mObInitMap.put(new Pair<String, String>("sl", "net/minecraft/command/IEntitySelector$2"));
+ mObInitMap.put(new Pair<String, String>("om", "net/minecraft/server/management/UserList"));
+ mObInitMap.put(new Pair<String, String>("kn", "net/minecraft/init/Bootstrap$10"));
+ mObInitMap.put(new Pair<String, String>("go", "net/minecraft/network/play/server/S30PacketWindowItems"));
+ mObInitMap.put(new Pair<String, String>("cp", "net/minecraft/dispenser/IBehaviorDispenseItem"));
+ mObInitMap.put(new Pair<String, String>("ake", "net/minecraft/block/BlockWorkbench"));
+ mObInitMap.put(new Pair<String, String>("acg", "net/minecraft/item/ItemTool"));
+ mObInitMap.put(new Pair<String, String>("agf", "net/minecraft/enchantment/EnchantmentKnockback"));
+ mObInitMap.put(new Pair<String, String>("bsf",
+ "net/minecraft/client/resources/data/LanguageMetadataSectionSerializer"));
+ mObInitMap.put(new Pair<String, String>("avm", "net/minecraft/world/gen/structure/StructureStart"));
+ mObInitMap.put(new Pair<String, String>("bcj", "net/minecraft/client/gui/GuiOptionButton"));
+ mObInitMap
+ .put(new Pair<String, String>("bgi", "net/minecraft/client/resources/ResourcePackListEntryFound"));
+ mObInitMap.put(new Pair<String, String>("bkh", "net/minecraft/client/particle/EntityHeartFX"));
+ mObInitMap.put(new Pair<String, String>("bog", "net/minecraft/client/renderer/entity/RenderLightningBolt"));
+ mObInitMap.put(new Pair<String, String>("lb", "net/minecraft/client/util/JsonException"));
+ mObInitMap.put(new Pair<String, String>("hc", "net/minecraft/network/play/server/S29PacketSoundEffect"));
+ mObInitMap.put(new Pair<String, String>("dd", "net/minecraft/util/StatCollector"));
+ mObInitMap.put(new Pair<String, String>("wj", "net/minecraft/entity/passive/EntityHorse$1"));
+ mObInitMap.put(new Pair<String, String>("asb", "net/minecraft/world/gen/feature/WorldGenHugeTrees"));
+ mObInitMap.put(new Pair<String, String>("aoc", "net/minecraft/block/BlockTorch"));
+ mObInitMap.put(
+ new Pair<String, String>("awa", "net/minecraft/world/gen/structure/StructureVillagePieces$Start"));
+ mObInitMap.put(new Pair<String, String>("la", "net/minecraft/init/Bootstrap$9"));
+ mObInitMap.put(new Pair<String, String>("aov", "net/minecraft/tileentity/TileEntityBrewingStand"));
+ mObInitMap.put(new Pair<String, String>("akw", "net/minecraft/block/ITileEntityProvider"));
+ mObInitMap.put(new Pair<String, String>("acy", "net/minecraft/item/ItemAppleGold"));
+ mObInitMap.put(new Pair<String, String>("agx", "net/minecraft/world/ColorizerFoliage"));
+ mObInitMap.put(new Pair<String, String>("awt", "net/minecraft/block/material/Material"));
+ mObInitMap.put(new Pair<String, String>("bsx", "net/minecraft/server/integrated/IntegratedServer"));
+ mObInitMap.put(new Pair<String, String>("boy", "net/minecraft/client/renderer/entity/RenderTNTPrimed"));
+ mObInitMap.put(new Pair<String, String>("bkz", "net/minecraft/client/particle/EntitySuspendFX"));
+ mObInitMap.put(new Pair<String, String>("xq", "net/minecraft/entity/item/EntityMinecartFurnace"));
+ mObInitMap.put(new Pair<String, String>("tr", "net/minecraft/entity/EntityBodyHelper"));
+ mObInitMap.put(new Pair<String, String>("lt", "net/minecraft/server/dedicated/DedicatedServer"));
+ mObInitMap.put(new Pair<String, String>("hu", "net/minecraft/network/play/server/S09PacketHeldItemChange"));
+ mObInitMap.put(new Pair<String, String>("dv", "net/minecraft/nbt/NBTUtil"));
+ mObInitMap.put(new Pair<String, String>("ati",
+ "net/minecraft/world/gen/structure/StructureNetherBridgePieces$Straight"));
+ mObInitMap.put(new Pair<String, String>("apj", "net/minecraft/tileentity/TileEntityMobSpawner"));
+ mObInitMap.put(new Pair<String, String>("alk", "net/minecraft/block/BlockBreakable"));
+ mObInitMap.put(new Pair<String, String>("adm", "net/minecraft/item/ItemNameTag"));
+ mObInitMap.put(new Pair<String, String>("ahl", "net/minecraft/world/IBlockAccess"));
+ mObInitMap.put(new Pair<String, String>("btl", "net/minecraft/client/audio/SoundManager$2"));
+ mObInitMap.put(new Pair<String, String>("bpm", "net/minecraft/client/shader/ShaderLoader$ShaderType"));
+ mObInitMap.put(new Pair<String, String>("bdp", "net/minecraft/client/gui/GuiIngameMenu"));
+ mObInitMap.put(new Pair<String, String>("bho", "net/minecraft/client/model/ModelMagmaCube"));
+ mObInitMap.put(new Pair<String, String>("bln", "net/minecraft/entity/boss/BossStatus"));
+ mObInitMap.put(new Pair<String, String>("uf", "net/minecraft/entity/ai/EntityAISwimming"));
+ mObInitMap.put(new Pair<String, String>("qg", "net/minecraft/util/EnumTypeAdapterFactory$1"));
+ mObInitMap.put(new Pair<String, String>("ii", "net/minecraft/network/play/server/S33PacketUpdateSign"));
+ mObInitMap.put(new Pair<String, String>("ej", "net/minecraft/network/NetworkManager"));
+ mObInitMap.put(new Pair<String, String>("ak", "net/minecraft/command/CommandDebug"));
+ mObInitMap.put(new Pair<String, String>("aea", "net/minecraft/item/ItemSimpleFoiled"));
+ mObInitMap.put(new Pair<String, String>("aab", "net/minecraft/inventory/ContainerBrewingStand$Potion"));
+ mObInitMap.put(new Pair<String, String>("b", "net/minecraft/crash/CrashReport"));
+ mObInitMap.put(new Pair<String, String>("bqa", "net/minecraft/client/renderer/texture/TextureMap$1"));
+ mObInitMap.put(new Pair<String, String>("ath",
+ "net/minecraft/world/gen/structure/StructureNetherBridgePieces$End"));
+ mObInitMap.put(new Pair<String, String>("bae", "net/minecraft/scoreboard/Team"));
+ mObInitMap.put(new Pair<String, String>("bed", "net/minecraft/client/gui/GuiScreenOptionsSounds$Button"));
+ mObInitMap.put(new Pair<String, String>("bic", "net/minecraft/client/model/ModelSkeleton"));
+ mObInitMap.put(new Pair<String, String>("bmb", "net/minecraft/client/renderer/RenderGlobal$1"));
+ mObInitMap.put(new Pair<String, String>("yd", "net/minecraft/entity/monster/EntityGhast"));
+ mObInitMap.put(new Pair<String, String>("ue", "net/minecraft/entity/ai/EntityAIFleeSun"));
+ mObInitMap.put(new Pair<String, String>("aau", "net/minecraft/inventory/SlotMerchantResult"));
+ mObInitMap.put(new Pair<String, String>("u", "net/minecraft/util/Util"));
+ mObInitMap.put(new Pair<String, String>("bax", "net/minecraft/client/Minecraft$SwitchMovingObjectType"));
+ mObInitMap.put(new Pair<String, String>("bew", "net/minecraft/client/gui/GuiControls"));
+ mObInitMap.put(new Pair<String, String>("yw", "net/minecraft/entity/player/PlayerCapabilities"));
+ mObInitMap.put(new Pair<String, String>("ux", "net/minecraft/entity/ai/EntityAILookAtVillager"));
+ mObInitMap.put(new Pair<String, String>("mz", "net/minecraft/network/PingResponseHandler"));
+ mObInitMap.put(new Pair<String, String>("aqp", "net/minecraft/world/WorldProviderHell"));
+ mObInitMap.put(new Pair<String, String>("amq", "net/minecraft/block/BlockPortal$Size"));
+ mObInitMap.put(new Pair<String, String>("aat", "net/minecraft/inventory/ContainerMerchant"));
+ mObInitMap.put(new Pair<String, String>("air", "net/minecraft/world/biome/BiomeGenRiver"));
+ mObInitMap.put(new Pair<String, String>("auo",
+ "net/minecraft/world/gen/structure/StructureStrongholdPieces$Crossing"));
+ mObInitMap.put(new Pair<String, String>("ayn", "net/minecraft/world/chunk/storage/AnvilSaveConverter"));
+ mObInitMap.put(new Pair<String, String>("bbl", "net/minecraft/client/settings/GameSettings$SwitchOptions"));
+ mObInitMap.put(new Pair<String, String>("bur", "net/minecraft/client/stream/NullStream"));
+ mObInitMap.put(new Pair<String, String>("bqs", "net/minecraft/client/resources/FolderResourcePack"));
+ mObInitMap.put(new Pair<String, String>("bmt", "net/minecraft/client/renderer/tileentity/RenderEndPortal"));
+ mObInitMap.put(new Pair<String, String>("zk", "net/minecraft/entity/projectile/EntityThrowable"));
+ mObInitMap.put(new Pair<String, String>("vl", "net/minecraft/entity/ai/EntityAITradePlayer"));
+ mObInitMap.put(new Pair<String, String>("rm", "net/minecraft/util/CombatEntry"));
+ mObInitMap.put(new Pair<String, String>("nn", "net/minecraft/server/network/NetHandlerLoginServer"));
+ mObInitMap.put(
+ new Pair<String, String>("jo", "net/minecraft/network/play/client/C08PacketPlayerBlockPlacement"));
+ mObInitMap.put(new Pair<String, String>("fp", "net/minecraft/util/ChatStyle$Serializer"));
+ mObInitMap.put(new Pair<String, String>("bq", "net/minecraft/command/CommandShowSeed"));
+ mObInitMap.put(new Pair<String, String>("ard", "net/minecraft/world/gen/feature/WorldGenBigTree"));
+ mObInitMap.put(new Pair<String, String>("ane", "net/minecraft/block/BlockReed"));
+ mObInitMap.put(new Pair<String, String>("abh", "net/minecraft/item/ItemBlock"));
+ mObInitMap.put(new Pair<String, String>("afg", "net/minecraft/item/crafting/IRecipe"));
+ mObInitMap.put(new Pair<String, String>("ajf", "net/minecraft/block/BlockRailBase$Rail"));
+ mObInitMap.put(new Pair<String, String>("avc",
+ "net/minecraft/world/gen/structure/StructureStrongholdPieces$Stronghold"));
+ mObInitMap.put(
+ new Pair<String, String>("brg", "net/minecraft/client/resources/SimpleReloadableResourceManager"));
+ mObInitMap.put(new Pair<String, String>("bbk", "net/minecraft/client/settings/GameSettings$1"));
+ mObInitMap.put(new Pair<String, String>("bfj", "net/minecraft/client/gui/inventory/GuiCrafting"));
+ mObInitMap.put(new Pair<String, String>("bji", "net/minecraft/client/multiplayer/WorldClient$3"));
+ mObInitMap.put(new Pair<String, String>("bnh", "net/minecraft/client/renderer/entity/RenderCow"));
+ mObInitMap.put(new Pair<String, String>("sa", "net/minecraft/entity/Entity"));
+ mObInitMap.put(new Pair<String, String>("ob", "net/minecraft/server/management/PreYggdrasilConverter$2"));
+ mObInitMap
+ .put(new Pair<String, String>("kc", "net/minecraft/network/ServerStatusResponse$PlayerCountData"));
+ mObInitMap.put(new Pair<String, String>("gd", "net/minecraft/network/play/server/S37PacketStatistics"));
+ mObInitMap.put(new Pair<String, String>("ce", "net/minecraft/command/NumberInvalidException"));
+ mObInitMap.put(new Pair<String, String>("net/minecraft/realms/Realms", "net/minecraft/realms/Realms"));
+ mObInitMap.put(new Pair<String, String>("ajy", "net/minecraft/block/BlockClay"));
+ mObInitMap.put(new Pair<String, String>("afz", "net/minecraft/enchantment/EnchantmentHelper$IModifier"));
+ mObInitMap.put(new Pair<String, String>("brz", "net/minecraft/client/resources/data/AnimationFrame"));
+ mObInitMap.put(new Pair<String, String>("avb",
+ "net/minecraft/world/gen/structure/StructureStrongholdPieces$StairsStraight"));
+ mObInitMap.put(new Pair<String, String>("aza", "net/minecraft/world/storage/WorldInfo$8"));
+ mObInitMap.put(new Pair<String, String>("kv", "net/minecraft/init/Bootstrap$5"));
+ mObInitMap.put(new Pair<String, String>("gw", "net/minecraft/network/play/server/S00PacketKeepAlive"));
+ mObInitMap.put(new Pair<String, String>("cx", "net/minecraft/dispenser/IPosition"));
+ mObInitMap.put(new Pair<String, String>("arv", "net/minecraft/world/gen/feature/WorldGenIcePath"));
+ mObInitMap.put(new Pair<String, String>("anw", "net/minecraft/block/BlockStoneBrick"));
+ mObInitMap.put(new Pair<String, String>("ajx", "net/minecraft/block/BlockChest"));
+ mObInitMap.put(new Pair<String, String>("avu",
+ "net/minecraft/world/gen/structure/StructureVillagePieces$PieceWeight"));
+ mObInitMap.put(new Pair<String, String>("azt", "net/minecraft/util/AxisAlignedBB"));
+ mObInitMap.put(new Pair<String, String>("bcr", "net/minecraft/client/gui/GuiSlotRealmsProxy"));
+ mObInitMap.put(new Pair<String, String>("bgq",
+ "net/minecraft/client/gui/stream/GuiStreamUnavailable$SwitchReason"));
+ mObInitMap.put(new Pair<String, String>("bkp", "net/minecraft/client/particle/EffectRenderer$2"));
+ mObInitMap.put(new Pair<String, String>("wr", "net/minecraft/entity/monster/EntitySnowman"));
+ mObInitMap.put(new Pair<String, String>("ss", "net/minecraft/entity/EntityHanging"));
+ mObInitMap.put(new Pair<String, String>("ot", "net/minecraft/network/rcon/RConOutputStream"));
+ mObInitMap.put(new Pair<String, String>("ku", "net/minecraft/init/Bootstrap$4"));
+ mObInitMap.put(new Pair<String, String>("asj", "net/minecraft/world/gen/feature/WorldGenSand"));
+ mObInitMap.put(new Pair<String, String>("aok", "net/minecraft/block/BlockWeb"));
+ mObInitMap.put(new Pair<String, String>("akl", "net/minecraft/block/BlockDirt"));
+ mObInitMap.put(new Pair<String, String>("acn", "net/minecraft/item/ItemEnderEye"));
+ mObInitMap.put(new Pair<String, String>("agm", "net/minecraft/entity/IMerchant"));
+ mObInitMap.put(new Pair<String, String>("bsm", "net/minecraft/client/audio/MovingSoundMinecart"));
+ mObInitMap.put(new Pair<String, String>("bon", "net/minecraft/client/renderer/entity/RenderPainting"));
+ mObInitMap.put(new Pair<String, String>("bko", "net/minecraft/client/particle/EffectRenderer$1"));
+ mObInitMap.put(new Pair<String, String>("xf", "net/minecraft/util/WeightedRandomFishable"));
+ mObInitMap.put(new Pair<String, String>("tg", "net/minecraft/entity/passive/EntityTameable"));
+ mObInitMap.put(new Pair<String, String>("ph", "net/minecraft/stats/StatBase"));
+ mObInitMap.put(new Pair<String, String>("li", "net/minecraft/server/MinecraftServer$2"));
+ mObInitMap.put(new Pair<String, String>("hj", "net/minecraft/network/play/server/S36PacketSignEditorOpen"));
+ mObInitMap.put(new Pair<String, String>("dk", "net/minecraft/nbt/NBTTagDouble"));
+ mObInitMap.put(new Pair<String, String>("adb", "net/minecraft/item/Item"));
+ mObInitMap.put(new Pair<String, String>("aha", "net/minecraft/world/ColorizerGrass"));
+ mObInitMap.put(new Pair<String, String>("bta", "net/minecraft/client/network/LanServerDetector"));
+ mObInitMap.put(new Pair<String, String>("bpb", "net/minecraft/client/renderer/entity/RenderWitch"));
+ mObInitMap.put(new Pair<String, String>("bde", "net/minecraft/client/gui/GuiScreenServerList"));
+ mObInitMap.put(new Pair<String, String>("bhd", "net/minecraft/client/model/ModelBlaze"));
+ mObInitMap.put(new Pair<String, String>("blc", "net/minecraft/client/particle/EntityBlockDustFX"));
+ mObInitMap.put(new Pair<String, String>("tz", "net/minecraft/entity/ai/EntityAIBreakDoor"));
+ mObInitMap.put(new Pair<String, String>("als", "net/minecraft/block/BlockLadder"));
+ mObInitMap.put(new Pair<String, String>("aht", "net/minecraft/world/biome/BiomeGenBeach"));
+ mObInitMap.put(new Pair<String, String>("btt", "net/minecraft/client/audio/SoundRegistry"));
+ mObInitMap.put(new Pair<String, String>("bpu", "net/minecraft/client/renderer/texture/SimpleTexture"));
+ mObInitMap.put(new Pair<String, String>("bdx", "net/minecraft/client/gui/GuiSelectWorld"));
+ mObInitMap.put(new Pair<String, String>("bhw", "net/minecraft/client/model/ModelQuadruped"));
+ mObInitMap.put(new Pair<String, String>("blv", "net/minecraft/client/renderer/EntityRenderer$2"));
+ mObInitMap.put(new Pair<String, String>("iq", "net/minecraft/network/play/client/C14PacketTabComplete"));
+ mObInitMap.put(new Pair<String, String>("er", "net/minecraft/network/EnumConnectionState$3"));
+ mObInitMap.put(new Pair<String, String>("as", "net/minecraft/command/CommandGameRule"));
+ mObInitMap.put(new Pair<String, String>("xx", "net/minecraft/entity/monster/EntityBlaze"));
+ mObInitMap.put(new Pair<String, String>("ty", "net/minecraft/entity/ai/EntityAIBeg"));
+ mObInitMap.put(new Pair<String, String>("aaj", "net/minecraft/inventory/ContainerFurnace"));
+ mObInitMap.put(new Pair<String, String>("j", "net/minecraft/crash/CrashReport$8"));
+ mObInitMap.put(new Pair<String, String>("atp",
+ "net/minecraft/world/gen/structure/StructureNetherBridgePieces$Corridor2"));
+ mObInitMap.put(new Pair<String, String>("apq", "net/minecraft/block/BlockPistonExtension"));
+ mObInitMap.put(new Pair<String, String>("alr", "net/minecraft/block/BlockJukebox$TileEntityJukebox"));
+ mObInitMap.put(new Pair<String, String>("axo", "net/minecraft/world/gen/layer/GenLayer$1"));
+ mObInitMap.put(new Pair<String, String>("bam", "net/minecraft/client/renderer/RenderHelper"));
+ mObInitMap
+ .put(new Pair<String, String>("bel", "net/minecraft/client/gui/achievement/GuiStats$StatsBlock$1"));
+ mObInitMap.put(new Pair<String, String>("bik", "net/minecraft/client/model/ModelVillager"));
+ mObInitMap.put(new Pair<String, String>("bmj",
+ "net/minecraft/client/renderer/tileentity/TileEntityBeaconRenderer"));
+ mObInitMap.put(new Pair<String, String>("bg", "net/minecraft/command/server/CommandPublishLocalServer"));
+ mObInitMap.put(new Pair<String, String>("yl", "net/minecraft/entity/monster/EntitySkeleton"));
+ mObInitMap.put(new Pair<String, String>("um", "net/minecraft/entity/ai/EntityAILeapAtTarget"));
+ mObInitMap.put(new Pair<String, String>("qn", "net/minecraft/util/StringUtils"));
+ mObInitMap.put(new Pair<String, String>("mo", "net/minecraft/entity/EntityTracker$1"));
+ mObInitMap.put(new Pair<String, String>("amf", "net/minecraft/block/BlockNetherWart"));
+ mObInitMap.put(new Pair<String, String>("aeh", "net/minecraft/item/ItemSword"));
+ mObInitMap.put(new Pair<String, String>("aai", "net/minecraft/inventory/ContainerEnchantment$2"));
+ mObInitMap.put(new Pair<String, String>("aig", "net/minecraft/world/biome/BiomeGenForest$1"));
+ mObInitMap.put(new Pair<String, String>("aud",
+ "net/minecraft/world/gen/structure/ComponentScatteredFeaturePieces$JunglePyramid$Stones"));
+ mObInitMap.put(new Pair<String, String>("ayc", "net/minecraft/world/gen/layer/GenLayerZoom"));
+ mObInitMap.put(new Pair<String, String>("bba", "net/minecraft/client/Minecraft$4"));
+ mObInitMap.put(new Pair<String, String>("bug", "net/minecraft/client/stream/ChatController$ChatState"));
+ mObInitMap.put(new Pair<String, String>("bqh", "net/minecraft/client/renderer/texture/ITextureObject"));
+ mObInitMap.put(new Pair<String, String>("bmi", "net/minecraft/client/shader/TesselatorVertexState"));
+ mObInitMap.put(new Pair<String, String>("va", "net/minecraft/entity/ai/EntityAIPlay"));
+ mObInitMap.put(new Pair<String, String>("rb", "net/minecraft/inventory/IInventory"));
+ mObInitMap.put(new Pair<String, String>("nc", "net/minecraft/network/NetworkSystem"));
+ mObInitMap.put(new Pair<String, String>("jd", "net/minecraft/network/play/client/C03PacketPlayer"));
+ mObInitMap.put(new Pair<String, String>("fe", "net/minecraft/util/ChatComponentStyle"));
+ mObInitMap.put(new Pair<String, String>("bf", "net/minecraft/command/CommandPlaySound"));
+ mObInitMap.put(new Pair<String, String>("aqx", "net/minecraft/world/gen/MapGenBase"));
+ mObInitMap.put(new Pair<String, String>("amy", "net/minecraft/block/BlockRail"));
+ mObInitMap.put(new Pair<String, String>("aiz", "net/minecraft/world/gen/feature/WorldGenWaterlily"));
+ mObInitMap.put(new Pair<String, String>("auw",
+ "net/minecraft/world/gen/structure/StructureStrongholdPieces$Stones"));
+ mObInitMap.put(new Pair<String, String>("vt", "net/minecraft/entity/ai/EntityAIOwnerHurtTarget"));
+ mObInitMap.put(new Pair<String, String>("ru", "net/minecraft/potion/PotionHealth"));
+ mObInitMap.put(
+ new Pair<String, String>("nv", "net/minecraft/server/management/PlayerProfileCache$ProfileEntry"));
+ mObInitMap.put(new Pair<String, String>("jw", "net/minecraft/network/login/client/C00PacketLoginStart"));
+ mObInitMap.put(
+ new Pair<String, String>("fx", "net/minecraft/network/play/server/S11PacketSpawnExperienceOrb"));
+ mObInitMap.put(new Pair<String, String>("by", "net/minecraft/command/server/CommandTestFor"));
+ mObInitMap.put(new Pair<String, String>("abp", "net/minecraft/item/ItemCarrotOnAStick"));
+ mObInitMap.put(new Pair<String, String>("afo", "net/minecraft/enchantment/EnchantmentArrowInfinite"));
+ mObInitMap.put(new Pair<String, String>("ajn", "net/minecraft/init/Blocks"));
+ mObInitMap.put(new Pair<String, String>("bro",
+ "net/minecraft/client/resources/SkinManager$SkinAvailableCallback"));
+ mObInitMap.put(new Pair<String, String>("auv",
+ "net/minecraft/world/gen/structure/StructureStrongholdPieces$RoomCrossing"));
+ mObInitMap.put(new Pair<String, String>("ayu", "net/minecraft/world/storage/WorldInfo$2"));
+ mObInitMap.put(new Pair<String, String>("bbs", "net/minecraft/util/Session"));
+ mObInitMap.put(new Pair<String, String>("bfr", "net/minecraft/client/gui/inventory/GuiFurnace"));
+ mObInitMap.put(new Pair<String, String>("bjq", "net/minecraft/client/network/OldServerPinger"));
+ mObInitMap.put(new Pair<String, String>("bnp", "net/minecraft/client/renderer/entity/RenderXPOrb"));
+ mObInitMap.put(new Pair<String, String>("kk", "net/minecraft/dispenser/BehaviorProjectileDispense"));
+ mObInitMap.put(
+ new Pair<String, String>("gl", "net/minecraft/network/play/server/S32PacketConfirmTransaction"));
+ mObInitMap.put(new Pair<String, String>("cm", "net/minecraft/dispenser/BehaviorDefaultDispenseItem"));
+ mObInitMap.put(new Pair<String, String>("zr", "net/minecraft/util/FoodStats"));
+ mObInitMap.put(new Pair<String, String>("vs", "net/minecraft/entity/ai/EntityAIOwnerHurtByTarget"));
+ mObInitMap.put(new Pair<String, String>("ark", "net/minecraft/world/gen/feature/WorldGenDeadBush"));
+ mObInitMap.put(new Pair<String, String>("anl", "net/minecraft/block/BlockSkull"));
+ mObInitMap.put(new Pair<String, String>("ajm", "net/minecraft/block/Block$SoundType"));
+ mObInitMap.put(new Pair<String, String>("avj", "net/minecraft/world/gen/structure/MapGenStructureData"));
+ mObInitMap.put(new Pair<String, String>("bgf", "net/minecraft/client/gui/GuiScreenResourcePacks"));
+ mObInitMap.put(new Pair<String, String>("bke", "net/minecraft/client/particle/EntityFireworkStarterFX"));
+ mObInitMap.put(new Pair<String, String>("wg", "net/minecraft/entity/passive/EntityChicken"));
+ mObInitMap.put(new Pair<String, String>("sh", "net/minecraft/entity/EntityList$EntityEggInfo"));
+ mObInitMap
+ .put(new Pair<String, String>("oi", "net/minecraft/server/management/ServerConfigurationManager"));
+ mObInitMap.put(new Pair<String, String>("kj", "net/minecraft/network/status/client/C00PacketServerQuery"));
+ mObInitMap.put(new Pair<String, String>("aka", "net/minecraft/block/BlockColored"));
+ mObInitMap.put(new Pair<String, String>("acc", "net/minecraft/creativetab/CreativeTabs$6"));
+ mObInitMap
+ .put(new Pair<String, String>("agb", "net/minecraft/enchantment/EnchantmentHelper$ModifierDamage"));
+ mObInitMap.put(new Pair<String, String>("bsb",
+ "net/minecraft/client/resources/data/AnimationMetadataSectionSerializer"));
+ mObInitMap.put(new Pair<String, String>("bkd", "net/minecraft/client/particle/EntityFireworkSparkFX"));
+ mObInitMap.put(new Pair<String, String>("boc", "net/minecraft/client/renderer/entity/RenderItem$4"));
+ mObInitMap.put(new Pair<String, String>("wz", "net/minecraft/entity/item/EntityEnderCrystal"));
+ mObInitMap.put(new Pair<String, String>("asr", "net/minecraft/world/gen/feature/WorldGenVines"));
+ mObInitMap.put(new Pair<String, String>("aos", "net/minecraft/tileentity/TileEntity$1"));
+ mObInitMap.put(new Pair<String, String>("akt", "net/minecraft/block/BlockEndPortal"));
+ mObInitMap.put(new Pair<String, String>("acv", "net/minecraft/item/ItemFishingRod"));
+ mObInitMap.put(new Pair<String, String>("agu", "net/minecraft/world/ChunkCoordIntPair"));
+ mObInitMap.put(new Pair<String, String>("awq", "net/minecraft/block/material/MaterialLogic"));
+ mObInitMap.put(new Pair<String, String>("bsu", "net/minecraft/client/audio/ISound$AttenuationType"));
+ mObInitMap.put(new Pair<String, String>("bov", "net/minecraft/client/renderer/entity/RenderSpider"));
+ mObInitMap.put(new Pair<String, String>("bcy", "net/minecraft/client/multiplayer/GuiConnecting$1"));
+ mObInitMap.put(new Pair<String, String>("bkw", "net/minecraft/client/particle/EntitySnowShovelFX"));
+ mObInitMap.put(new Pair<String, String>("net/minecraft/realms/RealmsAnvilLevelStorageSource",
+ "net/minecraft/realms/RealmsAnvilLevelStorageSource"));
+ mObInitMap.put(new Pair<String, String>("to", "net/minecraft/entity/ai/attributes/RangedAttribute"));
+ mObInitMap.put(new Pair<String, String>("pp", "net/minecraft/stats/StatList"));
+ mObInitMap.put(new Pair<String, String>("lq", "net/minecraft/server/dedicated/PropertyManager"));
+ mObInitMap.put(
+ new Pair<String, String>("hr", "net/minecraft/network/play/server/S1EPacketRemoveEntityEffect"));
+ mObInitMap.put(new Pair<String, String>("ds", "net/minecraft/nbt/NBTSizeTracker"));
+ mObInitMap.put(new Pair<String, String>("alh", "net/minecraft/block/BlockGrass"));
+ mObInitMap.put(new Pair<String, String>("adj", "net/minecraft/item/ItemMinecart"));
+ mObInitMap.put(new Pair<String, String>("bti", "net/minecraft/client/audio/SoundPoolEntry"));
+ mObInitMap.put(new Pair<String, String>("bpj", "net/minecraft/client/shader/ShaderGroup"));
+ mObInitMap.put(new Pair<String, String>("awp", "net/minecraft/world/gen/NoiseGenerator"));
+ mObInitMap.put(new Pair<String, String>("bdm", "net/minecraft/client/gui/GuiOptions"));
+ mObInitMap.put(new Pair<String, String>("bhl", "net/minecraft/client/model/ModelGhast"));
+ mObInitMap.put(new Pair<String, String>("blk", "net/minecraft/client/entity/EntityPlayerSP"));
+ mObInitMap.put(new Pair<String, String>("me", "net/minecraft/server/gui/PlayerListComponent"));
+ mObInitMap.put(new Pair<String, String>("eg", "net/minecraft/network/NettyEncryptionTranslator"));
+ mObInitMap.put(new Pair<String, String>("ah", "net/minecraft/command/server/CommandBroadcast"));
+ mObInitMap.put(new Pair<String, String>("xm", "net/minecraft/entity/item/EntityMinecartChest"));
+ mObInitMap.put(
+ new Pair<String, String>("net/minecraft/realms/Tezzelator", "net/minecraft/realms/Tezzelator"));
+ mObInitMap
+ .put(new Pair<String, String>("ate", "net/minecraft/world/gen/structure/MapGenNetherBridge$Start"));
+ mObInitMap.put(new Pair<String, String>("apf", "net/minecraft/tileentity/TileEntityFlowerPot"));
+ mObInitMap.put(new Pair<String, String>("alg", "net/minecraft/block/BlockGlowstone"));
+ mObInitMap.put(new Pair<String, String>("axd", "net/minecraft/world/gen/layer/GenLayerAddSnow"));
+ mObInitMap.put(new Pair<String, String>("bea", "net/minecraft/client/gui/GuiSnooper"));
+ mObInitMap.put(new Pair<String, String>("ya", "net/minecraft/entity/monster/EntityEnderman"));
+ mObInitMap.put(new Pair<String, String>("ub", "net/minecraft/entity/ai/EntityAIControlledByPlayer"));
+ mObInitMap.put(new Pair<String, String>("qc", "net/minecraft/util/ThreadSafeBoundList"));
+ mObInitMap.put(new Pair<String, String>("md", "net/minecraft/server/gui/MinecraftServerGui$5"));
+ mObInitMap.put(new Pair<String, String>("r", "net/minecraft/util/ChunkCoordinates"));
+ mObInitMap.put(new Pair<String, String>("atx", "net/minecraft/world/gen/structure/MapGenScatteredFeature"));
+ mObInitMap.put(new Pair<String, String>("apy", "net/minecraft/world/chunk/Chunk$1"));
+ mObInitMap.put(new Pair<String, String>("alz", "net/minecraft/block/BlockCompressed"));
+ mObInitMap.put(new Pair<String, String>("axw", "net/minecraft/world/gen/layer/GenLayerShore"));
+ mObInitMap.put(new Pair<String, String>("bau", "net/minecraft/client/Minecraft$14"));
+ mObInitMap.put(new Pair<String, String>("yt", "net/minecraft/entity/NpcMerchant"));
+ mObInitMap.put(new Pair<String, String>("uu", "net/minecraft/entity/ai/EntityAIMoveTowardsTarget"));
+ mObInitMap.put(new Pair<String, String>("qv", "net/minecraft/util/WeightedRandom"));
+ mObInitMap.put(new Pair<String, String>("mw", "net/minecraft/entity/player/EntityPlayerMP"));
+ mObInitMap.put(new Pair<String, String>("ix", "net/minecraft/network/play/client/C0EPacketClickWindow"));
+ mObInitMap.put(new Pair<String, String>("ey", "net/minecraft/network/NetworkStatistics$PacketStatData"));
+ mObInitMap.put(new Pair<String, String>("az", "net/minecraft/command/server/CommandMessage"));
+ mObInitMap.put(new Pair<String, String>("amn", "net/minecraft/block/BlockOre"));
+ mObInitMap.put(new Pair<String, String>("aaq", "net/minecraft/inventory/ContainerPlayer$1"));
+ mObInitMap.put(new Pair<String, String>("aio", "net/minecraft/world/biome/BiomeGenOcean"));
+ mObInitMap.put(new Pair<String, String>("aul",
+ "net/minecraft/world/gen/structure/StructureStrongholdPieces$SwitchDoor"));
+ mObInitMap.put(new Pair<String, String>("buo", "net/minecraft/client/stream/TwitchStream"));
+ mObInitMap.put(new Pair<String, String>("bqp", "net/minecraft/client/resources/DefaultResourcePack"));
+ mObInitMap.put(new Pair<String, String>("bat", "net/minecraft/client/Minecraft$13"));
+ mObInitMap.put(new Pair<String, String>("bes", "net/minecraft/client/gui/GuiKeyBindingList"));
+ mObInitMap.put(new Pair<String, String>("bir", "net/minecraft/client/model/ModelEnderCrystal"));
+ mObInitMap.put(new Pair<String, String>("bmq",
+ "net/minecraft/client/renderer/tileentity/TileEntityRendererPiston"));
+ mObInitMap.put(new Pair<String, String>("vi", "net/minecraft/entity/ai/EntityAICreeperSwell"));
+ mObInitMap.put(new Pair<String, String>("rj", "net/minecraft/profiler/PlayerUsageSnooper$1"));
+ mObInitMap
+ .put(new Pair<String, String>("nk", "net/minecraft/network/NetHandlerPlayServer$SwitchEnumState"));
+ mObInitMap.put(new Pair<String, String>("jl", "net/minecraft/network/play/client/C09PacketHeldItemChange"));
+ mObInitMap.put(new Pair<String, String>("fm", "net/minecraft/event/HoverEvent$Action"));
+ mObInitMap.put(new Pair<String, String>("bn", "net/minecraft/command/server/CommandSetDefaultSpawnpoint"));
+ mObInitMap.put(new Pair<String, String>("abe", "net/minecraft/item/ItemBlockWithMetadata"));
+ mObInitMap.put(new Pair<String, String>("afd", "net/minecraft/item/crafting/RecipesIngots"));
+ mObInitMap.put(new Pair<String, String>("ajc", "net/minecraft/block/BlockContainer"));
+ mObInitMap.put(new Pair<String, String>("brd", "net/minecraft/client/resources/ResourcePackRepository$1"));
+ mObInitMap.put(
+ new Pair<String, String>("auk", "net/minecraft/world/gen/structure/StructureStrongholdPieces$2"));
+ mObInitMap.put(new Pair<String, String>("ayj", "net/minecraft/world/storage/MapData$MapInfo"));
+ mObInitMap.put(new Pair<String, String>("bbh", "net/minecraft/client/renderer/OpenGlCapsChecker"));
+ mObInitMap.put(new Pair<String, String>("bfg", "net/minecraft/client/gui/inventory/GuiBrewingStand"));
+ mObInitMap.put(new Pair<String, String>("bjf", "net/minecraft/client/multiplayer/WorldClient"));
+ mObInitMap.put(new Pair<String, String>("bne", "net/minecraft/client/renderer/entity/RenderBoat"));
+ mObInitMap.put(new Pair<String, String>("ga", "net/minecraft/network/play/server/S10PacketSpawnPainting"));
+ mObInitMap.put(new Pair<String, String>("cb", "net/minecraft/command/CommandWeather"));
+ mObInitMap.put(new Pair<String, String>("zg", "net/minecraft/entity/projectile/EntityLargeFireball"));
+ mObInitMap.put(new Pair<String, String>("vh", "net/minecraft/entity/ai/EntityAISit"));
+ mObInitMap.put(new Pair<String, String>("abx", "net/minecraft/creativetab/CreativeTabs$12"));
+ mObInitMap.put(new Pair<String, String>("ana", "net/minecraft/block/BlockRedstoneWire"));
+ mObInitMap.put(new Pair<String, String>("bfz", "net/minecraft/client/gui/GuiMultiplayer"));
+ mObInitMap.put(new Pair<String, String>("bjy", "net/minecraft/client/particle/EntityDropParticleFX"));
+ mObInitMap.put(new Pair<String, String>("zz", "net/minecraft/inventory/ContainerBrewingStand"));
+ mObInitMap.put(new Pair<String, String>("ars", "net/minecraft/world/gen/feature/WorldGenHellLava"));
+ mObInitMap.put(new Pair<String, String>("ant", "net/minecraft/block/BlockStaticLiquid"));
+ mObInitMap.put(new Pair<String, String>("abw", "net/minecraft/creativetab/CreativeTabs$11"));
+ mObInitMap.put(new Pair<String, String>("afv", "net/minecraft/enchantment/EnchantmentHelper"));
+ mObInitMap.put(new Pair<String, String>("aju", "net/minecraft/block/BlockCake"));
+ mObInitMap.put(
+ new Pair<String, String>("avr", "net/minecraft/world/gen/structure/StructureVillagePieces$Field1"));
+ mObInitMap.put(new Pair<String, String>("azq", "net/minecraft/world/storage/MapStorage"));
+ mObInitMap.put(new Pair<String, String>("bco", "net/minecraft/client/gui/GuiStreamIndicator"));
+ mObInitMap.put(
+ new Pair<String, String>("brv", "net/minecraft/client/resources/data/IMetadataSectionSerializer"));
+ mObInitMap.put(new Pair<String, String>("bnw", "net/minecraft/client/renderer/entity/RenderBiped"));
+ mObInitMap.put(new Pair<String, String>("wo", "net/minecraft/entity/passive/EntityPig"));
+ mObInitMap.put(new Pair<String, String>("sp", "net/minecraft/command/IEntitySelector$ArmoredMob"));
+ mObInitMap.put(new Pair<String, String>("oq", "net/minecraft/server/management/UserListBansEntry"));
+ mObInitMap.put(new Pair<String, String>("kr", "net/minecraft/init/Bootstrap$14"));
+ mObInitMap.put(new Pair<String, String>("gs", "net/minecraft/network/play/server/S40PacketDisconnect"));
+ mObInitMap.put(new Pair<String, String>("ct", "net/minecraft/util/ObjectIntIdentityMap"));
+ mObInitMap.put(new Pair<String, String>("net/minecraft/realms/RealmsEditBox",
+ "net/minecraft/realms/RealmsEditBox"));
+ mObInitMap.put(new Pair<String, String>("asg", "net/minecraft/world/gen/feature/WorldGenPumpkin"));
+ mObInitMap.put(new Pair<String, String>("aoh", "net/minecraft/block/BlockVine"));
+ mObInitMap.put(new Pair<String, String>("aki", "net/minecraft/block/BlockRailDetector"));
+ mObInitMap.put(new Pair<String, String>("ack", "net/minecraft/item/ItemEgg"));
+ mObInitMap.put(new Pair<String, String>("agj", "net/minecraft/enchantment/EnchantmentThorns"));
+ mObInitMap.put(
+ new Pair<String, String>("awf", "net/minecraft/world/gen/structure/StructureVillagePieces$Well"));
+ mObInitMap.put(new Pair<String, String>("bsj",
+ "net/minecraft/client/resources/data/TextureMetadataSectionSerializer"));
+ mObInitMap.put(new Pair<String, String>("bok", "net/minecraft/client/renderer/entity/RenderLiving"));
+ mObInitMap.put(new Pair<String, String>("bcn", "net/minecraft/client/gui/GuiOptionSlider"));
+ mObInitMap.put(new Pair<String, String>("bgm", "net/minecraft/client/gui/stream/GuiIngestServers"));
+ mObInitMap.put(new Pair<String, String>("bkl", "net/minecraft/client/particle/EntityNoteFX"));
+ mObInitMap.put(new Pair<String, String>("xc", "net/minecraft/entity/boss/EntityWither"));
+ mObInitMap.put(new Pair<String, String>("td", "net/minecraft/entity/EntityCreature"));
+ mObInitMap.put(new Pair<String, String>("pe", "net/minecraft/stats/StatBasic"));
+ mObInitMap.put(new Pair<String, String>("hg",
+ "net/minecraft/network/play/server/S14PacketEntity$S15PacketEntityRelMove"));
+ mObInitMap.put(new Pair<String, String>("dh", "net/minecraft/nbt/NBTTagCompound"));
+ mObInitMap.put(
+ new Pair<String, String>("awe", "net/minecraft/world/gen/structure/StructureVillagePieces$Road"));
+ mObInitMap.put(new Pair<String, String>("bdb", "net/minecraft/client/gui/GuiCreateWorld"));
+ mObInitMap.put(new Pair<String, String>("ly", "net/minecraft/server/gui/MinecraftServerGui"));
+ mObInitMap
+ .put(new Pair<String, String>("hz", "net/minecraft/network/play/server/S04PacketEntityEquipment"));
+ mObInitMap.put(new Pair<String, String>("asy",
+ "net/minecraft/world/gen/structure/StructureMineshaftPieces$Corridor"));
+ mObInitMap.put(new Pair<String, String>("aoz", "net/minecraft/tileentity/TileEntityComparator"));
+ mObInitMap.put(new Pair<String, String>("awx", "net/minecraft/world/gen/layer/GenLayerDeepOcean"));
+ mObInitMap.put(new Pair<String, String>("bdu", "net/minecraft/client/gui/GuiDownloadTerrain"));
+ mObInitMap.put(new Pair<String, String>("bht", "net/minecraft/client/model/ModelOcelot"));
+ mObInitMap.put(new Pair<String, String>("bls",
+ "net/minecraft/client/renderer/tileentity/TileEntityRendererChestHelper"));
+ mObInitMap.put(new Pair<String, String>("ap", "net/minecraft/command/CommandXP"));
+ mObInitMap.put(new Pair<String, String>("xu", "net/minecraft/entity/ai/EntityMinecartMobSpawner$1"));
+ mObInitMap.put(new Pair<String, String>("tv", "net/minecraft/entity/ai/EntityMoveHelper"));
+ mObInitMap.put(new Pair<String, String>("pw", "net/minecraft/util/HttpUtil$1"));
+ mObInitMap.put(new Pair<String, String>("lx", "net/minecraft/server/dedicated/DedicatedServer$4"));
+ mObInitMap.put(new Pair<String, String>("g", "net/minecraft/crash/CrashReport$5"));
+ mObInitMap.put(new Pair<String, String>("atm",
+ "net/minecraft/world/gen/structure/StructureNetherBridgePieces$Crossing2"));
+ mObInitMap.put(new Pair<String, String>("apn", "net/minecraft/tileentity/TileEntitySkull"));
+ mObInitMap.put(new Pair<String, String>("alo", "net/minecraft/block/BlockHugeMushroom"));
+ mObInitMap.put(new Pair<String, String>("adq", "net/minecraft/item/EnumRarity"));
+ mObInitMap.put(new Pair<String, String>("ahp", "net/minecraft/world/Teleporter"));
+ mObInitMap.put(new Pair<String, String>("axl", "net/minecraft/world/gen/layer/IntCache"));
+ mObInitMap.put(new Pair<String, String>("baj", "net/minecraft/client/renderer/ActiveRenderInfo"));
+ mObInitMap.put(new Pair<String, String>("btp", "net/minecraft/client/audio/SoundHandler"));
+ mObInitMap.put(new Pair<String, String>("bpq", "net/minecraft/client/renderer/texture/DynamicTexture"));
+ mObInitMap.put(new Pair<String, String>("blr", "net/minecraft/client/util/RenderDistanceSorter"));
+ mObInitMap.put(new Pair<String, String>("yi", "net/minecraft/entity/IRangedAttackMob"));
+ mObInitMap.put(new Pair<String, String>("uj", "net/minecraft/entity/ai/EntityAITasks"));
+ mObInitMap.put(new Pair<String, String>("qk", "net/minecraft/util/IProgressUpdate"));
+ mObInitMap.put(new Pair<String, String>("ml", "net/minecraft/world/demo/DemoWorldManager"));
+ mObInitMap.put(new Pair<String, String>("im",
+ "net/minecraft/network/play/server/S20PacketEntityProperties$Snapshot"));
+ mObInitMap.put(new Pair<String, String>("en",
+ "net/minecraft/network/NetworkManager$InboundHandlerTuplePacketListener"));
+ mObInitMap.put(new Pair<String, String>("ao", "net/minecraft/command/CommandEnchant"));
+ mObInitMap.put(new Pair<String, String>("amc", "net/minecraft/block/BlockMushroom"));
+ mObInitMap.put(new Pair<String, String>("aee", "net/minecraft/item/ItemMonsterPlacer"));
+ mObInitMap.put(new Pair<String, String>("aaf", "net/minecraft/inventory/ContainerWorkbench"));
+ mObInitMap.put(new Pair<String, String>("aid", "net/minecraft/world/biome/BiomeGenHills"));
+ mObInitMap.put(new Pair<String, String>("aua",
+ "net/minecraft/world/gen/structure/ComponentScatteredFeaturePieces$1"));
+ mObInitMap.put(new Pair<String, String>("bud",
+ "net/minecraft/client/stream/BroadcastController$BroadcastListener"));
+ mObInitMap
+ .put(new Pair<String, String>("bqe", "net/minecraft/client/renderer/texture/TextureAtlasSprite$1"));
+ mObInitMap.put(new Pair<String, String>("beh", "net/minecraft/client/gui/achievement/GuiAchievement"));
+ mObInitMap.put(new Pair<String, String>("big", "net/minecraft/client/model/ModelSpider"));
+ mObInitMap.put(new Pair<String, String>("ja", "net/minecraft/network/play/client/C02PacketUseEntity"));
+ mObInitMap.put(new Pair<String, String>("fb", "net/minecraft/network/INetHandler"));
+ mObInitMap.put(new Pair<String, String>("bc", "net/minecraft/command/server/CommandOp"));
+ mObInitMap.put(new Pair<String, String>("amv", "net/minecraft/block/BlockPressurePlate$Sensitivity"));
+ mObInitMap.put(new Pair<String, String>("aex", "net/minecraft/item/crafting/RecipesDyes"));
+ mObInitMap.put(new Pair<String, String>("aay", "net/minecraft/inventory/Slot"));
+ mObInitMap.put(new Pair<String, String>("aiw", "net/minecraft/world/biome/BiomeGenTaiga"));
+ mObInitMap.put(new Pair<String, String>("y", "net/minecraft/command/CommandBase"));
+ mObInitMap.put(new Pair<String, String>("bqx", "net/minecraft/util/ResourceLocation"));
+ mObInitMap.put(new Pair<String, String>("biz", "net/minecraft/client/network/NetHandlerLoginClient"));
+ mObInitMap.put(new Pair<String, String>("bmy", "net/minecraft/client/renderer/culling/ClippingHelper"));
+ mObInitMap.put(
+ new Pair<String, String>("jt", "net/minecraft/network/login/server/S01PacketEncryptionRequest"));
+ mObInitMap.put(new Pair<String, String>("fu", "net/minecraft/network/play/server/S08PacketPlayerPosLook"));
+ mObInitMap.put(new Pair<String, String>("bv", "net/minecraft/command/server/CommandTeleport"));
+ mObInitMap.put(new Pair<String, String>("net/minecraft/realms/RealmsConnect",
+ "net/minecraft/realms/RealmsConnect"));
+ mObInitMap.put(new Pair<String, String>("abm", "net/minecraft/item/ItemBow"));
+ mObInitMap.put(new Pair<String, String>("amu", "net/minecraft/block/BlockPressurePlate"));
+ mObInitMap.put(new Pair<String, String>("aus",
+ "net/minecraft/world/gen/structure/StructureStrongholdPieces$PortalRoom"));
+ mObInitMap.put(new Pair<String, String>("ayr", "net/minecraft/world/storage/SaveFormatOld"));
+ mObInitMap.put(new Pair<String, String>("bbp", "net/minecraft/util/ScreenShotHelper"));
+ mObInitMap.put(new Pair<String, String>("bfo", "net/minecraft/client/renderer/InventoryEffectRenderer"));
+ mObInitMap.put(new Pair<String, String>("bjn", "net/minecraft/client/multiplayer/ServerData"));
+ mObInitMap.put(new Pair<String, String>("bnm", "net/minecraft/client/renderer/entity/RenderEnderman"));
+ mObInitMap.put(new Pair<String, String>("zo", "net/minecraft/entity/projectile/EntityPotion"));
+ mObInitMap.put(new Pair<String, String>("vp", "net/minecraft/entity/ai/EntityAINearestAttackableTarget$1"));
+ mObInitMap.put(new Pair<String, String>("rq", "net/minecraft/util/EntityDamageSourceIndirect"));
+ mObInitMap.put(new Pair<String, String>("nr", "net/minecraft/server/management/BanEntry"));
+ mObInitMap.put(new Pair<String, String>("arh", "net/minecraft/world/gen/feature/WorldGenCactus"));
+ mObInitMap.put(new Pair<String, String>("ani", "net/minecraft/block/BlockSandStone"));
+ mObInitMap.put(new Pair<String, String>("abl", "net/minecraft/item/ItemGlassBottle"));
+ mObInitMap.put(new Pair<String, String>("afk", "net/minecraft/item/crafting/RecipesTools"));
+ mObInitMap.put(new Pair<String, String>("ajj", "net/minecraft/block/Block$1"));
+ mObInitMap.put(new Pair<String, String>("avg", "net/minecraft/world/gen/structure/MapGenStructure$2"));
+ mObInitMap.put(new Pair<String, String>("azf", "net/minecraft/world/storage/SaveFormatComparator"));
+ mObInitMap.put(new Pair<String, String>("bcd", "net/minecraft/client/gui/GuiTextField"));
+ mObInitMap.put(new Pair<String, String>("brk", "net/minecraft/client/resources/SkinManager$1"));
+ mObInitMap.put(new Pair<String, String>("bnl", "net/minecraft/client/renderer/entity/RenderDragon"));
+ mObInitMap.put(new Pair<String, String>("wd", "net/minecraft/entity/passive/EntityAmbientCreature"));
+ mObInitMap.put(new Pair<String, String>("se", "net/minecraft/entity/Entity$EnumEntitySize"));
+ mObInitMap.put(new Pair<String, String>("of", "net/minecraft/server/management/PreYggdrasilConverter$6"));
+ mObInitMap.put(new Pair<String, String>("kg",
+ "net/minecraft/network/ServerStatusResponse$MinecraftProtocolVersionIdentifier$Serializer"));
+ mObInitMap.put(new Pair<String, String>("gh", "net/minecraft/network/play/server/S23PacketBlockChange"));
+ mObInitMap.put(new Pair<String, String>("ci", "net/minecraft/command/WrongUsageException"));
+ mObInitMap.put(
+ new Pair<String, String>("avz", "net/minecraft/world/gen/structure/StructureVillagePieces$House2"));
+ mObInitMap.put(
+ new Pair<String, String>("net/minecraft/realms/RealmsButton", "net/minecraft/realms/RealmsButton"));
+ mObInitMap.put(new Pair<String, String>("bcc", "net/minecraft/client/gui/GuiNewChat"));
+ mObInitMap.put(new Pair<String, String>("bgb", "net/minecraft/client/gui/ServerListEntryLanDetected"));
+ mObInitMap.put(new Pair<String, String>("bka", "net/minecraft/client/particle/EntityExplodeFX"));
+ mObInitMap.put(new Pair<String, String>("ww", "net/minecraft/entity/boss/IBossDisplayData"));
+ mObInitMap.put(new Pair<String, String>("sx", "net/minecraft/entity/EnumCreatureType"));
+ mObInitMap.put(new Pair<String, String>("oy", "net/minecraft/network/rcon/RConThreadQuery$Auth"));
+ mObInitMap.put(new Pair<String, String>("kz", "net/minecraft/init/Bootstrap$8"));
+ mObInitMap.put(new Pair<String, String>("akq", "net/minecraft/block/BlockDropper"));
+ mObInitMap.put(new Pair<String, String>("acs", "net/minecraft/item/ItemFirework"));
+ mObInitMap.put(new Pair<String, String>("agr",
+ "net/minecraft/tileentity/MobSpawnerBaseLogic$WeightedRandomMinecart"));
+ mObInitMap.put(new Pair<String, String>("bsr", "net/minecraft/client/audio/SoundList$SoundEntry$Type"));
+ mObInitMap.put(new Pair<String, String>("bos", "net/minecraft/client/renderer/entity/RenderSkeleton"));
+ mObInitMap.put(
+ new Pair<String, String>("avy", "net/minecraft/world/gen/structure/StructureVillagePieces$Church"));
+ mObInitMap.put(new Pair<String, String>("azx", "net/minecraft/scoreboard/ScoreObjective"));
+ mObInitMap.put(new Pair<String, String>("bcv", "net/minecraft/client/gui/GuiYesNoCallback"));
+ mObInitMap.put(new Pair<String, String>("bgu", "net/minecraft/client/main/Main$1$1"));
+ mObInitMap.put(new Pair<String, String>("bkt", "net/minecraft/client/particle/EntityPortalFX"));
+ mObInitMap.put(new Pair<String, String>("ln", "net/minecraft/server/management/PlayerPositionComparator"));
+ mObInitMap.put(new Pair<String, String>("ho", "net/minecraft/network/play/server/S38PacketPlayerListItem"));
+ mObInitMap.put(new Pair<String, String>("dp", "net/minecraft/nbt/NBTTagInt"));
+ mObInitMap.put(new Pair<String, String>("wv", "net/minecraft/entity/passive/EntityWolf"));
+ mObInitMap.put(new Pair<String, String>("asn", "net/minecraft/world/gen/feature/WorldGenTaiga2"));
+ mObInitMap.put(new Pair<String, String>("aoo", "net/minecraft/block/BlockWoodSlab"));
+ mObInitMap.put(new Pair<String, String>("bdj", "net/minecraft/client/gui/GuiLanguage"));
+ mObInitMap.put(new Pair<String, String>("bhi", "net/minecraft/client/model/ModelCow"));
+ mObInitMap.put(
+ new Pair<String, String>("blh", "net/minecraft/client/entity/AbstractClientPlayer$SwitchType"));
+ mObInitMap.put(new Pair<String, String>("ae", "net/minecraft/command/server/CommandAchievement"));
+ mObInitMap.put(new Pair<String, String>("xj", "net/minecraft/entity/item/EntityFallingBlock"));
+ mObInitMap.put(new Pair<String, String>("tk", "net/minecraft/entity/ai/attributes/BaseAttribute"));
+ mObInitMap.put(new Pair<String, String>("pl", "net/minecraft/stats/StatBase$4"));
+ mObInitMap.put(new Pair<String, String>("lm", "net/minecraft/server/MinecraftServer$6"));
+ mObInitMap.put(new Pair<String, String>("atb",
+ "net/minecraft/world/gen/structure/StructureMineshaftPieces$Stairs"));
+ mObInitMap.put(new Pair<String, String>("apc", "net/minecraft/tileentity/TileEntityDropper"));
+ mObInitMap.put(new Pair<String, String>("ald", "net/minecraft/block/BlockFlowerPot"));
+ mObInitMap.put(new Pair<String, String>("adf", "net/minecraft/item/ItemLead"));
+ mObInitMap.put(new Pair<String, String>("ahe", "net/minecraft/world/World$3"));
+ mObInitMap.put(new Pair<String, String>("axa", "net/minecraft/world/gen/layer/GenLayerEdge$Mode"));
+ mObInitMap.put(new Pair<String, String>("bte", "net/minecraft/client/multiplayer/ThreadLanServerPing"));
+ mObInitMap.put(new Pair<String, String>("bpf", "net/minecraft/client/renderer/entity/RenderZombie"));
+ mObInitMap.put(new Pair<String, String>("ma", "net/minecraft/server/gui/MinecraftServerGui$2"));
+ mObInitMap.put(new Pair<String, String>("ib", "net/minecraft/network/play/server/S06PacketUpdateHealth"));
+ mObInitMap.put(new Pair<String, String>("ec", "net/minecraft/nbt/JsonToNBT$Any"));
+ mObInitMap.put(new Pair<String, String>("ad", "net/minecraft/command/PlayerSelector"));
+ mObInitMap.put(new Pair<String, String>("atu",
+ "net/minecraft/world/gen/structure/StructureNetherBridgePieces$Crossing"));
+ mObInitMap.put(new Pair<String, String>("apv", "net/minecraft/world/chunk/NibbleArray"));
+ mObInitMap.put(new Pair<String, String>("alw", "net/minecraft/block/BlockLiquid"));
+ mObInitMap.put(new Pair<String, String>("ady", "net/minecraft/item/ItemSpade"));
+ mObInitMap.put(new Pair<String, String>("ahx", "net/minecraft/world/biome/BiomeGenBase$SpawnListEntry"));
+ mObInitMap.put(new Pair<String, String>("axt", "net/minecraft/world/gen/layer/GenLayerRiverInit"));
+ mObInitMap.put(new Pair<String, String>("bpy", "net/minecraft/client/renderer/StitcherException"));
+ mObInitMap.put(new Pair<String, String>("ur", "net/minecraft/entity/ai/EntityAIMoveIndoors"));
+ mObInitMap.put(new Pair<String, String>("mt", "net/minecraft/world/WorldServer"));
+ mObInitMap.put(new Pair<String, String>("iu", "net/minecraft/network/play/client/C15PacketClientSettings"));
+ mObInitMap.put(new Pair<String, String>("ev", "net/minecraft/network/NetworkStatistics$1"));
+ mObInitMap.put(new Pair<String, String>("aw", "net/minecraft/command/CommandKill"));
+ mObInitMap.put(new Pair<String, String>("amk", "net/minecraft/block/BlockObsidian"));
+ mObInitMap.put(new Pair<String, String>("aem", "net/minecraft/item/ItemEditableBook"));
+ mObInitMap.put(new Pair<String, String>("aan", "net/minecraft/inventory/ContainerHorseInventory$1"));
+ mObInitMap.put(new Pair<String, String>("ail", "net/minecraft/world/biome/BiomeGenMesa"));
+ mObInitMap.put(new Pair<String, String>("n", "net/minecraft/crash/CrashReportCategory$3"));
+ mObInitMap.put(
+ new Pair<String, String>("bul", "net/minecraft/client/stream/IngestServerTester$IngestTestState"));
+ mObInitMap.put(new Pair<String, String>("bqm", "net/minecraft/client/renderer/texture/TextureCompass"));
+ mObInitMap.put(new Pair<String, String>("axs", "net/minecraft/world/gen/layer/GenLayerRemoveTooMuchOcean"));
+ mObInitMap.put(new Pair<String, String>("baq", "net/minecraft/client/Minecraft$10"));
+ mObInitMap.put(
+ new Pair<String, String>("bep", "net/minecraft/client/gui/achievement/GuiStats$StatsMobsList"));
+ mObInitMap.put(new Pair<String, String>("bio", "net/minecraft/client/model/ModelWolf"));
+ mObInitMap.put(
+ new Pair<String, String>("bmn", "net/minecraft/client/renderer/entity/RenderEnchantmentTable"));
+ mObInitMap.put(new Pair<String, String>("nh", "net/minecraft/network/NetHandlerPlayServer"));
+ mObInitMap.put(new Pair<String, String>("ji", "net/minecraft/network/play/client/C07PacketPlayerDigging"));
+ mObInitMap.put(new Pair<String, String>("fj", "net/minecraft/util/IChatComponent"));
+ mObInitMap.put(new Pair<String, String>("bk", "net/minecraft/command/server/CommandScoreboard"));
+ mObInitMap.put(new Pair<String, String>("yp", "net/minecraft/entity/monster/EntityWitch"));
+ mObInitMap.put(new Pair<String, String>("abb", "net/minecraft/item/ItemArmor"));
+ mObInitMap.put(new Pair<String, String>("aqi", "net/minecraft/world/chunk/storage/RegionFile$ChunkBuffer"));
+ mObInitMap.put(new Pair<String, String>("amj", "net/minecraft/block/BlockNote"));
+ mObInitMap.put(new Pair<String, String>("auh", "net/minecraft/world/gen/structure/MapGenStronghold$Start"));
+ mObInitMap.put(new Pair<String, String>("ayg", "net/minecraft/pathfinding/PathFinder"));
+ mObInitMap.put(new Pair<String, String>("bbe", "net/minecraft/client/Minecraft$8"));
+ mObInitMap.put(new Pair<String, String>("bfd", "net/minecraft/client/gui/inventory/GuiBeacon$Button"));
+ mObInitMap.put(new Pair<String, String>("bjc", "net/minecraft/client/network/NetHandlerPlayClient$1"));
+ mObInitMap.put(new Pair<String, String>("bnb", "net/minecraft/client/renderer/entity/RenderArrow"));
+ mObInitMap.put(new Pair<String, String>("zd", "net/minecraft/entity/item/EntityEnderEye"));
+ mObInitMap.put(new Pair<String, String>("ve", "net/minecraft/entity/ai/EntityAIRestrictOpenDoor"));
+ mObInitMap.put(new Pair<String, String>("rf", "net/minecraft/util/IIcon"));
+ mObInitMap.put(new Pair<String, String>("ng", "net/minecraft/network/NetworkSystem$4"));
+ mObInitMap.put(new Pair<String, String>("aba", "net/minecraft/item/ItemAnvilBlock"));
+ mObInitMap.put(new Pair<String, String>("ayz", "net/minecraft/world/storage/WorldInfo$7"));
+ mObInitMap.put(new Pair<String, String>("bbx", "net/minecraft/client/gui/MapItemRenderer"));
+ mObInitMap.put(new Pair<String, String>("zw", "net/minecraft/inventory/ContainerRepair$2"));
+ mObInitMap.put(new Pair<String, String>("vx", "net/minecraft/entity/ai/RandomPositionGenerator"));
+ mObInitMap.put(new Pair<String, String>("ry", "net/minecraft/entity/passive/IAnimals"));
+ mObInitMap.put(new Pair<String, String>("nz", "net/minecraft/server/management/PreYggdrasilConverter"));
+ mObInitMap.put(new Pair<String, String>("arp", "net/minecraft/world/gen/feature/WorldGenShrub"));
+ mObInitMap.put(new Pair<String, String>("anq", "net/minecraft/block/BlockStainedGlass"));
+ mObInitMap.put(new Pair<String, String>("abt", "net/minecraft/creativetab/CreativeTabs"));
+ mObInitMap.put(new Pair<String, String>("afs", "net/minecraft/enchantment/EnchantmentDigging"));
+ mObInitMap.put(new Pair<String, String>("ajr", "net/minecraft/block/BlockBush"));
+ mObInitMap.put(new Pair<String, String>("avo", "net/minecraft/world/gen/structure/MapGenVillage$Start"));
+ mObInitMap.put(new Pair<String, String>("brs", "net/minecraft/client/resources/Locale"));
+ mObInitMap.put(new Pair<String, String>("bbw", "net/minecraft/client/gui/Gui"));
+ mObInitMap.put(new Pair<String, String>("bfv", "net/minecraft/client/gui/GuiMerchant"));
+ mObInitMap.put(new Pair<String, String>("bju", "net/minecraft/client/particle/EntityBreakingFX"));
+ mObInitMap.put(new Pair<String, String>("bnt", "net/minecraft/client/renderer/entity/RenderGhast"));
+ mObInitMap.put(new Pair<String, String>("wl", "net/minecraft/entity/monster/EntityGolem"));
+ mObInitMap.put(new Pair<String, String>("sm", "net/minecraft/command/IEntitySelector$3"));
+ mObInitMap.put(new Pair<String, String>("on", "net/minecraft/server/management/UserList$1"));
+ mObInitMap.put(new Pair<String, String>("ko", "net/minecraft/init/Bootstrap$11"));
+ mObInitMap.put(new Pair<String, String>("gp", "net/minecraft/network/play/server/S31PacketWindowProperty"));
+ mObInitMap.put(new Pair<String, String>("cq", "net/minecraft/dispenser/IBehaviorDispenseItem$1"));
+ mObInitMap.put(new Pair<String, String>("aoe", "net/minecraft/block/BlockTrapDoor"));
+ mObInitMap.put(new Pair<String, String>("akf", "net/minecraft/block/BlockCrops"));
+ mObInitMap.put(new Pair<String, String>("ach", "net/minecraft/item/ItemDoor"));
+ mObInitMap.put(new Pair<String, String>("agg", "net/minecraft/enchantment/EnchantmentLootBonus"));
+ mObInitMap.put(new Pair<String, String>("bsg", "net/minecraft/client/resources/data/PackMetadataSection"));
+ mObInitMap.put(new Pair<String, String>("bck", "net/minecraft/client/gui/GuiOptionsRowList"));
+ mObInitMap.put(new Pair<String, String>("bgj", "net/minecraft/client/gui/GuiResourcePackAvailable"));
+ mObInitMap.put(new Pair<String, String>("bki", "net/minecraft/client/particle/EntityLargeExplodeFX"));
+ mObInitMap
+ .put(new Pair<String, String>("boh", "net/minecraft/client/renderer/entity/RendererLivingEntity"));
+ mObInitMap.put(new Pair<String, String>("lc", "net/minecraft/client/util/JsonException$1"));
+ mObInitMap.put(new Pair<String, String>("hd", "net/minecraft/network/play/server/S01PacketJoinGame"));
+ mObInitMap.put(new Pair<String, String>("de", "net/minecraft/util/StringTranslate"));
+ mObInitMap.put(new Pair<String, String>("wk", "net/minecraft/entity/passive/EntityHorse$GroupData"));
+ mObInitMap.put(new Pair<String, String>("asc", "net/minecraft/world/gen/feature/WorldGenMelon"));
+ mObInitMap.put(new Pair<String, String>("aod", "net/minecraft/block/BlockLeavesBase"));
+ mObInitMap.put(
+ new Pair<String, String>("awb", "net/minecraft/world/gen/structure/StructureVillagePieces$Path"));
+ mObInitMap.put(new Pair<String, String>("pa", "net/minecraft/network/rcon/RConThreadMain"));
+ mObInitMap.put(new Pair<String, String>("asv", "net/minecraft/world/gen/structure/StructureBoundingBox"));
+ mObInitMap.put(new Pair<String, String>("aow", "net/minecraft/tileentity/TileEntityChest"));
+ mObInitMap.put(new Pair<String, String>("akx", "net/minecraft/block/BlockFalling"));
+ mObInitMap.put(new Pair<String, String>("acz", "net/minecraft/item/ItemHangingEntity"));
+ mObInitMap.put(new Pair<String, String>("agy", "net/minecraft/world/GameRules"));
+ mObInitMap.put(new Pair<String, String>("awu", "net/minecraft/block/material/Material$1"));
+ mObInitMap.put(new Pair<String, String>("bdr", "net/minecraft/client/gui/GuiFlatPresets$LayerItem"));
+ mObInitMap.put(new Pair<String, String>("bsy", "net/minecraft/server/integrated/IntegratedServer$1"));
+ mObInitMap.put(new Pair<String, String>("boz", "net/minecraft/client/renderer/entity/RenderIronGolem"));
+ mObInitMap.put(new Pair<String, String>("xr", "net/minecraft/entity/item/EntityMinecartHopper"));
+ mObInitMap.put(new Pair<String, String>("pt", "net/minecraft/util/CryptManager"));
+ mObInitMap.put(new Pair<String, String>("lu", "net/minecraft/server/dedicated/DedicatedServer$1"));
+ mObInitMap.put(
+ new Pair<String, String>("hv", "net/minecraft/network/play/server/S3DPacketDisplayScoreboard"));
+ mObInitMap.put(new Pair<String, String>("dw", "net/minecraft/nbt/NBTTagShort"));
+ mObInitMap.put(new Pair<String, String>("atj",
+ "net/minecraft/world/gen/structure/StructureNetherBridgePieces$Corridor3"));
+ mObInitMap.put(new Pair<String, String>("apk", "net/minecraft/tileentity/TileEntityMobSpawner$1"));
+ mObInitMap.put(new Pair<String, String>("all", "net/minecraft/block/BlockHardenedClay"));
+ mObInitMap.put(new Pair<String, String>("adn", "net/minecraft/item/ItemPickaxe"));
+ mObInitMap.put(new Pair<String, String>("ahm", "net/minecraft/world/WorldType"));
+ mObInitMap.put(new Pair<String, String>("btm", "net/minecraft/client/audio/SoundManager$2$1"));
+ mObInitMap.put(new Pair<String, String>("bpn", "net/minecraft/client/shader/ShaderLinkHelper"));
+ mObInitMap.put(new Pair<String, String>("bdq", "net/minecraft/client/gui/GuiFlatPresets"));
+ mObInitMap.put(new Pair<String, String>("bhp", "net/minecraft/client/model/ModelLeashKnot"));
+ mObInitMap.put(new Pair<String, String>("blo", "net/minecraft/client/renderer/WorldRenderer"));
+ mObInitMap.put(new Pair<String, String>("yf", "net/minecraft/entity/monster/EntityMagmaCube"));
+ mObInitMap.put(new Pair<String, String>("ug", "net/minecraft/entity/ai/EntityAIFollowOwner"));
+ mObInitMap.put(new Pair<String, String>("qh", "net/minecraft/util/MathHelper"));
+ mObInitMap.put(new Pair<String, String>("ij", "net/minecraft/network/play/server/S0DPacketCollectItem"));
+ mObInitMap.put(new Pair<String, String>("ek", "net/minecraft/network/NetworkManager$1"));
+ mObInitMap.put(new Pair<String, String>("al", "net/minecraft/command/CommandDefaultGameMode"));
+ mObInitMap.put(new Pair<String, String>("aeb", "net/minecraft/item/ItemSkull"));
+ mObInitMap.put(new Pair<String, String>("aac", "net/minecraft/inventory/ICrafting"));
+ mObInitMap.put(new Pair<String, String>("aia", "net/minecraft/world/biome/BiomeDecorator"));
+ mObInitMap.put(new Pair<String, String>("c", "net/minecraft/crash/CrashReport$1"));
+ mObInitMap.put(new Pair<String, String>("bua", "net/minecraft/client/stream/BroadcastController"));
+ mObInitMap.put(new Pair<String, String>("bqb", "net/minecraft/client/renderer/texture/TextureMap$2"));
+ mObInitMap.put(new Pair<String, String>("baf", "net/minecraft/scoreboard/ScoreDummyCriteria"));
+ mObInitMap.put(new Pair<String, String>("bee", "net/minecraft/client/gui/GuiMainMenu"));
+ mObInitMap.put(new Pair<String, String>("bmc", "net/minecraft/client/renderer/ImageBufferDownload"));
+ mObInitMap.put(new Pair<String, String>("ye", "net/minecraft/entity/monster/EntityGiantZombie"));
+ mObInitMap.put(new Pair<String, String>("aav", "net/minecraft/inventory/InventoryEnderChest"));
+ mObInitMap.put(new Pair<String, String>("v", "net/minecraft/util/Util$EnumOS"));
+ mObInitMap.put(new Pair<String, String>("bay", "net/minecraft/client/Minecraft$2"));
+ mObInitMap.put(new Pair<String, String>("bex", "net/minecraft/client/gui/inventory/GuiContainer"));
+ mObInitMap.put(new Pair<String, String>("bmv", "net/minecraft/client/renderer/culling/ICamera"));
+ mObInitMap.put(new Pair<String, String>("bs", "net/minecraft/command/CommandSpreadPlayers$Position"));
+ mObInitMap.put(new Pair<String, String>("yx", "net/minecraft/entity/player/InventoryPlayer"));
+ mObInitMap.put(new Pair<String, String>("uy", "net/minecraft/entity/ai/EntityAIOpenDoor"));
+ mObInitMap.put(new Pair<String, String>("aqq", "net/minecraft/world/WorldProviderSurface"));
+ mObInitMap.put(new Pair<String, String>("amr", "net/minecraft/block/BlockPotato"));
+ mObInitMap.put(new Pair<String, String>("ais", "net/minecraft/world/biome/BiomeGenSavanna"));
+ mObInitMap.put(new Pair<String, String>("aup",
+ "net/minecraft/world/gen/structure/StructureStrongholdPieces$LeftTurn"));
+ mObInitMap.put(new Pair<String, String>("ayo", "net/minecraft/world/chunk/storage/AnvilSaveConverter$1"));
+ mObInitMap.put(new Pair<String, String>("bbm", "net/minecraft/client/settings/GameSettings$Options"));
+ mObInitMap.put(new Pair<String, String>("bus", "net/minecraft/realms/RealmsConnect$1"));
+ mObInitMap
+ .put(new Pair<String, String>("bqt", "net/minecraft/client/resources/FoliageColorReloadListener"));
+ mObInitMap.put(new Pair<String, String>("zl", "net/minecraft/entity/projectile/EntityEgg"));
+ mObInitMap.put(new Pair<String, String>("vm", "net/minecraft/entity/ai/EntityAIDefendVillage"));
+ mObInitMap.put(new Pair<String, String>("rn", "net/minecraft/util/CombatTracker"));
+ mObInitMap.put(new Pair<String, String>("no", "net/minecraft/server/network/NetHandlerLoginServer$1"));
+ mObInitMap.put(new Pair<String, String>("jp", "net/minecraft/network/handshake/client/C00Handshake"));
+ mObInitMap.put(new Pair<String, String>("fq", "net/minecraft/util/ChatComponentText"));
+ mObInitMap.put(new Pair<String, String>("br", "net/minecraft/command/CommandSpreadPlayers"));
+ mObInitMap.put(new Pair<String, String>("are", "net/minecraft/world/gen/feature/WorldGenForest"));
+ mObInitMap.put(new Pair<String, String>("anf", "net/minecraft/block/BlockRedstoneRepeater"));
+ mObInitMap.put(new Pair<String, String>("abi", "net/minecraft/item/ItemReed"));
+ mObInitMap.put(new Pair<String, String>("afh", "net/minecraft/item/crafting/ShapedRecipes"));
+ mObInitMap.put(new Pair<String, String>("ajg", "net/minecraft/block/BlockBeacon"));
+ mObInitMap.put(new Pair<String, String>("avd",
+ "net/minecraft/world/gen/structure/StructureStrongholdPieces$Stronghold$Door"));
+ mObInitMap.put(new Pair<String, String>("azc", "net/minecraft/world/storage/ISaveHandler"));
+ mObInitMap.put(new Pair<String, String>("brh",
+ "net/minecraft/client/resources/SimpleReloadableResourceManager$1"));
+ mObInitMap.put(new Pair<String, String>("bfk", "net/minecraft/client/gui/inventory/CreativeCrafting"));
+ mObInitMap.put(new Pair<String, String>("bjj", "net/minecraft/client/multiplayer/WorldClient$4"));
+ mObInitMap.put(new Pair<String, String>("bni", "net/minecraft/client/renderer/entity/RenderCreeper"));
+ mObInitMap.put(new Pair<String, String>("wa", "net/minecraft/village/Village$VillageAgressor"));
+ mObInitMap.put(new Pair<String, String>("sb", "net/minecraft/entity/Entity$1"));
+ mObInitMap.put(new Pair<String, String>("oc", "net/minecraft/server/management/PreYggdrasilConverter$3"));
+ mObInitMap.put(new Pair<String, String>("kd",
+ "net/minecraft/network/ServerStatusResponse$PlayerCountData$Serializer"));
+ mObInitMap.put(new Pair<String, String>("ge", "net/minecraft/network/play/server/S25PacketBlockBreakAnim"));
+ mObInitMap.put(new Pair<String, String>("cf", "net/minecraft/command/SyntaxErrorException"));
+ mObInitMap.put(new Pair<String, String>("any", "net/minecraft/block/BlockStoneSlab"));
+ mObInitMap.put(new Pair<String, String>("ajz", "net/minecraft/block/BlockCocoa"));
+ mObInitMap.put(new Pair<String, String>("azb", "net/minecraft/world/storage/WorldInfo$9"));
+ mObInitMap.put(new Pair<String, String>("ov", "net/minecraft/network/rcon/RConConsoleSource"));
+ mObInitMap.put(new Pair<String, String>("kw", "net/minecraft/init/Bootstrap$5$1"));
+ mObInitMap.put(new Pair<String, String>("gx", "net/minecraft/network/play/server/S21PacketChunkData"));
+ mObInitMap.put(new Pair<String, String>("cy", "net/minecraft/dispenser/PositionImpl"));
+ mObInitMap.put(new Pair<String, String>("acp", "net/minecraft/item/ItemExpBottle"));
+ mObInitMap.put(new Pair<String, String>("bop", "net/minecraft/client/renderer/entity/RenderPlayer"));
+ mObInitMap.put(new Pair<String, String>("arw", "net/minecraft/world/gen/feature/WorldGenIceSpike"));
+ mObInitMap.put(new Pair<String, String>("anx", "net/minecraft/block/BlockButtonStone"));
+ mObInitMap.put(
+ new Pair<String, String>("avv", "net/minecraft/world/gen/structure/StructureVillagePieces$Hall"));
+ mObInitMap.put(new Pair<String, String>("azu", "net/minecraft/util/MovingObjectPosition"));
+ mObInitMap.put(new Pair<String, String>("bcs", "net/minecraft/client/gui/ScreenChatOptions"));
+ mObInitMap.put(
+ new Pair<String, String>("bgr", "net/minecraft/client/gui/stream/GuiStreamUnavailable$Reason"));
+ mObInitMap.put(new Pair<String, String>("bkq", "net/minecraft/client/particle/EffectRenderer$3"));
+ mObInitMap.put(new Pair<String, String>("dm", "net/minecraft/nbt/NBTTagFloat"));
+ mObInitMap.put(new Pair<String, String>("ws", "net/minecraft/entity/passive/EntitySquid"));
+ mObInitMap.put(new Pair<String, String>("st", "net/minecraft/entity/item/EntityItemFrame"));
+ mObInitMap.put(new Pair<String, String>("ou", "net/minecraft/network/rcon/RConUtils"));
+ mObInitMap.put(new Pair<String, String>("ask", "net/minecraft/world/gen/feature/WorldGenSavannaTree"));
+ mObInitMap.put(new Pair<String, String>("aol", "net/minecraft/block/BlockPressurePlateWeighted"));
+ mObInitMap.put(new Pair<String, String>("akm", "net/minecraft/block/BlockDispenser"));
+ mObInitMap.put(new Pair<String, String>("aco", "net/minecraft/item/ItemEnderPearl"));
+ mObInitMap.put(new Pair<String, String>("agn", "net/minecraft/village/MerchantRecipe"));
+ mObInitMap.put(new Pair<String, String>("awj", "net/minecraft/world/gen/NoiseGeneratorImproved"));
+ mObInitMap.put(new Pair<String, String>("bdg", "net/minecraft/client/gui/GuiScreenAddServer"));
+ mObInitMap.put(new Pair<String, String>("bsn", "net/minecraft/client/audio/MovingSoundMinecartRiding"));
+ mObInitMap.put(new Pair<String, String>("boo", "net/minecraft/client/renderer/entity/RenderPig"));
+ mObInitMap.put(new Pair<String, String>("xg", "net/minecraft/entity/effect/EntityWeatherEffect"));
+ mObInitMap.put(new Pair<String, String>("th", "net/minecraft/entity/ai/attributes/IAttribute"));
+ mObInitMap.put(new Pair<String, String>("pi", "net/minecraft/stats/StatBase$1"));
+ mObInitMap.put(new Pair<String, String>("lj", "net/minecraft/server/MinecraftServer$3"));
+ mObInitMap
+ .put(new Pair<String, String>("hk", "net/minecraft/network/play/server/S39PacketPlayerAbilities"));
+ mObInitMap.put(new Pair<String, String>("dl", "net/minecraft/nbt/NBTTagEnd"));
+ mObInitMap.put(new Pair<String, String>("ala", "net/minecraft/block/BlockFenceGate"));
+ mObInitMap.put(new Pair<String, String>("adc", "net/minecraft/item/Item$ToolMaterial"));
+ mObInitMap.put(new Pair<String, String>("ahb", "net/minecraft/world/World"));
+ mObInitMap.put(new Pair<String, String>("btb", "net/minecraft/client/network/LanServerDetector$LanServer"));
+ mObInitMap.put(new Pair<String, String>("bpc", "net/minecraft/client/renderer/entity/RenderWither"));
+ mObInitMap.put(new Pair<String, String>("bdf", "net/minecraft/client/gui/GuiDisconnected"));
+ mObInitMap.put(new Pair<String, String>("bhe", "net/minecraft/client/model/ModelBoat"));
+ mObInitMap.put(new Pair<String, String>("bld", "net/minecraft/client/particle/EntityDiggingFX"));
+ mObInitMap.put(new Pair<String, String>("xz", "net/minecraft/entity/monster/EntityCreeper"));
+ mObInitMap.put(new Pair<String, String>("aa", "net/minecraft/command/ICommand"));
+ mObInitMap.put(new Pair<String, String>("alt", "net/minecraft/block/BlockLeaves"));
+ mObInitMap.put(new Pair<String, String>("adv", "net/minecraft/item/ItemSeedFood"));
+ mObInitMap.put(new Pair<String, String>("ahu", "net/minecraft/world/biome/BiomeGenBase"));
+ mObInitMap.put(new Pair<String, String>("btu", "net/minecraft/client/audio/ISoundEventAccessor"));
+ mObInitMap.put(new Pair<String, String>("bpv", "net/minecraft/client/renderer/texture/Stitcher"));
+ mObInitMap.put(new Pair<String, String>("bdy", "net/minecraft/client/gui/GuiSelectWorld$List"));
+ mObInitMap.put(new Pair<String, String>("bhx", "net/minecraft/client/model/ModelSheep1"));
+ mObInitMap.put(new Pair<String, String>("blw", "net/minecraft/client/renderer/EntityRenderer$3"));
+ mObInitMap.put(new Pair<String, String>("mq", "net/minecraft/server/management/PlayerManager"));
+ mObInitMap.put(new Pair<String, String>("ir", "net/minecraft/network/play/client/C01PacketChatMessage"));
+ mObInitMap.put(new Pair<String, String>("es", "net/minecraft/network/EnumConnectionState$1"));
+ mObInitMap.put(new Pair<String, String>("at", "net/minecraft/command/CommandGive"));
+ mObInitMap.put(new Pair<String, String>("xy", "net/minecraft/entity/monster/EntityCaveSpider"));
+ mObInitMap.put(new Pair<String, String>("aej", "net/minecraft/item/ItemLilyPad"));
+ mObInitMap.put(new Pair<String, String>("aak", "net/minecraft/inventory/SlotFurnace"));
+ mObInitMap.put(new Pair<String, String>("k", "net/minecraft/crash/CrashReportCategory"));
+ mObInitMap.put(new Pair<String, String>("atq",
+ "net/minecraft/world/gen/structure/StructureNetherBridgePieces$NetherStalkRoom"));
+ mObInitMap.put(new Pair<String, String>("apr", "net/minecraft/block/BlockPistonMoving"));
+ mObInitMap.put(new Pair<String, String>("axp", "net/minecraft/world/gen/layer/GenLayer$2"));
+ mObInitMap.put(new Pair<String, String>("ban", "net/minecraft/client/renderer/GLAllocation"));
+ mObInitMap
+ .put(new Pair<String, String>("bem", "net/minecraft/client/gui/achievement/GuiStats$StatsGeneral"));
+ mObInitMap.put(new Pair<String, String>("bil", "net/minecraft/client/model/ModelZombieVillager"));
+ mObInitMap.put(new Pair<String, String>("bmk",
+ "net/minecraft/client/renderer/tileentity/TileEntityRendererDispatcher"));
+ mObInitMap.put(new Pair<String, String>("bh", "net/minecraft/command/server/CommandSaveAll"));
+ mObInitMap.put(new Pair<String, String>("ym", "net/minecraft/entity/monster/EntitySlime"));
+ mObInitMap.put(new Pair<String, String>("un", "net/minecraft/entity/ai/EntityAIWatchClosest"));
+ mObInitMap.put(new Pair<String, String>("mp", "net/minecraft/world/WorldManager"));
+ mObInitMap.put(new Pair<String, String>("aqf", "net/minecraft/world/chunk/storage/ChunkLoader"));
+ mObInitMap.put(new Pair<String, String>("amg", "net/minecraft/block/BlockNetherrack"));
+ mObInitMap.put(new Pair<String, String>("aei", "net/minecraft/item/EnumAction"));
+ mObInitMap.put(new Pair<String, String>("aih", "net/minecraft/world/biome/BiomeGenForest$2"));
+ mObInitMap.put(new Pair<String, String>("aue",
+ "net/minecraft/world/gen/structure/ComponentScatteredFeaturePieces$Feature"));
+ mObInitMap.put(new Pair<String, String>("ayd", "net/minecraft/pathfinding/Path"));
+ mObInitMap.put(new Pair<String, String>("bbb", "net/minecraft/client/Minecraft$5"));
+ mObInitMap
+ .put(new Pair<String, String>("bfa", "net/minecraft/client/gui/inventory/GuiBeacon$CancelButton"));
+ mObInitMap.put(new Pair<String, String>("buh", "net/minecraft/client/stream/ChatController$ChatListener"));
+ mObInitMap.put(new Pair<String, String>("bqi", "net/minecraft/client/renderer/texture/TextureUtil"));
+ mObInitMap.put(new Pair<String, String>("za", "net/minecraft/entity/player/EntityPlayer$EnumStatus"));
+ mObInitMap.put(new Pair<String, String>("vb", "net/minecraft/entity/ai/EntityAILookIdle"));
+ mObInitMap.put(new Pair<String, String>("rc", "net/minecraft/inventory/IInvBasic"));
+ mObInitMap.put(new Pair<String, String>("nd", "net/minecraft/network/NetworkSystem$1"));
+ mObInitMap.put(new Pair<String, String>("je",
+ "net/minecraft/network/play/client/C03PacketPlayer$C04PacketPlayerPosition"));
+ mObInitMap.put(new Pair<String, String>("ff", "net/minecraft/util/ChatComponentStyle$1"));
+ mObInitMap.put(new Pair<String, String>("aqy", "net/minecraft/world/gen/MapGenCavesHell"));
+ mObInitMap.put(new Pair<String, String>("amz", "net/minecraft/block/BlockRedstoneOre"));
+ mObInitMap.put(new Pair<String, String>("ayw", "net/minecraft/world/storage/WorldInfo$4"));
+ mObInitMap.put(new Pair<String, String>("zt", "net/minecraft/inventory/AnimalChest"));
+ mObInitMap.put(new Pair<String, String>("vu", "net/minecraft/entity/ai/EntityAITarget"));
+ mObInitMap.put(new Pair<String, String>("rv", "net/minecraft/potion/Potion"));
+ mObInitMap.put(
+ new Pair<String, String>("nw", "net/minecraft/server/management/PlayerProfileCache$Serializer"));
+ mObInitMap.put(
+ new Pair<String, String>("jx", "net/minecraft/network/login/client/C01PacketEncryptionResponse"));
+ mObInitMap.put(
+ new Pair<String, String>("fy", "net/minecraft/network/play/server/S2CPacketSpawnGlobalEntity"));
+ mObInitMap.put(new Pair<String, String>("bz", "net/minecraft/command/CommandTime"));
+ mObInitMap.put(new Pair<String, String>("ann", "net/minecraft/block/BlockSnow"));
+ mObInitMap.put(new Pair<String, String>("abq", "net/minecraft/item/ItemCoal"));
+ mObInitMap.put(new Pair<String, String>("afp", "net/minecraft/enchantment/EnchantmentArrowKnockback"));
+ mObInitMap.put(new Pair<String, String>("ajo", "net/minecraft/block/IGrowable"));
+ mObInitMap.put(new Pair<String, String>("brp", "net/minecraft/client/resources/I18n"));
+ mObInitMap.put(new Pair<String, String>("ayv", "net/minecraft/world/storage/WorldInfo$3"));
+ mObInitMap.put(new Pair<String, String>("bbt", "net/minecraft/util/Session$Type"));
+ mObInitMap.put(new Pair<String, String>("bfs", "net/minecraft/client/gui/GuiHopper"));
+ mObInitMap.put(new Pair<String, String>("bjr", "net/minecraft/client/network/OldServerPinger$1"));
+ mObInitMap.put(new Pair<String, String>("bnq", "net/minecraft/client/renderer/entity/RenderFallingBlock"));
+ mObInitMap.put(new Pair<String, String>("ok", "net/minecraft/server/management/UserListOpsEntry"));
+ mObInitMap.put(new Pair<String, String>("kl", "net/minecraft/init/Bootstrap"));
+ mObInitMap.put(new Pair<String, String>("gm", "net/minecraft/network/play/server/S2EPacketCloseWindow"));
+ mObInitMap.put(new Pair<String, String>("cn", "net/minecraft/util/RegistryNamespacedDefaultedByKey"));
+ mObInitMap.put(new Pair<String, String>("zs", "net/minecraft/inventory/Container"));
+ mObInitMap.put(new Pair<String, String>("ace", "net/minecraft/creativetab/CreativeTabs$8"));
+ mObInitMap.put(new Pair<String, String>("arl", "net/minecraft/world/gen/feature/WorldGenDesertWells"));
+ mObInitMap.put(new Pair<String, String>("anm", "net/minecraft/block/BlockSnowBlock"));
+ mObInitMap.put(new Pair<String, String>("avk", "net/minecraft/world/gen/structure/StructureComponent"));
+ mObInitMap.put(new Pair<String, String>("bch", "net/minecraft/client/gui/GuiListExtended"));
+ mObInitMap.put(new Pair<String, String>("bgg", "net/minecraft/client/resources/ResourcePackListEntry"));
+ mObInitMap.put(new Pair<String, String>("bkf", "net/minecraft/client/particle/EntityFlameFX"));
+ mObInitMap.put(new Pair<String, String>("boe", "net/minecraft/client/renderer/entity/RenderMagmaCube"));
+ mObInitMap.put(new Pair<String, String>("wh", "net/minecraft/entity/passive/EntityCow"));
+ mObInitMap.put(new Pair<String, String>("oj", "net/minecraft/server/management/UserListOps"));
+ mObInitMap.put(new Pair<String, String>("aoa", "net/minecraft/block/BlockPane"));
+ mObInitMap.put(new Pair<String, String>("akb", "net/minecraft/block/BlockCommandBlock"));
+ mObInitMap.put(new Pair<String, String>("acd", "net/minecraft/creativetab/CreativeTabs$7"));
+ mObInitMap.put(new Pair<String, String>("agc", "net/minecraft/enchantment/EnchantmentData"));
+ mObInitMap.put(new Pair<String, String>("bsc", "net/minecraft/client/resources/data/FontMetadataSection"));
+ mObInitMap.put(new Pair<String, String>("bod", "net/minecraft/client/renderer/entity/RenderSnowball"));
+ mObInitMap.put(
+ new Pair<String, String>("net/minecraft/realms/RealmsBridge", "net/minecraft/realms/RealmsBridge"));
+ mObInitMap.put(new Pair<String, String>("da", "net/minecraft/util/RegistrySimple"));
+ mObInitMap.put(new Pair<String, String>("ass", "net/minecraft/world/gen/FlatGeneratorInfo"));
+ mObInitMap.put(new Pair<String, String>("aot", "net/minecraft/tileentity/TileEntity$2"));
+ mObInitMap.put(new Pair<String, String>("aku", "net/minecraft/block/BlockEndPortalFrame"));
+ mObInitMap.put(new Pair<String, String>("acw", "net/minecraft/item/ItemFlintAndSteel"));
+ mObInitMap.put(new Pair<String, String>("awr", "net/minecraft/block/material/MaterialTransparent"));
+ mObInitMap.put(new Pair<String, String>("bsv", "net/minecraft/client/audio/ITickableSound"));
+ mObInitMap.put(new Pair<String, String>("bow", "net/minecraft/client/renderer/entity/RenderSquid"));
+ mObInitMap.put(new Pair<String, String>("bcz", "net/minecraft/client/gui/GuiCreateFlatWorld"));
+ mObInitMap.put(new Pair<String, String>("bkx", "net/minecraft/client/particle/EntitySpellParticleFX"));
+ mObInitMap.put(new Pair<String, String>("xo", "net/minecraft/entity/EntityMinecartCommandBlock$1"));
+ mObInitMap.put(new Pair<String, String>("pq", "net/minecraft/stats/StatFileWriter"));
+ mObInitMap.put(new Pair<String, String>("lr", "net/minecraft/server/gui/IUpdatePlayerListBox"));
+ mObInitMap.put(new Pair<String, String>("hs", "net/minecraft/network/play/server/S07PacketRespawn"));
+ mObInitMap.put(new Pair<String, String>("dt", "net/minecraft/nbt/NBTSizeTracker$1"));
+ mObInitMap.put(new Pair<String, String>("aph", "net/minecraft/tileentity/IHopper"));
+ mObInitMap.put(new Pair<String, String>("ali", "net/minecraft/block/BlockGravel"));
+ mObInitMap.put(new Pair<String, String>("adk", "net/minecraft/item/ItemMinecart$1"));
+ mObInitMap.put(new Pair<String, String>("ahj", "net/minecraft/world/WorldSettings"));
+ mObInitMap.put(new Pair<String, String>("btj", "net/minecraft/client/audio/SoundManager"));
+ mObInitMap.put(new Pair<String, String>("bpk", "net/minecraft/client/shader/Shader"));
+ mObInitMap.put(new Pair<String, String>("bdn", "net/minecraft/client/gui/GuiOptions$1"));
+ mObInitMap.put(new Pair<String, String>("bhm", "net/minecraft/client/model/ModelBiped"));
+ mObInitMap.put(new Pair<String, String>("bll", "net/minecraft/client/entity/EntityOtherPlayerMP"));
+ mObInitMap.put(new Pair<String, String>("mf", "net/minecraft/server/gui/StatsComponent"));
+ mObInitMap.put(new Pair<String, String>("ig", "net/minecraft/network/play/server/S05PacketSpawnPosition"));
+ mObInitMap.put(new Pair<String, String>("eh", "net/minecraft/network/NettyEncryptingDecoder"));
+ mObInitMap.put(new Pair<String, String>("ai", "net/minecraft/command/CommandClearInventory"));
+ mObInitMap.put(new Pair<String, String>("xn", "net/minecraft/entity/EntityMinecartCommandBlock"));
+ mObInitMap.put(
+ new Pair<String, String>("atf", "net/minecraft/world/gen/structure/StructureNetherBridgePieces"));
+ mObInitMap.put(new Pair<String, String>("apg", "net/minecraft/tileentity/TileEntityFurnace"));
+ mObInitMap.put(new Pair<String, String>("axe", "net/minecraft/world/gen/layer/GenLayerBiomeEdge"));
+ mObInitMap.put(new Pair<String, String>("bac", "net/minecraft/scoreboard/Scoreboard"));
+ mObInitMap.put(new Pair<String, String>("beb", "net/minecraft/client/gui/GuiSnooper$List"));
+ mObInitMap.put(new Pair<String, String>("bia", "net/minecraft/client/model/ModelSilverfish"));
+ mObInitMap.put(new Pair<String, String>("yb", "net/minecraft/entity/monster/IMob"));
+ mObInitMap.put(new Pair<String, String>("uc", "net/minecraft/entity/ai/EntityAIDoorInteract"));
+ mObInitMap.put(new Pair<String, String>("qd", "net/minecraft/util/LongHashMap"));
+ mObInitMap.put(new Pair<String, String>("s", "net/minecraft/util/ReportedException"));
+ mObInitMap.put(new Pair<String, String>("net/minecraft/client/ClientBrandRetriever",
+ "net/minecraft/client/ClientBrandRetriever"));
+ mObInitMap.put(new Pair<String, String>("apz", "net/minecraft/world/chunk/storage/ExtendedBlockStorage"));
+ mObInitMap.put(
+ new Pair<String, String>("aty", "net/minecraft/world/gen/structure/MapGenScatteredFeature$Start"));
+ mObInitMap.put(new Pair<String, String>("axx", "net/minecraft/world/gen/layer/GenLayerSmooth"));
+ mObInitMap.put(new Pair<String, String>("bav", "net/minecraft/client/Minecraft$15"));
+ mObInitMap.put(new Pair<String, String>("beu", "net/minecraft/client/gui/GuiKeyBindingList$CategoryEntry"));
+ mObInitMap.put(new Pair<String, String>("yu", "net/minecraft/entity/INpc"));
+ mObInitMap.put(new Pair<String, String>("uv", "net/minecraft/entity/ai/EntityAIOcelotAttack"));
+ mObInitMap.put(new Pair<String, String>("qw", "net/minecraft/util/WeightedRandom$Item"));
+ mObInitMap.put(new Pair<String, String>("mx", "net/minecraft/server/management/ItemInWorldManager"));
+ mObInitMap.put(new Pair<String, String>("iy", "net/minecraft/network/play/client/C0DPacketCloseWindow"));
+ mObInitMap.put(new Pair<String, String>("ez", "net/minecraft/util/MessageDeserializer"));
+ mObInitMap.put(new Pair<String, String>("amo", "net/minecraft/block/BlockPackedIce"));
+ mObInitMap.put(new Pair<String, String>("aip", "net/minecraft/world/biome/BiomeGenPlains"));
+ mObInitMap.put(new Pair<String, String>("aum",
+ "net/minecraft/world/gen/structure/StructureStrongholdPieces$ChestCorridor"));
+ mObInitMap.put(new Pair<String, String>("ayl", "net/minecraft/world/WorldSavedData"));
+ mObInitMap.put(new Pair<String, String>("bup", "net/minecraft/client/stream/TwitchStream$1"));
+ mObInitMap.put(new Pair<String, String>("bqq", "net/minecraft/client/resources/FallbackResourceManager"));
+ mObInitMap.put(new Pair<String, String>("bet", "net/minecraft/client/gui/GuiKeyBindingList$1"));
+ mObInitMap.put(new Pair<String, String>("bis", "net/minecraft/client/model/ModelBox"));
+ mObInitMap.put(
+ new Pair<String, String>("bmr", "net/minecraft/client/renderer/tileentity/TileEntitySignRenderer"));
+ mObInitMap.put(new Pair<String, String>("zi", "net/minecraft/entity/projectile/EntitySmallFireball"));
+ mObInitMap.put(new Pair<String, String>("vj", "net/minecraft/entity/ai/EntityAIFollowGolem"));
+ mObInitMap.put(new Pair<String, String>("rk", "net/minecraft/profiler/IPlayerUsage"));
+ mObInitMap.put(new Pair<String, String>("nl", "net/minecraft/server/network/NetHandlerHandshakeTCP"));
+ mObInitMap.put(new Pair<String, String>("jm",
+ "net/minecraft/network/play/client/C10PacketCreativeInventoryAction"));
+ mObInitMap.put(new Pair<String, String>("fn", "net/minecraft/util/ChatStyle"));
+ mObInitMap.put(new Pair<String, String>("bo", "net/minecraft/command/CommandSetPlayerTimeout"));
+ mObInitMap.put(new Pair<String, String>("anc", "net/minecraft/block/BlockRedstoneTorch"));
+ mObInitMap.put(new Pair<String, String>("abf", "net/minecraft/item/ItemAxe"));
+ mObInitMap.put(new Pair<String, String>("afe", "net/minecraft/item/crafting/CraftingManager"));
+ mObInitMap.put(new Pair<String, String>("ajd", "net/minecraft/block/BlockBasePressurePlate"));
+ mObInitMap.put(new Pair<String, String>("bre", "net/minecraft/client/resources/ResourcePackRepository$2"));
+ mObInitMap.put(new Pair<String, String>("ayk", "net/minecraft/world/storage/MapData$MapCoord"));
+ mObInitMap.put(new Pair<String, String>("bfh", "net/minecraft/client/gui/GuiCommandBlock"));
+ mObInitMap.put(new Pair<String, String>("bjg", "net/minecraft/client/multiplayer/WorldClient$1"));
+ mObInitMap.put(new Pair<String, String>("bnf", "net/minecraft/client/renderer/entity/RenderCaveSpider"));
+ mObInitMap.put(new Pair<String, String>("ka", "net/minecraft/network/status/server/S00PacketServerInfo"));
+ mObInitMap.put(new Pair<String, String>("gb", "net/minecraft/network/play/server/S0CPacketSpawnPlayer"));
+ mObInitMap.put(new Pair<String, String>("cc", "net/minecraft/command/server/CommandWhitelist"));
+ mObInitMap.put(new Pair<String, String>("zh", "net/minecraft/entity/IProjectile"));
+ mObInitMap.put(new Pair<String, String>("aby", "net/minecraft/creativetab/CreativeTabs$2"));
+ mObInitMap.put(new Pair<String, String>("ara", "net/minecraft/world/gen/ChunkProviderEnd"));
+ mObInitMap.put(new Pair<String, String>("anb", "net/minecraft/block/BlockRedstoneLight"));
+ mObInitMap.put(
+ new Pair<String, String>("bjz", "net/minecraft/client/particle/EntityEnchantmentTableParticleFX"));
+ mObInitMap.put(new Pair<String, String>("bny", "net/minecraft/client/renderer/entity/RenderItem"));
+ mObInitMap.put(new Pair<String, String>("cv", "net/minecraft/dispenser/ILocation"));
+ mObInitMap.put(new Pair<String, String>("anu", "net/minecraft/block/BlockStem"));
+ mObInitMap.put(new Pair<String, String>("afw", "net/minecraft/enchantment/EnchantmentHelper$1"));
+ mObInitMap.put(new Pair<String, String>("ajv", "net/minecraft/block/BlockCarrot"));
+ mObInitMap.put(
+ new Pair<String, String>("avs", "net/minecraft/world/gen/structure/StructureVillagePieces$Field2"));
+ mObInitMap.put(new Pair<String, String>("azr", "net/minecraft/world/storage/ThreadedFileIOBase"));
+ mObInitMap.put(new Pair<String, String>("bcp", "net/minecraft/client/gui/GuiButtonRealmsProxy"));
+ mObInitMap.put(new Pair<String, String>("brw", "net/minecraft/client/resources/data/IMetadataSerializer"));
+ mObInitMap.put(new Pair<String, String>("bnx", "net/minecraft/client/renderer/tileentity/RenderItemFrame"));
+ mObInitMap.put(new Pair<String, String>("wp", "net/minecraft/entity/passive/EntitySheep"));
+ mObInitMap.put(new Pair<String, String>("sq", "net/minecraft/entity/item/EntityXPOrb"));
+ mObInitMap.put(new Pair<String, String>("or", "net/minecraft/server/management/UserListWhitelist"));
+ mObInitMap.put(new Pair<String, String>("ks", "net/minecraft/init/Bootstrap$2"));
+ mObInitMap.put(new Pair<String, String>("gt", "net/minecraft/network/play/server/S19PacketEntityStatus"));
+ mObInitMap.put(new Pair<String, String>("cu", "net/minecraft/dispenser/ILocatableSource"));
+ mObInitMap.put(new Pair<String, String>("ash", "net/minecraft/world/gen/feature/WorldGenReed"));
+ mObInitMap.put(new Pair<String, String>("aoi", "net/minecraft/block/BlockWall"));
+ mObInitMap.put(new Pair<String, String>("akj", "net/minecraft/block/BlockRedstoneDiode"));
+ mObInitMap.put(new Pair<String, String>("acl", "net/minecraft/item/ItemEmptyMap"));
+ mObInitMap.put(new Pair<String, String>("agk", "net/minecraft/enchantment/EnchantmentUntouching"));
+ mObInitMap.put(new Pair<String, String>("bsk", "net/minecraft/client/audio/PositionedSound"));
+ mObInitMap.put(new Pair<String, String>("bol", "net/minecraft/client/renderer/entity/RenderMooshroom"));
+ mObInitMap.put(
+ new Pair<String, String>("bgn", "net/minecraft/client/gui/stream/GuiIngestServers$ServerList"));
+ mObInitMap.put(new Pair<String, String>("bkm", "net/minecraft/client/particle/EntityFX"));
+ mObInitMap.put(new Pair<String, String>("xd", "net/minecraft/entity/boss/EntityWither$1"));
+ mObInitMap.put(new Pair<String, String>("te", "net/minecraft/entity/DataWatcher"));
+ mObInitMap.put(new Pair<String, String>("pf", "net/minecraft/stats/StatCrafting"));
+ mObInitMap.put(new Pair<String, String>("lg", "net/minecraft/server/ServerEula"));
+ mObInitMap.put(new Pair<String, String>("hh",
+ "net/minecraft/network/play/server/S14PacketEntity$S17PacketEntityLookMove"));
+ mObInitMap.put(new Pair<String, String>("di", "net/minecraft/nbt/NBTTagCompound$1"));
+ mObInitMap.put(new Pair<String, String>("bdc", "net/minecraft/client/gui/GuiGameOver"));
+ mObInitMap.put(new Pair<String, String>("bla", "net/minecraft/client/particle/EntityAuraFX"));
+ mObInitMap.put(new Pair<String, String>("py", "net/minecraft/server/management/LowerStringMap"));
+ mObInitMap.put(new Pair<String, String>("lz", "net/minecraft/server/gui/MinecraftServerGui$1"));
+ mObInitMap.put(new Pair<String, String>("ads", "net/minecraft/item/ItemRedstone"));
+ mObInitMap.put(new Pair<String, String>("bps", "net/minecraft/client/renderer/ThreadDownloadImageData$1"));
+ mObInitMap.put(new Pair<String, String>("asz",
+ "net/minecraft/world/gen/structure/StructureMineshaftPieces$Cross"));
+ mObInitMap.put(new Pair<String, String>("awy", "net/minecraft/world/gen/layer/GenLayerEdge"));
+ mObInitMap.put(new Pair<String, String>("bdv", "net/minecraft/client/gui/GuiRenameWorld"));
+ mObInitMap.put(new Pair<String, String>("bhu", "net/minecraft/client/model/ModelPig"));
+ mObInitMap.put(new Pair<String, String>("blt", "net/minecraft/client/renderer/EntityRenderer"));
+ mObInitMap.put(new Pair<String, String>("ep", "net/minecraft/network/EnumConnectionState$2"));
+ mObInitMap.put(new Pair<String, String>("aq", "net/minecraft/command/CommandDifficulty"));
+ mObInitMap.put(new Pair<String, String>("xv", "net/minecraft/entity/item/EntityMinecartTNT"));
+ mObInitMap.put(new Pair<String, String>("tw", "net/minecraft/entity/ai/EntityAIAvoidEntity"));
+ mObInitMap.put(new Pair<String, String>("px", "net/minecraft/util/HttpUtil$DownloadListener"));
+ mObInitMap.put(new Pair<String, String>("h", "net/minecraft/crash/CrashReport$6"));
+ mObInitMap.put(new Pair<String, String>("atn",
+ "net/minecraft/world/gen/structure/StructureNetherBridgePieces$Corridor"));
+ mObInitMap.put(new Pair<String, String>("apo", "net/minecraft/tileentity/TileEntityEndPortal"));
+ mObInitMap.put(new Pair<String, String>("alp", "net/minecraft/block/BlockIce"));
+ mObInitMap.put(new Pair<String, String>("adr", "net/minecraft/item/ItemRecord"));
+ mObInitMap.put(new Pair<String, String>("ahq", "net/minecraft/world/Teleporter$PortalPosition"));
+ mObInitMap.put(new Pair<String, String>("axm", "net/minecraft/world/gen/layer/GenLayerIsland"));
+ mObInitMap.put(new Pair<String, String>("bak", "net/minecraft/client/gui/ChatLine"));
+ mObInitMap.put(new Pair<String, String>("bej", "net/minecraft/client/gui/achievement/GuiStats"));
+ mObInitMap.put(new Pair<String, String>("btq", "net/minecraft/client/audio/SoundHandler$1"));
+ mObInitMap.put(new Pair<String, String>("bpr", "net/minecraft/client/renderer/ThreadDownloadImageData"));
+ mObInitMap.put(new Pair<String, String>("yj", "net/minecraft/entity/SharedMonsterAttributes"));
+ }
+
+ }
+
+}
diff --git a/src/main/java/gtPlusPlus/preloader/Preloader_GT_OreDict.java b/src/main/java/gtPlusPlus/preloader/Preloader_GT_OreDict.java
new file mode 100644
index 0000000000..8e7001903d
--- /dev/null
+++ b/src/main/java/gtPlusPlus/preloader/Preloader_GT_OreDict.java
@@ -0,0 +1,173 @@
+package gtPlusPlus.preloader;
+
+import org.apache.logging.log4j.Level;
+
+import cpw.mods.fml.relauncher.FMLRelaunchLog;
+
+import net.minecraft.item.ItemStack;
+
+import gregtech.common.items.GT_MetaGenerated_Item_01;
+
+import gtPlusPlus.core.lib.CORE;
+import gtPlusPlus.core.lib.LoadedMods;
+import gtPlusPlus.core.util.minecraft.ItemUtils;
+import gtPlusPlus.core.util.reflect.ReflectionUtils;
+
+public class Preloader_GT_OreDict {
+
+ public static boolean shouldPreventRegistration(final String string, final ItemStack bannedItem) {
+
+ if (bannedItem == null) {
+ return false;
+ }
+ else if (!CORE_Preloader.enableOldGTcircuits && !LoadedMods.Mekanism){
+ return false;
+ }
+
+ try {
+ if (CORE_Preloader.enableOldGTcircuits){
+ if ((bannedItem != null) && ItemUtils.getModId(bannedItem).toLowerCase().equals("gregtech")){
+ final int damageValue = bannedItem.getItemDamage() - 32000;
+ if (bannedItem.getItem() instanceof GT_MetaGenerated_Item_01) { // 700-720
+ if ((damageValue >= 700) && (damageValue <= 720)) {
+ return true;
+ }
+ }
+ else {
+ if (ReflectionUtils.doesClassExist("gregtech.common.items.GT_MetaGenerated_Item_03")) { // 6/11/12/14/16/20/30-57/69-73/79-96
+ final Class<?> MetaItem03 = ReflectionUtils.getClass("gregtech.common.items.GT_MetaGenerated_Item_03");
+ if (isInstanceOf(MetaItem03, bannedItem.getItem())) {
+ 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;
+ }
+ }
+ }
+ }
+ }
+ }
+
+ //Mekanism Support - Let's not make Mek Osmium useful in GT anymore.
+ if ((((bannedItem != null) && !LoadedMods.RedTech && (ItemUtils.getModId(bannedItem).toLowerCase().equals("mekanism"))) || (LoadedMods.Mekanism)) && !LoadedMods.RedTech){
+ //Circuits
+ if (ReflectionUtils.doesClassExist("mekanism.common.item.ItemControlCircuit")) {
+ final Class<?> MekCircuit = ReflectionUtils.getClass("mekanism.common.item.ItemControlCircuit");
+ if (isInstanceOf(MekCircuit, bannedItem.getItem())) {
+ for (int r=0;r<4;r++){
+ if (bannedItem.getItemDamage() == r){
+ FMLRelaunchLog.log("[GT++ ASM] OreDictTransformer", Level.INFO, "Removing %s from the OreDictionary to balance Mekanism.", bannedItem.getDisplayName());
+ return true;
+ }
+ }
+ }
+ }
+ //Ingots
+ if (ReflectionUtils.doesClassExist("mekanism.common.item.ItemIngot")) {
+ final Class<?> MekIngot = ReflectionUtils.getClass("mekanism.common.item.ItemIngot");
+ if (isInstanceOf(MekIngot, bannedItem.getItem())) {
+ if (bannedItem.getItemDamage() == 1){
+ FMLRelaunchLog.log("[GT++ ASM] OreDictTransformer", Level.INFO, "Removing %s from the OreDictionary to balance Mekanism.", bannedItem.getDisplayName());
+ return true;
+ }
+ }
+ }
+ //Dirty Dust
+ if (ReflectionUtils.doesClassExist("mekanism.common.item.ItemDirtyDust")) {
+ final Class<?> MekIngot = ReflectionUtils.getClass("mekanism.common.item.ItemDirtyDust");
+ if (isInstanceOf(MekIngot, bannedItem.getItem())) {
+ if (bannedItem.getItemDamage() == 2){
+ FMLRelaunchLog.log("[GT++ ASM] OreDictTransformer", Level.INFO, "Removing %s from the OreDictionary to balance Mekanism.", bannedItem.getDisplayName());
+ return true;
+ }
+ }
+ }
+ //Dust
+ if (ReflectionUtils.doesClassExist("mekanism.common.item.ItemDust")) {
+ final Class<?> MekIngot = ReflectionUtils.getClass("mekanism.common.item.ItemDust");
+ if (isInstanceOf(MekIngot, bannedItem.getItem())) {
+ if (bannedItem.getItemDamage() == 2){
+ FMLRelaunchLog.log("[GT++ ASM] OreDictTransformer", Level.INFO, "Removing %s from the OreDictionary to balance Mekanism.", bannedItem.getDisplayName());
+ return true;
+ }
+ }
+ }
+ //Crystal
+ if (ReflectionUtils.doesClassExist("mekanism.common.item.ItemCrystal")) {
+ final Class<?> MekIngot = ReflectionUtils.getClass("mekanism.common.item.ItemCrystal");
+ if (isInstanceOf(MekIngot, bannedItem.getItem())) {
+ if (bannedItem.getItemDamage() == 2){
+ FMLRelaunchLog.log("[GT++ ASM] OreDictTransformer", Level.INFO, "Removing %s from the OreDictionary to balance Mekanism.", bannedItem.getDisplayName());
+ return true;
+ }
+ }
+ }
+ //Shard
+ if (ReflectionUtils.doesClassExist("mekanism.common.item.ItemShard")) {
+ final Class<?> MekIngot = ReflectionUtils.getClass("mekanism.common.item.ItemShard");
+ if (isInstanceOf(MekIngot, bannedItem.getItem())) {
+ if (bannedItem.getItemDamage() == 2){
+ FMLRelaunchLog.log("[GT++ ASM] OreDictTransformer", Level.INFO, "Removing %s from the OreDictionary to balance Mekanism.", bannedItem.getDisplayName());
+ return true;
+ }
+ }
+ }
+ //Clump
+ if (ReflectionUtils.doesClassExist("mekanism.common.item.ItemClump")) {
+ final Class<?> MekIngot = ReflectionUtils.getClass("mekanism.common.item.ItemClump");
+ if (isInstanceOf(MekIngot, bannedItem.getItem())) {
+ if (bannedItem.getItemDamage() == 2){
+ FMLRelaunchLog.log("[GT++ ASM] OreDictTransformer", Level.INFO, "Removing %s from the OreDictionary to balance Mekanism.", bannedItem.getDisplayName());
+ return true;
+ }
+ }
+ }
+ //Ores
+ if (ReflectionUtils.doesClassExist("mekanism.common.item.ItemBlockOre")) {
+ final Class<?> MekOre = ReflectionUtils.getClass("mekanism.common.item.ItemBlockOre");
+ if (isInstanceOf(MekOre, bannedItem.getItem()) || (bannedItem == ItemUtils.simpleMetaStack("Mekanism:OreBlock", 0, 1))) {
+ if (bannedItem.getItemDamage() == 0){
+ FMLRelaunchLog.log("[GT++ ASM] OreDictTransformer", Level.INFO, "Removing %s from the OreDictionary to balance Mekanism.", bannedItem.getDisplayName());
+ return true;
+ }
+ }
+ }
+ }
+
+ } catch (final Throwable e) {
+ if (CORE.ConfigSwitches.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/Preloader_Logger.java b/src/main/java/gtPlusPlus/preloader/Preloader_Logger.java
new file mode 100644
index 0000000000..84f0fab012
--- /dev/null
+++ b/src/main/java/gtPlusPlus/preloader/Preloader_Logger.java
@@ -0,0 +1,60 @@
+package gtPlusPlus.preloader;
+
+import org.apache.logging.log4j.Level;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
+public class Preloader_Logger {
+
+ private Preloader_Logger() {
+
+ }
+
+ // Logging Functions
+ public static final Logger MODLOGGER = Preloader_Logger.makeLogger();
+
+ // Generate GT++ Logger
+ public static Logger makeLogger() {
+ final Logger gtPlusPlusLogger = LogManager.getLogger("GT++ ASM");
+ return gtPlusPlusLogger;
+ }
+
+ public static final org.apache.logging.log4j.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/AsmConfig.java b/src/main/java/gtPlusPlus/preloader/asm/AsmConfig.java
new file mode 100644
index 0000000000..a5981b15d9
--- /dev/null
+++ b/src/main/java/gtPlusPlus/preloader/asm/AsmConfig.java
@@ -0,0 +1,211 @@
+package gtPlusPlus.preloader.asm;
+
+import cpw.mods.fml.common.FMLLog;
+import gtPlusPlus.preloader.Preloader_Logger;
+
+import java.io.File;
+import java.util.ArrayList;
+import net.minecraftforge.common.config.Configuration;
+import net.minecraftforge.common.config.Property;
+import org.apache.logging.log4j.Level;
+
+public class AsmConfig {
+
+ public static boolean loaded;
+ public static Configuration config;
+
+ public static boolean enableOreDictPatch;
+ public static boolean enableTiConFluidLighting;
+ public static boolean enableGtTooltipFix;
+ public static boolean enableGtNbtFix;
+ public static boolean enableGtCharcoalPitFix;
+ public static boolean enableChunkDebugging;
+ public static boolean enableCofhPatch;
+ public static boolean enableGcFuelChanges;
+ public static boolean enableRcFlowFix;
+ public static int maxRailcraftTankProcessVolume;
+ public static int maxRailcraftFluidLoaderFlow;
+ public static int maxRailcraftFluidUnloaderFlow;
+ public static boolean enableRcItemDupeFix;
+ public static boolean enableTcAspectSafety;
+ public static boolean enabledLwjglKeybindingFix;
+ public static boolean enabledFixEntitySetHealth;
+ public static boolean enableThaumicTinkererRepairFix;
+
+ public static boolean disableAllLogging;
+ public static boolean debugMode;
+
+ public AsmConfig(File file) {
+ if (!loaded) {
+ config = new Configuration(file);
+ syncConfig(true);
+ }
+
+ }
+
+ public static void syncConfig(boolean load) {
+ ArrayList<String> propOrder = new ArrayList<String>();
+ ArrayList<String> propOrderDebug = new ArrayList<String>();
+
+ try {
+ if (!config.isChild && load) {
+ config.load();
+ }
+
+ Property prop;
+
+ //Debug
+ prop = config.get("debug", "disableAllLogging", false);
+ prop.comment = "Disables ALL logging from GT++.";
+ prop.setLanguageKey("gtpp.disableAllLogging").setRequiresMcRestart(false);
+ disableAllLogging = prop.getBoolean(false);
+ propOrderDebug.add(prop.getName());
+
+ prop = config.get("debug", "debugMode", false);
+ prop.comment = "Enables all sorts of debug logging. (Don't use unless told to, breaks other things.)";
+ prop.setLanguageKey("gtpp.debugMode").setRequiresMcRestart(false);
+ debugMode = prop.getBoolean(false);
+ propOrderDebug.add(prop.getName());
+
+ prop = config.get("debug", "enabledFixEntitySetHealth", false);
+ prop.comment = "Enable/Disable entity setHealth() fix.";
+ prop.setLanguageKey("gtpp.enabledFixEntitySetHealth").setRequiresMcRestart(true);
+ enabledFixEntitySetHealth = prop.getBoolean(false);
+ propOrderDebug.add(prop.getName());
+
+ prop = config.get("debug", "enableChunkDebugging", false);
+ prop.comment = "Enable/Disable Chunk Debugging Features, Must Be enabled on Client and Server.";
+ prop.setLanguageKey("gtpp.enableChunkDebugging").setRequiresMcRestart(true);
+ enableChunkDebugging = prop.getBoolean(false);
+ propOrderDebug.add(prop.getName());
+
+ prop = config.get("debug", "enableGtNbtFix", true);
+ prop.comment = "Enable/Disable GT NBT Persistency Fix";
+ prop.setLanguageKey("gtpp.enableGtNbtFix").setRequiresMcRestart(true);
+ enableGtNbtFix = prop.getBoolean(true);
+ propOrderDebug.add(prop.getName());
+
+ prop = config.get("debug", "enableCofhPatch", false);
+ prop.comment = "Enable/Disable COFH OreDictionaryArbiter Patch (Useful for Development)";
+ prop.setLanguageKey("gtpp.enableCofhPatch").setRequiresMcRestart(true);
+ enableCofhPatch = prop.getBoolean(false);
+ propOrderDebug.add(prop.getName());
+
+ prop = config.get("debug", "enableOreDictPatch", false);
+ prop.comment = "Enable/Disable Forge OreDictionary Patch (Useful for Development)";
+ prop.setLanguageKey("gtpp.enableOreDictPatch").setRequiresMcRestart(true);
+ enableOreDictPatch = prop.getBoolean(false);
+ propOrderDebug.add(prop.getName());
+
+ prop = config.get("debug", "enableThaumicTinkererRepairFix", false);
+ prop.comment = "Enable/Disable Patch for Thaumic Repairer";
+ prop.setLanguageKey("gtpp.enableThaumicTinkererRepairFix").setRequiresMcRestart(true);
+ enableThaumicTinkererRepairFix = prop.getBoolean(false);
+ propOrderDebug.add(prop.getName());
+
+
+
+
+
+
+ //General Features
+ prop = config.get("general", "enableTiConFluidLighting", true);
+ prop.comment = "Enable/Disable Brightness Visuals for Tinkers Fluids, only required on the Client.";
+ prop.setLanguageKey("gtpp.enableTiConFluidLighting").setRequiresMcRestart(true);
+ enableTiConFluidLighting = prop.getBoolean(true);
+ propOrder.add(prop.getName());
+
+ prop = config.get("general", "enabledLwjglKeybindingFix", true);
+ prop.comment = "Prevents the game crashing from having invalid keybinds. https://github.com/alkcorp/GTplusplus/issues/544";
+ prop.setLanguageKey("gtpp.enabledLwjglKeybindingFix").setRequiresMcRestart(true);
+ enabledLwjglKeybindingFix = prop.getBoolean(true);
+ propOrder.add(prop.getName());
+
+ prop = config.get("general", "enableGtTooltipFix", true);
+ prop.comment = "Enable/Disable Custom GT Tooltips";
+ prop.setLanguageKey("gtpp.enableGtTooltipFix").setRequiresMcRestart(true);
+ enableGtTooltipFix = prop.getBoolean(true);
+ propOrder.add(prop.getName());
+
+
+
+ prop = config.get("general", "enableGtCharcoalPitFix", true);
+ prop.comment = "Makes the Charcoal Pile Igniter work better.";
+ prop.setLanguageKey("gtpp.enableGtCharcoalPitFix").setRequiresMcRestart(true);
+ enableGtCharcoalPitFix = prop.getBoolean(true);
+ propOrder.add(prop.getName());
+
+ prop = config.get("general", "enableGcFuelChanges", true);
+ prop.comment = "Enable/Disable changes to Galacticraft Rocket Fuels.";
+ prop.setLanguageKey("gtpp.enableGcFuelChanges").setRequiresMcRestart(true);
+ //Disabled because Broken
+ //enableGcFuelChanges = prop.getBoolean(true);
+ enableGcFuelChanges = false;
+ propOrder.add(prop.getName());
+
+
+ //Railcraft Tank fix
+ prop = config.get("general", "enableRcFlowFix", true);
+ prop.comment = "Allows Custom max IO rates on RC tanks";
+ prop.setLanguageKey("gtpp.enableRcFlowFix").setRequiresMcRestart(true);
+ enableRcFlowFix = prop.getBoolean(true);
+ propOrder.add(prop.getName());
+
+ prop = config.get("general", "maxRailcraftTankProcessVolume", 4000);
+ prop.comment = "Max IO for RC fluid tanks (Not Carts). 'enableRcFlowFix' Must be enabled.";
+ prop.setLanguageKey("gtpp.maxRailcraftTankProcessVolume").setRequiresMcRestart(true);
+ maxRailcraftTankProcessVolume = prop.getInt(4000);
+ propOrder.add(prop.getName());
+
+ // Railcraft Loader Max flowrate
+ prop = config.get("general", "maxRailcraftFluidLoaderFlow", 20);
+ prop.comment = "Max Output rate for RC Fluid Loaders";
+ prop.setLanguageKey("gtpp.maxRailcraftFluidLoaderFlow").setRequiresMcRestart(true);
+ maxRailcraftFluidLoaderFlow = prop.getInt(20);
+ propOrder.add(prop.getName());
+
+ // Railcraft Unloader Max flowrate
+ prop = config.get("general", "maxRailcraftFluidUnloaderFlow", 80);
+ prop.comment = "Max Output rate for RC Fluid Unloaders";
+ prop.setLanguageKey("gtpp.maxRailcraftFluidUnloaderFlow").setRequiresMcRestart(true);
+ maxRailcraftFluidUnloaderFlow = prop.getInt(80);
+ propOrder.add(prop.getName());
+
+ //Railcraft Dupe Fix
+ prop = config.get("general", "enableRcItemDupeFix", true);
+ prop.comment = "Fixes possible negative itemstacks";
+ prop.setLanguageKey("gtpp.enableRcItemDupeFix").setRequiresMcRestart(true);
+ enableRcItemDupeFix = prop.getBoolean(true);
+ propOrder.add(prop.getName());
+
+
+ //TC Aspect Safety
+ prop = config.get("general", "enableTcAspectSafety", true);
+ prop.comment = "Fixes small oversights in Thaumcraft 4.";
+ prop.setLanguageKey("gtpp.enableTcAspectSafety").setRequiresMcRestart(true);
+ enableTcAspectSafety = prop.getBoolean(true);
+ propOrder.add(prop.getName());
+
+
+ config.setCategoryPropertyOrder("general", propOrder);
+ config.setCategoryPropertyOrder("debug", propOrderDebug);
+ if (config.hasChanged()) {
+ config.save();
+ }
+
+ Preloader_Logger.INFO("Chunk Debugging - Enabled: "+enableChunkDebugging);
+ Preloader_Logger.INFO("Gt Nbt Fix - Enabled: "+enableGtNbtFix);
+ Preloader_Logger.INFO("TiCon Fluid Lighting - Enabled: "+enableTiConFluidLighting);
+ Preloader_Logger.INFO("Gt Tooltip Fix - Enabled: "+enableGtTooltipFix);
+ Preloader_Logger.INFO("COFH Patch - Enabled: "+enableCofhPatch);
+ Preloader_Logger.INFO("Gc Fuel Changes Patch - Enabled: "+enableGcFuelChanges);
+ Preloader_Logger.INFO("Railcraft Fluid Flow Patch - Enabled: "+enableRcFlowFix);
+ Preloader_Logger.INFO("Thaumcraft Aspect Safety Patch - Enabled: "+enableTcAspectSafety);
+ Preloader_Logger.INFO("Fix bad usage of EntityLivingBase.setHealth Patch - Enabled: "+enabledFixEntitySetHealth);
+
+ } catch (Exception var3) {
+ FMLLog.log(Level.ERROR, var3, "GT++ ASM had a problem loading it's config", new Object[0]);
+ }
+
+ }
+} \ No newline at end of file
diff --git a/src/main/java/gtPlusPlus/preloader/asm/ClassesToTransform.java b/src/main/java/gtPlusPlus/preloader/asm/ClassesToTransform.java
new file mode 100644
index 0000000000..1dcbff439f
--- /dev/null
+++ b/src/main/java/gtPlusPlus/preloader/asm/ClassesToTransform.java
@@ -0,0 +1,74 @@
+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 TINKERS_FLUID_BLOCK = "tconstruct.smeltery.blocks.TConstructFluid";
+
+
+ public static final String RAILCRAFT_FLUID_HELPER = "mods.railcraft.common.fluids.FluidHelper";
+ public static final String RAILCRAFT_TILE_FLUID_LOADER = "mods.railcraft.common.blocks.machine.gamma.TileFluidLoader";
+ public static final String RAILCRAFT_INVENTORY_TOOLS = "mods.railcraft.common.util.inventory.InvTools";
+
+
+ public static final String GALACTICRAFT_FLUID_UTILS = "micdoodle8.mods.galacticraft.core.util.FluidUtil";
+ public static final String GALACTICRAFT_TILE_ENTITY_FUEL_LOADER = "micdoodle8.mods.galacticraft.core.tile.TileEntityFuelLoader";
+ public static final String GALACTICRAFT_ENTITY_AUTO_ROCKET = "micdoodle8.mods.galacticraft.api.prefab.entity.EntityAutoRocket";
+
+
+ public static final String GT_UTILITY = "gregtech.api.util.GT_Utility";
+ public static final String GT_ACHIEVEMENTS = "gregtech.loaders.misc.GT_Achievements";
+ public static final String GT_CLIENT_PROXY = "gregtech.common.GT_Client";
+ public static final String GT_PACKET_TILE_ENTITY = "gregtech.api.net.GT_Packet_TileEntity";
+ public static final String GT_BASE_META_TILE_ENTITY = "gregtech.api.metatileentity.BaseMetaTileEntity";
+ public static final String GT_MTE_CHARCOAL_PIT = "gregtech.common.tileentities.machines.multi.GT_MetaTileEntity_Charcoal_Pit";
+ public static final String GT_ITEM_MACHINES = "gregtech.common.blocks.GT_Item_Machines";
+ public static final String GT_METAGENERATED_TOOL = "gregtech.api.items.GT_MetaGenerated_Tool";
+ public static final String GT_BLOCK_MACHINES = "gregtech.common.blocks.GT_Block_Machines";
+ public static final String GT_MTE_HATCH_ENERGY = "gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Energy";
+ public static final String GT_METAPIPE_ITEM = "gregtech.api.metatileentity.implementations.GT_MetaPipeEntity_Item";
+ public static final String GT_METAPIPE_FLUID = "gregtech.api.metatileentity.implementations.GT_MetaPipeEntity_Fluid";
+ public static final String GT_METAPIPE_FRAME = "gregtech.api.metatileentity.implementations.GT_MetaPipeEntity_Frame";
+
+
+ public static final String GTPP_MTE_HATCH_RTG = "gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Energy_RTG";
+
+
+ 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
new file mode 100644
index 0000000000..2a0082754a
--- /dev/null
+++ b/src/main/java/gtPlusPlus/preloader/asm/Preloader_DummyContainer.java
@@ -0,0 +1,95 @@
+package gtPlusPlus.preloader.asm;
+
+import java.io.File;
+import java.util.Arrays;
+
+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.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;
+import net.minecraftforge.common.config.Configuration;
+
+public class Preloader_DummyContainer extends DummyModContainer {
+
+ public Preloader_DummyContainer() {
+ super(new ModMetadata());
+ ModMetadata meta = getMetadata();
+ meta.modId = CORE_Preloader.MODID;
+ 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.screenshots = new String[0];
+ meta.logoFile = "";
+ //meta.dependencies = (List<ArtifactVersion>) CORE_Preloader.DEPENDENCIES;
+ Preloader_Logger.INFO("Initializing DummyModContainer");
+
+ }
+
+ @Override
+ public boolean registerBus(EventBus bus, LoadController controller) {
+ bus.register(this);
+ return true;
+ }
+
+ @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"));
+ config.load();
+
+ //BGM Watchdog
+ 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.");
+
+ // Circuits
+ CORE_Preloader.enableOldGTcircuits = config.getBoolean("enableOldGTcircuits", "gregtech", false, "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", 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;
+ }
+} \ No newline at end of file
diff --git a/src/main/java/gtPlusPlus/preloader/asm/Preloader_FMLLoadingPlugin.java b/src/main/java/gtPlusPlus/preloader/asm/Preloader_FMLLoadingPlugin.java
new file mode 100644
index 0000000000..22568e6de7
--- /dev/null
+++ b/src/main/java/gtPlusPlus/preloader/asm/Preloader_FMLLoadingPlugin.java
@@ -0,0 +1,84 @@
+package gtPlusPlus.preloader.asm;
+
+import java.io.File;
+import java.text.NumberFormat;
+import java.util.Locale;
+import java.util.Map;
+
+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;
+import net.minecraft.launchwrapper.Launch;
+
+@SortingIndex(10097)
+@MCVersion(value = "1.7.10")
+@IFMLLoadingPlugin.TransformerExclusions("gtPlusPlus.preloader")
+@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;
+ }
+
+ @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");
+ 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);
+ Locale aDefaultLocale = Locale.getDefault();
+ NumberFormat aFormat = NumberFormat.getInstance();
+ Locale aDisplayLocale = (Locale) ReflectionUtils.getFieldValue(ReflectionUtils.getField(Locale.class, "defaultDisplayLocale"));
+ Locale aFormatLocale = (Locale) ReflectionUtils.getFieldValue(ReflectionUtils.getField(Locale.class, "defaultFormatLocale"));
+ Preloader_Logger.INFO("Locale: "+aDefaultLocale+" | Test: "+aFormat.format(1000000000)+" | Display: "+aDisplayLocale+" | Format: "+aFormatLocale);
+ }
+
+} \ No newline at end of file
diff --git a/src/main/java/gtPlusPlus/preloader/asm/Preloader_SetupClass.java b/src/main/java/gtPlusPlus/preloader/asm/Preloader_SetupClass.java
new file mode 100644
index 0000000000..a6d2b6c863
--- /dev/null
+++ b/src/main/java/gtPlusPlus/preloader/asm/Preloader_SetupClass.java
@@ -0,0 +1,23 @@
+package gtPlusPlus.preloader.asm;
+
+import java.io.File;
+import java.util.Map;
+
+import cpw.mods.fml.relauncher.IFMLCallHook;
+import gtPlusPlus.preloader.CORE_Preloader;
+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/helpers/MethodHelper_CC.java b/src/main/java/gtPlusPlus/preloader/asm/helpers/MethodHelper_CC.java
new file mode 100644
index 0000000000..664ffe7b2d
--- /dev/null
+++ b/src/main/java/gtPlusPlus/preloader/asm/helpers/MethodHelper_CC.java
@@ -0,0 +1,28 @@
+package gtPlusPlus.preloader.asm.helpers;
+
+import codechicken.nei.guihook.GuiContainerManager;
+import codechicken.nei.guihook.IContainerInputHandler;
+import net.minecraft.client.gui.inventory.GuiContainer;
+
+public class MethodHelper_CC {
+
+
+ public void mouseUp2(int mousex, int mousey, int button) {
+ MethodHelper_CC.mouseUp(mousex, mousey, button);
+ }
+
+ public static void mouseUp(int mousex, int mousey, int button) {
+ GuiContainerManager aManager = codechicken.nei.guihook.GuiContainerManager.getManager();
+ if (aManager != null) {
+ GuiContainer aWindow = aManager.window;
+ for (IContainerInputHandler inputhander : GuiContainerManager.inputHandlers) {
+ //Preloader_Logger.INFO("Found Handler: "+aWindow.getClass().getName() + " | "+inputhander.getClass().getName());
+ }
+ for (IContainerInputHandler inputhander : GuiContainerManager.inputHandlers) {
+ //Preloader_Logger.INFO("Trying to handle events for "+aWindow.getClass().getName() + " | "+inputhander.getClass().getName());
+ inputhander.onMouseUp(aWindow, mousex, mousey, button);
+ }
+ }
+ }
+
+}
diff --git a/src/main/java/gtPlusPlus/preloader/asm/helpers/MethodHelper_GT.java b/src/main/java/gtPlusPlus/preloader/asm/helpers/MethodHelper_GT.java
new file mode 100644
index 0000000000..8120df81fa
--- /dev/null
+++ b/src/main/java/gtPlusPlus/preloader/asm/helpers/MethodHelper_GT.java
@@ -0,0 +1,25 @@
+package gtPlusPlus.preloader.asm.helpers;
+
+import java.util.List;
+
+import gregtech.api.enums.Materials;
+import gregtech.api.items.GT_MetaGenerated_Tool;
+import net.minecraft.creativetab.CreativeTabs;
+import net.minecraft.item.Item;
+import net.minecraft.item.ItemStack;
+
+public class MethodHelper_GT {
+
+ public static final void getSubItems(GT_MetaGenerated_Tool aTool, Item var1, CreativeTabs aCreativeTab, List aList) {
+ for (int i = 0; i < 32766; i += 2) {
+ if (aTool.getToolStats(new ItemStack(aTool, 1, i)) != null) {
+ ItemStack tStack = new ItemStack(aTool, 1, i);
+ aTool.isItemStackUsable(tStack);
+ aList.add(tStack);
+ aList.add(aTool.getToolWithStats(i,1,Materials.TungstenSteel,Materials.TungstenSteel,null));
+ aList.add(aTool.getToolWithStats(i,1,Materials.Neutronium,Materials.Neutronium,null));
+ }
+ }
+ }
+
+}
diff --git a/src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_CC_GuiContainerManager.java b/src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_CC_GuiContainerManager.java
new file mode 100644
index 0000000000..8791d401c8
--- /dev/null
+++ b/src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_CC_GuiContainerManager.java
@@ -0,0 +1,121 @@
+package gtPlusPlus.preloader.asm.transformers;
+
+import static org.objectweb.asm.Opcodes.*;
+
+import org.apache.logging.log4j.Level;
+import org.objectweb.asm.*;
+
+import gtPlusPlus.preloader.Preloader_Logger;
+
+public class ClassTransformer_CC_GuiContainerManager {
+
+ private final boolean isValid;
+ private final ClassReader reader;
+ private final ClassWriter writer;
+
+ public ClassTransformer_CC_GuiContainerManager(byte[] basicClass) {
+
+ ClassReader aTempReader = null;
+ ClassWriter aTempWriter = null;
+
+ aTempReader = new ClassReader(basicClass);
+ aTempWriter = new ClassWriter(aTempReader, ClassWriter.COMPUTE_FRAMES);
+ localClassVisitor aTempMethodRemover = new localClassVisitor(aTempWriter);
+ aTempReader.accept(aTempMethodRemover, 0);
+
+ if (aTempReader != null && aTempWriter != null) {
+ isValid = true;
+ } else {
+ isValid = false;
+ }
+
+ Preloader_Logger.LOG("CodeChicken GuiContainerManager Patch", Level.INFO, "Valid patch? " + isValid + ".");
+ reader = aTempReader;
+ writer = aTempWriter;
+
+ if (reader != null && writer != null) {
+ Preloader_Logger.LOG("CodeChicken GuiContainerManager Patch", Level.INFO, "Attempting Method Injection.");
+ injectMethod("mouseUp");
+ }
+
+ }
+
+ 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 aClassName = "codechicken/nei/guihook/GuiContainerManager";
+ ClassWriter cw = getWriter();
+ if (aMethodName.equals("mouseUp")) {
+ Preloader_Logger.LOG("CodeChicken GuiContainerManager Patch", Level.INFO, "Injecting " + aMethodName + ", static replacement call to "+aClassName+".");
+ mv = cw.visitMethod(ACC_PUBLIC, "mouseUp", "(III)V", null, null);
+ mv.visitCode();
+ Label l0 = new Label();
+ mv.visitLabel(l0);
+ mv.visitLineNumber(12, l0);
+ mv.visitVarInsn(ILOAD, 1);
+ mv.visitVarInsn(ILOAD, 2);
+ mv.visitVarInsn(ILOAD, 3);
+ mv.visitMethodInsn(INVOKESTATIC, "gtPlusPlus/preloader/asm/helpers/MethodHelper_CC", "mouseUp", "(III)V", false);
+ Label l1 = new Label();
+ mv.visitLabel(l1);
+ mv.visitLineNumber(13, l1);
+ mv.visitInsn(RETURN);
+ Label l2 = new Label();
+ mv.visitLabel(l2);
+ mv.visitLocalVariable("this", "L+aClassName+;", null, l0, l2, 0);
+ mv.visitLocalVariable("mousex", "I", null, l0, l2, 1);
+ mv.visitLocalVariable("mousey", "I", null, l0, l2, 2);
+ mv.visitLocalVariable("button", "I", null, l0, l2, 3);
+ mv.visitMaxs(3, 4);
+ mv.visitEnd();
+ didInject = true;
+ }
+
+ Preloader_Logger.LOG("CodeChicken GuiContainerManager Patch", Level.INFO, "Method injection complete.");
+ return didInject;
+ }
+
+ public final class localClassVisitor extends ClassVisitor {
+
+ boolean obfuscated = false;
+
+ public localClassVisitor(ClassVisitor cv) {
+ super(ASM5, cv);
+ }
+
+ public boolean getObfuscatedRemoval() {
+ return obfuscated;
+ }
+
+ @Override
+ public MethodVisitor visitMethod(int access, String name, String desc, String signature, String[] exceptions) {
+ MethodVisitor methodVisitor;
+
+ if (name.equals("mouseUp")) {
+ methodVisitor = null;
+ }
+ else {
+ methodVisitor = super.visitMethod(access, name, desc, signature, exceptions);
+ }
+
+ if (methodVisitor == null) {
+ Preloader_Logger.LOG("CodeChicken GuiContainerManager Patch", Level.INFO, "Found method " + name + ", removing.");
+ Preloader_Logger.LOG("CodeChicken GuiContainerManager Patch", Level.INFO, "Descriptor: "+desc);
+ }
+ return methodVisitor;
+ }
+ }
+
+}
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
new file mode 100644
index 0000000000..6f08dc4ff5
--- /dev/null
+++ b/src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_COFH_OreDictionaryArbiter.java
@@ -0,0 +1,185 @@
+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 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;
+import gtPlusPlus.preloader.DevHelper;
+import net.minecraft.item.ItemStack;
+import net.minecraftforge.oredict.OreDictionary;
+
+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) {
+
+ 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";
+ 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<Integer, ArrayList<ItemStack>>();
+ stackIDs = new THashMap<ItemWrapper, ArrayList<Integer>>();
+ stackNames = new THashMap<ItemWrapper, ArrayList<String>>();
+ }
+ }
+
+ 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<ItemStack>());
+ }
+ ((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>());
+ }
+ ((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_Forge_ChunkLoading.java b/src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_Forge_ChunkLoading.java
new file mode 100644
index 0000000000..19648ae60c
--- /dev/null
+++ b/src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_Forge_ChunkLoading.java
@@ -0,0 +1,684 @@
+package gtPlusPlus.preloader.asm.transformers;
+
+import static org.objectweb.asm.Opcodes.*;
+
+import java.io.IOException;
+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 gtPlusPlus.preloader.DevHelper;
+
+public class ClassTransformer_Forge_ChunkLoading {
+
+ //The qualified name of the class we plan to transform.
+ private static final String className = "net.minecraftforge.common.ForgeChunkManager";
+ //net/minecraftforge/common/ForgeChunkManager
+
+ private final boolean isValid;
+ private final ClassReader reader;
+ private final ClassWriter writer;
+
+ String aChunkCoordIntPair;
+ String aItemStack;
+ String aWorld;
+ String aEntity;
+
+ private static boolean doesMethodAlreadyExist = false;
+
+ public ClassTransformer_Forge_ChunkLoading(byte[] basicClass, boolean obfuscated) {
+
+ 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 && !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";
+
+ injectMethod("forceChunk");
+ injectMethod("unforceChunk");
+ injectMethod("requestTicket");
+ injectMethod("releaseTicket");
+ }
+
+ }
+
+ public boolean isValidTransformer() {
+ return isValid;
+ }
+
+ public ClassReader getReader() {
+ return reader;
+ }
+
+ public ClassWriter getWriter() {
+ return writer;
+ }
+
+ public void injectMethod(String aMethodName) {
+ MethodVisitor mv;
+ FMLRelaunchLog.log("[GT++ ASM] Chunkloading Patch", Level.INFO, "Injecting "+aMethodName+" into "+className+".");
+ if (aMethodName.equals("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, "net/minecraftforge/common/ForgeChunkManager$Ticket", "access$700", "(Lnet/minecraftforge/common/ForgeChunkManager$Ticket;)Ljava/util/LinkedHashSet;", false);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "java/util/LinkedHashSet", "iterator", "()Ljava/util/Iterator;", false);
+ mv.visitMethodInsn(INVOKEINTERFACE, "java/util/Iterator", "next", "()Ljava/lang/Object;", true);
+ mv.visitTypeInsn(CHECKCAST, ""+aChunkCoordIntPair+"");
+ mv.visitVarInsn(ASTORE, 3);
+ Label l16 = new Label();
+ mv.visitLabel(l16);
+ mv.visitLineNumber(752, l16);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitVarInsn(ALOAD, 3);
+ mv.visitMethodInsn(INVOKESTATIC, "net/minecraftforge/common/ForgeChunkManager", "unforceChunk", "(Lnet/minecraftforge/common/ForgeChunkManager$Ticket;L"+aChunkCoordIntPair+";)V", false);
+ mv.visitLabel(l14);
+ mv.visitLineNumber(754, l14);
+ mv.visitFrame(F_APPEND,1, new Object[] {"com/google/common/collect/ImmutableSetMultimap"}, 0, null);
+ mv.visitInsn(RETURN);
+ Label l17 = new Label();
+ mv.visitLabel(l17);
+ mv.visitLocalVariable("ticket", "Lnet/minecraftforge/common/ForgeChunkManager$Ticket;", null, l0, l17, 0);
+ mv.visitLocalVariable("chunk", "L"+aChunkCoordIntPair+";", null, l0, l17, 1);
+ mv.visitLocalVariable("newMap", "Lcom/google/common/collect/ImmutableSetMultimap;", "Lcom/google/common/collect/ImmutableSetMultimap<L"+aChunkCoordIntPair+";Lnet/minecraftforge/common/ForgeChunkManager$Ticket;>;", l12, l17, 2);
+ mv.visitLocalVariable("removed", "L"+aChunkCoordIntPair+";", null, l16, l14, 3);
+ mv.visitMaxs(5, 4);
+ mv.visitEnd();
+
+ }
+ else if (aMethodName.equals("unforceChunk")) {
+
+ mv = getWriter().visitMethod(ACC_PUBLIC + ACC_STATIC, "unforceChunk", "(Lnet/minecraftforge/common/ForgeChunkManager$Ticket;L"+aChunkCoordIntPair+";)V", null, null);
+ mv.visitCode();
+ Label l0 = new Label();
+ mv.visitLabel(l0);
+ mv.visitLineNumber(781, 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(783, l1);
+ mv.visitFrame(F_SAME, 0, null, 0, null);
+ mv.visitInsn(RETURN);
+ mv.visitLabel(l2);
+ mv.visitLineNumber(785, l2);
+ 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", "remove", "(Ljava/lang/Object;)Z", false);
+ mv.visitInsn(POP);
+ Label l3 = new Label();
+ mv.visitLabel(l3);
+ mv.visitLineNumber(786, l3);
+ mv.visitVarInsn(ALOAD, 1);
+ mv.visitMethodInsn(INVOKESTATIC, "gtPlusPlus/preloader/ChunkDebugger", "removeLoadedChunkFromCache", "(L"+aChunkCoordIntPair+";)V", false);
+ Label l4 = new Label();
+ mv.visitLabel(l4);
+ mv.visitLineNumber(787, l4);
+ mv.visitFieldInsn(GETSTATIC, "net/minecraftforge/common/MinecraftForge", "EVENT_BUS", "Lcpw/mods/fml/common/eventhandler/EventBus;");
+ mv.visitTypeInsn(NEW, "net/minecraftforge/common/ForgeChunkManager$UnforceChunkEvent");
+ mv.visitInsn(DUP);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitVarInsn(ALOAD, 1);
+ mv.visitMethodInsn(INVOKESPECIAL, "net/minecraftforge/common/ForgeChunkManager$UnforceChunkEvent", "<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 l5 = new Label();
+ mv.visitLabel(l5);
+ mv.visitLineNumber(788, l5);
+ 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(INVOKESTATIC, "com/google/common/collect/LinkedHashMultimap", "create", "(Lcom/google/common/collect/Multimap;)Lcom/google/common/collect/LinkedHashMultimap;", false);
+ mv.visitVarInsn(ASTORE, 2);
+ Label l6 = new Label();
+ mv.visitLabel(l6);
+ mv.visitLineNumber(789, l6);
+ mv.visitVarInsn(ALOAD, 2);
+ mv.visitVarInsn(ALOAD, 1);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "com/google/common/collect/LinkedHashMultimap", "remove", "(Ljava/lang/Object;Ljava/lang/Object;)Z", false);
+ mv.visitInsn(POP);
+ Label l7 = new Label();
+ mv.visitLabel(l7);
+ mv.visitLineNumber(790, l7);
+ mv.visitVarInsn(ALOAD, 2);
+ mv.visitMethodInsn(INVOKESTATIC, "com/google/common/collect/ImmutableSetMultimap", "copyOf", "(Lcom/google/common/collect/Multimap;)Lcom/google/common/collect/ImmutableSetMultimap;", false);
+ mv.visitVarInsn(ASTORE, 3);
+ Label l8 = new Label();
+ mv.visitLabel(l8);
+ mv.visitLineNumber(791, l8);
+ 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, 3);
+ mv.visitMethodInsn(INVOKEINTERFACE, "java/util/Map", "put", "(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;", true);
+ mv.visitInsn(POP);
+ Label l9 = new Label();
+ mv.visitLabel(l9);
+ mv.visitLineNumber(792, l9);
+ mv.visitInsn(RETURN);
+ Label l10 = new Label();
+ mv.visitLabel(l10);
+ mv.visitLocalVariable("ticket", "Lnet/minecraftforge/common/ForgeChunkManager$Ticket;", null, l0, l10, 0);
+ mv.visitLocalVariable("chunk", "L"+aChunkCoordIntPair+";", null, l0, l10, 1);
+ mv.visitLocalVariable("copy", "Lcom/google/common/collect/LinkedHashMultimap;", "Lcom/google/common/collect/LinkedHashMultimap<L"+aChunkCoordIntPair+";Lnet/minecraftforge/common/ForgeChunkManager$Ticket;>;", l6, l10, 2);
+ mv.visitLocalVariable("newMap", "Lcom/google/common/collect/ImmutableSetMultimap;", "Lcom/google/common/collect/ImmutableSetMultimap<L"+aChunkCoordIntPair+";Lnet/minecraftforge/common/ForgeChunkManager$Ticket;>;", l8, l10, 3);
+ mv.visitMaxs(5, 4);
+ mv.visitEnd();
+
+ }
+
+ else if (aMethodName.equals("requestTicket")) {
+
+ mv = getWriter().visitMethod(ACC_PUBLIC + ACC_STATIC, "requestTicket", "(Ljava/lang/Object;L"+aWorld+";Lnet/minecraftforge/common/ForgeChunkManager$Type;)Lnet/minecraftforge/common/ForgeChunkManager$Ticket;", null, null);
+ mv.visitCode();
+ Label l0 = new Label();
+ mv.visitLabel(l0);
+ mv.visitLineNumber(656, l0);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitMethodInsn(INVOKESTATIC, "net/minecraftforge/common/ForgeChunkManager", "getContainer", "(Ljava/lang/Object;)Lcpw/mods/fml/common/ModContainer;", false);
+ mv.visitVarInsn(ASTORE, 3);
+ Label l1 = new Label();
+ mv.visitLabel(l1);
+ mv.visitLineNumber(657, l1);
+ mv.visitVarInsn(ALOAD, 3);
+ Label l2 = new Label();
+ mv.visitJumpInsn(IFNONNULL, l2);
+ Label l3 = new Label();
+ mv.visitLabel(l3);
+ mv.visitLineNumber(659, l3);
+ mv.visitFieldInsn(GETSTATIC, "org/apache/logging/log4j/Level", "ERROR", "Lorg/apache/logging/log4j/Level;");
+ mv.visitLdcInsn("Failed to locate the container for mod instance %s (%s : %x)");
+ mv.visitInsn(ICONST_3);
+ mv.visitTypeInsn(ANEWARRAY, "java/lang/Object");
+ mv.visitInsn(DUP);
+ mv.visitInsn(ICONST_0);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitInsn(AASTORE);
+ mv.visitInsn(DUP);
+ mv.visitInsn(ICONST_1);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/Object", "getClass", "()Ljava/lang/Class;", false);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/Class", "getName", "()Ljava/lang/String;", false);
+ mv.visitInsn(AASTORE);
+ mv.visitInsn(DUP);
+ mv.visitInsn(ICONST_2);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitMethodInsn(INVOKESTATIC, "java/lang/System", "identityHashCode", "(Ljava/lang/Object;)I", false);
+ mv.visitMethodInsn(INVOKESTATIC, "java/lang/Integer", "valueOf", "(I)Ljava/lang/Integer;", false);
+ mv.visitInsn(AASTORE);
+ mv.visitMethodInsn(INVOKESTATIC, "cpw/mods/fml/common/FMLLog", "log", "(Lorg/apache/logging/log4j/Level;Ljava/lang/String;[Ljava/lang/Object;)V", false);
+ Label l4 = new Label();
+ mv.visitLabel(l4);
+ mv.visitLineNumber(660, l4);
+ mv.visitInsn(ACONST_NULL);
+ mv.visitInsn(ARETURN);
+ mv.visitLabel(l2);
+ mv.visitLineNumber(662, l2);
+ mv.visitFrame(F_APPEND,1, new Object[] {"cpw/mods/fml/common/ModContainer"}, 0, null);
+ mv.visitVarInsn(ALOAD, 3);
+ mv.visitMethodInsn(INVOKEINTERFACE, "cpw/mods/fml/common/ModContainer", "getModId", "()Ljava/lang/String;", true);
+ mv.visitVarInsn(ASTORE, 4);
+ Label l5 = new Label();
+ mv.visitLabel(l5);
+ mv.visitLineNumber(663, l5);
+ mv.visitFieldInsn(GETSTATIC, "net/minecraftforge/common/ForgeChunkManager", "callbacks", "Ljava/util/Map;");
+ mv.visitVarInsn(ALOAD, 4);
+ mv.visitMethodInsn(INVOKEINTERFACE, "java/util/Map", "containsKey", "(Ljava/lang/Object;)Z", true);
+ Label l6 = new Label();
+ mv.visitJumpInsn(IFNE, l6);
+ Label l7 = new Label();
+ mv.visitLabel(l7);
+ mv.visitLineNumber(665, l7);
+ mv.visitLdcInsn("The mod %s has attempted to request a ticket without a listener in place");
+ mv.visitInsn(ICONST_1);
+ mv.visitTypeInsn(ANEWARRAY, "java/lang/Object");
+ mv.visitInsn(DUP);
+ mv.visitInsn(ICONST_0);
+ mv.visitVarInsn(ALOAD, 4);
+ 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(666, l8);
+ mv.visitTypeInsn(NEW, "java/lang/RuntimeException");
+ mv.visitInsn(DUP);
+ mv.visitLdcInsn("Invalid ticket request");
+ mv.visitMethodInsn(INVOKESPECIAL, "java/lang/RuntimeException", "<init>", "(Ljava/lang/String;)V", false);
+ mv.visitInsn(ATHROW);
+ mv.visitLabel(l6);
+ mv.visitLineNumber(669, l6);
+ mv.visitFrame(F_APPEND,1, new Object[] {"java/lang/String"}, 0, null);
+ mv.visitVarInsn(ALOAD, 4);
+ mv.visitMethodInsn(INVOKESTATIC, "net/minecraftforge/common/ForgeChunkManager", "getMaxTicketLengthFor", "(Ljava/lang/String;)I", false);
+ mv.visitVarInsn(ISTORE, 5);
+ Label l9 = new Label();
+ mv.visitLabel(l9);
+ mv.visitLineNumber(671, l9);
+ mv.visitFieldInsn(GETSTATIC, "net/minecraftforge/common/ForgeChunkManager", "tickets", "Ljava/util/Map;");
+ mv.visitVarInsn(ALOAD, 1);
+ 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, 4);
+ mv.visitMethodInsn(INVOKEINTERFACE, "com/google/common/collect/Multimap", "get", "(Ljava/lang/Object;)Ljava/util/Collection;", true);
+ mv.visitMethodInsn(INVOKEINTERFACE, "java/util/Collection", "size", "()I", true);
+ mv.visitVarInsn(ILOAD, 5);
+ Label l10 = new Label();
+ mv.visitJumpInsn(IF_ICMPLT, l10);
+ Label l11 = new Label();
+ mv.visitLabel(l11);
+ mv.visitLineNumber(673, l11);
+ mv.visitFieldInsn(GETSTATIC, "net/minecraftforge/common/ForgeChunkManager", "warnedMods", "Ljava/util/Set;");
+ mv.visitVarInsn(ALOAD, 4);
+ mv.visitMethodInsn(INVOKEINTERFACE, "java/util/Set", "contains", "(Ljava/lang/Object;)Z", true);
+ Label l12 = new Label();
+ mv.visitJumpInsn(IFNE, l12);
+ Label l13 = new Label();
+ mv.visitLabel(l13);
+ mv.visitLineNumber(675, l13);
+ mv.visitLdcInsn("The mod %s has attempted to allocate a chunkloading ticket beyond it's currently allocated maximum : %d");
+ mv.visitInsn(ICONST_2);
+ mv.visitTypeInsn(ANEWARRAY, "java/lang/Object");
+ mv.visitInsn(DUP);
+ mv.visitInsn(ICONST_0);
+ mv.visitVarInsn(ALOAD, 4);
+ mv.visitInsn(AASTORE);
+ mv.visitInsn(DUP);
+ mv.visitInsn(ICONST_1);
+ mv.visitVarInsn(ILOAD, 5);
+ mv.visitMethodInsn(INVOKESTATIC, "java/lang/Integer", "valueOf", "(I)Ljava/lang/Integer;", false);
+ mv.visitInsn(AASTORE);
+ mv.visitMethodInsn(INVOKESTATIC, "cpw/mods/fml/common/FMLLog", "info", "(Ljava/lang/String;[Ljava/lang/Object;)V", false);
+ Label l14 = new Label();
+ mv.visitLabel(l14);
+ mv.visitLineNumber(676, l14);
+ mv.visitFieldInsn(GETSTATIC, "net/minecraftforge/common/ForgeChunkManager", "warnedMods", "Ljava/util/Set;");
+ mv.visitVarInsn(ALOAD, 4);
+ mv.visitMethodInsn(INVOKEINTERFACE, "java/util/Set", "add", "(Ljava/lang/Object;)Z", true);
+ mv.visitInsn(POP);
+ mv.visitLabel(l12);
+ mv.visitLineNumber(678, l12);
+ mv.visitFrame(F_APPEND,1, new Object[] {INTEGER}, 0, null);
+ mv.visitInsn(ACONST_NULL);
+ mv.visitInsn(ARETURN);
+ mv.visitLabel(l10);
+ mv.visitLineNumber(680, l10);
+ mv.visitFrame(F_SAME, 0, null, 0, null);
+ mv.visitTypeInsn(NEW, "net/minecraftforge/common/ForgeChunkManager$Ticket");
+ mv.visitInsn(DUP);
+ mv.visitVarInsn(ALOAD, 4);
+ mv.visitVarInsn(ALOAD, 2);
+ mv.visitVarInsn(ALOAD, 1);
+ mv.visitMethodInsn(INVOKESPECIAL, "net/minecraftforge/common/ForgeChunkManager$Ticket", "<init>", "(Ljava/lang/String;Lnet/minecraftforge/common/ForgeChunkManager$Type;L"+aWorld+";)V", false);
+ mv.visitVarInsn(ASTORE, 6);
+ Label l15 = new Label();
+ mv.visitLabel(l15);
+ mv.visitLineNumber(681, l15);
+ mv.visitVarInsn(ALOAD, 6);
+ mv.visitVarInsn(ALOAD, 1);
+ mv.visitMethodInsn(INVOKESTATIC, "gtPlusPlus/preloader/ChunkDebugger", "storeTicketToCache", "(Lnet/minecraftforge/common/ForgeChunkManager$Ticket;L"+aWorld+";)V", false);
+ Label l16 = new Label();
+ mv.visitLabel(l16);
+ mv.visitLineNumber(682, l16);
+ mv.visitFieldInsn(GETSTATIC, "net/minecraftforge/common/ForgeChunkManager", "tickets", "Ljava/util/Map;");
+ mv.visitVarInsn(ALOAD, 1);
+ 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, 4);
+ mv.visitVarInsn(ALOAD, 6);
+ mv.visitMethodInsn(INVOKEINTERFACE, "com/google/common/collect/Multimap", "put", "(Ljava/lang/Object;Ljava/lang/Object;)Z", true);
+ mv.visitInsn(POP);
+ Label l17 = new Label();
+ mv.visitLabel(l17);
+ mv.visitLineNumber(683, l17);
+ mv.visitVarInsn(ALOAD, 6);
+ mv.visitInsn(ARETURN);
+ Label l18 = new Label();
+ mv.visitLabel(l18);
+ mv.visitLocalVariable("mod", "Ljava/lang/Object;", null, l0, l18, 0);
+ mv.visitLocalVariable("world", "L"+aWorld+";", null, l0, l18, 1);
+ mv.visitLocalVariable("type", "Lnet/minecraftforge/common/ForgeChunkManager$Type;", null, l0, l18, 2);
+ mv.visitLocalVariable("container", "Lcpw/mods/fml/common/ModContainer;", null, l1, l18, 3);
+ mv.visitLocalVariable("modId", "Ljava/lang/String;", null, l5, l18, 4);
+ mv.visitLocalVariable("allowedCount", "I", null, l9, l18, 5);
+ mv.visitLocalVariable("ticket", "Lnet/minecraftforge/common/ForgeChunkManager$Ticket;", null, l15, l18, 6);
+ mv.visitMaxs(6, 7);
+ mv.visitEnd();
+
+ }
+
+
+ else if (aMethodName.equals("releaseTicket")) {
+
+ mv = getWriter().visitMethod(ACC_PUBLIC + ACC_STATIC, "releaseTicket", "(Lnet/minecraftforge/common/ForgeChunkManager$Ticket;)V", null, null);
+ mv.visitCode();
+ Label l0 = new Label();
+ mv.visitLabel(l0);
+ mv.visitLineNumber(693, l0);
+ mv.visitVarInsn(ALOAD, 0);
+ Label l1 = new Label();
+ mv.visitJumpInsn(IFNONNULL, l1);
+ Label l2 = new Label();
+ mv.visitLabel(l2);
+ mv.visitLineNumber(695, l2);
+ mv.visitInsn(RETURN);
+ mv.visitLabel(l1);
+ mv.visitLineNumber(697, l1);
+ mv.visitFrame(F_SAME, 0, null, 0, null);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "net/minecraftforge/common/ForgeChunkManager$Ticket", "isPlayerTicket", "()Z", false);
+ Label l3 = new Label();
+ mv.visitJumpInsn(IFEQ, l3);
+ 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 l4 = new Label();
+ mv.visitJumpInsn(IFNE, l4);
+ Label l5 = new Label();
+ mv.visitJumpInsn(GOTO, l5);
+ mv.visitLabel(l3);
+ 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, l4);
+ mv.visitLabel(l5);
+ mv.visitLineNumber(699, l5);
+ mv.visitFrame(F_SAME, 0, null, 0, null);
+ mv.visitInsn(RETURN);
+ mv.visitLabel(l4);
+ mv.visitLineNumber(701, l4);
+ 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);
+ Label l6 = new Label();
+ mv.visitJumpInsn(IFNULL, l6);
+ Label l7 = new Label();
+ mv.visitLabel(l7);
+ mv.visitLineNumber(703, l7);
+ 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(INVOKESTATIC, "com/google/common/collect/ImmutableSet", "copyOf", "(Ljava/util/Collection;)Lcom/google/common/collect/ImmutableSet;", false);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "com/google/common/collect/ImmutableSet", "iterator", "()Ljava/util/Iterator;", false);
+ mv.visitVarInsn(ASTORE, 2);
+ Label l8 = new Label();
+ mv.visitJumpInsn(GOTO, l8);
+ Label l9 = new Label();
+ mv.visitLabel(l9);
+ mv.visitFrame(F_FULL, 3, new Object[] {"net/minecraftforge/common/ForgeChunkManager$Ticket", TOP, "java/util/Iterator"}, 0, new Object[] {});
+ mv.visitVarInsn(ALOAD, 2);
+ mv.visitMethodInsn(INVOKEINTERFACE, "java/util/Iterator", "next", "()Ljava/lang/Object;", true);
+ mv.visitTypeInsn(CHECKCAST, ""+aChunkCoordIntPair+"");
+ mv.visitVarInsn(ASTORE, 1);
+ Label l10 = new Label();
+ mv.visitLabel(l10);
+ mv.visitLineNumber(705, l10);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitVarInsn(ALOAD, 1);
+ mv.visitMethodInsn(INVOKESTATIC, "net/minecraftforge/common/ForgeChunkManager", "unforceChunk", "(Lnet/minecraftforge/common/ForgeChunkManager$Ticket;L"+aChunkCoordIntPair+";)V", false);
+ mv.visitLabel(l8);
+ mv.visitLineNumber(703, l8);
+ mv.visitFrame(F_SAME, 0, null, 0, null);
+ mv.visitVarInsn(ALOAD, 2);
+ mv.visitMethodInsn(INVOKEINTERFACE, "java/util/Iterator", "hasNext", "()Z", true);
+ mv.visitJumpInsn(IFNE, l9);
+ mv.visitLabel(l6);
+ mv.visitLineNumber(708, l6);
+ mv.visitFrame(F_FULL, 1, new Object[] {"net/minecraftforge/common/ForgeChunkManager$Ticket"}, 0, new Object[] {});
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitMethodInsn(INVOKESTATIC, "gtPlusPlus/preloader/ChunkDebugger", "removeTicketFromCache", "(Lnet/minecraftforge/common/ForgeChunkManager$Ticket;)V", false);
+ Label l11 = new Label();
+ mv.visitLabel(l11);
+ mv.visitLineNumber(709, l11);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "net/minecraftforge/common/ForgeChunkManager$Ticket", "isPlayerTicket", "()Z", false);
+ Label l12 = new Label();
+ mv.visitJumpInsn(IFEQ, l12);
+ Label l13 = new Label();
+ mv.visitLabel(l13);
+ mv.visitLineNumber(711, l13);
+ mv.visitFieldInsn(GETSTATIC, "net/minecraftforge/common/ForgeChunkManager", "playerTickets", "Lcom/google/common/collect/SetMultimap;");
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitMethodInsn(INVOKESTATIC, "net/minecraftforge/common/ForgeChunkManager$Ticket", "access$100", "(Lnet/minecraftforge/common/ForgeChunkManager$Ticket;)Ljava/lang/String;", false);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitMethodInsn(INVOKEINTERFACE, "com/google/common/collect/SetMultimap", "remove", "(Ljava/lang/Object;Ljava/lang/Object;)Z", true);
+ mv.visitInsn(POP);
+ Label l14 = new Label();
+ mv.visitLabel(l14);
+ mv.visitLineNumber(712, l14);
+ 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.visitLdcInsn("Forge");
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitMethodInsn(INVOKEINTERFACE, "com/google/common/collect/Multimap", "remove", "(Ljava/lang/Object;Ljava/lang/Object;)Z", true);
+ mv.visitInsn(POP);
+ Label l15 = new Label();
+ mv.visitLabel(l15);
+ mv.visitLineNumber(713, l15);
+ Label l16 = new Label();
+ mv.visitJumpInsn(GOTO, l16);
+ mv.visitLabel(l12);
+ mv.visitLineNumber(716, l12);
+ 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", "remove", "(Ljava/lang/Object;Ljava/lang/Object;)Z", true);
+ mv.visitInsn(POP);
+ mv.visitLabel(l16);
+ mv.visitLineNumber(718, l16);
+ mv.visitFrame(F_SAME, 0, null, 0, null);
+ mv.visitInsn(RETURN);
+ Label l17 = new Label();
+ mv.visitLabel(l17);
+ mv.visitLocalVariable("ticket", "Lnet/minecraftforge/common/ForgeChunkManager$Ticket;", null, l0, l17, 0);
+ mv.visitLocalVariable("chunk", "L"+aChunkCoordIntPair+";", null, l10, l8, 1);
+ mv.visitMaxs(3, 3);
+ mv.visitEnd();
+
+ }
+
+
+ FMLRelaunchLog.log("[GT++ ASM] Chunkloading 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("forceChunk") || name.equals("unforceChunk") || name.equals("requestTicket") || name.equals("releaseTicket")) {
+ FMLRelaunchLog.log("[GT++ ASM] Chunkloading Patch", Level.INFO, "Found method "+name+", Patching.");
+ return null;
+ }
+ MethodVisitor methodVisitor = super.visitMethod(access, name, desc, signature, exceptions);
+ return methodVisitor;
+ }
+ }
+
+}
diff --git a/src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_Forge_EntityLivingBase_SetHealth.java b/src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_Forge_EntityLivingBase_SetHealth.java
new file mode 100644
index 0000000000..d56b9de059
--- /dev/null
+++ b/src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_Forge_EntityLivingBase_SetHealth.java
@@ -0,0 +1,130 @@
+package gtPlusPlus.preloader.asm.transformers;
+
+import org.objectweb.asm.ClassReader;
+import org.objectweb.asm.ClassVisitor;
+import org.objectweb.asm.ClassWriter;
+import org.objectweb.asm.MethodVisitor;
+import org.objectweb.asm.Opcodes;
+
+import cpw.mods.fml.relauncher.FMLRelaunchLog;
+import net.minecraft.entity.EntityLivingBase;
+import net.minecraft.util.DamageSource;
+
+public class ClassTransformer_Forge_EntityLivingBase_SetHealth {
+
+ private boolean isValid = false;
+ private ClassReader mReader = null;
+ private ClassWriter mWriter = null;
+ private boolean didPatch = false;
+
+ public ClassTransformer_Forge_EntityLivingBase_SetHealth(String aClassName, byte[] basicClass) {
+ if (basicClass == null) {
+ return;
+ }
+
+ ClassReader reader = new ClassReader(basicClass);
+ ClassWriter writer = new ClassWriter(reader, ClassWriter.COMPUTE_MAXS);
+ ClassVisitor visitor = writer;
+ SetHealthVisitor aVisitor = new SetHealthVisitor(visitor);
+ visitor = aVisitor;
+ reader.accept(visitor, 0);
+ if (reader != null && writer != null) {
+ isValid = true;
+ }
+ else {
+ isValid = false;
+ }
+ mReader = reader;
+ mWriter = writer;
+ didPatch = aVisitor.didPatchInternal;
+ }
+
+ public boolean isValidTransformer() {
+ return isValid;
+ }
+
+ public ClassReader getReader() {
+ return mReader;
+ }
+
+ public ClassWriter getWriter() {
+ return mWriter;
+ }
+
+
+ public static class SetHealthVisitor extends ClassVisitor {
+ private String clsName = null;
+ private boolean didPatchInternal = false;
+ private static final String callbackOwner = org.objectweb.asm.Type.getInternalName(SetHealthVisitor.class);
+
+ private SetHealthVisitor(ClassVisitor cv) {
+ super(Opcodes.ASM5, cv);
+ }
+
+ @Override
+ public void visit(int version, int access, String name, String signature, String superName, String[] interfaces) {
+ super.visit(
+ version, access, name, signature, superName, interfaces
+ );
+ this.clsName = name;
+ }
+
+ @Override
+ public MethodVisitor visitMethod(
+ int mAccess, final String mName, final String mDesc, String mSignature, String[] mExceptions) {
+ final boolean warn = !(clsName.equals(
+ "net/minecraft/entity/EntityLivingBase"
+ ));
+
+ return new MethodVisitor(Opcodes.ASM5, super.visitMethod(mAccess, mName, mDesc, mSignature, mExceptions)) {
+ @Override
+ public void visitMethodInsn(
+ int opcode, String owner, String name, String desc, boolean isIntf
+ ) {
+ if (owner.equals(
+ "net/minecraft/entity/EntityLivingBase"
+ ) && name.equals("setHealth") && desc.equals("(F)V")) {
+ if (warn) {
+ FMLRelaunchLog.warning(
+ "============================================================="
+ );
+ FMLRelaunchLog.warning(
+ "MOD HAS DIRECT REFERENCE Entity.setHealth() THIS IS NOT ALLOWED!"
+ );
+ FMLRelaunchLog.warning(
+ "Offendor: %s.%s%s", SetHealthVisitor.this.clsName, mName, mDesc
+ );
+ FMLRelaunchLog.warning(
+ "Use EntityLiving.attackEntityFrom(DamageSource, damageDealt) instead"
+ );
+ FMLRelaunchLog.warning(
+ "============================================================="
+ );
+ }
+ didPatchInternal = true;
+ //opcode = Opcodes.INVOKESTATIC; // Set it static
+ //owner = SetHealthVisitor.callbackOwner;
+ //name = "setHealthGeneric"; // Replace the method name
+ //desc = "(Lnet/minecraft/entity/EntityLivingBase;F)V"; // Replace the method desc
+
+ }
+ super.visitMethodInsn(opcode, owner, name, desc, isIntf);
+ }
+ };
+ }
+
+
+ private final static DamageSource mGenericDamageSource = new DamageSource("gtpp.generic");
+
+ public static void setHealthGeneric(EntityLivingBase aEntity, float aValue) {
+ aEntity.attackEntityFrom(mGenericDamageSource, aValue);
+ }
+
+ }
+
+
+ public boolean didPatchClass() {
+ return didPatch;
+ }
+
+}
diff --git a/src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_GC_EntityAutoRocket.java b/src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_GC_EntityAutoRocket.java
new file mode 100644
index 0000000000..1e58cbbe9b
--- /dev/null
+++ b/src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_GC_EntityAutoRocket.java
@@ -0,0 +1,527 @@
+package gtPlusPlus.preloader.asm.transformers;
+
+import static org.objectweb.asm.Opcodes.*;
+
+import java.io.IOException;
+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 gtPlusPlus.preloader.DevHelper;
+
+
+public class ClassTransformer_GC_EntityAutoRocket {
+
+ //The qualified name of the class we plan to transform.
+ private static final String className = "micdoodle8.mods.galacticraft.api.prefab.entity.EntityAutoRocket";
+ //micdoodle8/mods/galacticraft/api/prefab/entity/EntityAutoRocket
+
+ private final boolean isValid;
+ private final ClassReader reader;
+ private final ClassWriter writer;
+ private final boolean isObfuscated;
+
+ public ClassTransformer_GC_EntityAutoRocket(byte[] basicClass, boolean obfuscated) {
+
+ ClassReader aTempReader = null;
+ ClassWriter aTempWriter = null;
+
+ isObfuscated = obfuscated;
+
+ 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();
+ }
+ else {
+ FMLRelaunchLog.log("[GT++ ASM] Galacticraft EntityAutoRocket Patch", Level.INFO, "Failed to Inject new code.");
+ }
+
+ }
+
+ public boolean isValidTransformer() {
+ return isValid;
+ }
+
+ public ClassReader getReader() {
+ return reader;
+ }
+
+ public ClassWriter getWriter() {
+ return writer;
+ }
+
+ public void injectMethod() {
+
+ String aEntityPlayer = isObfuscated ? DevHelper.getObfuscated("net/minecraft/entity/player/EntityPlayer") : "net/minecraft/entity/player/EntityPlayer";
+ String aEntityPlayerMP = isObfuscated ? DevHelper.getObfuscated("net/minecraft/entity/player/EntityPlayerMP") : "net/minecraft/entity/player/EntityPlayerMP";
+ String aWorld = isObfuscated ? DevHelper.getObfuscated("net/minecraft/world/World") : "net/minecraft/world/World";
+ String aItemStack = isObfuscated ? DevHelper.getObfuscated("net/minecraft/item/ItemStack") : "net/minecraft/item/ItemStack";
+ String aEntity = isObfuscated ? DevHelper.getObfuscated("net/minecraft/entity/Entity") : "net/minecraft/entity/Entity";
+ String aWorldClient = isObfuscated ? DevHelper.getObfuscated("net/minecraft/client/multiplayer/WorldClient") : "net/minecraft/client/multiplayer/WorldClient";
+ String aDifficultyEnum = isObfuscated ? DevHelper.getObfuscated("net/minecraft/world/EnumDifficulty") : "net/minecraft/world/EnumDifficulty";
+ String aWorldInfo = isObfuscated ? DevHelper.getObfuscated("net/minecraft/world/storage/WorldInfo") : "net/minecraft/world/storage/WorldInfo";
+ String aItemInWorldManager = isObfuscated ? DevHelper.getObfuscated("net/minecraft/server/management/ItemInWorldManager") : "net/minecraft/server/management/ItemInWorldManager";
+ String aWorldType = isObfuscated ? DevHelper.getObfuscated("net/minecraft/world/WorldType") : "net/minecraft/world/WorldType";
+ String aGameType = isObfuscated ? DevHelper.getObfuscated("net/minecraft/world/WorldSettings$GameType") : "net/minecraft/world/WorldSettings$GameType";
+
+ if (isValidTransformer()) {
+ FMLRelaunchLog.log("[GT++ ASM] Galacticraft EntityAutoRocket Patch", Level.INFO, "Injecting decodePacketdata into "+className+".");
+ MethodVisitor mv = getWriter().visitMethod(ACC_PUBLIC, "decodePacketdata", "(Lio/netty/buffer/ByteBuf;)V", null, null);
+
+ mv.visitCode();
+ Label l0 = new Label();
+ mv.visitLabel(l0);
+ mv.visitLineNumber(1027, l0);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitVarInsn(ALOAD, 1);
+ mv.visitMethodInsn(INVOKESPECIAL, "micdoodle8/mods/galacticraft/api/prefab/entity/EntitySpaceshipBase", "decodePacketdata", "(Lio/netty/buffer/ByteBuf;)V", false);
+ Label l1 = new Label();
+ mv.visitLabel(l1);
+ mv.visitLineNumber(1029, l1);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitMethodInsn(INVOKESTATIC, "gtPlusPlus/xmod/galacticraft/util/GalacticUtils", "getValidFuelForTier", "(L"+aEntity+";)Lnet/minecraftforge/fluids/FluidStack;", false);
+ mv.visitVarInsn(ASTORE, 2);
+ Label l2 = new Label();
+ mv.visitLabel(l2);
+ mv.visitLineNumber(1030, l2);
+ mv.visitVarInsn(ALOAD, 1);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "io/netty/buffer/ByteBuf", "readInt", "()I", false);
+ mv.visitVarInsn(ISTORE, 3);
+ Label l3 = new Label();
+ mv.visitLabel(l3);
+ mv.visitLineNumber(1031, l3);
+ mv.visitVarInsn(ALOAD, 2);
+ Label l4 = new Label();
+ mv.visitJumpInsn(IFNULL, l4);
+ Label l5 = new Label();
+ mv.visitLabel(l5);
+ mv.visitLineNumber(1032, l5);
+ mv.visitTypeInsn(NEW, "net/minecraftforge/fluids/FluidStack");
+ mv.visitInsn(DUP);
+ mv.visitVarInsn(ALOAD, 2);
+ mv.visitVarInsn(ILOAD, 3);
+ mv.visitMethodInsn(INVOKESPECIAL, "net/minecraftforge/fluids/FluidStack", "<init>", "(Lnet/minecraftforge/fluids/FluidStack;I)V", false);
+ mv.visitVarInsn(ASTORE, 4);
+ Label l6 = new Label();
+ mv.visitLabel(l6);
+ mv.visitLineNumber(1033, l6);
+ mv.visitVarInsn(ALOAD, 4);
+ mv.visitJumpInsn(IFNULL, l4);
+ Label l7 = new Label();
+ mv.visitLabel(l7);
+ mv.visitLineNumber(1034, l7);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitFieldInsn(GETFIELD, "micdoodle8/mods/galacticraft/api/prefab/entity/EntityAutoRocket", "fuelTank", "Lnet/minecraftforge/fluids/FluidTank;");
+ mv.visitVarInsn(ALOAD, 4);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "net/minecraftforge/fluids/FluidTank", "setFluid", "(Lnet/minecraftforge/fluids/FluidStack;)V", false);
+ mv.visitLabel(l4);
+ mv.visitLineNumber(1038, l4);
+ mv.visitFrame(F_APPEND,2, new Object[] {"net/minecraftforge/fluids/FluidStack", INTEGER}, 0, null);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitVarInsn(ALOAD, 1);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "io/netty/buffer/ByteBuf", "readBoolean", "()Z", false);
+ mv.visitFieldInsn(PUTFIELD, "micdoodle8/mods/galacticraft/api/prefab/entity/EntityAutoRocket", "landing", "Z");
+ Label l8 = new Label();
+ mv.visitLabel(l8);
+ mv.visitLineNumber(1039, l8);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitVarInsn(ALOAD, 1);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "io/netty/buffer/ByteBuf", "readInt", "()I", false);
+ mv.visitFieldInsn(PUTFIELD, "micdoodle8/mods/galacticraft/api/prefab/entity/EntityAutoRocket", "destinationFrequency", "I");
+ Label l9 = new Label();
+ mv.visitLabel(l9);
+ mv.visitLineNumber(1041, l9);
+ mv.visitVarInsn(ALOAD, 1);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "io/netty/buffer/ByteBuf", "readBoolean", "()Z", false);
+ Label l10 = new Label();
+ mv.visitJumpInsn(IFEQ, l10);
+ Label l11 = new Label();
+ mv.visitLabel(l11);
+ mv.visitLineNumber(1043, l11);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitTypeInsn(NEW, "micdoodle8/mods/galacticraft/api/vector/BlockVec3");
+ mv.visitInsn(DUP);
+ mv.visitVarInsn(ALOAD, 1);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "io/netty/buffer/ByteBuf", "readInt", "()I", false);
+ mv.visitVarInsn(ALOAD, 1);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "io/netty/buffer/ByteBuf", "readInt", "()I", false);
+ mv.visitVarInsn(ALOAD, 1);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "io/netty/buffer/ByteBuf", "readInt", "()I", false);
+ mv.visitMethodInsn(INVOKESPECIAL, "micdoodle8/mods/galacticraft/api/vector/BlockVec3", "<init>", "(III)V", false);
+ mv.visitFieldInsn(PUTFIELD, "micdoodle8/mods/galacticraft/api/prefab/entity/EntityAutoRocket", "targetVec", "Lmicdoodle8/mods/galacticraft/api/vector/BlockVec3;");
+ mv.visitLabel(l10);
+ mv.visitLineNumber(1046, l10);
+ mv.visitFrame(F_SAME, 0, null, 0, null);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitVarInsn(ALOAD, 1);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "io/netty/buffer/ByteBuf", "readDouble", "()D", false);
+ mv.visitLdcInsn(new Double("8000.0"));
+ mv.visitInsn(DDIV);
+ mv.visitFieldInsn(PUTFIELD, "micdoodle8/mods/galacticraft/api/prefab/entity/EntityAutoRocket", "motionX", "D");
+ Label l12 = new Label();
+ mv.visitLabel(l12);
+ mv.visitLineNumber(1047, l12);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitVarInsn(ALOAD, 1);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "io/netty/buffer/ByteBuf", "readDouble", "()D", false);
+ mv.visitLdcInsn(new Double("8000.0"));
+ mv.visitInsn(DDIV);
+ mv.visitFieldInsn(PUTFIELD, "micdoodle8/mods/galacticraft/api/prefab/entity/EntityAutoRocket", "motionY", "D");
+ Label l13 = new Label();
+ mv.visitLabel(l13);
+ mv.visitLineNumber(1048, l13);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitVarInsn(ALOAD, 1);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "io/netty/buffer/ByteBuf", "readDouble", "()D", false);
+ mv.visitLdcInsn(new Double("8000.0"));
+ mv.visitInsn(DDIV);
+ mv.visitFieldInsn(PUTFIELD, "micdoodle8/mods/galacticraft/api/prefab/entity/EntityAutoRocket", "motionZ", "D");
+ Label l14 = new Label();
+ mv.visitLabel(l14);
+ mv.visitLineNumber(1049, l14);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitVarInsn(ALOAD, 1);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "io/netty/buffer/ByteBuf", "readDouble", "()D", false);
+ mv.visitLdcInsn(new Double("8000.0"));
+ mv.visitInsn(DDIV);
+ mv.visitFieldInsn(PUTFIELD, "micdoodle8/mods/galacticraft/api/prefab/entity/EntityAutoRocket", "lastMotionY", "D");
+ Label l15 = new Label();
+ mv.visitLabel(l15);
+ mv.visitLineNumber(1050, l15);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitVarInsn(ALOAD, 1);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "io/netty/buffer/ByteBuf", "readDouble", "()D", false);
+ mv.visitLdcInsn(new Double("8000.0"));
+ mv.visitInsn(DDIV);
+ mv.visitFieldInsn(PUTFIELD, "micdoodle8/mods/galacticraft/api/prefab/entity/EntityAutoRocket", "lastLastMotionY", "D");
+ Label l16 = new Label();
+ mv.visitLabel(l16);
+ mv.visitLineNumber(1052, l16);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitFieldInsn(GETFIELD, "micdoodle8/mods/galacticraft/api/prefab/entity/EntityAutoRocket", "cargoItems", "[L"+aItemStack+";");
+ Label l17 = new Label();
+ mv.visitJumpInsn(IFNONNULL, l17);
+ Label l18 = new Label();
+ mv.visitLabel(l18);
+ mv.visitLineNumber(1054, l18);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "micdoodle8/mods/galacticraft/api/prefab/entity/EntityAutoRocket", "getSizeInventory", "()I", false);
+ mv.visitTypeInsn(ANEWARRAY, aItemStack);
+ mv.visitFieldInsn(PUTFIELD, "micdoodle8/mods/galacticraft/api/prefab/entity/EntityAutoRocket", "cargoItems", "[L"+aItemStack+";");
+ mv.visitLabel(l17);
+ mv.visitLineNumber(1057, l17);
+ mv.visitFrame(F_SAME, 0, null, 0, null);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitVarInsn(ALOAD, 1);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "io/netty/buffer/ByteBuf", "readBoolean", "()Z", false);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "micdoodle8/mods/galacticraft/api/prefab/entity/EntityAutoRocket", "setWaitForPlayer", "(Z)V", false);
+ Label l19 = new Label();
+ mv.visitLabel(l19);
+ mv.visitLineNumber(1059, l19);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitVarInsn(ALOAD, 1);
+ mv.visitMethodInsn(INVOKESTATIC, "cpw/mods/fml/common/network/ByteBufUtils", "readUTF8String", "(Lio/netty/buffer/ByteBuf;)Ljava/lang/String;", false);
+ mv.visitFieldInsn(PUTFIELD, "micdoodle8/mods/galacticraft/api/prefab/entity/EntityAutoRocket", "statusMessage", "Ljava/lang/String;");
+ Label l20 = new Label();
+ mv.visitLabel(l20);
+ mv.visitLineNumber(1060, l20);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitFieldInsn(GETFIELD, "micdoodle8/mods/galacticraft/api/prefab/entity/EntityAutoRocket", "statusMessage", "Ljava/lang/String;");
+ mv.visitLdcInsn("");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/String", "equals", "(Ljava/lang/Object;)Z", false);
+ Label l21 = new Label();
+ mv.visitJumpInsn(IFEQ, l21);
+ mv.visitInsn(ACONST_NULL);
+ Label l22 = new Label();
+ mv.visitJumpInsn(GOTO, l22);
+ mv.visitLabel(l21);
+ mv.visitFrame(F_SAME1, 0, null, 1, new Object[] {"micdoodle8/mods/galacticraft/api/prefab/entity/EntityAutoRocket"});
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitFieldInsn(GETFIELD, "micdoodle8/mods/galacticraft/api/prefab/entity/EntityAutoRocket", "statusMessage", "Ljava/lang/String;");
+ mv.visitLabel(l22);
+ mv.visitFrame(F_FULL, 4, new Object[] {"micdoodle8/mods/galacticraft/api/prefab/entity/EntityAutoRocket", "io/netty/buffer/ByteBuf", "net/minecraftforge/fluids/FluidStack", INTEGER}, 2, new Object[] {"micdoodle8/mods/galacticraft/api/prefab/entity/EntityAutoRocket", "java/lang/String"});
+ mv.visitFieldInsn(PUTFIELD, "micdoodle8/mods/galacticraft/api/prefab/entity/EntityAutoRocket", "statusMessage", "Ljava/lang/String;");
+ Label l23 = new Label();
+ mv.visitLabel(l23);
+ mv.visitLineNumber(1061, l23);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitVarInsn(ALOAD, 1);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "io/netty/buffer/ByteBuf", "readInt", "()I", false);
+ mv.visitFieldInsn(PUTFIELD, "micdoodle8/mods/galacticraft/api/prefab/entity/EntityAutoRocket", "statusMessageCooldown", "I");
+ Label l24 = new Label();
+ mv.visitLabel(l24);
+ mv.visitLineNumber(1062, l24);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitVarInsn(ALOAD, 1);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "io/netty/buffer/ByteBuf", "readInt", "()I", false);
+ mv.visitFieldInsn(PUTFIELD, "micdoodle8/mods/galacticraft/api/prefab/entity/EntityAutoRocket", "lastStatusMessageCooldown", "I");
+ Label l25 = new Label();
+ mv.visitLabel(l25);
+ mv.visitLineNumber(1063, l25);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitVarInsn(ALOAD, 1);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "io/netty/buffer/ByteBuf", "readBoolean", "()Z", false);
+ mv.visitFieldInsn(PUTFIELD, "micdoodle8/mods/galacticraft/api/prefab/entity/EntityAutoRocket", "statusValid", "Z");
+ Label l26 = new Label();
+ mv.visitLabel(l26);
+ mv.visitLineNumber(1066, l26);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitFieldInsn(GETFIELD, "micdoodle8/mods/galacticraft/api/prefab/entity/EntityAutoRocket", "worldObj", "L"+aWorld+";");
+ mv.visitFieldInsn(GETFIELD, aWorld, "isRemote", "Z");
+ Label l27 = new Label();
+ mv.visitJumpInsn(IFEQ, l27);
+ Label l28 = new Label();
+ mv.visitLabel(l28);
+ mv.visitLineNumber(1068, l28);
+ mv.visitVarInsn(ALOAD, 1);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "io/netty/buffer/ByteBuf", "readInt", "()I", false);
+ mv.visitVarInsn(ISTORE, 4);
+ Label l29 = new Label();
+ mv.visitLabel(l29);
+ mv.visitLineNumber(1069, l29);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitFieldInsn(GETFIELD, "micdoodle8/mods/galacticraft/api/prefab/entity/EntityAutoRocket", "riddenByEntity", "L"+aEntity+";");
+ Label l30 = new Label();
+ mv.visitJumpInsn(IFNONNULL, l30);
+ Label l31 = new Label();
+ mv.visitLabel(l31);
+ mv.visitLineNumber(1071, l31);
+ mv.visitVarInsn(ILOAD, 4);
+ mv.visitInsn(ICONST_M1);
+ mv.visitJumpInsn(IF_ICMPLE, l27);
+ Label l32 = new Label();
+ mv.visitLabel(l32);
+ mv.visitLineNumber(1073, l32);
+ mv.visitMethodInsn(INVOKESTATIC, "cpw/mods/fml/client/FMLClientHandler", "instance", "()Lcpw/mods/fml/client/FMLClientHandler;", false);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "cpw/mods/fml/client/FMLClientHandler", "getWorldClient", "()L"+aWorldClient+";", false);
+ mv.visitVarInsn(ILOAD, 4);
+ mv.visitMethodInsn(INVOKEVIRTUAL, ""+aWorldClient+"", "getEntityByID", "(I)L"+aEntity+";", false);
+ mv.visitVarInsn(ASTORE, 5);
+ Label l33 = new Label();
+ mv.visitLabel(l33);
+ mv.visitLineNumber(1074, l33);
+ mv.visitVarInsn(ALOAD, 5);
+ mv.visitJumpInsn(IFNULL, l27);
+ Label l34 = new Label();
+ mv.visitLabel(l34);
+ mv.visitLineNumber(1076, l34);
+ mv.visitVarInsn(ALOAD, 5);
+ mv.visitFieldInsn(GETFIELD, ""+aEntity+"", "dimension", "I");
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitFieldInsn(GETFIELD, "micdoodle8/mods/galacticraft/api/prefab/entity/EntityAutoRocket", "dimension", "I");
+ Label l35 = new Label();
+ mv.visitJumpInsn(IF_ICMPEQ, l35);
+ Label l36 = new Label();
+ mv.visitLabel(l36);
+ mv.visitLineNumber(1078, l36);
+ mv.visitVarInsn(ALOAD, 5);
+ mv.visitTypeInsn(INSTANCEOF, ""+aEntityPlayer+"");
+ mv.visitJumpInsn(IFEQ, l27);
+ Label l37 = new Label();
+ mv.visitLabel(l37);
+ mv.visitLineNumber(1080, l37);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitFieldInsn(GETFIELD, "micdoodle8/mods/galacticraft/api/prefab/entity/EntityAutoRocket", "dimension", "I");
+ mv.visitVarInsn(ALOAD, 5);
+ mv.visitFieldInsn(GETFIELD, ""+aEntity+"", "worldObj", "L"+aWorld+";");
+ mv.visitFieldInsn(GETFIELD, aWorld, "difficultySetting", "L"+aDifficultyEnum+";");
+ mv.visitMethodInsn(INVOKEVIRTUAL, ""+aDifficultyEnum+"", "getDifficultyId", "()I", false);
+ mv.visitVarInsn(ALOAD, 5);
+ mv.visitFieldInsn(GETFIELD, ""+aEntity+"", "worldObj", "L"+aWorld+";");
+ mv.visitMethodInsn(INVOKEVIRTUAL, aWorld, "getWorldInfo", "()L"+aWorldInfo+";", false);
+ mv.visitMethodInsn(INVOKEVIRTUAL, ""+aWorldInfo+"", "getTerrainType", "()L"+aWorldType+";", false);
+ mv.visitMethodInsn(INVOKEVIRTUAL, aWorldType, "getWorldTypeName", "()Ljava/lang/String;", false);
+ mv.visitVarInsn(ALOAD, 5);
+ mv.visitTypeInsn(CHECKCAST, ""+aEntityPlayerMP+"");
+ mv.visitFieldInsn(GETFIELD, ""+aEntityPlayerMP+"", "theItemInWorldManager", "L"+aItemInWorldManager+";");
+ mv.visitMethodInsn(INVOKEVIRTUAL, ""+aItemInWorldManager+"", "getGameType", "()L"+aGameType+";", false);
+ mv.visitMethodInsn(INVOKEVIRTUAL, ""+aGameType+"", "getID", "()I", false);
+ mv.visitMethodInsn(INVOKESTATIC, "micdoodle8/mods/galacticraft/core/util/WorldUtil", "forceRespawnClient", "(IILjava/lang/String;I)L"+aEntityPlayer+";", false);
+ mv.visitVarInsn(ASTORE, 5);
+ Label l38 = new Label();
+ mv.visitLabel(l38);
+ mv.visitLineNumber(1081, l38);
+ mv.visitVarInsn(ALOAD, 5);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitMethodInsn(INVOKEVIRTUAL, ""+aEntity+"", "mountEntity", "(L"+aEntity+";)V", false);
+ Label l39 = new Label();
+ mv.visitLabel(l39);
+ mv.visitLineNumber(1083, l39);
+ mv.visitJumpInsn(GOTO, l27);
+ mv.visitLabel(l35);
+ mv.visitLineNumber(1085, l35);
+ mv.visitFrame(F_APPEND,2, new Object[] {INTEGER, ""+aEntity+""}, 0, null);
+ mv.visitVarInsn(ALOAD, 5);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitMethodInsn(INVOKEVIRTUAL, ""+aEntity+"", "mountEntity", "(L"+aEntity+";)V", false);
+ Label l40 = new Label();
+ mv.visitLabel(l40);
+ mv.visitLineNumber(1088, l40);
+ mv.visitJumpInsn(GOTO, l27);
+ mv.visitLabel(l30);
+ mv.visitLineNumber(1089, l30);
+ mv.visitFrame(F_CHOP,1, null, 0, null);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitFieldInsn(GETFIELD, "micdoodle8/mods/galacticraft/api/prefab/entity/EntityAutoRocket", "riddenByEntity", "L"+aEntity+";");
+ mv.visitMethodInsn(INVOKEVIRTUAL, ""+aEntity+"", "getEntityId", "()I", false);
+ mv.visitVarInsn(ILOAD, 4);
+ mv.visitJumpInsn(IF_ICMPEQ, l27);
+ Label l41 = new Label();
+ mv.visitLabel(l41);
+ mv.visitLineNumber(1091, l41);
+ mv.visitVarInsn(ILOAD, 4);
+ mv.visitInsn(ICONST_M1);
+ Label l42 = new Label();
+ mv.visitJumpInsn(IF_ICMPNE, l42);
+ Label l43 = new Label();
+ mv.visitLabel(l43);
+ mv.visitLineNumber(1093, l43);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitFieldInsn(GETFIELD, "micdoodle8/mods/galacticraft/api/prefab/entity/EntityAutoRocket", "riddenByEntity", "L"+aEntity+";");
+ mv.visitInsn(ACONST_NULL);
+ mv.visitMethodInsn(INVOKEVIRTUAL, ""+aEntity+"", "mountEntity", "(L"+aEntity+";)V", false);
+ Label l44 = new Label();
+ mv.visitLabel(l44);
+ mv.visitLineNumber(1094, l44);
+ mv.visitJumpInsn(GOTO, l27);
+ mv.visitLabel(l42);
+ mv.visitLineNumber(1097, l42);
+ mv.visitFrame(F_SAME, 0, null, 0, null);
+ mv.visitMethodInsn(INVOKESTATIC, "cpw/mods/fml/client/FMLClientHandler", "instance", "()Lcpw/mods/fml/client/FMLClientHandler;", false);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "cpw/mods/fml/client/FMLClientHandler", "getWorldClient", "()L"+aWorldClient+";", false);
+ mv.visitVarInsn(ILOAD, 4);
+ mv.visitMethodInsn(INVOKEVIRTUAL, ""+aWorldClient+"", "getEntityByID", "(I)L"+aEntity+";", false);
+ mv.visitVarInsn(ASTORE, 5);
+ Label l45 = new Label();
+ mv.visitLabel(l45);
+ mv.visitLineNumber(1098, l45);
+ mv.visitVarInsn(ALOAD, 5);
+ mv.visitJumpInsn(IFNULL, l27);
+ Label l46 = new Label();
+ mv.visitLabel(l46);
+ mv.visitLineNumber(1100, l46);
+ mv.visitVarInsn(ALOAD, 5);
+ mv.visitFieldInsn(GETFIELD, ""+aEntity+"", "dimension", "I");
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitFieldInsn(GETFIELD, "micdoodle8/mods/galacticraft/api/prefab/entity/EntityAutoRocket", "dimension", "I");
+ Label l47 = new Label();
+ mv.visitJumpInsn(IF_ICMPEQ, l47);
+ Label l48 = new Label();
+ mv.visitLabel(l48);
+ mv.visitLineNumber(1102, l48);
+ mv.visitVarInsn(ALOAD, 5);
+ mv.visitTypeInsn(INSTANCEOF, ""+aEntityPlayer+"");
+ mv.visitJumpInsn(IFEQ, l27);
+ Label l49 = new Label();
+ mv.visitLabel(l49);
+ mv.visitLineNumber(1104, l49);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitFieldInsn(GETFIELD, "micdoodle8/mods/galacticraft/api/prefab/entity/EntityAutoRocket", "dimension", "I");
+ mv.visitVarInsn(ALOAD, 5);
+ mv.visitFieldInsn(GETFIELD, ""+aEntity+"", "worldObj", "L"+aWorld+";");
+ mv.visitFieldInsn(GETFIELD, aWorld, "difficultySetting", "L"+aDifficultyEnum+";");
+ mv.visitMethodInsn(INVOKEVIRTUAL, ""+aDifficultyEnum+"", "getDifficultyId", "()I", false);
+ mv.visitVarInsn(ALOAD, 5);
+ mv.visitFieldInsn(GETFIELD, ""+aEntity+"", "worldObj", "L"+aWorld+";");
+ mv.visitMethodInsn(INVOKEVIRTUAL, aWorld, "getWorldInfo", "()L"+aWorldInfo+";", false);
+ mv.visitMethodInsn(INVOKEVIRTUAL, ""+aWorldInfo+"", "getTerrainType", "()L"+aWorldType+";", false);
+ mv.visitMethodInsn(INVOKEVIRTUAL, aWorldType, "getWorldTypeName", "()Ljava/lang/String;", false);
+ mv.visitVarInsn(ALOAD, 5);
+ mv.visitTypeInsn(CHECKCAST, ""+aEntityPlayerMP+"");
+ mv.visitFieldInsn(GETFIELD, ""+aEntityPlayerMP+"", "theItemInWorldManager", "L"+aItemInWorldManager+";");
+ mv.visitMethodInsn(INVOKEVIRTUAL, ""+aItemInWorldManager+"", "getGameType", "()L"+aGameType+";", false);
+ mv.visitMethodInsn(INVOKEVIRTUAL, ""+aGameType+"", "getID", "()I", false);
+ mv.visitMethodInsn(INVOKESTATIC, "micdoodle8/mods/galacticraft/core/util/WorldUtil", "forceRespawnClient", "(IILjava/lang/String;I)L"+aEntityPlayer+";", false);
+ mv.visitVarInsn(ASTORE, 5);
+ Label l50 = new Label();
+ mv.visitLabel(l50);
+ mv.visitLineNumber(1105, l50);
+ mv.visitVarInsn(ALOAD, 5);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitMethodInsn(INVOKEVIRTUAL, ""+aEntity+"", "mountEntity", "(L"+aEntity+";)V", false);
+ Label l51 = new Label();
+ mv.visitLabel(l51);
+ mv.visitLineNumber(1107, l51);
+ mv.visitJumpInsn(GOTO, l27);
+ mv.visitLabel(l47);
+ mv.visitLineNumber(1109, l47);
+ mv.visitFrame(F_APPEND,1, new Object[] {""+aEntity+""}, 0, null);
+ mv.visitVarInsn(ALOAD, 5);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitMethodInsn(INVOKEVIRTUAL, ""+aEntity+"", "mountEntity", "(L"+aEntity+";)V", false);
+ mv.visitLabel(l27);
+ mv.visitLineNumber(1114, l27);
+ mv.visitFrame(F_CHOP,2, null, 0, null);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitVarInsn(ALOAD, 1);
+ mv.visitMethodInsn(INVOKESTATIC, "cpw/mods/fml/common/network/ByteBufUtils", "readUTF8String", "(Lio/netty/buffer/ByteBuf;)Ljava/lang/String;", false);
+ mv.visitFieldInsn(PUTFIELD, "micdoodle8/mods/galacticraft/api/prefab/entity/EntityAutoRocket", "statusColour", "Ljava/lang/String;");
+ Label l52 = new Label();
+ mv.visitLabel(l52);
+ mv.visitLineNumber(1115, l52);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitFieldInsn(GETFIELD, "micdoodle8/mods/galacticraft/api/prefab/entity/EntityAutoRocket", "statusColour", "Ljava/lang/String;");
+ mv.visitLdcInsn("");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/String", "equals", "(Ljava/lang/Object;)Z", false);
+ Label l53 = new Label();
+ mv.visitJumpInsn(IFEQ, l53);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitInsn(ACONST_NULL);
+ mv.visitFieldInsn(PUTFIELD, "micdoodle8/mods/galacticraft/api/prefab/entity/EntityAutoRocket", "statusColour", "Ljava/lang/String;");
+ mv.visitLabel(l53);
+ mv.visitLineNumber(1116, l53);
+ mv.visitFrame(F_SAME, 0, null, 0, null);
+ mv.visitInsn(RETURN);
+ Label l54 = new Label();
+ mv.visitLabel(l54);
+ mv.visitLocalVariable("this", "Lmicdoodle8/mods/galacticraft/api/prefab/entity/EntityAutoRocket;", null, l0, l54, 0);
+ mv.visitLocalVariable("buffer", "Lio/netty/buffer/ByteBuf;", null, l0, l54, 1);
+ mv.visitLocalVariable("g", "Lnet/minecraftforge/fluids/FluidStack;", null, l2, l54, 2);
+ mv.visitLocalVariable("aBufferData", "I", null, l3, l54, 3);
+ mv.visitLocalVariable("s", "Lnet/minecraftforge/fluids/FluidStack;", null, l6, l4, 4);
+ mv.visitLocalVariable("shouldBeMountedId", "I", null, l29, l27, 4);
+ mv.visitLocalVariable("e", "L"+aEntity+";", null, l33, l40, 5);
+ mv.visitLocalVariable("e", "L"+aEntity+";", null, l45, l27, 5);
+ mv.visitMaxs(6, 6);
+ mv.visitEnd();
+
+ }
+ }
+
+ public static final class localClassVisitor extends ClassVisitor {
+
+ public localClassVisitor(ClassVisitor cv) {
+ super(ASM5, cv);
+ FMLRelaunchLog.log("[GT++ ASM] Galacticraft EntityAutoRocket Patch", Level.INFO, "Inspecting Class "+className);
+ }
+
+ @Override
+ public MethodVisitor visitMethod(int access, String name, String desc, String signature, String[] exceptions) {
+ if (name.equals("decodePacketdata")) {
+ FMLRelaunchLog.log("[GT++ ASM] Galacticraft EntityAutoRocket Patch", Level.INFO, "Removing method "+name);
+ return null;
+ }
+ MethodVisitor methodVisitor = super.visitMethod(access, name, desc, signature, exceptions);
+ return methodVisitor;
+ }
+ }
+
+}
diff --git a/src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_GC_FluidUtil.java b/src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_GC_FluidUtil.java
new file mode 100644
index 0000000000..13681e7e3a
--- /dev/null
+++ b/src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_GC_FluidUtil.java
@@ -0,0 +1,242 @@
+package gtPlusPlus.preloader.asm.transformers;
+
+import static org.objectweb.asm.Opcodes.*;
+
+import java.io.IOException;
+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_GC_FluidUtil {
+
+ //The qualified name of the class we plan to transform.
+ private static final String className = "micdoodle8.mods.galacticraft.core.util.FluidUtil";
+ //"micdoodle8/mods/galacticraft/core/util/FluidUtil
+
+ private final boolean isValid;
+ private final ClassReader reader;
+ private final ClassWriter writer;
+
+ public ClassTransformer_GC_FluidUtil(byte[] basicClass, boolean obfuscated) {
+
+ 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("testFuel");
+ injectMethod("fillWithGCFuel");
+ }
+
+ }
+
+ public boolean isValidTransformer() {
+ return isValid;
+ }
+
+ public ClassReader getReader() {
+ return reader;
+ }
+
+ public ClassWriter getWriter() {
+ return writer;
+ }
+
+ public void injectMethod(String aMethodName) {
+ MethodVisitor mv;
+ if (aMethodName.equals("testFuel")) {
+ FMLRelaunchLog.log("[GT++ ASM] Galacticraft FluidUtils Patch", Level.INFO, "Injecting "+aMethodName+" into "+className+".");
+ mv = getWriter().visitMethod(ACC_PUBLIC + ACC_STATIC, "testFuel", "(Ljava/lang/String;)Z", null, null);
+ mv.visitCode();
+ Label l0 = new Label();
+ mv.visitLabel(l0);
+ mv.visitLineNumber(37, l0);
+ mv.visitFieldInsn(GETSTATIC, "gtPlusPlus/core/item/chemistry/RocketFuels", "mValidRocketFuelNames", "Ljava/util/HashSet;");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "java/util/HashSet", "iterator", "()Ljava/util/Iterator;", false);
+ mv.visitVarInsn(ASTORE, 2);
+ Label l1 = new Label();
+ mv.visitJumpInsn(GOTO, l1);
+ Label l2 = new Label();
+ mv.visitLabel(l2);
+ mv.visitFrame(F_FULL, 3, new Object[] {"java/lang/String", TOP, "java/util/Iterator"}, 0, new Object[] {});
+ mv.visitVarInsn(ALOAD, 2);
+ mv.visitMethodInsn(INVOKEINTERFACE, "java/util/Iterator", "next", "()Ljava/lang/Object;", true);
+ mv.visitTypeInsn(CHECKCAST, "java/lang/String");
+ mv.visitVarInsn(ASTORE, 1);
+ Label l3 = new Label();
+ mv.visitLabel(l3);
+ mv.visitLineNumber(38, l3);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitVarInsn(ALOAD, 1);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/String", "equals", "(Ljava/lang/Object;)Z", false);
+ mv.visitJumpInsn(IFEQ, l1);
+ Label l4 = new Label();
+ mv.visitLabel(l4);
+ mv.visitLineNumber(39, l4);
+ mv.visitInsn(ICONST_1);
+ mv.visitInsn(IRETURN);
+ mv.visitLabel(l1);
+ mv.visitLineNumber(37, l1);
+ mv.visitFrame(F_SAME, 0, null, 0, null);
+ mv.visitVarInsn(ALOAD, 2);
+ mv.visitMethodInsn(INVOKEINTERFACE, "java/util/Iterator", "hasNext", "()Z", true);
+ mv.visitJumpInsn(IFNE, l2);
+ Label l5 = new Label();
+ mv.visitLabel(l5);
+ mv.visitLineNumber(42, l5);
+ mv.visitInsn(ICONST_0);
+ mv.visitInsn(IRETURN);
+ Label l6 = new Label();
+ mv.visitLabel(l6);
+ mv.visitLocalVariable("name", "Ljava/lang/String;", null, l0, l6, 0);
+ mv.visitLocalVariable("aFuelname", "Ljava/lang/String;", null, l3, l1, 1);
+ mv.visitMaxs(2, 3);
+ mv.visitEnd();
+ }
+ else if (aMethodName.equals("fillWithGCFuel")) {
+ mv = getWriter().visitMethod(ACC_PUBLIC + ACC_STATIC, "fillWithGCFuel", "(Lnet/minecraftforge/fluids/FluidTank;Lnet/minecraftforge/fluids/FluidStack;Z)I", null, null);
+ mv.visitCode();
+ Label l0 = new Label();
+ mv.visitLabel(l0);
+ mv.visitLineNumber(46, l0);
+ mv.visitVarInsn(ALOAD, 1);
+ Label l1 = new Label();
+ mv.visitJumpInsn(IFNULL, l1);
+ mv.visitVarInsn(ALOAD, 1);
+ mv.visitMethodInsn(INVOKESTATIC, "net/minecraftforge/fluids/FluidRegistry", "getFluidName", "(Lnet/minecraftforge/fluids/FluidStack;)Ljava/lang/String;", false);
+ mv.visitMethodInsn(INVOKESTATIC, "micdoodle8/mods/galacticraft/core/util/FluidUtil", "testFuel", "(Ljava/lang/String;)Z", false);
+ mv.visitJumpInsn(IFEQ, l1);
+ Label l2 = new Label();
+ mv.visitLabel(l2);
+ mv.visitLineNumber(47, l2);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "net/minecraftforge/fluids/FluidTank", "getFluid", "()Lnet/minecraftforge/fluids/FluidStack;", false);
+ mv.visitVarInsn(ASTORE, 3);
+ Label l3 = new Label();
+ mv.visitLabel(l3);
+ mv.visitLineNumber(48, l3);
+ mv.visitVarInsn(ALOAD, 3);
+ Label l4 = new Label();
+ mv.visitJumpInsn(IFNONNULL, l4);
+ Label l5 = new Label();
+ mv.visitLabel(l5);
+ mv.visitLineNumber(49, l5);
+ mv.visitFieldInsn(GETSTATIC, "gtPlusPlus/core/item/chemistry/RocketFuels", "mValidRocketFuels", "Ljava/util/HashMap;");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "java/util/HashMap", "values", "()Ljava/util/Collection;", false);
+ mv.visitMethodInsn(INVOKEINTERFACE, "java/util/Collection", "iterator", "()Ljava/util/Iterator;", true);
+ mv.visitVarInsn(ASTORE, 5);
+ Label l6 = new Label();
+ mv.visitJumpInsn(GOTO, l6);
+ Label l7 = new Label();
+ mv.visitLabel(l7);
+ mv.visitFrame(F_FULL, 6, new Object[] {"net/minecraftforge/fluids/FluidTank", "net/minecraftforge/fluids/FluidStack", INTEGER, "net/minecraftforge/fluids/FluidStack", TOP, "java/util/Iterator"}, 0, new Object[] {});
+ mv.visitVarInsn(ALOAD, 5);
+ mv.visitMethodInsn(INVOKEINTERFACE, "java/util/Iterator", "next", "()Ljava/lang/Object;", true);
+ mv.visitTypeInsn(CHECKCAST, "net/minecraftforge/fluids/Fluid");
+ mv.visitVarInsn(ASTORE, 4);
+ Label l8 = new Label();
+ mv.visitLabel(l8);
+ mv.visitLineNumber(50, l8);
+ mv.visitVarInsn(ALOAD, 1);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "net/minecraftforge/fluids/FluidStack", "getFluid", "()Lnet/minecraftforge/fluids/Fluid;", false);
+ mv.visitVarInsn(ALOAD, 4);
+ mv.visitJumpInsn(IF_ACMPNE, l6);
+ Label l9 = new Label();
+ mv.visitLabel(l9);
+ mv.visitLineNumber(51, l9);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitTypeInsn(NEW, "net/minecraftforge/fluids/FluidStack");
+ mv.visitInsn(DUP);
+ mv.visitVarInsn(ALOAD, 4);
+ mv.visitVarInsn(ALOAD, 1);
+ mv.visitFieldInsn(GETFIELD, "net/minecraftforge/fluids/FluidStack", "amount", "I");
+ mv.visitMethodInsn(INVOKESPECIAL, "net/minecraftforge/fluids/FluidStack", "<init>", "(Lnet/minecraftforge/fluids/Fluid;I)V", false);
+ mv.visitVarInsn(ILOAD, 2);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "net/minecraftforge/fluids/FluidTank", "fill", "(Lnet/minecraftforge/fluids/FluidStack;Z)I", false);
+ mv.visitInsn(IRETURN);
+ mv.visitLabel(l6);
+ mv.visitLineNumber(49, l6);
+ mv.visitFrame(F_SAME, 0, null, 0, null);
+ mv.visitVarInsn(ALOAD, 5);
+ mv.visitMethodInsn(INVOKEINTERFACE, "java/util/Iterator", "hasNext", "()Z", true);
+ mv.visitJumpInsn(IFNE, l7);
+ mv.visitLabel(l4);
+ mv.visitLineNumber(55, l4);
+ mv.visitFrame(F_FULL, 4, new Object[] {"net/minecraftforge/fluids/FluidTank", "net/minecraftforge/fluids/FluidStack", INTEGER, "net/minecraftforge/fluids/FluidStack"}, 0, new Object[] {});
+ mv.visitVarInsn(ALOAD, 3);
+ mv.visitFieldInsn(GETFIELD, "net/minecraftforge/fluids/FluidStack", "amount", "I");
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "net/minecraftforge/fluids/FluidTank", "getCapacity", "()I", false);
+ mv.visitJumpInsn(IF_ICMPGE, l1);
+ Label l10 = new Label();
+ mv.visitLabel(l10);
+ mv.visitLineNumber(56, l10);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitTypeInsn(NEW, "net/minecraftforge/fluids/FluidStack");
+ mv.visitInsn(DUP);
+ mv.visitVarInsn(ALOAD, 3);
+ mv.visitVarInsn(ALOAD, 1);
+ mv.visitFieldInsn(GETFIELD, "net/minecraftforge/fluids/FluidStack", "amount", "I");
+ mv.visitMethodInsn(INVOKESPECIAL, "net/minecraftforge/fluids/FluidStack", "<init>", "(Lnet/minecraftforge/fluids/FluidStack;I)V", false);
+ mv.visitVarInsn(ILOAD, 2);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "net/minecraftforge/fluids/FluidTank", "fill", "(Lnet/minecraftforge/fluids/FluidStack;Z)I", false);
+ mv.visitInsn(IRETURN);
+ mv.visitLabel(l1);
+ mv.visitLineNumber(59, l1);
+ mv.visitFrame(F_CHOP,1, null, 0, null);
+ mv.visitInsn(ICONST_0);
+ mv.visitInsn(IRETURN);
+ Label l11 = new Label();
+ mv.visitLabel(l11);
+ mv.visitLocalVariable("tank", "Lnet/minecraftforge/fluids/FluidTank;", null, l0, l11, 0);
+ mv.visitLocalVariable("liquid", "Lnet/minecraftforge/fluids/FluidStack;", null, l0, l11, 1);
+ mv.visitLocalVariable("doFill", "Z", null, l0, l11, 2);
+ mv.visitLocalVariable("liquidInTank", "Lnet/minecraftforge/fluids/FluidStack;", null, l3, l1, 3);
+ mv.visitLocalVariable("aFuelType", "Lnet/minecraftforge/fluids/Fluid;", null, l8, l6, 4);
+ mv.visitMaxs(5, 6);
+ mv.visitEnd();
+ }
+ FMLRelaunchLog.log("[GT++ ASM] Galacticraft FluidUtils 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("testFuel")) {
+ FMLRelaunchLog.log("[GT++ ASM] Galacticraft FluidUtils Patch", Level.INFO, "Removing method "+name);
+ return null;
+ }
+ if (name.equals("fillWithGCFuel")) {
+ FMLRelaunchLog.log("[GT++ ASM] Galacticraft FluidUtils Patch", Level.INFO, "Removing method "+name);
+ return null;
+ }
+ MethodVisitor methodVisitor = super.visitMethod(access, name, desc, signature, exceptions);
+ return methodVisitor;
+ }
+ }
+
+}
diff --git a/src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_GC_FuelLoader.java b/src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_GC_FuelLoader.java
new file mode 100644
index 0000000000..5ef5b75505
--- /dev/null
+++ b/src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_GC_FuelLoader.java
@@ -0,0 +1,622 @@
+package gtPlusPlus.preloader.asm.transformers;
+
+import static org.objectweb.asm.Opcodes.*;
+
+import java.io.IOException;
+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 gtPlusPlus.preloader.DevHelper;
+
+
+public class ClassTransformer_GC_FuelLoader {
+
+ //The qualified name of the class we plan to transform.
+ private static final String className = "micdoodle8.mods.galacticraft.core.tile.TileEntityFuelLoader";
+ //micdoodle8/mods/galacticraft/core/tile/TileEntityFuelLoader
+
+ private final boolean isValid;
+ private final ClassReader reader;
+ private final ClassWriter writer;
+ private final boolean isObfuscated;
+
+ public ClassTransformer_GC_FuelLoader(byte[] basicClass, boolean obfuscated) {
+
+ ClassReader aTempReader = null;
+ ClassWriter aTempWriter = null;
+
+ isObfuscated = obfuscated;
+
+ 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();
+ }
+ else {
+ FMLRelaunchLog.log("[GT++ ASM] Galacticraft Fuel_Loader Patch", Level.INFO, "Failed to Inject new code.");
+ }
+
+ }
+
+ public boolean isValidTransformer() {
+ return isValid;
+ }
+
+ public ClassReader getReader() {
+ return reader;
+ }
+
+ public ClassWriter getWriter() {
+ return writer;
+ }
+
+ public void injectMethod() {
+ String aWorld = isObfuscated ? DevHelper.getObfuscated("net/minecraft/world/World") : "net/minecraft/world/World";
+ String aItemStack = isObfuscated ? DevHelper.getObfuscated("net/minecraft/item/ItemStack") : "net/minecraft/item/ItemStack";
+ String aTileEntity = isObfuscated ? DevHelper.getObfuscated("net/minecraft/tileentity/TileEntity") : "net/minecraft/tileentity/TileEntity";
+
+ if (isValidTransformer()) {
+ FMLRelaunchLog.log("[GT++ ASM] Galacticraft Fuel_Loader Patch", Level.INFO, "Injecting updateEntity into "+className+".");
+ MethodVisitor mv = getWriter().visitMethod(ACC_PUBLIC, "updateEntity", "()V", null, null);
+ mv.visitCode();
+ Label l0 = new Label();
+ mv.visitLabel(l0);
+ mv.visitLineNumber(60, l0);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitMethodInsn(INVOKESPECIAL, "micdoodle8/mods/galacticraft/core/energy/tile/TileBaseElectricBlockWithInventory", "updateEntity", "()V", false);
+ Label l1 = new Label();
+ mv.visitLabel(l1);
+ mv.visitLineNumber(61, l1);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitFieldInsn(GETFIELD, "micdoodle8/mods/galacticraft/core/tile/TileEntityFuelLoader", "worldObj", "L"+aWorld+";");
+ mv.visitFieldInsn(GETFIELD, ""+aWorld+"", "isRemote", "Z");
+ Label l2 = new Label();
+ mv.visitJumpInsn(IFNE, l2);
+ Label l3 = new Label();
+ mv.visitLabel(l3);
+ mv.visitLineNumber(62, l3);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitInsn(ICONST_0);
+ mv.visitFieldInsn(PUTFIELD, "micdoodle8/mods/galacticraft/core/tile/TileEntityFuelLoader", "loadedFuelLastTick", "Z");
+ Label l4 = new Label();
+ mv.visitLabel(l4);
+ mv.visitLineNumber(63, l4);
+ mv.visitInsn(ACONST_NULL);
+ mv.visitVarInsn(ASTORE, 1);
+ Label l5 = new Label();
+ mv.visitLabel(l5);
+ mv.visitLineNumber(66, l5);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitFieldInsn(GETFIELD, "micdoodle8/mods/galacticraft/core/tile/TileEntityFuelLoader", "containingItems", "[L"+aItemStack+";");
+ mv.visitInsn(ICONST_1);
+ mv.visitInsn(AALOAD);
+ Label l6 = new Label();
+ mv.visitJumpInsn(IFNULL, l6);
+ Label l7 = new Label();
+ mv.visitLabel(l7);
+ mv.visitLineNumber(67, l7);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitFieldInsn(GETFIELD, "micdoodle8/mods/galacticraft/core/tile/TileEntityFuelLoader", "containingItems", "[L"+aItemStack+";");
+ mv.visitInsn(ICONST_1);
+ mv.visitInsn(AALOAD);
+ mv.visitMethodInsn(INVOKESTATIC, "net/minecraftforge/fluids/FluidContainerRegistry", "getFluidForFilledItem", "(L"+aItemStack+";)Lnet/minecraftforge/fluids/FluidStack;", false);
+ mv.visitVarInsn(ASTORE, 1);
+ Label l8 = new Label();
+ mv.visitLabel(l8);
+ mv.visitLineNumber(68, l8);
+ mv.visitVarInsn(ALOAD, 1);
+ mv.visitJumpInsn(IFNULL, l6);
+ Label l9 = new Label();
+ mv.visitLabel(l9);
+ mv.visitLineNumber(69, l9);
+ mv.visitVarInsn(ALOAD, 1);
+ mv.visitMethodInsn(INVOKESTATIC, "net/minecraftforge/fluids/FluidRegistry", "getFluidName", "(Lnet/minecraftforge/fluids/FluidStack;)Ljava/lang/String;", false);
+ mv.visitMethodInsn(INVOKESTATIC, "micdoodle8/mods/galacticraft/core/util/FluidUtil", "testFuel", "(Ljava/lang/String;)Z", false);
+ mv.visitVarInsn(ISTORE, 4);
+ Label l10 = new Label();
+ mv.visitLabel(l10);
+ mv.visitLineNumber(70, l10);
+ mv.visitVarInsn(ILOAD, 4);
+ mv.visitJumpInsn(IFEQ, l6);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitFieldInsn(GETFIELD, "micdoodle8/mods/galacticraft/core/tile/TileEntityFuelLoader", "fuelTank", "Lnet/minecraftforge/fluids/FluidTank;");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "net/minecraftforge/fluids/FluidTank", "getFluid", "()Lnet/minecraftforge/fluids/FluidStack;", false);
+ Label l11 = new Label();
+ mv.visitJumpInsn(IFNULL, l11);
+ Label l12 = new Label();
+ mv.visitLabel(l12);
+ mv.visitLineNumber(71, l12);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitFieldInsn(GETFIELD, "micdoodle8/mods/galacticraft/core/tile/TileEntityFuelLoader", "fuelTank", "Lnet/minecraftforge/fluids/FluidTank;");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "net/minecraftforge/fluids/FluidTank", "getFluid", "()Lnet/minecraftforge/fluids/FluidStack;", false);
+ mv.visitFieldInsn(GETFIELD, "net/minecraftforge/fluids/FluidStack", "amount", "I");
+ mv.visitVarInsn(ALOAD, 1);
+ mv.visitFieldInsn(GETFIELD, "net/minecraftforge/fluids/FluidStack", "amount", "I");
+ mv.visitInsn(IADD);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitFieldInsn(GETFIELD, "micdoodle8/mods/galacticraft/core/tile/TileEntityFuelLoader", "fuelTank", "Lnet/minecraftforge/fluids/FluidTank;");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "net/minecraftforge/fluids/FluidTank", "getCapacity", "()I", false);
+ mv.visitJumpInsn(IF_ICMPGT, l6);
+ mv.visitLabel(l11);
+ mv.visitLineNumber(73, l11);
+ mv.visitFrame(F_FULL, 5, new Object[] {"micdoodle8/mods/galacticraft/core/tile/TileEntityFuelLoader", "net/minecraftforge/fluids/FluidStack", TOP, TOP, INTEGER}, 0, new Object[] {});
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitFieldInsn(GETFIELD, "micdoodle8/mods/galacticraft/core/tile/TileEntityFuelLoader", "fuelTank", "Lnet/minecraftforge/fluids/FluidTank;");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "net/minecraftforge/fluids/FluidTank", "getFluid", "()Lnet/minecraftforge/fluids/FluidStack;", false);
+ mv.visitVarInsn(ASTORE, 5);
+ Label l13 = new Label();
+ mv.visitLabel(l13);
+ mv.visitLineNumber(74, l13);
+ mv.visitInsn(ICONST_0);
+ mv.visitVarInsn(ISTORE, 6);
+ Label l14 = new Label();
+ mv.visitLabel(l14);
+ mv.visitLineNumber(75, l14);
+ mv.visitVarInsn(ALOAD, 5);
+ Label l15 = new Label();
+ mv.visitJumpInsn(IFNONNULL, l15);
+ Label l16 = new Label();
+ mv.visitLabel(l16);
+ mv.visitLineNumber(76, l16);
+ mv.visitFieldInsn(GETSTATIC, "gtPlusPlus/core/item/chemistry/RocketFuels", "mValidRocketFuels", "Ljava/util/HashMap;");
+ Label l17 = new Label();
+ mv.visitLabel(l17);
+ mv.visitLineNumber(77, l17);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "java/util/HashMap", "values", "()Ljava/util/Collection;", false);
+ mv.visitMethodInsn(INVOKEINTERFACE, "java/util/Collection", "iterator", "()Ljava/util/Iterator;", true);
+ mv.visitVarInsn(ASTORE, 8);
+ Label l18 = new Label();
+ mv.visitJumpInsn(GOTO, l18);
+ Label l19 = new Label();
+ mv.visitLabel(l19);
+ mv.visitFrame(F_FULL, 9, new Object[] {"micdoodle8/mods/galacticraft/core/tile/TileEntityFuelLoader", "net/minecraftforge/fluids/FluidStack", TOP, TOP, INTEGER, "net/minecraftforge/fluids/FluidStack", INTEGER, TOP, "java/util/Iterator"}, 0, new Object[] {});
+ mv.visitVarInsn(ALOAD, 8);
+ mv.visitMethodInsn(INVOKEINTERFACE, "java/util/Iterator", "next", "()Ljava/lang/Object;", true);
+ mv.visitTypeInsn(CHECKCAST, "net/minecraftforge/fluids/Fluid");
+ mv.visitVarInsn(ASTORE, 7);
+ Label l20 = new Label();
+ mv.visitLabel(l20);
+ mv.visitLineNumber(78, l20);
+ mv.visitVarInsn(ALOAD, 1);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "net/minecraftforge/fluids/FluidStack", "getFluid", "()Lnet/minecraftforge/fluids/Fluid;", false);
+ mv.visitVarInsn(ALOAD, 7);
+ mv.visitJumpInsn(IF_ACMPNE, l18);
+ Label l21 = new Label();
+ mv.visitLabel(l21);
+ mv.visitLineNumber(79, l21);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitFieldInsn(GETFIELD, "micdoodle8/mods/galacticraft/core/tile/TileEntityFuelLoader", "fuelTank", "Lnet/minecraftforge/fluids/FluidTank;");
+ mv.visitTypeInsn(NEW, "net/minecraftforge/fluids/FluidStack");
+ mv.visitInsn(DUP);
+ mv.visitVarInsn(ALOAD, 7);
+ mv.visitVarInsn(ALOAD, 1);
+ mv.visitFieldInsn(GETFIELD, "net/minecraftforge/fluids/FluidStack", "amount", "I");
+ mv.visitMethodInsn(INVOKESPECIAL, "net/minecraftforge/fluids/FluidStack", "<init>", "(Lnet/minecraftforge/fluids/Fluid;I)V", false);
+ mv.visitInsn(ICONST_1);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "net/minecraftforge/fluids/FluidTank", "fill", "(Lnet/minecraftforge/fluids/FluidStack;Z)I", false);
+ Label l22 = new Label();
+ mv.visitJumpInsn(IFLE, l22);
+ mv.visitInsn(ICONST_1);
+ Label l23 = new Label();
+ mv.visitJumpInsn(GOTO, l23);
+ mv.visitLabel(l22);
+ mv.visitFrame(F_FULL, 9, new Object[] {"micdoodle8/mods/galacticraft/core/tile/TileEntityFuelLoader", "net/minecraftforge/fluids/FluidStack", TOP, TOP, INTEGER, "net/minecraftforge/fluids/FluidStack", INTEGER, "net/minecraftforge/fluids/Fluid", "java/util/Iterator"}, 0, new Object[] {});
+ mv.visitInsn(ICONST_0);
+ mv.visitLabel(l23);
+ mv.visitFrame(F_SAME1, 0, null, 1, new Object[] {INTEGER});
+ mv.visitVarInsn(ISTORE, 6);
+ mv.visitLabel(l18);
+ mv.visitLineNumber(76, l18);
+ mv.visitFrame(F_FULL, 9, new Object[] {"micdoodle8/mods/galacticraft/core/tile/TileEntityFuelLoader", "net/minecraftforge/fluids/FluidStack", TOP, TOP, INTEGER, "net/minecraftforge/fluids/FluidStack", INTEGER, TOP, "java/util/Iterator"}, 0, new Object[] {});
+ mv.visitVarInsn(ALOAD, 8);
+ mv.visitMethodInsn(INVOKEINTERFACE, "java/util/Iterator", "hasNext", "()Z", true);
+ mv.visitJumpInsn(IFNE, l19);
+ Label l24 = new Label();
+ mv.visitLabel(l24);
+ mv.visitLineNumber(82, l24);
+ Label l25 = new Label();
+ mv.visitJumpInsn(GOTO, l25);
+ mv.visitLabel(l15);
+ mv.visitLineNumber(84, l15);
+ mv.visitFrame(F_FULL, 7, new Object[] {"micdoodle8/mods/galacticraft/core/tile/TileEntityFuelLoader", "net/minecraftforge/fluids/FluidStack", TOP, TOP, INTEGER, "net/minecraftforge/fluids/FluidStack", INTEGER}, 0, new Object[] {});
+ mv.visitVarInsn(ALOAD, 5);
+ mv.visitFieldInsn(GETFIELD, "net/minecraftforge/fluids/FluidStack", "amount", "I");
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitFieldInsn(GETFIELD, "micdoodle8/mods/galacticraft/core/tile/TileEntityFuelLoader", "fuelTank", "Lnet/minecraftforge/fluids/FluidTank;");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "net/minecraftforge/fluids/FluidTank", "getCapacity", "()I", false);
+ mv.visitJumpInsn(IF_ICMPGE, l25);
+ mv.visitVarInsn(ALOAD, 5);
+ mv.visitVarInsn(ALOAD, 1);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "net/minecraftforge/fluids/FluidStack", "isFluidEqual", "(Lnet/minecraftforge/fluids/FluidStack;)Z", false);
+ mv.visitJumpInsn(IFEQ, l25);
+ Label l26 = new Label();
+ mv.visitLabel(l26);
+ mv.visitLineNumber(85, l26);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitFieldInsn(GETFIELD, "micdoodle8/mods/galacticraft/core/tile/TileEntityFuelLoader", "fuelTank", "Lnet/minecraftforge/fluids/FluidTank;");
+ mv.visitTypeInsn(NEW, "net/minecraftforge/fluids/FluidStack");
+ mv.visitInsn(DUP);
+ mv.visitVarInsn(ALOAD, 5);
+ mv.visitVarInsn(ALOAD, 1);
+ mv.visitFieldInsn(GETFIELD, "net/minecraftforge/fluids/FluidStack", "amount", "I");
+ mv.visitMethodInsn(INVOKESPECIAL, "net/minecraftforge/fluids/FluidStack", "<init>", "(Lnet/minecraftforge/fluids/FluidStack;I)V", false);
+ mv.visitInsn(ICONST_1);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "net/minecraftforge/fluids/FluidTank", "fill", "(Lnet/minecraftforge/fluids/FluidStack;Z)I", false);
+ Label l27 = new Label();
+ mv.visitJumpInsn(IFLE, l27);
+ mv.visitInsn(ICONST_1);
+ Label l28 = new Label();
+ mv.visitJumpInsn(GOTO, l28);
+ mv.visitLabel(l27);
+ mv.visitFrame(F_SAME, 0, null, 0, null);
+ mv.visitInsn(ICONST_0);
+ mv.visitLabel(l28);
+ mv.visitFrame(F_SAME1, 0, null, 1, new Object[] {INTEGER});
+ mv.visitVarInsn(ISTORE, 6);
+ mv.visitLabel(l25);
+ mv.visitLineNumber(88, l25);
+ mv.visitFrame(F_SAME, 0, null, 0, null);
+ mv.visitVarInsn(ILOAD, 6);
+ mv.visitJumpInsn(IFEQ, l6);
+ Label l29 = new Label();
+ mv.visitLabel(l29);
+ mv.visitLineNumber(89, l29);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitFieldInsn(GETFIELD, "micdoodle8/mods/galacticraft/core/tile/TileEntityFuelLoader", "containingItems", "[L"+aItemStack+";");
+ mv.visitInsn(ICONST_1);
+ mv.visitInsn(AALOAD);
+ mv.visitInsn(DUP);
+ mv.visitFieldInsn(GETFIELD, ""+aItemStack+"", "stackSize", "I");
+ mv.visitInsn(ICONST_1);
+ mv.visitInsn(ISUB);
+ mv.visitFieldInsn(PUTFIELD, ""+aItemStack+"", "stackSize", "I");
+ Label l30 = new Label();
+ mv.visitLabel(l30);
+ mv.visitLineNumber(90, l30);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitFieldInsn(GETFIELD, "micdoodle8/mods/galacticraft/core/tile/TileEntityFuelLoader", "containingItems", "[L"+aItemStack+";");
+ mv.visitInsn(ICONST_1);
+ mv.visitInsn(AALOAD);
+ mv.visitFieldInsn(GETFIELD, ""+aItemStack+"", "stackSize", "I");
+ mv.visitJumpInsn(IFNE, l6);
+ Label l31 = new Label();
+ mv.visitLabel(l31);
+ mv.visitLineNumber(91, l31);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitFieldInsn(GETFIELD, "micdoodle8/mods/galacticraft/core/tile/TileEntityFuelLoader", "containingItems", "[L"+aItemStack+";");
+ mv.visitInsn(ICONST_1);
+ mv.visitInsn(ACONST_NULL);
+ mv.visitInsn(AASTORE);
+ mv.visitLabel(l6);
+ mv.visitLineNumber(97, l6);
+ mv.visitFrame(F_FULL, 2, new Object[] {"micdoodle8/mods/galacticraft/core/tile/TileEntityFuelLoader", "net/minecraftforge/fluids/FluidStack"}, 0, new Object[] {});
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitFieldInsn(GETFIELD, "micdoodle8/mods/galacticraft/core/tile/TileEntityFuelLoader", "ticks", "I");
+ mv.visitIntInsn(BIPUSH, 100);
+ mv.visitInsn(IREM);
+ Label l32 = new Label();
+ mv.visitJumpInsn(IFNE, l32);
+ Label l33 = new Label();
+ mv.visitLabel(l33);
+ mv.visitLineNumber(98, l33);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitInsn(ACONST_NULL);
+ mv.visitFieldInsn(PUTFIELD, "micdoodle8/mods/galacticraft/core/tile/TileEntityFuelLoader", "attachedFuelable", "Lmicdoodle8/mods/galacticraft/api/entity/IFuelable;");
+ Label l34 = new Label();
+ mv.visitLabel(l34);
+ mv.visitLineNumber(99, l34);
+ mv.visitFieldInsn(GETSTATIC, "net/minecraftforge/common/util/ForgeDirection", "VALID_DIRECTIONS", "[Lnet/minecraftforge/common/util/ForgeDirection;");
+ mv.visitVarInsn(ASTORE, 4);
+ Label l35 = new Label();
+ mv.visitLabel(l35);
+ mv.visitLineNumber(100, l35);
+ mv.visitVarInsn(ALOAD, 4);
+ mv.visitInsn(ARRAYLENGTH);
+ mv.visitVarInsn(ISTORE, 3);
+ Label l36 = new Label();
+ mv.visitLabel(l36);
+ mv.visitLineNumber(102, l36);
+ mv.visitInsn(ICONST_0);
+ mv.visitVarInsn(ISTORE, 2);
+ Label l37 = new Label();
+ mv.visitLabel(l37);
+ Label l38 = new Label();
+ mv.visitJumpInsn(GOTO, l38);
+ Label l39 = new Label();
+ mv.visitLabel(l39);
+ mv.visitLineNumber(103, l39);
+ mv.visitFrame(F_APPEND,3, new Object[] {INTEGER, INTEGER, "[Lnet/minecraftforge/common/util/ForgeDirection;"}, 0, null);
+ mv.visitVarInsn(ALOAD, 4);
+ mv.visitVarInsn(ILOAD, 2);
+ mv.visitInsn(AALOAD);
+ mv.visitVarInsn(ASTORE, 5);
+ Label l40 = new Label();
+ mv.visitLabel(l40);
+ mv.visitLineNumber(104, l40);
+ mv.visitTypeInsn(NEW, "micdoodle8/mods/galacticraft/api/vector/BlockVec3");
+ mv.visitInsn(DUP);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitMethodInsn(INVOKESPECIAL, "micdoodle8/mods/galacticraft/api/vector/BlockVec3", "<init>", "(L"+aTileEntity+";)V", false);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitFieldInsn(GETFIELD, "micdoodle8/mods/galacticraft/core/tile/TileEntityFuelLoader", "worldObj", "L"+aWorld+";");
+ mv.visitVarInsn(ALOAD, 5);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "micdoodle8/mods/galacticraft/api/vector/BlockVec3", "getTileEntityOnSide", "(L"+aWorld+";Lnet/minecraftforge/common/util/ForgeDirection;)L"+aTileEntity+";", false);
+ mv.visitVarInsn(ASTORE, 6);
+ Label l41 = new Label();
+ mv.visitLabel(l41);
+ mv.visitLineNumber(105, l41);
+ mv.visitVarInsn(ALOAD, 6);
+ mv.visitTypeInsn(INSTANCEOF, "micdoodle8/mods/galacticraft/core/tile/TileEntityMulti");
+ Label l42 = new Label();
+ mv.visitJumpInsn(IFEQ, l42);
+ Label l43 = new Label();
+ mv.visitLabel(l43);
+ mv.visitLineNumber(106, l43);
+ mv.visitVarInsn(ALOAD, 6);
+ mv.visitTypeInsn(CHECKCAST, "micdoodle8/mods/galacticraft/core/tile/TileEntityMulti");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "micdoodle8/mods/galacticraft/core/tile/TileEntityMulti", "getMainBlockTile", "()L"+aTileEntity+";", false);
+ mv.visitVarInsn(ASTORE, 7);
+ Label l44 = new Label();
+ mv.visitLabel(l44);
+ mv.visitLineNumber(107, l44);
+ mv.visitVarInsn(ALOAD, 7);
+ mv.visitTypeInsn(INSTANCEOF, "micdoodle8/mods/galacticraft/api/entity/IFuelable");
+ Label l45 = new Label();
+ mv.visitJumpInsn(IFEQ, l45);
+ Label l46 = new Label();
+ mv.visitLabel(l46);
+ mv.visitLineNumber(108, l46);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitVarInsn(ALOAD, 7);
+ mv.visitTypeInsn(CHECKCAST, "micdoodle8/mods/galacticraft/api/entity/IFuelable");
+ mv.visitFieldInsn(PUTFIELD, "micdoodle8/mods/galacticraft/core/tile/TileEntityFuelLoader", "attachedFuelable", "Lmicdoodle8/mods/galacticraft/api/entity/IFuelable;");
+ Label l47 = new Label();
+ mv.visitLabel(l47);
+ mv.visitLineNumber(109, l47);
+ mv.visitJumpInsn(GOTO, l32);
+ mv.visitLabel(l42);
+ mv.visitLineNumber(111, l42);
+ mv.visitFrame(F_APPEND,2, new Object[] {"net/minecraftforge/common/util/ForgeDirection", ""+aTileEntity+""}, 0, null);
+ mv.visitVarInsn(ALOAD, 6);
+ mv.visitTypeInsn(INSTANCEOF, "micdoodle8/mods/galacticraft/api/entity/IFuelable");
+ mv.visitJumpInsn(IFEQ, l45);
+ Label l48 = new Label();
+ mv.visitLabel(l48);
+ mv.visitLineNumber(112, l48);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitVarInsn(ALOAD, 6);
+ mv.visitTypeInsn(CHECKCAST, "micdoodle8/mods/galacticraft/api/entity/IFuelable");
+ mv.visitFieldInsn(PUTFIELD, "micdoodle8/mods/galacticraft/core/tile/TileEntityFuelLoader", "attachedFuelable", "Lmicdoodle8/mods/galacticraft/api/entity/IFuelable;");
+ Label l49 = new Label();
+ mv.visitLabel(l49);
+ mv.visitLineNumber(113, l49);
+ mv.visitJumpInsn(GOTO, l32);
+ mv.visitLabel(l45);
+ mv.visitLineNumber(102, l45);
+ mv.visitFrame(F_CHOP,2, null, 0, null);
+ mv.visitIincInsn(2, 1);
+ mv.visitLabel(l38);
+ mv.visitFrame(F_SAME, 0, null, 0, null);
+ mv.visitVarInsn(ILOAD, 2);
+ mv.visitVarInsn(ILOAD, 3);
+ mv.visitJumpInsn(IF_ICMPLT, l39);
+ mv.visitLabel(l32);
+ mv.visitLineNumber(117, l32);
+ mv.visitFrame(F_CHOP,3, null, 0, null);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitFieldInsn(GETFIELD, "micdoodle8/mods/galacticraft/core/tile/TileEntityFuelLoader", "fuelTank", "Lnet/minecraftforge/fluids/FluidTank;");
+ mv.visitJumpInsn(IFNULL, l2);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitFieldInsn(GETFIELD, "micdoodle8/mods/galacticraft/core/tile/TileEntityFuelLoader", "fuelTank", "Lnet/minecraftforge/fluids/FluidTank;");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "net/minecraftforge/fluids/FluidTank", "getFluid", "()Lnet/minecraftforge/fluids/FluidStack;", false);
+ mv.visitJumpInsn(IFNULL, l2);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitFieldInsn(GETFIELD, "micdoodle8/mods/galacticraft/core/tile/TileEntityFuelLoader", "fuelTank", "Lnet/minecraftforge/fluids/FluidTank;");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "net/minecraftforge/fluids/FluidTank", "getFluid", "()Lnet/minecraftforge/fluids/FluidStack;", false);
+ mv.visitFieldInsn(GETFIELD, "net/minecraftforge/fluids/FluidStack", "amount", "I");
+ mv.visitJumpInsn(IFLE, l2);
+ Label l50 = new Label();
+ mv.visitLabel(l50);
+ mv.visitLineNumber(118, l50);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitFieldInsn(GETFIELD, "micdoodle8/mods/galacticraft/core/tile/TileEntityFuelLoader", "fuelTank", "Lnet/minecraftforge/fluids/FluidTank;");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "net/minecraftforge/fluids/FluidTank", "getFluid", "()Lnet/minecraftforge/fluids/FluidStack;", false);
+ mv.visitVarInsn(ASTORE, 4);
+ Label l51 = new Label();
+ mv.visitLabel(l51);
+ mv.visitLineNumber(119, l51);
+ mv.visitVarInsn(ALOAD, 4);
+ Label l52 = new Label();
+ mv.visitJumpInsn(IFNONNULL, l52);
+ Label l53 = new Label();
+ mv.visitLabel(l53);
+ mv.visitLineNumber(120, l53);
+ mv.visitFieldInsn(GETSTATIC, "gtPlusPlus/core/item/chemistry/RocketFuels", "mValidRocketFuels", "Ljava/util/HashMap;");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "java/util/HashMap", "values", "()Ljava/util/Collection;", false);
+ mv.visitMethodInsn(INVOKEINTERFACE, "java/util/Collection", "iterator", "()Ljava/util/Iterator;", true);
+ mv.visitVarInsn(ASTORE, 6);
+ Label l54 = new Label();
+ mv.visitJumpInsn(GOTO, l54);
+ Label l55 = new Label();
+ mv.visitLabel(l55);
+ mv.visitFrame(F_FULL, 7, new Object[] {"micdoodle8/mods/galacticraft/core/tile/TileEntityFuelLoader", "net/minecraftforge/fluids/FluidStack", TOP, TOP, "net/minecraftforge/fluids/FluidStack", TOP, "java/util/Iterator"}, 0, new Object[] {});
+ mv.visitVarInsn(ALOAD, 6);
+ mv.visitMethodInsn(INVOKEINTERFACE, "java/util/Iterator", "next", "()Ljava/lang/Object;", true);
+ mv.visitTypeInsn(CHECKCAST, "net/minecraftforge/fluids/Fluid");
+ mv.visitVarInsn(ASTORE, 5);
+ Label l56 = new Label();
+ mv.visitLabel(l56);
+ mv.visitLineNumber(121, l56);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitFieldInsn(GETFIELD, "micdoodle8/mods/galacticraft/core/tile/TileEntityFuelLoader", "fuelTank", "Lnet/minecraftforge/fluids/FluidTank;");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "net/minecraftforge/fluids/FluidTank", "getFluid", "()Lnet/minecraftforge/fluids/FluidStack;", false);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "net/minecraftforge/fluids/FluidStack", "getFluid", "()Lnet/minecraftforge/fluids/Fluid;", false);
+ mv.visitVarInsn(ALOAD, 5);
+ mv.visitJumpInsn(IF_ACMPNE, l54);
+ Label l57 = new Label();
+ mv.visitLabel(l57);
+ mv.visitLineNumber(122, l57);
+ mv.visitTypeInsn(NEW, "net/minecraftforge/fluids/FluidStack");
+ mv.visitInsn(DUP);
+ mv.visitVarInsn(ALOAD, 5);
+ mv.visitInsn(ICONST_2);
+ mv.visitMethodInsn(INVOKESPECIAL, "net/minecraftforge/fluids/FluidStack", "<init>", "(Lnet/minecraftforge/fluids/Fluid;I)V", false);
+ mv.visitVarInsn(ASTORE, 1);
+ mv.visitLabel(l54);
+ mv.visitLineNumber(120, l54);
+ mv.visitFrame(F_SAME, 0, null, 0, null);
+ mv.visitVarInsn(ALOAD, 6);
+ mv.visitMethodInsn(INVOKEINTERFACE, "java/util/Iterator", "hasNext", "()Z", true);
+ mv.visitJumpInsn(IFNE, l55);
+ mv.visitLabel(l52);
+ mv.visitLineNumber(126, l52);
+ mv.visitFrame(F_FULL, 5, new Object[] {"micdoodle8/mods/galacticraft/core/tile/TileEntityFuelLoader", "net/minecraftforge/fluids/FluidStack", TOP, TOP, "net/minecraftforge/fluids/FluidStack"}, 0, new Object[] {});
+ mv.visitVarInsn(ALOAD, 4);
+ mv.visitFieldInsn(GETFIELD, "net/minecraftforge/fluids/FluidStack", "amount", "I");
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitFieldInsn(GETFIELD, "micdoodle8/mods/galacticraft/core/tile/TileEntityFuelLoader", "fuelTank", "Lnet/minecraftforge/fluids/FluidTank;");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "net/minecraftforge/fluids/FluidTank", "getCapacity", "()I", false);
+ Label l58 = new Label();
+ mv.visitJumpInsn(IF_ICMPGE, l58);
+ Label l59 = new Label();
+ mv.visitLabel(l59);
+ mv.visitLineNumber(127, l59);
+ mv.visitTypeInsn(NEW, "net/minecraftforge/fluids/FluidStack");
+ mv.visitInsn(DUP);
+ mv.visitVarInsn(ALOAD, 4);
+ mv.visitInsn(ICONST_2);
+ mv.visitMethodInsn(INVOKESPECIAL, "net/minecraftforge/fluids/FluidStack", "<init>", "(Lnet/minecraftforge/fluids/FluidStack;I)V", false);
+ mv.visitVarInsn(ASTORE, 1);
+ mv.visitLabel(l58);
+ mv.visitLineNumber(130, l58);
+ mv.visitFrame(F_SAME, 0, null, 0, null);
+ mv.visitVarInsn(ALOAD, 1);
+ mv.visitJumpInsn(IFNULL, l2);
+ Label l60 = new Label();
+ mv.visitLabel(l60);
+ mv.visitLineNumber(131, l60);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitFieldInsn(GETFIELD, "micdoodle8/mods/galacticraft/core/tile/TileEntityFuelLoader", "attachedFuelable", "Lmicdoodle8/mods/galacticraft/api/entity/IFuelable;");
+ mv.visitJumpInsn(IFNULL, l2);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitFieldInsn(GETFIELD, "micdoodle8/mods/galacticraft/core/tile/TileEntityFuelLoader", "hasEnoughEnergyToRun", "Z");
+ mv.visitJumpInsn(IFEQ, l2);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitFieldInsn(GETFIELD, "micdoodle8/mods/galacticraft/core/tile/TileEntityFuelLoader", "disabled", "Z");
+ mv.visitJumpInsn(IFNE, l2);
+ Label l61 = new Label();
+ mv.visitLabel(l61);
+ mv.visitLineNumber(132, l61);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitFieldInsn(GETFIELD, "micdoodle8/mods/galacticraft/core/tile/TileEntityFuelLoader", "attachedFuelable", "Lmicdoodle8/mods/galacticraft/api/entity/IFuelable;");
+ mv.visitMethodInsn(INVOKESTATIC, "gtPlusPlus/xmod/galacticraft/util/GalacticUtils", "getRocketTier", "(Ljava/lang/Object;)I", false);
+ mv.visitVarInsn(ISTORE, 5);
+ Label l62 = new Label();
+ mv.visitLabel(l62);
+ mv.visitLineNumber(133, l62);
+ mv.visitVarInsn(ILOAD, 5);
+ mv.visitJumpInsn(IFLE, l2);
+ Label l63 = new Label();
+ mv.visitLabel(l63);
+ mv.visitLineNumber(134, l63);
+ mv.visitVarInsn(ILOAD, 5);
+ mv.visitVarInsn(ALOAD, 1);
+ mv.visitMethodInsn(INVOKESTATIC, "gtPlusPlus/xmod/galacticraft/util/GalacticUtils", "isFuelValidForTier", "(ILnet/minecraftforge/fluids/FluidStack;)Z", false);
+ mv.visitJumpInsn(IFEQ, l2);
+ Label l64 = new Label();
+ mv.visitLabel(l64);
+ mv.visitLineNumber(135, l64);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitFieldInsn(GETFIELD, "micdoodle8/mods/galacticraft/core/tile/TileEntityFuelLoader", "attachedFuelable", "Lmicdoodle8/mods/galacticraft/api/entity/IFuelable;");
+ mv.visitVarInsn(ALOAD, 1);
+ mv.visitInsn(ICONST_1);
+ mv.visitMethodInsn(INVOKEINTERFACE, "micdoodle8/mods/galacticraft/api/entity/IFuelable", "addFuel", "(Lnet/minecraftforge/fluids/FluidStack;Z)I", true);
+ mv.visitVarInsn(ISTORE, 3);
+ Label l65 = new Label();
+ mv.visitLabel(l65);
+ mv.visitLineNumber(136, l65);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitVarInsn(ILOAD, 3);
+ Label l66 = new Label();
+ mv.visitJumpInsn(IFLE, l66);
+ mv.visitInsn(ICONST_1);
+ Label l67 = new Label();
+ mv.visitJumpInsn(GOTO, l67);
+ mv.visitLabel(l66);
+ mv.visitFrame(F_FULL, 6, new Object[] {"micdoodle8/mods/galacticraft/core/tile/TileEntityFuelLoader", "net/minecraftforge/fluids/FluidStack", TOP, INTEGER, "net/minecraftforge/fluids/FluidStack", INTEGER}, 1, new Object[] {"micdoodle8/mods/galacticraft/core/tile/TileEntityFuelLoader"});
+ mv.visitInsn(ICONST_0);
+ mv.visitLabel(l67);
+ mv.visitFrame(F_FULL, 6, new Object[] {"micdoodle8/mods/galacticraft/core/tile/TileEntityFuelLoader", "net/minecraftforge/fluids/FluidStack", TOP, INTEGER, "net/minecraftforge/fluids/FluidStack", INTEGER}, 2, new Object[] {"micdoodle8/mods/galacticraft/core/tile/TileEntityFuelLoader", INTEGER});
+ mv.visitFieldInsn(PUTFIELD, "micdoodle8/mods/galacticraft/core/tile/TileEntityFuelLoader", "loadedFuelLastTick", "Z");
+ Label l68 = new Label();
+ mv.visitLabel(l68);
+ mv.visitLineNumber(137, l68);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitFieldInsn(GETFIELD, "micdoodle8/mods/galacticraft/core/tile/TileEntityFuelLoader", "fuelTank", "Lnet/minecraftforge/fluids/FluidTank;");
+ mv.visitVarInsn(ILOAD, 3);
+ mv.visitInsn(ICONST_1);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "net/minecraftforge/fluids/FluidTank", "drain", "(IZ)Lnet/minecraftforge/fluids/FluidStack;", false);
+ mv.visitInsn(POP);
+ mv.visitLabel(l2);
+ mv.visitLineNumber(144, l2);
+ mv.visitFrame(F_FULL, 1, new Object[] {"micdoodle8/mods/galacticraft/core/tile/TileEntityFuelLoader"}, 0, new Object[] {});
+ mv.visitInsn(RETURN);
+ Label l69 = new Label();
+ mv.visitLabel(l69);
+ mv.visitLocalVariable("this", "Lmicdoodle8/mods/galacticraft/core/tile/TileEntityFuelLoader;", null, l0, l69, 0);
+ mv.visitLocalVariable("liquid", "Lnet/minecraftforge/fluids/FluidStack;", null, l5, l2, 1);
+ mv.visitLocalVariable("amount", "I", null, l37, l32, 2);
+ mv.visitLocalVariable("filled", "I", null, l36, l32, 3);
+ mv.visitLocalVariable("filled", "I", null, l65, l2, 3);
+ mv.visitLocalVariable("isFuel", "Z", null, l10, l6, 4);
+ mv.visitLocalVariable("liquidInTank", "Lnet/minecraftforge/fluids/FluidStack;", null, l13, l6, 5);
+ mv.visitLocalVariable("didFill", "Z", null, l14, l6, 6);
+ mv.visitLocalVariable("aFuelType", "Lnet/minecraftforge/fluids/Fluid;", null, l20, l18, 7);
+ mv.visitLocalVariable("var8", "[Lnet/minecraftforge/common/util/ForgeDirection;", null, l35, l32, 4);
+ mv.visitLocalVariable("dir", "Lnet/minecraftforge/common/util/ForgeDirection;", null, l40, l45, 5);
+ mv.visitLocalVariable("pad", "L"+aTileEntity+";", null, l41, l45, 6);
+ mv.visitLocalVariable("mainTile", "L"+aTileEntity+";", null, l44, l42, 7);
+ mv.visitLocalVariable("liquidInTank", "Lnet/minecraftforge/fluids/FluidStack;", null, l51, l2, 4);
+ mv.visitLocalVariable("aFuelType", "Lnet/minecraftforge/fluids/Fluid;", null, l56, l54, 5);
+ mv.visitLocalVariable("aTier", "I", null, l62, l2, 5);
+ mv.visitMaxs(5, 9);
+ mv.visitEnd();
+ }
+ }
+
+ public static final class localClassVisitor extends ClassVisitor {
+
+ public localClassVisitor(ClassVisitor cv) {
+ super(ASM5, cv);
+ FMLRelaunchLog.log("[GT++ ASM] Galacticraft Fuel_Loader Patch", Level.INFO, "Inspecting Class "+className);
+ }
+
+ @Override
+ public MethodVisitor visitMethod(int access, String name, String desc, String signature, String[] exceptions) {
+ if (name.equals("updateEntity")) {
+ FMLRelaunchLog.log("[GT++ ASM] Galacticraft Fuel_Loader Patch", Level.INFO, "Removing method "+name);
+ return null;
+ }
+
+ MethodVisitor methodVisitor = super.visitMethod(access, name, desc, signature, exceptions);
+ return methodVisitor;
+ }
+ }
+
+}
diff --git a/src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_GT_Achievements.java b/src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_GT_Achievements.java
new file mode 100644
index 0000000000..2b9729a8a3
--- /dev/null
+++ b/src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_GT_Achievements.java
@@ -0,0 +1,1896 @@
+package gtPlusPlus.preloader.asm.transformers;
+
+import static org.objectweb.asm.Opcodes.*;
+
+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.common.FMLCommonHandler;
+import cpw.mods.fml.relauncher.FMLRelaunchLog;
+import net.minecraftforge.common.MinecraftForge;
+
+public class ClassTransformer_GT_Achievements {
+
+ private final boolean isValid;
+ private final ClassReader reader;
+ private final ClassWriter writer;
+ private static boolean mDidRemoveAssLineRecipeAdder = false;
+
+ public ClassTransformer_GT_Achievements(byte[] basicClass) {
+
+ ClassReader aTempReader = null;
+ ClassWriter aTempWriter = null;
+
+ aTempReader = new ClassReader(basicClass);
+ aTempWriter = new ClassWriter(aTempReader, ClassWriter.COMPUTE_FRAMES);
+
+ aTempReader.accept(new MethodAdaptor(aTempWriter), 0);
+
+ if (mDidRemoveAssLineRecipeAdder) {
+ FMLRelaunchLog.log("[GT++ ASM] Gregtech Achievements Patch", Level.INFO, "Patching GT .09");
+ injectMethod(aTempWriter);
+ patchOnItemPickup09(aTempWriter);
+ }
+ else {
+ FMLRelaunchLog.log("[GT++ ASM] Gregtech Achievements Patch", Level.INFO, "Patching GT .08");
+ patchOnItemPickup08(aTempWriter);
+ }
+
+ if (aTempReader != null && aTempWriter != null) {
+ isValid = true;
+ }
+ else {
+ isValid = false;
+ }
+
+ FMLRelaunchLog.log("[GT++ ASM] Gregtech Achievements 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(ClassWriter cw) {
+ MethodVisitor mv;
+ boolean didInject = false;
+ FMLRelaunchLog.log("[GT++ ASM] Gregtech Achievements Patch", Level.INFO, "Injecting " + "registerAssAchievement" + ".");
+
+ /**
+ * Inject new, safer code
+ */
+
+
+ /*mv = cw.visitMethod(ACC_PUBLIC, "registerAssAchievement", "(Lgregtech/api/util/GT_Recipe;)Lnet/minecraft/stats/Achievement;", null, null);
+ mv.visitCode();
+ Label l0 = new Label();
+ Label l1 = new Label();
+ Label l2 = new Label();
+ mv.visitTryCatchBlock(l0, l1, l2, "java/lang/Throwable");
+ Label l3 = new Label();
+ mv.visitLabel(l3);
+ mv.visitLineNumber(291, l3);
+ mv.visitVarInsn(ALOAD, 1);
+ Label l4 = new Label();
+ mv.visitJumpInsn(IFNONNULL, l4);
+ Label l5 = new Label();
+ mv.visitLabel(l5);
+ mv.visitLineNumber(292, l5);
+ mv.visitLdcInsn("Someone tried to register an achievement for an invalid recipe. Please report this to Alkalus.");
+ mv.visitMethodInsn(INVOKESTATIC, "gtPlusPlus/api/objects/Logger", "INFO", "(Ljava/lang/String;)V", false);
+ Label l6 = new Label();
+ mv.visitLabel(l6);
+ mv.visitLineNumber(293, l6);
+ mv.visitInsn(ACONST_NULL);
+ mv.visitInsn(ARETURN);
+ mv.visitLabel(l4);
+ mv.visitLineNumber(295, l4);
+ mv.visitFrame(F_SAME, 0, null, 0, null);
+ mv.visitVarInsn(ALOAD, 1);
+ mv.visitInsn(ICONST_0);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "gregtech/api/util/GT_Recipe", "getOutput", "(I)Lnet/minecraft/item/ItemStack;", false);
+ Label l7 = new Label();
+ mv.visitJumpInsn(IFNONNULL, l7);
+ Label l8 = new Label();
+ mv.visitLabel(l8);
+ mv.visitLineNumber(296, l8);
+ mv.visitLdcInsn("Someone tried to register an achievement for a recipe with null output. Please report this to Alkalus.");
+ mv.visitMethodInsn(INVOKESTATIC, "gtPlusPlus/api/objects/Logger", "INFO", "(Ljava/lang/String;)V", false);
+ Label l9 = new Label();
+ mv.visitLabel(l9);
+ mv.visitLineNumber(297, l9);
+ mv.visitInsn(ACONST_NULL);
+ mv.visitInsn(ARETURN);
+ mv.visitLabel(l7);
+ mv.visitLineNumber(299, l7);
+ mv.visitFrame(F_SAME, 0, null, 0, null);
+ mv.visitVarInsn(ALOAD, 1);
+ mv.visitInsn(ICONST_0);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "gregtech/api/util/GT_Recipe", "getOutput", "(I)Lnet/minecraft/item/ItemStack;", false);
+ mv.visitVarInsn(ASTORE, 3);
+ mv.visitLabel(l0);
+ mv.visitLineNumber(301, l0);
+ mv.visitVarInsn(ALOAD, 3);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "net/minecraft/item/ItemStack", "getUnlocalizedName", "()Ljava/lang/String;", false);
+ mv.visitVarInsn(ASTORE, 2);
+ mv.visitLabel(l1);
+ mv.visitLineNumber(302, l1);
+ Label l10 = new Label();
+ mv.visitJumpInsn(GOTO, l10);
+ mv.visitLabel(l2);
+ mv.visitLineNumber(303, l2);
+ mv.visitFrame(F_FULL, 4, new Object[] {"gregtech/loaders/misc/GT_Achievements", "gregtech/api/util/GT_Recipe", TOP, "net/minecraft/item/ItemStack"}, 1, new Object[] {"java/lang/Throwable"});
+ mv.visitVarInsn(ASTORE, 4);
+ Label l11 = new Label();
+ mv.visitLabel(l11);
+ mv.visitLineNumber(304, l11);
+ mv.visitVarInsn(ALOAD, 3);
+ mv.visitMethodInsn(INVOKESTATIC, "gtPlusPlus/core/util/minecraft/ItemUtils", "getUnlocalizedItemName", "(Lnet/minecraft/item/ItemStack;)Ljava/lang/String;", false);
+ mv.visitVarInsn(ASTORE, 2);
+ mv.visitLabel(l10);
+ mv.visitLineNumber(306, l10);
+ mv.visitFrame(F_FULL, 4, new Object[] {"gregtech/loaders/misc/GT_Achievements", "gregtech/api/util/GT_Recipe", "java/lang/String", "net/minecraft/item/ItemStack"}, 0, new Object[] {});
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitFieldInsn(GETFIELD, "gregtech/loaders/misc/GT_Achievements", "achievementList", "Ljava/util/concurrent/ConcurrentHashMap;");
+ mv.visitVarInsn(ALOAD, 2);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "java/util/concurrent/ConcurrentHashMap", "get", "(Ljava/lang/Object;)Ljava/lang/Object;", false);
+ Label l12 = new Label();
+ mv.visitJumpInsn(IFNONNULL, l12);
+ Label l13 = new Label();
+ mv.visitLabel(l13);
+ mv.visitLineNumber(307, l13);
+ mv.visitFieldInsn(GETSTATIC, "gregtech/loaders/misc/GT_Achievements", "assReg", "I");
+ mv.visitInsn(ICONST_1);
+ mv.visitInsn(IADD);
+ mv.visitFieldInsn(PUTSTATIC, "gregtech/loaders/misc/GT_Achievements", "assReg", "I");
+ Label l14 = new Label();
+ mv.visitLabel(l14);
+ mv.visitLineNumber(308, l14);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitVarInsn(ALOAD, 2);
+ mv.visitIntInsn(BIPUSH, 11);
+ mv.visitFieldInsn(GETSTATIC, "gregtech/loaders/misc/GT_Achievements", "assReg", "I");
+ mv.visitInsn(ICONST_5);
+ mv.visitInsn(IREM);
+ mv.visitInsn(IADD);
+ mv.visitInsn(INEG);
+ mv.visitFieldInsn(GETSTATIC, "gregtech/loaders/misc/GT_Achievements", "assReg", "I");
+ mv.visitInsn(ICONST_5);
+ mv.visitInsn(IDIV);
+ mv.visitIntInsn(BIPUSH, 8);
+ mv.visitInsn(ISUB);
+ mv.visitVarInsn(ALOAD, 1);
+ mv.visitInsn(ICONST_0);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "gregtech/api/util/GT_Recipe", "getOutput", "(I)Lnet/minecraft/item/ItemStack;", false);
+ mv.visitFieldInsn(GETSTATIC, "net/minecraft/stats/AchievementList", "openInventory", "Lnet/minecraft/stats/Achievement;");
+ mv.visitInsn(ICONST_0);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "gregtech/loaders/misc/GT_Achievements", "registerAchievement", "(Ljava/lang/String;IILnet/minecraft/item/ItemStack;Lnet/minecraft/stats/Achievement;Z)Lnet/minecraft/stats/Achievement;", false);
+ mv.visitInsn(ARETURN);
+ mv.visitLabel(l12);
+ mv.visitLineNumber(310, l12);
+ mv.visitFrame(F_SAME, 0, null, 0, null);
+ mv.visitInsn(ACONST_NULL);
+ mv.visitInsn(ARETURN);
+ Label l15 = new Label();
+ mv.visitLabel(l15);
+ mv.visitLocalVariable("this", "Lgregtech/loaders/misc/GT_Achievements;", null, l3, l15, 0);
+ mv.visitLocalVariable("recipe", "Lgregtech/api/util/GT_Recipe;", null, l3, l15, 1);
+ mv.visitLocalVariable("aSafeUnlocalName", "Ljava/lang/String;", null, l1, l2, 2);
+ mv.visitLocalVariable("aSafeUnlocalName", "Ljava/lang/String;", null, l10, l15, 2);
+ mv.visitLocalVariable("aStack", "Lnet/minecraft/item/ItemStack;", null, l0, l15, 3);
+ mv.visitLocalVariable("t", "Ljava/lang/Throwable;", null, l11, l10, 4);
+ mv.visitMaxs(7, 5);
+ mv.visitEnd();*/
+
+ //Lets just static call my replacement function
+ mv = cw.visitMethod(ACC_PUBLIC, "registerAssAchievement", "(Lgregtech/api/util/GT_Recipe;)Lnet/minecraft/stats/Achievement;", null, null);
+ mv.visitCode();
+ Label l0 = new Label();
+ mv.visitLabel(l0);
+ mv.visitLineNumber(291, l0);
+ mv.visitVarInsn(ALOAD, 1);
+ mv.visitMethodInsn(INVOKESTATIC, "gtPlusPlus/xmod/gregtech/loaders/misc/AssLineAchievements", "registerAssAchievement", "(Lgregtech/api/util/GT_Recipe;)Lnet/minecraft/stats/Achievement;", false);
+ mv.visitInsn(ARETURN);
+ Label l1 = new Label();
+ mv.visitLabel(l1);
+ mv.visitLocalVariable("this", "Lgregtech/loaders/misc/GT_Achievements;", null, l0, l1, 0);
+ mv.visitLocalVariable("recipe", "Lgregtech/api/util/GT_Recipe;", null, l0, l1, 1);
+ mv.visitMaxs(1, 2);
+ mv.visitEnd();
+
+ didInject = true;
+ FMLRelaunchLog.log("[GT++ ASM] Gregtech Achievements Patch", Level.INFO, "Method injection complete.");
+ return didInject;
+ }
+
+
+
+ public boolean patchOnItemPickup08(ClassWriter cw) {
+ MethodVisitor mv;
+ boolean didInject = false;
+ FMLRelaunchLog.log("[GT++ ASM] Gregtech Achievements Patch", Level.INFO, "Injecting " + "onItemPickup" + ".");
+
+ AnnotationVisitor av0;
+ mv = cw.visitMethod(ACC_PUBLIC, "onItemPickup", "(Lnet/minecraftforge/event/entity/player/EntityItemPickupEvent;)V", null, null);
+ av0 = mv.visitAnnotation("Lcpw/mods/fml/common/eventhandler/SubscribeEvent;", true);
+ av0.visitEnd();
+ mv.visitCode();
+ Label l0 = new Label();
+ mv.visitLabel(l0);
+ mv.visitLineNumber(418, l0);
+ mv.visitVarInsn(ALOAD, 1);
+ mv.visitFieldInsn(GETFIELD, "net/minecraftforge/event/entity/player/EntityItemPickupEvent", "entityPlayer", "Lnet/minecraft/entity/player/EntityPlayer;");
+ mv.visitVarInsn(ASTORE, 2);
+ Label l1 = new Label();
+ mv.visitLabel(l1);
+ mv.visitLineNumber(419, l1);
+ mv.visitVarInsn(ALOAD, 1);
+ mv.visitFieldInsn(GETFIELD, "net/minecraftforge/event/entity/player/EntityItemPickupEvent", "item", "Lnet/minecraft/entity/item/EntityItem;");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "net/minecraft/entity/item/EntityItem", "getEntityItem", "()Lnet/minecraft/item/ItemStack;", false);
+ mv.visitVarInsn(ASTORE, 3);
+ Label l2 = new Label();
+ mv.visitLabel(l2);
+ mv.visitLineNumber(420, l2);
+ mv.visitVarInsn(ALOAD, 2);
+ Label l3 = new Label();
+ mv.visitJumpInsn(IFNULL, l3);
+ mv.visitVarInsn(ALOAD, 3);
+ Label l4 = new Label();
+ mv.visitJumpInsn(IFNONNULL, l4);
+ mv.visitLabel(l3);
+ mv.visitLineNumber(421, l3);
+ mv.visitFrame(F_APPEND,2, new Object[] {"net/minecraft/entity/player/EntityPlayer", "net/minecraft/item/ItemStack"}, 0, null);
+ mv.visitInsn(RETURN);
+ mv.visitLabel(l4);
+ mv.visitLineNumber(424, l4);
+ mv.visitFrame(F_SAME, 0, null, 0, null);
+ mv.visitVarInsn(ALOAD, 3);
+ mv.visitMethodInsn(INVOKESTATIC, "gregtech/api/util/GT_OreDictUnificator", "getItemData", "(Lnet/minecraft/item/ItemStack;)Lgregtech/api/objects/ItemData;", false);
+ mv.visitVarInsn(ASTORE, 4);
+ Label l5 = new Label();
+ mv.visitLabel(l5);
+ mv.visitLineNumber(425, l5);
+ mv.visitVarInsn(ALOAD, 4);
+ Label l6 = new Label();
+ mv.visitJumpInsn(IFNULL, l6);
+ Label l7 = new Label();
+ mv.visitLabel(l7);
+ mv.visitLineNumber(426, l7);
+ mv.visitVarInsn(ALOAD, 4);
+ mv.visitFieldInsn(GETFIELD, "gregtech/api/objects/ItemData", "mPrefix", "Lgregtech/api/enums/OrePrefixes;");
+ mv.visitFieldInsn(GETSTATIC, "gregtech/api/enums/OrePrefixes", "dust", "Lgregtech/api/enums/OrePrefixes;");
+ Label l8 = new Label();
+ mv.visitJumpInsn(IF_ACMPNE, l8);
+ Label l9 = new Label();
+ mv.visitLabel(l9);
+ mv.visitLineNumber(427, l9);
+ mv.visitVarInsn(ALOAD, 4);
+ mv.visitFieldInsn(GETFIELD, "gregtech/api/objects/ItemData", "mMaterial", "Lgregtech/api/objects/MaterialStack;");
+ mv.visitFieldInsn(GETFIELD, "gregtech/api/objects/MaterialStack", "mMaterial", "Lgregtech/api/enums/Materials;");
+ mv.visitFieldInsn(GETSTATIC, "gregtech/api/enums/Materials", "Lutetium", "Lgregtech/api/enums/Materials;");
+ Label l10 = new Label();
+ mv.visitJumpInsn(IF_ACMPNE, l10);
+ Label l11 = new Label();
+ mv.visitLabel(l11);
+ mv.visitLineNumber(428, l11);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitVarInsn(ALOAD, 2);
+ mv.visitLdcInsn("newmetal");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "gregtech/loaders/misc/GT_Achievements", "issueAchievement", "(Lnet/minecraft/entity/player/EntityPlayer;Ljava/lang/String;)V", false);
+ mv.visitLabel(l10);
+ mv.visitLineNumber(430, l10);
+ mv.visitFrame(F_APPEND,1, new Object[] {"gregtech/api/objects/ItemData"}, 0, null);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitVarInsn(ALOAD, 2);
+ mv.visitLdcInsn("cleandust");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "gregtech/loaders/misc/GT_Achievements", "issueAchievement", "(Lnet/minecraft/entity/player/EntityPlayer;Ljava/lang/String;)V", false);
+ Label l12 = new Label();
+ mv.visitLabel(l12);
+ mv.visitLineNumber(431, l12);
+ mv.visitJumpInsn(GOTO, l6);
+ mv.visitLabel(l8);
+ mv.visitFrame(F_SAME, 0, null, 0, null);
+ mv.visitVarInsn(ALOAD, 4);
+ mv.visitFieldInsn(GETFIELD, "gregtech/api/objects/ItemData", "mPrefix", "Lgregtech/api/enums/OrePrefixes;");
+ mv.visitFieldInsn(GETSTATIC, "gregtech/api/enums/OrePrefixes", "ore", "Lgregtech/api/enums/OrePrefixes;");
+ Label l13 = new Label();
+ mv.visitJumpInsn(IF_ACMPEQ, l13);
+ mv.visitVarInsn(ALOAD, 4);
+ mv.visitFieldInsn(GETFIELD, "gregtech/api/objects/ItemData", "mPrefix", "Lgregtech/api/enums/OrePrefixes;");
+ mv.visitFieldInsn(GETSTATIC, "gregtech/api/enums/OrePrefixes", "oreBlackgranite", "Lgregtech/api/enums/OrePrefixes;");
+ mv.visitJumpInsn(IF_ACMPEQ, l13);
+ mv.visitVarInsn(ALOAD, 4);
+ mv.visitFieldInsn(GETFIELD, "gregtech/api/objects/ItemData", "mPrefix", "Lgregtech/api/enums/OrePrefixes;");
+ mv.visitFieldInsn(GETSTATIC, "gregtech/api/enums/OrePrefixes", "oreEndstone", "Lgregtech/api/enums/OrePrefixes;");
+ mv.visitJumpInsn(IF_ACMPEQ, l13);
+ Label l14 = new Label();
+ mv.visitLabel(l14);
+ mv.visitLineNumber(432, l14);
+ mv.visitVarInsn(ALOAD, 4);
+ mv.visitFieldInsn(GETFIELD, "gregtech/api/objects/ItemData", "mPrefix", "Lgregtech/api/enums/OrePrefixes;");
+ mv.visitFieldInsn(GETSTATIC, "gregtech/api/enums/OrePrefixes", "oreNetherrack", "Lgregtech/api/enums/OrePrefixes;");
+ mv.visitJumpInsn(IF_ACMPEQ, l13);
+ mv.visitVarInsn(ALOAD, 4);
+ mv.visitFieldInsn(GETFIELD, "gregtech/api/objects/ItemData", "mPrefix", "Lgregtech/api/enums/OrePrefixes;");
+ mv.visitFieldInsn(GETSTATIC, "gregtech/api/enums/OrePrefixes", "oreRedgranite", "Lgregtech/api/enums/OrePrefixes;");
+ Label l15 = new Label();
+ mv.visitJumpInsn(IF_ACMPNE, l15);
+ mv.visitLabel(l13);
+ mv.visitLineNumber(433, l13);
+ mv.visitFrame(F_SAME, 0, null, 0, null);
+ mv.visitInsn(ICONST_0);
+ mv.visitVarInsn(ISTORE, 5);
+ Label l16 = new Label();
+ mv.visitLabel(l16);
+ Label l17 = new Label();
+ mv.visitJumpInsn(GOTO, l17);
+ Label l18 = new Label();
+ mv.visitLabel(l18);
+ mv.visitLineNumber(434, l18);
+ mv.visitFrame(F_APPEND,1, new Object[] {INTEGER}, 0, null);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitVarInsn(ALOAD, 2);
+ mv.visitVarInsn(ALOAD, 4);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "gregtech/api/objects/ItemData", "getAllMaterialStacks", "()Ljava/util/ArrayList;", false);
+ mv.visitVarInsn(ILOAD, 5);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "java/util/ArrayList", "get", "(I)Ljava/lang/Object;", false);
+ mv.visitTypeInsn(CHECKCAST, "gregtech/api/objects/MaterialStack");
+ mv.visitFieldInsn(GETFIELD, "gregtech/api/objects/MaterialStack", "mMaterial", "Lgregtech/api/enums/Materials;");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "gregtech/api/enums/Materials", "name", "()Ljava/lang/String;", false);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "gregtech/loaders/misc/GT_Achievements", "issueAchievement", "(Lnet/minecraft/entity/player/EntityPlayer;Ljava/lang/String;)V", false);
+ Label l19 = new Label();
+ mv.visitLabel(l19);
+ mv.visitLineNumber(435, l19);
+ mv.visitVarInsn(ALOAD, 4);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "gregtech/api/objects/ItemData", "getAllMaterialStacks", "()Ljava/util/ArrayList;", false);
+ mv.visitVarInsn(ILOAD, 5);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "java/util/ArrayList", "get", "(I)Ljava/lang/Object;", false);
+ mv.visitTypeInsn(CHECKCAST, "gregtech/api/objects/MaterialStack");
+ mv.visitFieldInsn(GETFIELD, "gregtech/api/objects/MaterialStack", "mMaterial", "Lgregtech/api/enums/Materials;");
+ mv.visitFieldInsn(GETSTATIC, "gregtech/api/enums/Materials", "AnyIron", "Lgregtech/api/enums/Materials;");
+ Label l20 = new Label();
+ mv.visitJumpInsn(IF_ACMPNE, l20);
+ Label l21 = new Label();
+ mv.visitLabel(l21);
+ mv.visitLineNumber(436, l21);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitVarInsn(ALOAD, 2);
+ mv.visitLdcInsn("iron");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "gregtech/loaders/misc/GT_Achievements", "issueAchievement", "(Lnet/minecraft/entity/player/EntityPlayer;Ljava/lang/String;)V", false);
+ mv.visitLabel(l20);
+ mv.visitLineNumber(433, l20);
+ mv.visitFrame(F_SAME, 0, null, 0, null);
+ mv.visitIincInsn(5, 1);
+ mv.visitLabel(l17);
+ mv.visitFrame(F_SAME, 0, null, 0, null);
+ mv.visitVarInsn(ILOAD, 5);
+ mv.visitVarInsn(ALOAD, 4);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "gregtech/api/objects/ItemData", "getAllMaterialStacks", "()Ljava/util/ArrayList;", false);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "java/util/ArrayList", "size", "()I", false);
+ mv.visitJumpInsn(IF_ICMPLT, l18);
+ Label l22 = new Label();
+ mv.visitLabel(l22);
+ mv.visitLineNumber(439, l22);
+ mv.visitJumpInsn(GOTO, l6);
+ mv.visitLabel(l15);
+ mv.visitFrame(F_CHOP,1, null, 0, null);
+ mv.visitVarInsn(ALOAD, 4);
+ mv.visitFieldInsn(GETFIELD, "gregtech/api/objects/ItemData", "mPrefix", "Lgregtech/api/enums/OrePrefixes;");
+ mv.visitFieldInsn(GETSTATIC, "gregtech/api/enums/OrePrefixes", "crushed", "Lgregtech/api/enums/OrePrefixes;");
+ Label l23 = new Label();
+ mv.visitJumpInsn(IF_ACMPNE, l23);
+ Label l24 = new Label();
+ mv.visitLabel(l24);
+ mv.visitLineNumber(440, l24);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitVarInsn(ALOAD, 2);
+ mv.visitLdcInsn("crushed");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "gregtech/loaders/misc/GT_Achievements", "issueAchievement", "(Lnet/minecraft/entity/player/EntityPlayer;Ljava/lang/String;)V", false);
+ Label l25 = new Label();
+ mv.visitLabel(l25);
+ mv.visitLineNumber(441, l25);
+ mv.visitJumpInsn(GOTO, l6);
+ mv.visitLabel(l23);
+ mv.visitFrame(F_SAME, 0, null, 0, null);
+ mv.visitVarInsn(ALOAD, 4);
+ mv.visitFieldInsn(GETFIELD, "gregtech/api/objects/ItemData", "mPrefix", "Lgregtech/api/enums/OrePrefixes;");
+ mv.visitFieldInsn(GETSTATIC, "gregtech/api/enums/OrePrefixes", "crushedPurified", "Lgregtech/api/enums/OrePrefixes;");
+ Label l26 = new Label();
+ mv.visitJumpInsn(IF_ACMPNE, l26);
+ Label l27 = new Label();
+ mv.visitLabel(l27);
+ mv.visitLineNumber(442, l27);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitVarInsn(ALOAD, 2);
+ mv.visitLdcInsn("washing");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "gregtech/loaders/misc/GT_Achievements", "issueAchievement", "(Lnet/minecraft/entity/player/EntityPlayer;Ljava/lang/String;)V", false);
+ Label l28 = new Label();
+ mv.visitLabel(l28);
+ mv.visitLineNumber(443, l28);
+ mv.visitJumpInsn(GOTO, l6);
+ mv.visitLabel(l26);
+ mv.visitFrame(F_SAME, 0, null, 0, null);
+ mv.visitVarInsn(ALOAD, 4);
+ mv.visitFieldInsn(GETFIELD, "gregtech/api/objects/ItemData", "mPrefix", "Lgregtech/api/enums/OrePrefixes;");
+ mv.visitFieldInsn(GETSTATIC, "gregtech/api/enums/OrePrefixes", "crushedCentrifuged", "Lgregtech/api/enums/OrePrefixes;");
+ Label l29 = new Label();
+ mv.visitJumpInsn(IF_ACMPNE, l29);
+ Label l30 = new Label();
+ mv.visitLabel(l30);
+ mv.visitLineNumber(444, l30);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitVarInsn(ALOAD, 2);
+ mv.visitLdcInsn("spinit");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "gregtech/loaders/misc/GT_Achievements", "issueAchievement", "(Lnet/minecraft/entity/player/EntityPlayer;Ljava/lang/String;)V", false);
+ Label l31 = new Label();
+ mv.visitLabel(l31);
+ mv.visitLineNumber(445, l31);
+ mv.visitJumpInsn(GOTO, l6);
+ mv.visitLabel(l29);
+ mv.visitFrame(F_SAME, 0, null, 0, null);
+ mv.visitVarInsn(ALOAD, 4);
+ mv.visitFieldInsn(GETFIELD, "gregtech/api/objects/ItemData", "mMaterial", "Lgregtech/api/objects/MaterialStack;");
+ mv.visitFieldInsn(GETFIELD, "gregtech/api/objects/MaterialStack", "mMaterial", "Lgregtech/api/enums/Materials;");
+ mv.visitFieldInsn(GETSTATIC, "gregtech/api/enums/Materials", "Steel", "Lgregtech/api/enums/Materials;");
+ Label l32 = new Label();
+ mv.visitJumpInsn(IF_ACMPNE, l32);
+ Label l33 = new Label();
+ mv.visitLabel(l33);
+ mv.visitLineNumber(446, l33);
+ mv.visitVarInsn(ALOAD, 4);
+ mv.visitFieldInsn(GETFIELD, "gregtech/api/objects/ItemData", "mPrefix", "Lgregtech/api/enums/OrePrefixes;");
+ mv.visitFieldInsn(GETSTATIC, "gregtech/api/enums/OrePrefixes", "ingot", "Lgregtech/api/enums/OrePrefixes;");
+ Label l34 = new Label();
+ mv.visitJumpInsn(IF_ACMPNE, l34);
+ mv.visitVarInsn(ALOAD, 3);
+ mv.visitFieldInsn(GETFIELD, "net/minecraft/item/ItemStack", "stackSize", "I");
+ mv.visitVarInsn(ALOAD, 3);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "net/minecraft/item/ItemStack", "getMaxStackSize", "()I", false);
+ mv.visitJumpInsn(IF_ICMPNE, l34);
+ Label l35 = new Label();
+ mv.visitLabel(l35);
+ mv.visitLineNumber(447, l35);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitVarInsn(ALOAD, 2);
+ mv.visitLdcInsn("steel");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "gregtech/loaders/misc/GT_Achievements", "issueAchievement", "(Lnet/minecraft/entity/player/EntityPlayer;Ljava/lang/String;)V", false);
+ Label l36 = new Label();
+ mv.visitLabel(l36);
+ mv.visitLineNumber(448, l36);
+ mv.visitJumpInsn(GOTO, l6);
+ mv.visitLabel(l34);
+ mv.visitFrame(F_SAME, 0, null, 0, null);
+ mv.visitVarInsn(ALOAD, 4);
+ mv.visitFieldInsn(GETFIELD, "gregtech/api/objects/ItemData", "mPrefix", "Lgregtech/api/enums/OrePrefixes;");
+ mv.visitFieldInsn(GETSTATIC, "gregtech/api/enums/OrePrefixes", "nugget", "Lgregtech/api/enums/OrePrefixes;");
+ mv.visitJumpInsn(IF_ACMPNE, l6);
+ mv.visitLdcInsn("Thaumcraft");
+ mv.visitMethodInsn(INVOKESTATIC, "cpw/mods/fml/common/Loader", "isModLoaded", "(Ljava/lang/String;)Z", false);
+ mv.visitJumpInsn(IFEQ, l6);
+ Label l37 = new Label();
+ mv.visitLabel(l37);
+ mv.visitLineNumber(449, l37);
+ mv.visitVarInsn(ALOAD, 2);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "net/minecraft/entity/player/EntityPlayer", "getDisplayName", "()Ljava/lang/String;", false);
+ mv.visitLdcInsn("GT_IRON_TO_STEEL");
+ mv.visitMethodInsn(INVOKESTATIC, "thaumcraft/api/ThaumcraftApiHelper", "isResearchComplete", "(Ljava/lang/String;Ljava/lang/String;)Z", false);
+ mv.visitJumpInsn(IFEQ, l6);
+ Label l38 = new Label();
+ mv.visitLabel(l38);
+ mv.visitLineNumber(450, l38);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitVarInsn(ALOAD, 2);
+ mv.visitLdcInsn("steel");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "gregtech/loaders/misc/GT_Achievements", "issueAchievement", "(Lnet/minecraft/entity/player/EntityPlayer;Ljava/lang/String;)V", false);
+ Label l39 = new Label();
+ mv.visitLabel(l39);
+ mv.visitLineNumber(453, l39);
+ mv.visitJumpInsn(GOTO, l6);
+ mv.visitLabel(l32);
+ mv.visitFrame(F_SAME, 0, null, 0, null);
+ mv.visitVarInsn(ALOAD, 4);
+ mv.visitFieldInsn(GETFIELD, "gregtech/api/objects/ItemData", "mPrefix", "Lgregtech/api/enums/OrePrefixes;");
+ mv.visitFieldInsn(GETSTATIC, "gregtech/api/enums/OrePrefixes", "circuit", "Lgregtech/api/enums/OrePrefixes;");
+ mv.visitJumpInsn(IF_ACMPNE, l6);
+ mv.visitVarInsn(ALOAD, 4);
+ mv.visitFieldInsn(GETFIELD, "gregtech/api/objects/ItemData", "mMaterial", "Lgregtech/api/objects/MaterialStack;");
+ mv.visitFieldInsn(GETFIELD, "gregtech/api/objects/MaterialStack", "mMaterial", "Lgregtech/api/enums/Materials;");
+ mv.visitFieldInsn(GETSTATIC, "gregtech/api/enums/Materials", "Advanced", "Lgregtech/api/enums/Materials;");
+ mv.visitJumpInsn(IF_ACMPNE, l6);
+ Label l40 = new Label();
+ mv.visitLabel(l40);
+ mv.visitLineNumber(454, l40);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitVarInsn(ALOAD, 2);
+ mv.visitLdcInsn("stepforward");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "gregtech/loaders/misc/GT_Achievements", "issueAchievement", "(Lnet/minecraft/entity/player/EntityPlayer;Ljava/lang/String;)V", false);
+ mv.visitLabel(l6);
+ mv.visitLineNumber(457, l6);
+ mv.visitFrame(F_SAME, 0, null, 0, null);
+ mv.visitVarInsn(ALOAD, 3);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "net/minecraft/item/ItemStack", "getUnlocalizedName", "()Ljava/lang/String;", false);
+ mv.visitLdcInsn("gt.metaitem.");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/String", "startsWith", "(Ljava/lang/String;)Z", false);
+ Label l41 = new Label();
+ mv.visitJumpInsn(IFEQ, l41);
+ Label l42 = new Label();
+ mv.visitLabel(l42);
+ mv.visitLineNumber(458, l42);
+ mv.visitVarInsn(ALOAD, 3);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "net/minecraft/item/ItemStack", "getUnlocalizedName", "()Ljava/lang/String;", false);
+ mv.visitLdcInsn("gt.metaitem.02.32500");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/String", "equals", "(Ljava/lang/Object;)Z", false);
+ Label l43 = new Label();
+ mv.visitJumpInsn(IFEQ, l43);
+ Label l44 = new Label();
+ mv.visitLabel(l44);
+ mv.visitLineNumber(459, l44);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitVarInsn(ALOAD, 2);
+ mv.visitLdcInsn("havestlead");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "gregtech/loaders/misc/GT_Achievements", "issueAchievement", "(Lnet/minecraft/entity/player/EntityPlayer;Ljava/lang/String;)V", false);
+ Label l45 = new Label();
+ mv.visitLabel(l45);
+ mv.visitLineNumber(460, l45);
+ mv.visitJumpInsn(GOTO, l41);
+ mv.visitLabel(l43);
+ mv.visitFrame(F_SAME, 0, null, 0, null);
+ mv.visitVarInsn(ALOAD, 3);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "net/minecraft/item/ItemStack", "getUnlocalizedName", "()Ljava/lang/String;", false);
+ mv.visitLdcInsn("gt.metaitem.02.32501");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/String", "equals", "(Ljava/lang/Object;)Z", false);
+ Label l46 = new Label();
+ mv.visitJumpInsn(IFEQ, l46);
+ Label l47 = new Label();
+ mv.visitLabel(l47);
+ mv.visitLineNumber(461, l47);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitVarInsn(ALOAD, 2);
+ mv.visitLdcInsn("havestsilver");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "gregtech/loaders/misc/GT_Achievements", "issueAchievement", "(Lnet/minecraft/entity/player/EntityPlayer;Ljava/lang/String;)V", false);
+ Label l48 = new Label();
+ mv.visitLabel(l48);
+ mv.visitLineNumber(462, l48);
+ mv.visitJumpInsn(GOTO, l41);
+ mv.visitLabel(l46);
+ mv.visitFrame(F_SAME, 0, null, 0, null);
+ mv.visitVarInsn(ALOAD, 3);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "net/minecraft/item/ItemStack", "getUnlocalizedName", "()Ljava/lang/String;", false);
+ mv.visitLdcInsn("gt.metaitem.02.32503");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/String", "equals", "(Ljava/lang/Object;)Z", false);
+ Label l49 = new Label();
+ mv.visitJumpInsn(IFEQ, l49);
+ Label l50 = new Label();
+ mv.visitLabel(l50);
+ mv.visitLineNumber(463, l50);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitVarInsn(ALOAD, 2);
+ mv.visitLdcInsn("havestiron");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "gregtech/loaders/misc/GT_Achievements", "issueAchievement", "(Lnet/minecraft/entity/player/EntityPlayer;Ljava/lang/String;)V", false);
+ Label l51 = new Label();
+ mv.visitLabel(l51);
+ mv.visitLineNumber(464, l51);
+ mv.visitJumpInsn(GOTO, l41);
+ mv.visitLabel(l49);
+ mv.visitFrame(F_SAME, 0, null, 0, null);
+ mv.visitVarInsn(ALOAD, 3);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "net/minecraft/item/ItemStack", "getUnlocalizedName", "()Ljava/lang/String;", false);
+ mv.visitLdcInsn("gt.metaitem.02.32504");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/String", "equals", "(Ljava/lang/Object;)Z", false);
+ Label l52 = new Label();
+ mv.visitJumpInsn(IFEQ, l52);
+ Label l53 = new Label();
+ mv.visitLabel(l53);
+ mv.visitLineNumber(465, l53);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitVarInsn(ALOAD, 2);
+ mv.visitLdcInsn("havestgold");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "gregtech/loaders/misc/GT_Achievements", "issueAchievement", "(Lnet/minecraft/entity/player/EntityPlayer;Ljava/lang/String;)V", false);
+ Label l54 = new Label();
+ mv.visitLabel(l54);
+ mv.visitLineNumber(466, l54);
+ mv.visitJumpInsn(GOTO, l41);
+ mv.visitLabel(l52);
+ mv.visitFrame(F_SAME, 0, null, 0, null);
+ mv.visitVarInsn(ALOAD, 3);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "net/minecraft/item/ItemStack", "getUnlocalizedName", "()Ljava/lang/String;", false);
+ mv.visitLdcInsn("gt.metaitem.02.32530");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/String", "equals", "(Ljava/lang/Object;)Z", false);
+ Label l55 = new Label();
+ mv.visitJumpInsn(IFEQ, l55);
+ Label l56 = new Label();
+ mv.visitLabel(l56);
+ mv.visitLineNumber(467, l56);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitVarInsn(ALOAD, 2);
+ mv.visitLdcInsn("havestcopper");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "gregtech/loaders/misc/GT_Achievements", "issueAchievement", "(Lnet/minecraft/entity/player/EntityPlayer;Ljava/lang/String;)V", false);
+ Label l57 = new Label();
+ mv.visitLabel(l57);
+ mv.visitLineNumber(468, l57);
+ mv.visitJumpInsn(GOTO, l41);
+ mv.visitLabel(l55);
+ mv.visitFrame(F_SAME, 0, null, 0, null);
+ mv.visitVarInsn(ALOAD, 3);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "net/minecraft/item/ItemStack", "getUnlocalizedName", "()Ljava/lang/String;", false);
+ mv.visitLdcInsn("gt.metaitem.02.32540");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/String", "equals", "(Ljava/lang/Object;)Z", false);
+ Label l58 = new Label();
+ mv.visitJumpInsn(IFEQ, l58);
+ Label l59 = new Label();
+ mv.visitLabel(l59);
+ mv.visitLineNumber(469, l59);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitVarInsn(ALOAD, 2);
+ mv.visitLdcInsn("havesttin");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "gregtech/loaders/misc/GT_Achievements", "issueAchievement", "(Lnet/minecraft/entity/player/EntityPlayer;Ljava/lang/String;)V", false);
+ Label l60 = new Label();
+ mv.visitLabel(l60);
+ mv.visitLineNumber(470, l60);
+ mv.visitJumpInsn(GOTO, l41);
+ mv.visitLabel(l58);
+ mv.visitFrame(F_SAME, 0, null, 0, null);
+ mv.visitVarInsn(ALOAD, 3);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "net/minecraft/item/ItemStack", "getUnlocalizedName", "()Ljava/lang/String;", false);
+ mv.visitLdcInsn("gt.metaitem.02.32510");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/String", "equals", "(Ljava/lang/Object;)Z", false);
+ Label l61 = new Label();
+ mv.visitJumpInsn(IFEQ, l61);
+ Label l62 = new Label();
+ mv.visitLabel(l62);
+ mv.visitLineNumber(471, l62);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitVarInsn(ALOAD, 2);
+ mv.visitLdcInsn("havestoil");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "gregtech/loaders/misc/GT_Achievements", "issueAchievement", "(Lnet/minecraft/entity/player/EntityPlayer;Ljava/lang/String;)V", false);
+ Label l63 = new Label();
+ mv.visitLabel(l63);
+ mv.visitLineNumber(472, l63);
+ mv.visitJumpInsn(GOTO, l41);
+ mv.visitLabel(l61);
+ mv.visitFrame(F_SAME, 0, null, 0, null);
+ mv.visitVarInsn(ALOAD, 3);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "net/minecraft/item/ItemStack", "getUnlocalizedName", "()Ljava/lang/String;", false);
+ mv.visitLdcInsn("gt.metaitem.02.32511");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/String", "equals", "(Ljava/lang/Object;)Z", false);
+ Label l64 = new Label();
+ mv.visitJumpInsn(IFEQ, l64);
+ Label l65 = new Label();
+ mv.visitLabel(l65);
+ mv.visitLineNumber(473, l65);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitVarInsn(ALOAD, 2);
+ mv.visitLdcInsn("havestemeralds");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "gregtech/loaders/misc/GT_Achievements", "issueAchievement", "(Lnet/minecraft/entity/player/EntityPlayer;Ljava/lang/String;)V", false);
+ Label l66 = new Label();
+ mv.visitLabel(l66);
+ mv.visitLineNumber(474, l66);
+ mv.visitJumpInsn(GOTO, l41);
+ mv.visitLabel(l64);
+ mv.visitFrame(F_SAME, 0, null, 0, null);
+ mv.visitVarInsn(ALOAD, 3);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "net/minecraft/item/ItemStack", "getUnlocalizedName", "()Ljava/lang/String;", false);
+ mv.visitLdcInsn("gt.metaitem.01.32706");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/String", "equals", "(Ljava/lang/Object;)Z", false);
+ Label l67 = new Label();
+ mv.visitJumpInsn(IFEQ, l67);
+ Label l68 = new Label();
+ mv.visitLabel(l68);
+ mv.visitLineNumber(475, l68);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitVarInsn(ALOAD, 2);
+ mv.visitLdcInsn("energyflow");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "gregtech/loaders/misc/GT_Achievements", "issueAchievement", "(Lnet/minecraft/entity/player/EntityPlayer;Ljava/lang/String;)V", false);
+ Label l69 = new Label();
+ mv.visitLabel(l69);
+ mv.visitLineNumber(476, l69);
+ mv.visitJumpInsn(GOTO, l41);
+ mv.visitLabel(l67);
+ mv.visitFrame(F_SAME, 0, null, 0, null);
+ mv.visitVarInsn(ALOAD, 3);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "net/minecraft/item/ItemStack", "getUnlocalizedName", "()Ljava/lang/String;", false);
+ mv.visitLdcInsn("gt.metaitem.01.32702");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/String", "equals", "(Ljava/lang/Object;)Z", false);
+ Label l70 = new Label();
+ mv.visitJumpInsn(IFEQ, l70);
+ Label l71 = new Label();
+ mv.visitLabel(l71);
+ mv.visitLineNumber(477, l71);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitVarInsn(ALOAD, 2);
+ mv.visitLdcInsn("bettercircuits");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "gregtech/loaders/misc/GT_Achievements", "issueAchievement", "(Lnet/minecraft/entity/player/EntityPlayer;Ljava/lang/String;)V", false);
+ Label l72 = new Label();
+ mv.visitLabel(l72);
+ mv.visitLineNumber(478, l72);
+ mv.visitJumpInsn(GOTO, l41);
+ mv.visitLabel(l70);
+ mv.visitFrame(F_SAME, 0, null, 0, null);
+ mv.visitVarInsn(ALOAD, 3);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "net/minecraft/item/ItemStack", "getUnlocalizedName", "()Ljava/lang/String;", false);
+ mv.visitLdcInsn("gt.metaitem.01.32707");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/String", "equals", "(Ljava/lang/Object;)Z", false);
+ Label l73 = new Label();
+ mv.visitJumpInsn(IFEQ, l73);
+ Label l74 = new Label();
+ mv.visitLabel(l74);
+ mv.visitLineNumber(479, l74);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitVarInsn(ALOAD, 2);
+ mv.visitLdcInsn("datasaving");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "gregtech/loaders/misc/GT_Achievements", "issueAchievement", "(Lnet/minecraft/entity/player/EntityPlayer;Ljava/lang/String;)V", false);
+ Label l75 = new Label();
+ mv.visitLabel(l75);
+ mv.visitLineNumber(480, l75);
+ mv.visitJumpInsn(GOTO, l41);
+ mv.visitLabel(l73);
+ mv.visitFrame(F_SAME, 0, null, 0, null);
+ mv.visitVarInsn(ALOAD, 3);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "net/minecraft/item/ItemStack", "getUnlocalizedName", "()Ljava/lang/String;", false);
+ mv.visitLdcInsn("gt.metaitem.01.32597");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/String", "equals", "(Ljava/lang/Object;)Z", false);
+ Label l76 = new Label();
+ mv.visitJumpInsn(IFEQ, l76);
+ Label l77 = new Label();
+ mv.visitLabel(l77);
+ mv.visitLineNumber(481, l77);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitVarInsn(ALOAD, 2);
+ mv.visitLdcInsn("orbs");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "gregtech/loaders/misc/GT_Achievements", "issueAchievement", "(Lnet/minecraft/entity/player/EntityPlayer;Ljava/lang/String;)V", false);
+ Label l78 = new Label();
+ mv.visitLabel(l78);
+ mv.visitLineNumber(482, l78);
+ mv.visitJumpInsn(GOTO, l41);
+ mv.visitLabel(l76);
+ mv.visitFrame(F_SAME, 0, null, 0, null);
+ mv.visitVarInsn(ALOAD, 3);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "net/minecraft/item/ItemStack", "getUnlocalizedName", "()Ljava/lang/String;", false);
+ mv.visitLdcInsn("gt.metaitem.01.32599");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/String", "equals", "(Ljava/lang/Object;)Z", false);
+ Label l79 = new Label();
+ mv.visitJumpInsn(IFEQ, l79);
+ Label l80 = new Label();
+ mv.visitLabel(l80);
+ mv.visitLineNumber(483, l80);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitVarInsn(ALOAD, 2);
+ mv.visitLdcInsn("thatspower");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "gregtech/loaders/misc/GT_Achievements", "issueAchievement", "(Lnet/minecraft/entity/player/EntityPlayer;Ljava/lang/String;)V", false);
+ Label l81 = new Label();
+ mv.visitLabel(l81);
+ mv.visitLineNumber(484, l81);
+ mv.visitJumpInsn(GOTO, l41);
+ mv.visitLabel(l79);
+ mv.visitFrame(F_SAME, 0, null, 0, null);
+ mv.visitVarInsn(ALOAD, 3);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "net/minecraft/item/ItemStack", "getUnlocalizedName", "()Ljava/lang/String;", false);
+ mv.visitLdcInsn("gt.metaitem.01.32598");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/String", "equals", "(Ljava/lang/Object;)Z", false);
+ Label l82 = new Label();
+ mv.visitJumpInsn(IFEQ, l82);
+ Label l83 = new Label();
+ mv.visitLabel(l83);
+ mv.visitLineNumber(485, l83);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitVarInsn(ALOAD, 2);
+ mv.visitLdcInsn("luck");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "gregtech/loaders/misc/GT_Achievements", "issueAchievement", "(Lnet/minecraft/entity/player/EntityPlayer;Ljava/lang/String;)V", false);
+ Label l84 = new Label();
+ mv.visitLabel(l84);
+ mv.visitLineNumber(486, l84);
+ mv.visitJumpInsn(GOTO, l41);
+ mv.visitLabel(l82);
+ mv.visitFrame(F_SAME, 0, null, 0, null);
+ mv.visitVarInsn(ALOAD, 3);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "net/minecraft/item/ItemStack", "getUnlocalizedName", "()Ljava/lang/String;", false);
+ mv.visitLdcInsn("gt.metaitem.01.32749");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/String", "equals", "(Ljava/lang/Object;)Z", false);
+ Label l85 = new Label();
+ mv.visitJumpInsn(IFEQ, l85);
+ Label l86 = new Label();
+ mv.visitLabel(l86);
+ mv.visitLineNumber(487, l86);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitVarInsn(ALOAD, 2);
+ mv.visitLdcInsn("closeit");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "gregtech/loaders/misc/GT_Achievements", "issueAchievement", "(Lnet/minecraft/entity/player/EntityPlayer;Ljava/lang/String;)V", false);
+ Label l87 = new Label();
+ mv.visitLabel(l87);
+ mv.visitLineNumber(488, l87);
+ mv.visitJumpInsn(GOTO, l41);
+ mv.visitLabel(l85);
+ mv.visitFrame(F_SAME, 0, null, 0, null);
+ mv.visitVarInsn(ALOAD, 3);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "net/minecraft/item/ItemStack", "getUnlocalizedName", "()Ljava/lang/String;", false);
+ mv.visitLdcInsn("gt.metaitem.01.32730");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/String", "equals", "(Ljava/lang/Object;)Z", false);
+ Label l88 = new Label();
+ mv.visitJumpInsn(IFEQ, l88);
+ Label l89 = new Label();
+ mv.visitLabel(l89);
+ mv.visitLineNumber(489, l89);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitVarInsn(ALOAD, 2);
+ mv.visitLdcInsn("manipulation");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "gregtech/loaders/misc/GT_Achievements", "issueAchievement", "(Lnet/minecraft/entity/player/EntityPlayer;Ljava/lang/String;)V", false);
+ Label l90 = new Label();
+ mv.visitLabel(l90);
+ mv.visitLineNumber(490, l90);
+ mv.visitJumpInsn(GOTO, l41);
+ mv.visitLabel(l88);
+ mv.visitFrame(F_SAME, 0, null, 0, null);
+ mv.visitVarInsn(ALOAD, 3);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "net/minecraft/item/ItemStack", "getUnlocalizedName", "()Ljava/lang/String;", false);
+ mv.visitLdcInsn("gt.metaitem.01.32729");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/String", "equals", "(Ljava/lang/Object;)Z", false);
+ Label l91 = new Label();
+ mv.visitJumpInsn(IFEQ, l91);
+ Label l92 = new Label();
+ mv.visitLabel(l92);
+ mv.visitLineNumber(491, l92);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitVarInsn(ALOAD, 2);
+ mv.visitLdcInsn("filterregulate");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "gregtech/loaders/misc/GT_Achievements", "issueAchievement", "(Lnet/minecraft/entity/player/EntityPlayer;Ljava/lang/String;)V", false);
+ Label l93 = new Label();
+ mv.visitLabel(l93);
+ mv.visitLineNumber(492, l93);
+ mv.visitJumpInsn(GOTO, l41);
+ mv.visitLabel(l91);
+ mv.visitFrame(F_SAME, 0, null, 0, null);
+ mv.visitVarInsn(ALOAD, 3);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "net/minecraft/item/ItemStack", "getUnlocalizedName", "()Ljava/lang/String;", false);
+ mv.visitLdcInsn("gt.metaitem.01.32605");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/String", "equals", "(Ljava/lang/Object;)Z", false);
+ Label l94 = new Label();
+ mv.visitJumpInsn(IFEQ, l94);
+ Label l95 = new Label();
+ mv.visitLabel(l95);
+ mv.visitLineNumber(493, l95);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitVarInsn(ALOAD, 2);
+ mv.visitLdcInsn("whatnow");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "gregtech/loaders/misc/GT_Achievements", "issueAchievement", "(Lnet/minecraft/entity/player/EntityPlayer;Ljava/lang/String;)V", false);
+ Label l96 = new Label();
+ mv.visitLabel(l96);
+ mv.visitLineNumber(494, l96);
+ mv.visitJumpInsn(GOTO, l41);
+ mv.visitLabel(l94);
+ mv.visitFrame(F_SAME, 0, null, 0, null);
+ mv.visitVarInsn(ALOAD, 3);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "net/minecraft/item/ItemStack", "getUnlocalizedName", "()Ljava/lang/String;", false);
+ mv.visitLdcInsn("gt.Thoriumcell");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/String", "equals", "(Ljava/lang/Object;)Z", false);
+ mv.visitJumpInsn(IFEQ, l41);
+ Label l97 = new Label();
+ mv.visitLabel(l97);
+ mv.visitLineNumber(495, l97);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitVarInsn(ALOAD, 2);
+ mv.visitLdcInsn("newfuel");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "gregtech/loaders/misc/GT_Achievements", "issueAchievement", "(Lnet/minecraft/entity/player/EntityPlayer;Ljava/lang/String;)V", false);
+ mv.visitLabel(l41);
+ mv.visitLineNumber(498, l41);
+ mv.visitFrame(F_SAME, 0, null, 0, null);
+ mv.visitInsn(RETURN);
+ Label l98 = new Label();
+ mv.visitLabel(l98);
+ mv.visitLocalVariable("this", "Lgregtech/loaders/misc/GT_Achievements;", null, l0, l98, 0);
+ mv.visitLocalVariable("event", "Lnet/minecraftforge/event/entity/player/EntityItemPickupEvent;", null, l0, l98, 1);
+ mv.visitLocalVariable("player", "Lnet/minecraft/entity/player/EntityPlayer;", null, l1, l98, 2);
+ mv.visitLocalVariable("stack", "Lnet/minecraft/item/ItemStack;", null, l2, l98, 3);
+ mv.visitLocalVariable("data", "Lgregtech/api/objects/ItemData;", null, l5, l98, 4);
+ mv.visitLocalVariable("i", "I", null, l16, l22, 5);
+ mv.visitMaxs(4, 6);
+ mv.visitEnd();
+
+
+ didInject = true;
+ FMLRelaunchLog.log("[GT++ ASM] Gregtech Achievements Patch", Level.INFO, "Method injection complete.");
+ return didInject;
+ }
+
+
+ public boolean patchOnItemPickup09(ClassWriter cw) {
+ MethodVisitor mv;
+ boolean didInject = false;
+ FMLRelaunchLog.log("[GT++ ASM] Gregtech Achievements Patch", Level.INFO, "Injecting " + "onItemPickup" + ".");
+
+ /**
+ * Inject new, safer code
+ */
+ AnnotationVisitor av0;
+ mv = cw.visitMethod(ACC_PUBLIC, "onItemPickup", "(Lnet/minecraftforge/event/entity/player/EntityItemPickupEvent;)V", null, null);
+ av0 = mv.visitAnnotation("Lcpw/mods/fml/common/eventhandler/SubscribeEvent;", true);
+ av0.visitEnd();
+ mv.visitCode();
+ Label l0 = new Label();
+ mv.visitLabel(l0);
+ mv.visitLineNumber(546, l0);
+ mv.visitVarInsn(ALOAD, 1);
+ mv.visitFieldInsn(GETFIELD, "net/minecraftforge/event/entity/player/EntityItemPickupEvent", "entityPlayer", "Lnet/minecraft/entity/player/EntityPlayer;");
+ mv.visitVarInsn(ASTORE, 2);
+ Label l1 = new Label();
+ mv.visitLabel(l1);
+ mv.visitLineNumber(547, l1);
+ mv.visitVarInsn(ALOAD, 1);
+ mv.visitFieldInsn(GETFIELD, "net/minecraftforge/event/entity/player/EntityItemPickupEvent", "item", "Lnet/minecraft/entity/item/EntityItem;");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "net/minecraft/entity/item/EntityItem", "getEntityItem", "()Lnet/minecraft/item/ItemStack;", false);
+ mv.visitVarInsn(ASTORE, 3);
+ Label l2 = new Label();
+ mv.visitLabel(l2);
+ mv.visitLineNumber(548, l2);
+ mv.visitVarInsn(ALOAD, 2);
+ Label l3 = new Label();
+ mv.visitJumpInsn(IFNULL, l3);
+ mv.visitVarInsn(ALOAD, 3);
+ Label l4 = new Label();
+ mv.visitJumpInsn(IFNONNULL, l4);
+ mv.visitLabel(l3);
+ mv.visitLineNumber(549, l3);
+ mv.visitFrame(F_APPEND,2, new Object[] {"net/minecraft/entity/player/EntityPlayer", "net/minecraft/item/ItemStack"}, 0, null);
+ mv.visitInsn(RETURN);
+ mv.visitLabel(l4);
+ mv.visitLineNumber(551, l4);
+ mv.visitFrame(F_SAME, 0, null, 0, null);
+ mv.visitVarInsn(ALOAD, 3);
+ mv.visitMethodInsn(INVOKESTATIC, "gregtech/api/util/GT_OreDictUnificator", "getItemData", "(Lnet/minecraft/item/ItemStack;)Lgregtech/api/objects/ItemData;", false);
+ mv.visitVarInsn(ASTORE, 4);
+ Label l5 = new Label();
+ mv.visitLabel(l5);
+ mv.visitLineNumber(552, l5);
+ mv.visitVarInsn(ALOAD, 4);
+ Label l6 = new Label();
+ mv.visitJumpInsn(IFNULL, l6);
+ mv.visitVarInsn(ALOAD, 4);
+ mv.visitFieldInsn(GETFIELD, "gregtech/api/objects/ItemData", "mPrefix", "Lgregtech/api/enums/OrePrefixes;");
+ mv.visitJumpInsn(IFNULL, l6);
+ Label l7 = new Label();
+ mv.visitLabel(l7);
+ mv.visitLineNumber(553, l7);
+ mv.visitVarInsn(ALOAD, 4);
+ mv.visitFieldInsn(GETFIELD, "gregtech/api/objects/ItemData", "mPrefix", "Lgregtech/api/enums/OrePrefixes;");
+ mv.visitFieldInsn(GETSTATIC, "gregtech/api/enums/OrePrefixes", "dust", "Lgregtech/api/enums/OrePrefixes;");
+ Label l8 = new Label();
+ mv.visitJumpInsn(IF_ACMPNE, l8);
+ Label l9 = new Label();
+ mv.visitLabel(l9);
+ mv.visitLineNumber(554, l9);
+ mv.visitVarInsn(ALOAD, 4);
+ mv.visitFieldInsn(GETFIELD, "gregtech/api/objects/ItemData", "mMaterial", "Lgregtech/api/objects/MaterialStack;");
+ mv.visitFieldInsn(GETFIELD, "gregtech/api/objects/MaterialStack", "mMaterial", "Lgregtech/api/enums/Materials;");
+ mv.visitFieldInsn(GETSTATIC, "gregtech/api/enums/Materials", "Lutetium", "Lgregtech/api/enums/Materials;");
+ Label l10 = new Label();
+ mv.visitJumpInsn(IF_ACMPNE, l10);
+ Label l11 = new Label();
+ mv.visitLabel(l11);
+ mv.visitLineNumber(555, l11);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitVarInsn(ALOAD, 2);
+ mv.visitLdcInsn("newmetal");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "gregtech/loaders/misc/GT_Achievements", "issueAchievement", "(Lnet/minecraft/entity/player/EntityPlayer;Ljava/lang/String;)V", false);
+ mv.visitLabel(l10);
+ mv.visitLineNumber(557, l10);
+ mv.visitFrame(F_APPEND,1, new Object[] {"gregtech/api/objects/ItemData"}, 0, null);
+ mv.visitVarInsn(ALOAD, 4);
+ mv.visitFieldInsn(GETFIELD, "gregtech/api/objects/ItemData", "mMaterial", "Lgregtech/api/objects/MaterialStack;");
+ mv.visitFieldInsn(GETFIELD, "gregtech/api/objects/MaterialStack", "mMaterial", "Lgregtech/api/enums/Materials;");
+ mv.visitFieldInsn(GETSTATIC, "gregtech/api/enums/Materials", "Gunpowder", "Lgregtech/api/enums/Materials;");
+ mv.visitJumpInsn(IF_ACMPEQ, l6);
+ Label l12 = new Label();
+ mv.visitLabel(l12);
+ mv.visitLineNumber(558, l12);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitVarInsn(ALOAD, 2);
+ mv.visitLdcInsn("cleandust");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "gregtech/loaders/misc/GT_Achievements", "issueAchievement", "(Lnet/minecraft/entity/player/EntityPlayer;Ljava/lang/String;)V", false);
+ Label l13 = new Label();
+ mv.visitLabel(l13);
+ mv.visitLineNumber(560, l13);
+ mv.visitJumpInsn(GOTO, l6);
+ mv.visitLabel(l8);
+ mv.visitFrame(F_SAME, 0, null, 0, null);
+ mv.visitVarInsn(ALOAD, 4);
+ mv.visitFieldInsn(GETFIELD, "gregtech/api/objects/ItemData", "mPrefix", "Lgregtech/api/enums/OrePrefixes;");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "gregtech/api/enums/OrePrefixes", "name", "()Ljava/lang/String;", false);
+ mv.visitLdcInsn("ore");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/String", "startsWith", "(Ljava/lang/String;)Z", false);
+ Label l14 = new Label();
+ mv.visitJumpInsn(IFEQ, l14);
+ Label l15 = new Label();
+ mv.visitLabel(l15);
+ mv.visitLineNumber(561, l15);
+ mv.visitVarInsn(ALOAD, 4);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "gregtech/api/objects/ItemData", "getAllMaterialStacks", "()Ljava/util/ArrayList;", false);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "java/util/ArrayList", "size", "()I", false);
+ mv.visitVarInsn(ISTORE, 5);
+ Label l16 = new Label();
+ mv.visitLabel(l16);
+ mv.visitLineNumber(562, l16);
+ mv.visitInsn(ICONST_0);
+ mv.visitVarInsn(ISTORE, 6);
+ Label l17 = new Label();
+ mv.visitLabel(l17);
+ Label l18 = new Label();
+ mv.visitJumpInsn(GOTO, l18);
+ Label l19 = new Label();
+ mv.visitLabel(l19);
+ mv.visitLineNumber(563, l19);
+ mv.visitFrame(F_APPEND,2, new Object[] {INTEGER, INTEGER}, 0, null);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitVarInsn(ALOAD, 2);
+ mv.visitVarInsn(ALOAD, 4);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "gregtech/api/objects/ItemData", "getAllMaterialStacks", "()Ljava/util/ArrayList;", false);
+ mv.visitVarInsn(ILOAD, 6);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "java/util/ArrayList", "get", "(I)Ljava/lang/Object;", false);
+ mv.visitTypeInsn(CHECKCAST, "gregtech/api/objects/MaterialStack");
+ mv.visitFieldInsn(GETFIELD, "gregtech/api/objects/MaterialStack", "mMaterial", "Lgregtech/api/enums/Materials;");
+ mv.visitFieldInsn(GETFIELD, "gregtech/api/enums/Materials", "mName", "Ljava/lang/String;");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "gregtech/loaders/misc/GT_Achievements", "issueAchievement", "(Lnet/minecraft/entity/player/EntityPlayer;Ljava/lang/String;)V", false);
+ Label l20 = new Label();
+ mv.visitLabel(l20);
+ mv.visitLineNumber(564, l20);
+ mv.visitVarInsn(ALOAD, 4);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "gregtech/api/objects/ItemData", "getAllMaterialStacks", "()Ljava/util/ArrayList;", false);
+ mv.visitVarInsn(ILOAD, 6);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "java/util/ArrayList", "get", "(I)Ljava/lang/Object;", false);
+ mv.visitTypeInsn(CHECKCAST, "gregtech/api/objects/MaterialStack");
+ mv.visitFieldInsn(GETFIELD, "gregtech/api/objects/MaterialStack", "mMaterial", "Lgregtech/api/enums/Materials;");
+ mv.visitFieldInsn(GETSTATIC, "gregtech/api/enums/Materials", "Iron", "Lgregtech/api/enums/Materials;");
+ Label l21 = new Label();
+ mv.visitJumpInsn(IF_ACMPNE, l21);
+ Label l22 = new Label();
+ mv.visitLabel(l22);
+ mv.visitLineNumber(565, l22);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitVarInsn(ALOAD, 2);
+ mv.visitLdcInsn("iron");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "gregtech/loaders/misc/GT_Achievements", "issueAchievement", "(Lnet/minecraft/entity/player/EntityPlayer;Ljava/lang/String;)V", false);
+ mv.visitLabel(l21);
+ mv.visitLineNumber(567, l21);
+ mv.visitFrame(F_SAME, 0, null, 0, null);
+ mv.visitVarInsn(ALOAD, 4);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "gregtech/api/objects/ItemData", "getAllMaterialStacks", "()Ljava/util/ArrayList;", false);
+ mv.visitVarInsn(ILOAD, 6);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "java/util/ArrayList", "get", "(I)Ljava/lang/Object;", false);
+ mv.visitTypeInsn(CHECKCAST, "gregtech/api/objects/MaterialStack");
+ mv.visitFieldInsn(GETFIELD, "gregtech/api/objects/MaterialStack", "mMaterial", "Lgregtech/api/enums/Materials;");
+ mv.visitFieldInsn(GETSTATIC, "gregtech/api/enums/Materials", "Copper", "Lgregtech/api/enums/Materials;");
+ Label l23 = new Label();
+ mv.visitJumpInsn(IF_ACMPEQ, l23);
+ mv.visitVarInsn(ALOAD, 4);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "gregtech/api/objects/ItemData", "getAllMaterialStacks", "()Ljava/util/ArrayList;", false);
+ mv.visitVarInsn(ILOAD, 6);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "java/util/ArrayList", "get", "(I)Ljava/lang/Object;", false);
+ mv.visitTypeInsn(CHECKCAST, "gregtech/api/objects/MaterialStack");
+ mv.visitFieldInsn(GETFIELD, "gregtech/api/objects/MaterialStack", "mMaterial", "Lgregtech/api/enums/Materials;");
+ mv.visitFieldInsn(GETSTATIC, "gregtech/api/enums/Materials", "Tin", "Lgregtech/api/enums/Materials;");
+ Label l24 = new Label();
+ mv.visitJumpInsn(IF_ACMPNE, l24);
+ mv.visitLabel(l23);
+ mv.visitLineNumber(568, l23);
+ mv.visitFrame(F_SAME, 0, null, 0, null);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitVarInsn(ALOAD, 1);
+ mv.visitFieldInsn(GETFIELD, "net/minecraftforge/event/entity/player/EntityItemPickupEvent", "entityPlayer", "Lnet/minecraft/entity/player/EntityPlayer;");
+ mv.visitLdcInsn("mineOre");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "gregtech/loaders/misc/GT_Achievements", "issueAchievement", "(Lnet/minecraft/entity/player/EntityPlayer;Ljava/lang/String;)V", false);
+ mv.visitLabel(l24);
+ mv.visitLineNumber(562, l24);
+ mv.visitFrame(F_SAME, 0, null, 0, null);
+ mv.visitIincInsn(6, 1);
+ mv.visitLabel(l18);
+ mv.visitFrame(F_SAME, 0, null, 0, null);
+ mv.visitVarInsn(ILOAD, 6);
+ mv.visitVarInsn(ILOAD, 5);
+ mv.visitJumpInsn(IF_ICMPLT, l19);
+ Label l25 = new Label();
+ mv.visitLabel(l25);
+ mv.visitLineNumber(572, l25);
+ mv.visitJumpInsn(GOTO, l6);
+ mv.visitLabel(l14);
+ mv.visitFrame(F_CHOP,2, null, 0, null);
+ mv.visitVarInsn(ALOAD, 4);
+ mv.visitFieldInsn(GETFIELD, "gregtech/api/objects/ItemData", "mPrefix", "Lgregtech/api/enums/OrePrefixes;");
+ mv.visitFieldInsn(GETSTATIC, "gregtech/api/enums/OrePrefixes", "crushed", "Lgregtech/api/enums/OrePrefixes;");
+ Label l26 = new Label();
+ mv.visitJumpInsn(IF_ACMPNE, l26);
+ Label l27 = new Label();
+ mv.visitLabel(l27);
+ mv.visitLineNumber(573, l27);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitVarInsn(ALOAD, 2);
+ mv.visitLdcInsn("crushed");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "gregtech/loaders/misc/GT_Achievements", "issueAchievement", "(Lnet/minecraft/entity/player/EntityPlayer;Ljava/lang/String;)V", false);
+ Label l28 = new Label();
+ mv.visitLabel(l28);
+ mv.visitLineNumber(574, l28);
+ mv.visitJumpInsn(GOTO, l6);
+ mv.visitLabel(l26);
+ mv.visitFrame(F_SAME, 0, null, 0, null);
+ mv.visitVarInsn(ALOAD, 4);
+ mv.visitFieldInsn(GETFIELD, "gregtech/api/objects/ItemData", "mPrefix", "Lgregtech/api/enums/OrePrefixes;");
+ mv.visitFieldInsn(GETSTATIC, "gregtech/api/enums/OrePrefixes", "crushedPurified", "Lgregtech/api/enums/OrePrefixes;");
+ Label l29 = new Label();
+ mv.visitJumpInsn(IF_ACMPNE, l29);
+ Label l30 = new Label();
+ mv.visitLabel(l30);
+ mv.visitLineNumber(575, l30);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitVarInsn(ALOAD, 2);
+ mv.visitLdcInsn("washing");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "gregtech/loaders/misc/GT_Achievements", "issueAchievement", "(Lnet/minecraft/entity/player/EntityPlayer;Ljava/lang/String;)V", false);
+ Label l31 = new Label();
+ mv.visitLabel(l31);
+ mv.visitLineNumber(576, l31);
+ mv.visitJumpInsn(GOTO, l6);
+ mv.visitLabel(l29);
+ mv.visitFrame(F_SAME, 0, null, 0, null);
+ mv.visitVarInsn(ALOAD, 4);
+ mv.visitFieldInsn(GETFIELD, "gregtech/api/objects/ItemData", "mPrefix", "Lgregtech/api/enums/OrePrefixes;");
+ mv.visitFieldInsn(GETSTATIC, "gregtech/api/enums/OrePrefixes", "crushedCentrifuged", "Lgregtech/api/enums/OrePrefixes;");
+ Label l32 = new Label();
+ mv.visitJumpInsn(IF_ACMPNE, l32);
+ Label l33 = new Label();
+ mv.visitLabel(l33);
+ mv.visitLineNumber(577, l33);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitVarInsn(ALOAD, 2);
+ mv.visitLdcInsn("spinit");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "gregtech/loaders/misc/GT_Achievements", "issueAchievement", "(Lnet/minecraft/entity/player/EntityPlayer;Ljava/lang/String;)V", false);
+ Label l34 = new Label();
+ mv.visitLabel(l34);
+ mv.visitLineNumber(578, l34);
+ mv.visitJumpInsn(GOTO, l6);
+ mv.visitLabel(l32);
+ mv.visitFrame(F_SAME, 0, null, 0, null);
+ mv.visitVarInsn(ALOAD, 4);
+ mv.visitFieldInsn(GETFIELD, "gregtech/api/objects/ItemData", "mMaterial", "Lgregtech/api/objects/MaterialStack;");
+ mv.visitFieldInsn(GETFIELD, "gregtech/api/objects/MaterialStack", "mMaterial", "Lgregtech/api/enums/Materials;");
+ mv.visitFieldInsn(GETSTATIC, "gregtech/api/enums/Materials", "Steel", "Lgregtech/api/enums/Materials;");
+ mv.visitJumpInsn(IF_ACMPNE, l6);
+ Label l35 = new Label();
+ mv.visitLabel(l35);
+ mv.visitLineNumber(579, l35);
+ mv.visitVarInsn(ALOAD, 4);
+ mv.visitFieldInsn(GETFIELD, "gregtech/api/objects/ItemData", "mPrefix", "Lgregtech/api/enums/OrePrefixes;");
+ mv.visitFieldInsn(GETSTATIC, "gregtech/api/enums/OrePrefixes", "ingot", "Lgregtech/api/enums/OrePrefixes;");
+ Label l36 = new Label();
+ mv.visitJumpInsn(IF_ACMPNE, l36);
+ mv.visitVarInsn(ALOAD, 3);
+ mv.visitFieldInsn(GETFIELD, "net/minecraft/item/ItemStack", "stackSize", "I");
+ mv.visitVarInsn(ALOAD, 3);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "net/minecraft/item/ItemStack", "getMaxStackSize", "()I", false);
+ mv.visitJumpInsn(IF_ICMPNE, l36);
+ Label l37 = new Label();
+ mv.visitLabel(l37);
+ mv.visitLineNumber(580, l37);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitVarInsn(ALOAD, 2);
+ mv.visitLdcInsn("steel");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "gregtech/loaders/misc/GT_Achievements", "issueAchievement", "(Lnet/minecraft/entity/player/EntityPlayer;Ljava/lang/String;)V", false);
+ Label l38 = new Label();
+ mv.visitLabel(l38);
+ mv.visitLineNumber(581, l38);
+ mv.visitJumpInsn(GOTO, l6);
+ mv.visitLabel(l36);
+ mv.visitFrame(F_SAME, 0, null, 0, null);
+ mv.visitVarInsn(ALOAD, 4);
+ mv.visitFieldInsn(GETFIELD, "gregtech/api/objects/ItemData", "mPrefix", "Lgregtech/api/enums/OrePrefixes;");
+ mv.visitFieldInsn(GETSTATIC, "gregtech/api/enums/OrePrefixes", "nugget", "Lgregtech/api/enums/OrePrefixes;");
+ mv.visitJumpInsn(IF_ACMPNE, l6);
+ mv.visitLdcInsn("Thaumcraft");
+ mv.visitMethodInsn(INVOKESTATIC, "cpw/mods/fml/common/Loader", "isModLoaded", "(Ljava/lang/String;)Z", false);
+ mv.visitJumpInsn(IFEQ, l6);
+ mv.visitVarInsn(ALOAD, 2);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "net/minecraft/entity/player/EntityPlayer", "getDisplayName", "()Ljava/lang/String;", false);
+ mv.visitLdcInsn("GT_IRON_TO_STEEL");
+ mv.visitMethodInsn(INVOKESTATIC, "thaumcraft/api/ThaumcraftApiHelper", "isResearchComplete", "(Ljava/lang/String;Ljava/lang/String;)Z", false);
+ mv.visitJumpInsn(IFEQ, l6);
+ Label l39 = new Label();
+ mv.visitLabel(l39);
+ mv.visitLineNumber(582, l39);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitVarInsn(ALOAD, 2);
+ mv.visitLdcInsn("steel");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "gregtech/loaders/misc/GT_Achievements", "issueAchievement", "(Lnet/minecraft/entity/player/EntityPlayer;Ljava/lang/String;)V", false);
+ mv.visitLabel(l6);
+ mv.visitLineNumber(589, l6);
+ mv.visitFrame(F_SAME, 0, null, 0, null);
+ mv.visitVarInsn(ALOAD, 3);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "net/minecraft/item/ItemStack", "getUnlocalizedName", "()Ljava/lang/String;", false);
+ mv.visitLdcInsn("gt.metaitem.");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/String", "startsWith", "(Ljava/lang/String;)Z", false);
+ Label l40 = new Label();
+ mv.visitJumpInsn(IFEQ, l40);
+ Label l41 = new Label();
+ mv.visitLabel(l41);
+ mv.visitLineNumber(590, l41);
+ mv.visitVarInsn(ALOAD, 3);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "net/minecraft/item/ItemStack", "getUnlocalizedName", "()Ljava/lang/String;", false);
+ mv.visitLdcInsn("gt.metaitem.02.32500");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/String", "equals", "(Ljava/lang/Object;)Z", false);
+ Label l42 = new Label();
+ mv.visitJumpInsn(IFEQ, l42);
+ Label l43 = new Label();
+ mv.visitLabel(l43);
+ mv.visitLineNumber(591, l43);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitVarInsn(ALOAD, 2);
+ mv.visitLdcInsn("havestlead");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "gregtech/loaders/misc/GT_Achievements", "issueAchievement", "(Lnet/minecraft/entity/player/EntityPlayer;Ljava/lang/String;)V", false);
+ Label l44 = new Label();
+ mv.visitLabel(l44);
+ mv.visitLineNumber(592, l44);
+ Label l45 = new Label();
+ mv.visitJumpInsn(GOTO, l45);
+ mv.visitLabel(l42);
+ mv.visitFrame(F_SAME, 0, null, 0, null);
+ mv.visitVarInsn(ALOAD, 3);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "net/minecraft/item/ItemStack", "getUnlocalizedName", "()Ljava/lang/String;", false);
+ mv.visitLdcInsn("gt.metaitem.02.32501");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/String", "equals", "(Ljava/lang/Object;)Z", false);
+ Label l46 = new Label();
+ mv.visitJumpInsn(IFEQ, l46);
+ Label l47 = new Label();
+ mv.visitLabel(l47);
+ mv.visitLineNumber(593, l47);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitVarInsn(ALOAD, 2);
+ mv.visitLdcInsn("havestsilver");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "gregtech/loaders/misc/GT_Achievements", "issueAchievement", "(Lnet/minecraft/entity/player/EntityPlayer;Ljava/lang/String;)V", false);
+ Label l48 = new Label();
+ mv.visitLabel(l48);
+ mv.visitLineNumber(594, l48);
+ mv.visitJumpInsn(GOTO, l45);
+ mv.visitLabel(l46);
+ mv.visitFrame(F_SAME, 0, null, 0, null);
+ mv.visitVarInsn(ALOAD, 3);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "net/minecraft/item/ItemStack", "getUnlocalizedName", "()Ljava/lang/String;", false);
+ mv.visitLdcInsn("gt.metaitem.02.32503");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/String", "equals", "(Ljava/lang/Object;)Z", false);
+ Label l49 = new Label();
+ mv.visitJumpInsn(IFEQ, l49);
+ Label l50 = new Label();
+ mv.visitLabel(l50);
+ mv.visitLineNumber(595, l50);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitVarInsn(ALOAD, 2);
+ mv.visitLdcInsn("havestiron");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "gregtech/loaders/misc/GT_Achievements", "issueAchievement", "(Lnet/minecraft/entity/player/EntityPlayer;Ljava/lang/String;)V", false);
+ Label l51 = new Label();
+ mv.visitLabel(l51);
+ mv.visitLineNumber(596, l51);
+ mv.visitJumpInsn(GOTO, l45);
+ mv.visitLabel(l49);
+ mv.visitFrame(F_SAME, 0, null, 0, null);
+ mv.visitVarInsn(ALOAD, 3);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "net/minecraft/item/ItemStack", "getUnlocalizedName", "()Ljava/lang/String;", false);
+ mv.visitLdcInsn("gt.metaitem.02.32504");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/String", "equals", "(Ljava/lang/Object;)Z", false);
+ Label l52 = new Label();
+ mv.visitJumpInsn(IFEQ, l52);
+ Label l53 = new Label();
+ mv.visitLabel(l53);
+ mv.visitLineNumber(597, l53);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitVarInsn(ALOAD, 2);
+ mv.visitLdcInsn("havestgold");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "gregtech/loaders/misc/GT_Achievements", "issueAchievement", "(Lnet/minecraft/entity/player/EntityPlayer;Ljava/lang/String;)V", false);
+ Label l54 = new Label();
+ mv.visitLabel(l54);
+ mv.visitLineNumber(598, l54);
+ mv.visitJumpInsn(GOTO, l45);
+ mv.visitLabel(l52);
+ mv.visitFrame(F_SAME, 0, null, 0, null);
+ mv.visitVarInsn(ALOAD, 3);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "net/minecraft/item/ItemStack", "getUnlocalizedName", "()Ljava/lang/String;", false);
+ mv.visitLdcInsn("gt.metaitem.02.32530");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/String", "equals", "(Ljava/lang/Object;)Z", false);
+ Label l55 = new Label();
+ mv.visitJumpInsn(IFEQ, l55);
+ Label l56 = new Label();
+ mv.visitLabel(l56);
+ mv.visitLineNumber(599, l56);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitVarInsn(ALOAD, 2);
+ mv.visitLdcInsn("havestcopper");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "gregtech/loaders/misc/GT_Achievements", "issueAchievement", "(Lnet/minecraft/entity/player/EntityPlayer;Ljava/lang/String;)V", false);
+ Label l57 = new Label();
+ mv.visitLabel(l57);
+ mv.visitLineNumber(600, l57);
+ mv.visitJumpInsn(GOTO, l45);
+ mv.visitLabel(l55);
+ mv.visitFrame(F_SAME, 0, null, 0, null);
+ mv.visitVarInsn(ALOAD, 3);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "net/minecraft/item/ItemStack", "getUnlocalizedName", "()Ljava/lang/String;", false);
+ mv.visitLdcInsn("gt.metaitem.02.32540");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/String", "equals", "(Ljava/lang/Object;)Z", false);
+ Label l58 = new Label();
+ mv.visitJumpInsn(IFEQ, l58);
+ Label l59 = new Label();
+ mv.visitLabel(l59);
+ mv.visitLineNumber(601, l59);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitVarInsn(ALOAD, 2);
+ mv.visitLdcInsn("havesttin");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "gregtech/loaders/misc/GT_Achievements", "issueAchievement", "(Lnet/minecraft/entity/player/EntityPlayer;Ljava/lang/String;)V", false);
+ Label l60 = new Label();
+ mv.visitLabel(l60);
+ mv.visitLineNumber(602, l60);
+ mv.visitJumpInsn(GOTO, l45);
+ mv.visitLabel(l58);
+ mv.visitFrame(F_SAME, 0, null, 0, null);
+ mv.visitVarInsn(ALOAD, 3);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "net/minecraft/item/ItemStack", "getUnlocalizedName", "()Ljava/lang/String;", false);
+ mv.visitLdcInsn("gt.metaitem.02.32510");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/String", "equals", "(Ljava/lang/Object;)Z", false);
+ Label l61 = new Label();
+ mv.visitJumpInsn(IFEQ, l61);
+ Label l62 = new Label();
+ mv.visitLabel(l62);
+ mv.visitLineNumber(603, l62);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitVarInsn(ALOAD, 2);
+ mv.visitLdcInsn("havestoil");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "gregtech/loaders/misc/GT_Achievements", "issueAchievement", "(Lnet/minecraft/entity/player/EntityPlayer;Ljava/lang/String;)V", false);
+ Label l63 = new Label();
+ mv.visitLabel(l63);
+ mv.visitLineNumber(604, l63);
+ mv.visitJumpInsn(GOTO, l45);
+ mv.visitLabel(l61);
+ mv.visitFrame(F_SAME, 0, null, 0, null);
+ mv.visitVarInsn(ALOAD, 3);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "net/minecraft/item/ItemStack", "getUnlocalizedName", "()Ljava/lang/String;", false);
+ mv.visitLdcInsn("gt.metaitem.02.32511");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/String", "equals", "(Ljava/lang/Object;)Z", false);
+ Label l64 = new Label();
+ mv.visitJumpInsn(IFEQ, l64);
+ Label l65 = new Label();
+ mv.visitLabel(l65);
+ mv.visitLineNumber(605, l65);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitVarInsn(ALOAD, 2);
+ mv.visitLdcInsn("havestemeralds");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "gregtech/loaders/misc/GT_Achievements", "issueAchievement", "(Lnet/minecraft/entity/player/EntityPlayer;Ljava/lang/String;)V", false);
+ Label l66 = new Label();
+ mv.visitLabel(l66);
+ mv.visitLineNumber(606, l66);
+ mv.visitJumpInsn(GOTO, l45);
+ mv.visitLabel(l64);
+ mv.visitFrame(F_SAME, 0, null, 0, null);
+ mv.visitVarInsn(ALOAD, 3);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "net/minecraft/item/ItemStack", "getUnlocalizedName", "()Ljava/lang/String;", false);
+ mv.visitLdcInsn("gt.metaitem.03.32082");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/String", "equals", "(Ljava/lang/Object;)Z", false);
+ Label l67 = new Label();
+ mv.visitJumpInsn(IFEQ, l67);
+ Label l68 = new Label();
+ mv.visitLabel(l68);
+ mv.visitLineNumber(607, l68);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitVarInsn(ALOAD, 2);
+ mv.visitLdcInsn("energyflow");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "gregtech/loaders/misc/GT_Achievements", "issueAchievement", "(Lnet/minecraft/entity/player/EntityPlayer;Ljava/lang/String;)V", false);
+ Label l69 = new Label();
+ mv.visitLabel(l69);
+ mv.visitLineNumber(608, l69);
+ mv.visitJumpInsn(GOTO, l45);
+ mv.visitLabel(l67);
+ mv.visitFrame(F_SAME, 0, null, 0, null);
+ mv.visitVarInsn(ALOAD, 3);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "net/minecraft/item/ItemStack", "getUnlocalizedName", "()Ljava/lang/String;", false);
+ mv.visitLdcInsn("gt.metaitem.01.32702");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/String", "equals", "(Ljava/lang/Object;)Z", false);
+ Label l70 = new Label();
+ mv.visitJumpInsn(IFEQ, l70);
+ Label l71 = new Label();
+ mv.visitLabel(l71);
+ mv.visitLineNumber(609, l71);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitVarInsn(ALOAD, 2);
+ mv.visitLdcInsn("bettercircuits");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "gregtech/loaders/misc/GT_Achievements", "issueAchievement", "(Lnet/minecraft/entity/player/EntityPlayer;Ljava/lang/String;)V", false);
+ Label l72 = new Label();
+ mv.visitLabel(l72);
+ mv.visitLineNumber(610, l72);
+ mv.visitJumpInsn(GOTO, l45);
+ mv.visitLabel(l70);
+ mv.visitFrame(F_SAME, 0, null, 0, null);
+ mv.visitVarInsn(ALOAD, 3);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "net/minecraft/item/ItemStack", "getUnlocalizedName", "()Ljava/lang/String;", false);
+ mv.visitLdcInsn("gt.metaitem.01.32707");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/String", "equals", "(Ljava/lang/Object;)Z", false);
+ Label l73 = new Label();
+ mv.visitJumpInsn(IFEQ, l73);
+ Label l74 = new Label();
+ mv.visitLabel(l74);
+ mv.visitLineNumber(611, l74);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitVarInsn(ALOAD, 2);
+ mv.visitLdcInsn("datasaving");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "gregtech/loaders/misc/GT_Achievements", "issueAchievement", "(Lnet/minecraft/entity/player/EntityPlayer;Ljava/lang/String;)V", false);
+ Label l75 = new Label();
+ mv.visitLabel(l75);
+ mv.visitLineNumber(612, l75);
+ mv.visitJumpInsn(GOTO, l45);
+ mv.visitLabel(l73);
+ mv.visitFrame(F_SAME, 0, null, 0, null);
+ mv.visitVarInsn(ALOAD, 3);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "net/minecraft/item/ItemStack", "getUnlocalizedName", "()Ljava/lang/String;", false);
+ mv.visitLdcInsn("gt.metaitem.01.32597");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/String", "equals", "(Ljava/lang/Object;)Z", false);
+ Label l76 = new Label();
+ mv.visitJumpInsn(IFEQ, l76);
+ Label l77 = new Label();
+ mv.visitLabel(l77);
+ mv.visitLineNumber(613, l77);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitVarInsn(ALOAD, 2);
+ mv.visitLdcInsn("orbs");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "gregtech/loaders/misc/GT_Achievements", "issueAchievement", "(Lnet/minecraft/entity/player/EntityPlayer;Ljava/lang/String;)V", false);
+ Label l78 = new Label();
+ mv.visitLabel(l78);
+ mv.visitLineNumber(614, l78);
+ mv.visitJumpInsn(GOTO, l45);
+ mv.visitLabel(l76);
+ mv.visitFrame(F_SAME, 0, null, 0, null);
+ mv.visitVarInsn(ALOAD, 3);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "net/minecraft/item/ItemStack", "getUnlocalizedName", "()Ljava/lang/String;", false);
+ mv.visitLdcInsn("gt.metaitem.01.32599");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/String", "equals", "(Ljava/lang/Object;)Z", false);
+ Label l79 = new Label();
+ mv.visitJumpInsn(IFEQ, l79);
+ Label l80 = new Label();
+ mv.visitLabel(l80);
+ mv.visitLineNumber(615, l80);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitVarInsn(ALOAD, 2);
+ mv.visitLdcInsn("thatspower");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "gregtech/loaders/misc/GT_Achievements", "issueAchievement", "(Lnet/minecraft/entity/player/EntityPlayer;Ljava/lang/String;)V", false);
+ Label l81 = new Label();
+ mv.visitLabel(l81);
+ mv.visitLineNumber(616, l81);
+ mv.visitJumpInsn(GOTO, l45);
+ mv.visitLabel(l79);
+ mv.visitFrame(F_SAME, 0, null, 0, null);
+ mv.visitVarInsn(ALOAD, 3);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "net/minecraft/item/ItemStack", "getUnlocalizedName", "()Ljava/lang/String;", false);
+ mv.visitLdcInsn("gt.metaitem.01.32598");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/String", "equals", "(Ljava/lang/Object;)Z", false);
+ Label l82 = new Label();
+ mv.visitJumpInsn(IFEQ, l82);
+ Label l83 = new Label();
+ mv.visitLabel(l83);
+ mv.visitLineNumber(617, l83);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitVarInsn(ALOAD, 2);
+ mv.visitLdcInsn("luck");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "gregtech/loaders/misc/GT_Achievements", "issueAchievement", "(Lnet/minecraft/entity/player/EntityPlayer;Ljava/lang/String;)V", false);
+ Label l84 = new Label();
+ mv.visitLabel(l84);
+ mv.visitLineNumber(618, l84);
+ mv.visitJumpInsn(GOTO, l45);
+ mv.visitLabel(l82);
+ mv.visitFrame(F_SAME, 0, null, 0, null);
+ mv.visitVarInsn(ALOAD, 3);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "net/minecraft/item/ItemStack", "getUnlocalizedName", "()Ljava/lang/String;", false);
+ mv.visitLdcInsn("gt.metaitem.01.32749");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/String", "equals", "(Ljava/lang/Object;)Z", false);
+ Label l85 = new Label();
+ mv.visitJumpInsn(IFEQ, l85);
+ Label l86 = new Label();
+ mv.visitLabel(l86);
+ mv.visitLineNumber(619, l86);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitVarInsn(ALOAD, 2);
+ mv.visitLdcInsn("closeit");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "gregtech/loaders/misc/GT_Achievements", "issueAchievement", "(Lnet/minecraft/entity/player/EntityPlayer;Ljava/lang/String;)V", false);
+ Label l87 = new Label();
+ mv.visitLabel(l87);
+ mv.visitLineNumber(620, l87);
+ mv.visitJumpInsn(GOTO, l45);
+ mv.visitLabel(l85);
+ mv.visitFrame(F_SAME, 0, null, 0, null);
+ mv.visitVarInsn(ALOAD, 3);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "net/minecraft/item/ItemStack", "getUnlocalizedName", "()Ljava/lang/String;", false);
+ mv.visitLdcInsn("gt.metaitem.01.32730");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/String", "equals", "(Ljava/lang/Object;)Z", false);
+ Label l88 = new Label();
+ mv.visitJumpInsn(IFEQ, l88);
+ Label l89 = new Label();
+ mv.visitLabel(l89);
+ mv.visitLineNumber(621, l89);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitVarInsn(ALOAD, 2);
+ mv.visitLdcInsn("manipulation");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "gregtech/loaders/misc/GT_Achievements", "issueAchievement", "(Lnet/minecraft/entity/player/EntityPlayer;Ljava/lang/String;)V", false);
+ Label l90 = new Label();
+ mv.visitLabel(l90);
+ mv.visitLineNumber(622, l90);
+ mv.visitJumpInsn(GOTO, l45);
+ mv.visitLabel(l88);
+ mv.visitFrame(F_SAME, 0, null, 0, null);
+ mv.visitVarInsn(ALOAD, 3);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "net/minecraft/item/ItemStack", "getUnlocalizedName", "()Ljava/lang/String;", false);
+ mv.visitLdcInsn("gt.metaitem.01.32729");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/String", "equals", "(Ljava/lang/Object;)Z", false);
+ Label l91 = new Label();
+ mv.visitJumpInsn(IFEQ, l91);
+ Label l92 = new Label();
+ mv.visitLabel(l92);
+ mv.visitLineNumber(623, l92);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitVarInsn(ALOAD, 2);
+ mv.visitLdcInsn("filterregulate");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "gregtech/loaders/misc/GT_Achievements", "issueAchievement", "(Lnet/minecraft/entity/player/EntityPlayer;Ljava/lang/String;)V", false);
+ Label l93 = new Label();
+ mv.visitLabel(l93);
+ mv.visitLineNumber(624, l93);
+ mv.visitJumpInsn(GOTO, l45);
+ mv.visitLabel(l91);
+ mv.visitFrame(F_SAME, 0, null, 0, null);
+ mv.visitVarInsn(ALOAD, 3);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "net/minecraft/item/ItemStack", "getUnlocalizedName", "()Ljava/lang/String;", false);
+ mv.visitLdcInsn("gt.metaitem.01.32605");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/String", "equals", "(Ljava/lang/Object;)Z", false);
+ Label l94 = new Label();
+ mv.visitJumpInsn(IFEQ, l94);
+ Label l95 = new Label();
+ mv.visitLabel(l95);
+ mv.visitLineNumber(625, l95);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitVarInsn(ALOAD, 2);
+ mv.visitLdcInsn("whatnow");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "gregtech/loaders/misc/GT_Achievements", "issueAchievement", "(Lnet/minecraft/entity/player/EntityPlayer;Ljava/lang/String;)V", false);
+ Label l96 = new Label();
+ mv.visitLabel(l96);
+ mv.visitLineNumber(626, l96);
+ mv.visitJumpInsn(GOTO, l45);
+ mv.visitLabel(l94);
+ mv.visitFrame(F_SAME, 0, null, 0, null);
+ mv.visitVarInsn(ALOAD, 3);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "net/minecraft/item/ItemStack", "getUnlocalizedName", "()Ljava/lang/String;", false);
+ mv.visitLdcInsn("gt.metaitem.01.32736");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/String", "equals", "(Ljava/lang/Object;)Z", false);
+ Label l97 = new Label();
+ mv.visitJumpInsn(IFEQ, l97);
+ Label l98 = new Label();
+ mv.visitLabel(l98);
+ mv.visitLineNumber(627, l98);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitVarInsn(ALOAD, 2);
+ mv.visitLdcInsn("zpmage");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "gregtech/loaders/misc/GT_Achievements", "issueAchievement", "(Lnet/minecraft/entity/player/EntityPlayer;Ljava/lang/String;)V", false);
+ Label l99 = new Label();
+ mv.visitLabel(l99);
+ mv.visitLineNumber(628, l99);
+ mv.visitJumpInsn(GOTO, l45);
+ mv.visitLabel(l97);
+ mv.visitFrame(F_SAME, 0, null, 0, null);
+ mv.visitVarInsn(ALOAD, 3);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "net/minecraft/item/ItemStack", "getUnlocalizedName", "()Ljava/lang/String;", false);
+ mv.visitLdcInsn("gt.metaitem.01.32737");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/String", "equals", "(Ljava/lang/Object;)Z", false);
+ Label l100 = new Label();
+ mv.visitJumpInsn(IFEQ, l100);
+ Label l101 = new Label();
+ mv.visitLabel(l101);
+ mv.visitLineNumber(629, l101);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitVarInsn(ALOAD, 2);
+ mv.visitLdcInsn("uvage");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "gregtech/loaders/misc/GT_Achievements", "issueAchievement", "(Lnet/minecraft/entity/player/EntityPlayer;Ljava/lang/String;)V", false);
+ Label l102 = new Label();
+ mv.visitLabel(l102);
+ mv.visitLineNumber(630, l102);
+ mv.visitJumpInsn(GOTO, l45);
+ mv.visitLabel(l100);
+ mv.visitFrame(F_SAME, 0, null, 0, null);
+ mv.visitVarInsn(ALOAD, 3);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "net/minecraft/item/ItemStack", "getUnlocalizedName", "()Ljava/lang/String;", false);
+ mv.visitLdcInsn("gt.metaitem.03.32030");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/String", "equals", "(Ljava/lang/Object;)Z", false);
+ Label l103 = new Label();
+ mv.visitJumpInsn(IFEQ, l103);
+ Label l104 = new Label();
+ mv.visitLabel(l104);
+ mv.visitLineNumber(631, l104);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitVarInsn(ALOAD, 2);
+ mv.visitLdcInsn("gtmonosilicon");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "gregtech/loaders/misc/GT_Achievements", "issueAchievement", "(Lnet/minecraft/entity/player/EntityPlayer;Ljava/lang/String;)V", false);
+ Label l105 = new Label();
+ mv.visitLabel(l105);
+ mv.visitLineNumber(632, l105);
+ mv.visitJumpInsn(GOTO, l45);
+ mv.visitLabel(l103);
+ mv.visitFrame(F_SAME, 0, null, 0, null);
+ mv.visitVarInsn(ALOAD, 3);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "net/minecraft/item/ItemStack", "getUnlocalizedName", "()Ljava/lang/String;", false);
+ mv.visitLdcInsn("gt.metaitem.03.32036");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/String", "equals", "(Ljava/lang/Object;)Z", false);
+ Label l106 = new Label();
+ mv.visitJumpInsn(IFEQ, l106);
+ Label l107 = new Label();
+ mv.visitLabel(l107);
+ mv.visitLineNumber(633, l107);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitVarInsn(ALOAD, 2);
+ mv.visitLdcInsn("gtlogicwafer");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "gregtech/loaders/misc/GT_Achievements", "issueAchievement", "(Lnet/minecraft/entity/player/EntityPlayer;Ljava/lang/String;)V", false);
+ Label l108 = new Label();
+ mv.visitLabel(l108);
+ mv.visitLineNumber(634, l108);
+ mv.visitJumpInsn(GOTO, l45);
+ mv.visitLabel(l106);
+ mv.visitFrame(F_SAME, 0, null, 0, null);
+ mv.visitVarInsn(ALOAD, 3);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "net/minecraft/item/ItemStack", "getUnlocalizedName", "()Ljava/lang/String;", false);
+ mv.visitLdcInsn("gt.metaitem.01.32701");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/String", "equals", "(Ljava/lang/Object;)Z", false);
+ Label l109 = new Label();
+ mv.visitJumpInsn(IFEQ, l109);
+ Label l110 = new Label();
+ mv.visitLabel(l110);
+ mv.visitLineNumber(635, l110);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitVarInsn(ALOAD, 2);
+ mv.visitLdcInsn("gtlogiccircuit");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "gregtech/loaders/misc/GT_Achievements", "issueAchievement", "(Lnet/minecraft/entity/player/EntityPlayer;Ljava/lang/String;)V", false);
+ Label l111 = new Label();
+ mv.visitLabel(l111);
+ mv.visitLineNumber(636, l111);
+ mv.visitJumpInsn(GOTO, l45);
+ mv.visitLabel(l109);
+ mv.visitFrame(F_SAME, 0, null, 0, null);
+ mv.visitVarInsn(ALOAD, 3);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "net/minecraft/item/ItemStack", "getUnlocalizedName", "()Ljava/lang/String;", false);
+ mv.visitLdcInsn("gt.metaitem.03.32085");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/String", "equals", "(Ljava/lang/Object;)Z", false);
+ Label l112 = new Label();
+ mv.visitJumpInsn(IFEQ, l112);
+ Label l113 = new Label();
+ mv.visitLabel(l113);
+ mv.visitLineNumber(637, l113);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitVarInsn(ALOAD, 2);
+ mv.visitLdcInsn("gtquantumprocessor");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "gregtech/loaders/misc/GT_Achievements", "issueAchievement", "(Lnet/minecraft/entity/player/EntityPlayer;Ljava/lang/String;)V", false);
+ Label l114 = new Label();
+ mv.visitLabel(l114);
+ mv.visitLineNumber(638, l114);
+ mv.visitJumpInsn(GOTO, l45);
+ mv.visitLabel(l112);
+ mv.visitFrame(F_SAME, 0, null, 0, null);
+ mv.visitVarInsn(ALOAD, 3);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "net/minecraft/item/ItemStack", "getUnlocalizedName", "()Ljava/lang/String;", false);
+ mv.visitLdcInsn("gt.metaitem.03.32089");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/String", "equals", "(Ljava/lang/Object;)Z", false);
+ Label l115 = new Label();
+ mv.visitJumpInsn(IFEQ, l115);
+ Label l116 = new Label();
+ mv.visitLabel(l116);
+ mv.visitLineNumber(639, l116);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitVarInsn(ALOAD, 2);
+ mv.visitLdcInsn("gtcrystalprocessor");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "gregtech/loaders/misc/GT_Achievements", "issueAchievement", "(Lnet/minecraft/entity/player/EntityPlayer;Ljava/lang/String;)V", false);
+ Label l117 = new Label();
+ mv.visitLabel(l117);
+ mv.visitLineNumber(640, l117);
+ mv.visitJumpInsn(GOTO, l45);
+ mv.visitLabel(l115);
+ mv.visitFrame(F_SAME, 0, null, 0, null);
+ mv.visitVarInsn(ALOAD, 3);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "net/minecraft/item/ItemStack", "getUnlocalizedName", "()Ljava/lang/String;", false);
+ mv.visitLdcInsn("gt.metaitem.03.32092");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/String", "equals", "(Ljava/lang/Object;)Z", false);
+ Label l118 = new Label();
+ mv.visitJumpInsn(IFEQ, l118);
+ Label l119 = new Label();
+ mv.visitLabel(l119);
+ mv.visitLineNumber(641, l119);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitVarInsn(ALOAD, 2);
+ mv.visitLdcInsn("gtwetware");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "gregtech/loaders/misc/GT_Achievements", "issueAchievement", "(Lnet/minecraft/entity/player/EntityPlayer;Ljava/lang/String;)V", false);
+ Label l120 = new Label();
+ mv.visitLabel(l120);
+ mv.visitLineNumber(642, l120);
+ mv.visitJumpInsn(GOTO, l45);
+ mv.visitLabel(l118);
+ mv.visitFrame(F_SAME, 0, null, 0, null);
+ mv.visitVarInsn(ALOAD, 3);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "net/minecraft/item/ItemStack", "getUnlocalizedName", "()Ljava/lang/String;", false);
+ mv.visitLdcInsn("gt.metaitem.03.32095");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/String", "equals", "(Ljava/lang/Object;)Z", false);
+ Label l121 = new Label();
+ mv.visitJumpInsn(IFEQ, l121);
+ Label l122 = new Label();
+ mv.visitLabel(l122);
+ mv.visitLineNumber(643, l122);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitVarInsn(ALOAD, 2);
+ mv.visitLdcInsn("gtwetmain");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "gregtech/loaders/misc/GT_Achievements", "issueAchievement", "(Lnet/minecraft/entity/player/EntityPlayer;Ljava/lang/String;)V", false);
+ Label l123 = new Label();
+ mv.visitLabel(l123);
+ mv.visitLineNumber(644, l123);
+ mv.visitJumpInsn(GOTO, l45);
+ mv.visitLabel(l121);
+ mv.visitFrame(F_SAME, 0, null, 0, null);
+ mv.visitVarInsn(ALOAD, 3);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "net/minecraft/item/ItemStack", "getUnlocalizedName", "()Ljava/lang/String;", false);
+ mv.visitLdcInsn("gt.metaitem.01.32736");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/String", "equals", "(Ljava/lang/Object;)Z", false);
+ Label l124 = new Label();
+ mv.visitJumpInsn(IFEQ, l124);
+ Label l125 = new Label();
+ mv.visitLabel(l125);
+ mv.visitLineNumber(645, l125);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitVarInsn(ALOAD, 2);
+ mv.visitLdcInsn("zpmage");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "gregtech/loaders/misc/GT_Achievements", "issueAchievement", "(Lnet/minecraft/entity/player/EntityPlayer;Ljava/lang/String;)V", false);
+ Label l126 = new Label();
+ mv.visitLabel(l126);
+ mv.visitLineNumber(646, l126);
+ mv.visitJumpInsn(GOTO, l45);
+ mv.visitLabel(l124);
+ mv.visitFrame(F_SAME, 0, null, 0, null);
+ mv.visitVarInsn(ALOAD, 3);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "net/minecraft/item/ItemStack", "getUnlocalizedName", "()Ljava/lang/String;", false);
+ mv.visitLdcInsn("gt.metaitem.01.32737");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/String", "equals", "(Ljava/lang/Object;)Z", false);
+ mv.visitJumpInsn(IFEQ, l45);
+ Label l127 = new Label();
+ mv.visitLabel(l127);
+ mv.visitLineNumber(647, l127);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitVarInsn(ALOAD, 2);
+ mv.visitLdcInsn("uvage");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "gregtech/loaders/misc/GT_Achievements", "issueAchievement", "(Lnet/minecraft/entity/player/EntityPlayer;Ljava/lang/String;)V", false);
+ Label l128 = new Label();
+ mv.visitLabel(l128);
+ mv.visitLineNumber(649, l128);
+ mv.visitJumpInsn(GOTO, l45);
+ mv.visitLabel(l40);
+ mv.visitFrame(F_SAME, 0, null, 0, null);
+ mv.visitVarInsn(ALOAD, 3);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "net/minecraft/item/ItemStack", "getUnlocalizedName", "()Ljava/lang/String;", false);
+ mv.visitLdcInsn("gt.Thoriumcell");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/String", "equals", "(Ljava/lang/Object;)Z", false);
+ Label l129 = new Label();
+ mv.visitJumpInsn(IFEQ, l129);
+ Label l130 = new Label();
+ mv.visitLabel(l130);
+ mv.visitLineNumber(650, l130);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitVarInsn(ALOAD, 2);
+ mv.visitLdcInsn("newfuel");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "gregtech/loaders/misc/GT_Achievements", "issueAchievement", "(Lnet/minecraft/entity/player/EntityPlayer;Ljava/lang/String;)V", false);
+ Label l131 = new Label();
+ mv.visitLabel(l131);
+ mv.visitLineNumber(651, l131);
+ mv.visitJumpInsn(GOTO, l45);
+ mv.visitLabel(l129);
+ mv.visitFrame(F_SAME, 0, null, 0, null);
+ mv.visitVarInsn(ALOAD, 3);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "net/minecraft/item/ItemStack", "getItem", "()Lnet/minecraft/item/Item;", false);
+ mv.visitFieldInsn(GETSTATIC, "ic2/core/Ic2Items", "quantumBodyarmor", "Lnet/minecraft/item/ItemStack;");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "net/minecraft/item/ItemStack", "getItem", "()Lnet/minecraft/item/Item;", false);
+ Label l132 = new Label();
+ mv.visitJumpInsn(IF_ACMPEQ, l132);
+ mv.visitVarInsn(ALOAD, 3);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "net/minecraft/item/ItemStack", "getItem", "()Lnet/minecraft/item/Item;", false);
+ mv.visitFieldInsn(GETSTATIC, "ic2/core/Ic2Items", "quantumBoots", "Lnet/minecraft/item/ItemStack;");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "net/minecraft/item/ItemStack", "getItem", "()Lnet/minecraft/item/Item;", false);
+ mv.visitJumpInsn(IF_ACMPEQ, l132);
+ Label l133 = new Label();
+ mv.visitLabel(l133);
+ mv.visitLineNumber(652, l133);
+ mv.visitVarInsn(ALOAD, 3);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "net/minecraft/item/ItemStack", "getItem", "()Lnet/minecraft/item/Item;", false);
+ mv.visitFieldInsn(GETSTATIC, "ic2/core/Ic2Items", "quantumHelmet", "Lnet/minecraft/item/ItemStack;");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "net/minecraft/item/ItemStack", "getItem", "()Lnet/minecraft/item/Item;", false);
+ mv.visitJumpInsn(IF_ACMPEQ, l132);
+ mv.visitVarInsn(ALOAD, 3);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "net/minecraft/item/ItemStack", "getItem", "()Lnet/minecraft/item/Item;", false);
+ mv.visitFieldInsn(GETSTATIC, "ic2/core/Ic2Items", "quantumLeggings", "Lnet/minecraft/item/ItemStack;");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "net/minecraft/item/ItemStack", "getItem", "()Lnet/minecraft/item/Item;", false);
+ Label l134 = new Label();
+ mv.visitJumpInsn(IF_ACMPNE, l134);
+ mv.visitLabel(l132);
+ mv.visitLineNumber(653, l132);
+ mv.visitFrame(F_SAME, 0, null, 0, null);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitVarInsn(ALOAD, 2);
+ mv.visitLdcInsn("buildQArmor");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "gregtech/loaders/misc/GT_Achievements", "issueAchievement", "(Lnet/minecraft/entity/player/EntityPlayer;Ljava/lang/String;)V", false);
+ Label l135 = new Label();
+ mv.visitLabel(l135);
+ mv.visitLineNumber(654, l135);
+ mv.visitJumpInsn(GOTO, l45);
+ mv.visitLabel(l134);
+ mv.visitFrame(F_SAME, 0, null, 0, null);
+ mv.visitVarInsn(ALOAD, 3);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "net/minecraft/item/ItemStack", "getUnlocalizedName", "()Ljava/lang/String;", false);
+ mv.visitLdcInsn("ic2.itemPartCircuitAdv");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/String", "equals", "(Ljava/lang/Object;)Z", false);
+ mv.visitJumpInsn(IFEQ, l45);
+ Label l136 = new Label();
+ mv.visitLabel(l136);
+ mv.visitLineNumber(655, l136);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitVarInsn(ALOAD, 2);
+ mv.visitLdcInsn("stepforward");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "gregtech/loaders/misc/GT_Achievements", "issueAchievement", "(Lnet/minecraft/entity/player/EntityPlayer;Ljava/lang/String;)V", false);
+ mv.visitLabel(l45);
+ mv.visitLineNumber(657, l45);
+ mv.visitFrame(F_SAME, 0, null, 0, null);
+ mv.visitInsn(RETURN);
+ Label l137 = new Label();
+ mv.visitLabel(l137);
+ mv.visitLocalVariable("this", "Lgregtech/loaders/misc/GT_Achievements;", null, l0, l137, 0);
+ mv.visitLocalVariable("event", "Lnet/minecraftforge/event/entity/player/EntityItemPickupEvent;", null, l0, l137, 1);
+ mv.visitLocalVariable("player", "Lnet/minecraft/entity/player/EntityPlayer;", null, l1, l137, 2);
+ mv.visitLocalVariable("stack", "Lnet/minecraft/item/ItemStack;", null, l2, l137, 3);
+ mv.visitLocalVariable("data", "Lgregtech/api/objects/ItemData;", null, l5, l137, 4);
+ mv.visitLocalVariable("data_getAllMaterialStacks_sS", "I", null, l16, l25, 5);
+ mv.visitLocalVariable("i", "I", null, l17, l25, 6);
+ mv.visitMaxs(4, 7);
+ mv.visitEnd();
+
+ didInject = true;
+ FMLRelaunchLog.log("[GT++ ASM] Gregtech Achievements Patch", Level.INFO, "Method injection complete.");
+ return didInject;
+ }
+
+
+
+
+
+
+
+
+ public class MethodAdaptor extends ClassVisitor {
+
+ public MethodAdaptor(ClassVisitor cv) {
+ super(ASM5, cv);
+ this.cv = cv;
+ }
+
+ @Override
+ public MethodVisitor visitMethod(int access, String name, String desc, String signature, String[] exceptions) {
+ MethodVisitor methodVisitor;
+ if (name.equals("registerAssAchievement") || name.equals("onItemPickup")) {
+ FMLRelaunchLog.log("[GT++ ASM] Gregtech Achievements Patch", Level.INFO,
+ "Found method " + name + ", removing.");
+ methodVisitor = null;
+ if (name.equals("registerAssAchievement")) {
+ mDidRemoveAssLineRecipeAdder = true;
+ }
+ } else {
+ methodVisitor = super.visitMethod(access, name, desc, signature, exceptions);
+ }
+ return methodVisitor;
+ }
+ }
+
+}
diff --git a/src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_GT_Achievements_CrashFix.java b/src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_GT_Achievements_CrashFix.java
new file mode 100644
index 0000000000..fb297ed76e
--- /dev/null
+++ b/src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_GT_Achievements_CrashFix.java
@@ -0,0 +1,218 @@
+package gtPlusPlus.preloader.asm.transformers;
+
+import static org.objectweb.asm.Opcodes.*;
+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 gtPlusPlus.preloader.DevHelper;
+
+public class ClassTransformer_GT_Achievements_CrashFix {
+
+ private final boolean isValid;
+ private final ClassReader reader;
+ private final ClassWriter writer;
+ private final boolean mObfuscated;
+ private static boolean mDidRemoveAssLineRecipeAdder = false;
+
+ public ClassTransformer_GT_Achievements_CrashFix(byte[] basicClass, boolean obfuscated) {
+
+ ClassReader aTempReader = null;
+ ClassWriter aTempWriter = null;
+ mObfuscated = obfuscated;
+
+ aTempReader = new ClassReader(basicClass);
+ aTempWriter = new ClassWriter(aTempReader, ClassWriter.COMPUTE_FRAMES);
+
+ aTempReader.accept(new MethodAdaptor(aTempWriter), 0);
+
+ if (mDidRemoveAssLineRecipeAdder) {
+ FMLRelaunchLog.log("[GT++ ASM] Gregtech Achievements Patch", Level.INFO, "Patching GT .09");
+ injectMethod(aTempWriter);
+ }
+ else {
+ FMLRelaunchLog.log("[GT++ ASM] Gregtech Achievements Patch", Level.INFO, "Patch not required, skipping.");
+ }
+
+ if (aTempReader != null && aTempWriter != null) {
+ isValid = true;
+ }
+ else {
+ isValid = false;
+ }
+
+ FMLRelaunchLog.log("[GT++ ASM] Gregtech Achievements 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(ClassWriter cw) {
+ MethodVisitor mv;
+ boolean didInject = false;
+ FMLRelaunchLog.log("[GT++ ASM] Gregtech Achievements Patch", Level.INFO, "Injecting " + "registerAssAchievement" + ". Obfuscated? "+mObfuscated);
+
+ /**
+ * Inject new, safer code
+ */
+
+ mv = cw.visitMethod(ACC_PUBLIC, "registerAssAchievement", "(Lgregtech/api/util/GT_Recipe;)Lnet/minecraft/stats/Achievement;", null, null);
+ mv.visitCode();
+ Label l0 = new Label();
+ mv.visitLabel(l0);
+ mv.visitLineNumber(293, l0);
+ mv.visitVarInsn(ALOAD, 1);
+ Label l1 = new Label();
+ mv.visitJumpInsn(IFNONNULL, l1);
+ Label l2 = new Label();
+ mv.visitLabel(l2);
+ mv.visitLineNumber(294, l2);
+ mv.visitFieldInsn(GETSTATIC, "gregtech/api/util/GT_Log", "err", "Ljava/io/PrintStream;");
+ mv.visitLdcInsn("GTPP_MOD: Someone tried to register an achievement for an invalid recipe. Please report this to Alkalus.");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "java/io/PrintStream", "println", "(Ljava/lang/String;)V", false);
+ Label l3 = new Label();
+ mv.visitLabel(l3);
+ mv.visitLineNumber(295, l3);
+ mv.visitInsn(ACONST_NULL);
+ mv.visitInsn(ARETURN);
+ mv.visitLabel(l1);
+ mv.visitLineNumber(297, l1);
+ mv.visitFrame(F_SAME, 0, null, 0, null);
+ mv.visitVarInsn(ALOAD, 1);
+ mv.visitInsn(ICONST_0);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "gregtech/api/util/GT_Recipe", "getOutput", "(I)Lnet/minecraft/item/ItemStack;", false);
+ Label l4 = new Label();
+ mv.visitJumpInsn(IFNONNULL, l4);
+ Label l5 = new Label();
+ mv.visitLabel(l5);
+ mv.visitLineNumber(298, l5);
+ mv.visitFieldInsn(GETSTATIC, "gregtech/api/util/GT_Log", "err", "Ljava/io/PrintStream;");
+ mv.visitLdcInsn("GTPP_MOD: Someone tried to register an achievement for a recipe with null output. Please report this to Alkalus.");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "java/io/PrintStream", "println", "(Ljava/lang/String;)V", false);
+ Label l6 = new Label();
+ mv.visitLabel(l6);
+ mv.visitLineNumber(299, l6);
+ mv.visitInsn(ACONST_NULL);
+ mv.visitInsn(ARETURN);
+ mv.visitLabel(l4);
+ mv.visitLineNumber(301, l4);
+ mv.visitFrame(F_SAME, 0, null, 0, null);
+ mv.visitVarInsn(ALOAD, 1);
+ mv.visitInsn(ICONST_0);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "gregtech/api/util/GT_Recipe", "getOutput", "(I)Lnet/minecraft/item/ItemStack;", false);
+ mv.visitVarInsn(ASTORE, 3);
+ Label l7 = new Label();
+ mv.visitLabel(l7);
+ mv.visitLineNumber(302, l7);
+ mv.visitVarInsn(ALOAD, 3);
+ mv.visitMethodInsn(INVOKESTATIC, "gtPlusPlus/core/util/minecraft/ItemUtils", "getUnlocalizedItemName", "(Lnet/minecraft/item/ItemStack;)Ljava/lang/String;", false);
+ mv.visitVarInsn(ASTORE, 2);
+ Label l8 = new Label();
+ mv.visitLabel(l8);
+ mv.visitLineNumber(304, l8);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitFieldInsn(GETFIELD, "gregtech/loaders/misc/GT_Achievements", "achievementList", "Ljava/util/concurrent/ConcurrentHashMap;");
+ mv.visitVarInsn(ALOAD, 2);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "java/util/concurrent/ConcurrentHashMap", "get", "(Ljava/lang/Object;)Ljava/lang/Object;", false);
+ Label l9 = new Label();
+ mv.visitJumpInsn(IFNONNULL, l9);
+ Label l10 = new Label();
+ mv.visitLabel(l10);
+ mv.visitLineNumber(305, l10);
+ mv.visitFieldInsn(GETSTATIC, "gregtech/loaders/misc/GT_Achievements", "assReg", "I");
+ mv.visitInsn(ICONST_1);
+ mv.visitInsn(IADD);
+ mv.visitFieldInsn(PUTSTATIC, "gregtech/loaders/misc/GT_Achievements", "assReg", "I");
+ Label l11 = new Label();
+ mv.visitLabel(l11);
+ mv.visitLineNumber(306, l11);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitVarInsn(ALOAD, 2);
+ mv.visitIntInsn(BIPUSH, 11);
+ mv.visitFieldInsn(GETSTATIC, "gregtech/loaders/misc/GT_Achievements", "assReg", "I");
+ mv.visitInsn(ICONST_5);
+ mv.visitInsn(IREM);
+ mv.visitInsn(IADD);
+ mv.visitInsn(INEG);
+ mv.visitFieldInsn(GETSTATIC, "gregtech/loaders/misc/GT_Achievements", "assReg", "I");
+ mv.visitInsn(ICONST_5);
+ mv.visitInsn(IDIV);
+ mv.visitIntInsn(BIPUSH, 8);
+ mv.visitInsn(ISUB);
+ mv.visitVarInsn(ALOAD, 1);
+ mv.visitInsn(ICONST_0);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "gregtech/api/util/GT_Recipe", "getOutput", "(I)Lnet/minecraft/item/ItemStack;", false);
+ mv.visitLdcInsn("NO_REQUIREMENT");
+ mv.visitInsn(ICONST_0);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "gregtech/loaders/misc/GT_Achievements", "registerAchievement", "(Ljava/lang/String;IILnet/minecraft/item/ItemStack;Ljava/lang/String;Z)Lnet/minecraft/stats/Achievement;", false);
+ mv.visitVarInsn(ASTORE, 4);
+ Label l12 = new Label();
+ mv.visitLabel(l12);
+ mv.visitLineNumber(307, l12);
+ Label l13 = new Label();
+ mv.visitJumpInsn(GOTO, l13);
+ mv.visitLabel(l9);
+ mv.visitLineNumber(309, l9);
+ mv.visitFrame(F_APPEND,2, new Object[] {"java/lang/String", "net/minecraft/item/ItemStack"}, 0, null);
+ mv.visitInsn(ACONST_NULL);
+ mv.visitVarInsn(ASTORE, 4);
+ mv.visitLabel(l13);
+ mv.visitLineNumber(311, l13);
+ mv.visitFrame(F_APPEND,1, new Object[] {"net/minecraft/stats/Achievement"}, 0, null);
+ mv.visitVarInsn(ALOAD, 4);
+ mv.visitInsn(ARETURN);
+ Label l14 = new Label();
+ mv.visitLabel(l14);
+ mv.visitLocalVariable("this", "Lgregtech/loaders/misc/GT_Achievements;", null, l0, l14, 0);
+ mv.visitLocalVariable("recipe", "Lgregtech/api/util/GT_Recipe;", null, l0, l14, 1);
+ mv.visitLocalVariable("aSafeUnlocalName", "Ljava/lang/String;", null, l8, l14, 2);
+ mv.visitLocalVariable("aStack", "Lnet/minecraft/item/ItemStack;", null, l7, l14, 3);
+ mv.visitLocalVariable("aYouDidSomethingInGT", "Lnet/minecraft/stats/Achievement;", null, l12, l9, 4);
+ mv.visitLocalVariable("aYouDidSomethingInGT", "Lnet/minecraft/stats/Achievement;", null, l13, l14, 4);
+ mv.visitMaxs(7, 5);
+ mv.visitEnd();
+
+ didInject = true;
+ FMLRelaunchLog.log("[GT++ ASM] Gregtech Achievements Patch", Level.INFO, "Method injection complete.");
+ return didInject;
+ }
+
+
+
+ public class MethodAdaptor extends ClassVisitor {
+
+ public MethodAdaptor(ClassVisitor cv) {
+ super(ASM5, cv);
+ this.cv = cv;
+ }
+
+ @Override
+ public MethodVisitor visitMethod(int access, String name, String desc, String signature, String[] exceptions) {
+ MethodVisitor methodVisitor;
+ if (name.equals("registerAssAchievement")) {
+ FMLRelaunchLog.log("[GT++ ASM] Gregtech Achievements Patch", Level.INFO, "Found method " + name + ", removing.");
+ methodVisitor = null;
+ mDidRemoveAssLineRecipeAdder = true;
+ } else {
+ methodVisitor = super.visitMethod(access, name, desc, signature, exceptions);
+ }
+ return methodVisitor;
+ }
+ }
+
+}
diff --git a/src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_GT_BaseMetaTileEntity.java b/src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_GT_BaseMetaTileEntity.java
new file mode 100644
index 0000000000..da5859eb55
--- /dev/null
+++ b/src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_GT_BaseMetaTileEntity.java
@@ -0,0 +1,158 @@
+package gtPlusPlus.preloader.asm.transformers;
+
+import static org.objectweb.asm.Opcodes.*;
+
+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_GT_BaseMetaTileEntity {
+
+ //The qualified name of the class we plan to transform.
+ //gregtech/common/blocks/GT_Block_Machines
+
+ private final boolean isValid;
+ private final ClassReader reader;
+ private final ClassWriter writer;
+
+
+ public ClassTransformer_GT_BaseMetaTileEntity(byte[] basicClass) {
+ ClassReader aTempReader = null;
+ ClassWriter aTempWriter = null;
+
+ FMLRelaunchLog.log("[GT++ ASM] Gregtech setMetaTileEntity Patch", Level.INFO, "Attempting to make setMetaTileEntity(IMetaTileEntity) safer.");
+
+ aTempReader = new ClassReader(basicClass);
+ aTempWriter = new ClassWriter(aTempReader, ClassWriter.COMPUTE_FRAMES);
+ aTempReader.accept(new localClassVisitor(aTempWriter), 0);
+
+ if (aTempReader != null && aTempWriter != null) {
+ isValid = true;
+ }
+ else {
+ isValid = false;
+ }
+ FMLRelaunchLog.log("[GT++ ASM] Gregtech setMetaTileEntity Patch", Level.INFO, "Valid patch? "+isValid+".");
+ reader = aTempReader;
+ writer = aTempWriter;
+
+
+ if (reader != null && writer != null) {
+ FMLRelaunchLog.log("[GT++ ASM] Gregtech setMetaTileEntity Patch", Level.INFO, "Attempting Method Injection.");
+ injectMethod("setMetaTileEntity");
+ }
+
+ }
+
+ 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;
+ FMLRelaunchLog.log("[GT++ ASM] Gregtech setMetaTileEntity Patch", Level.INFO, "Injecting "+aMethodName+".");
+ if (aMethodName.equals("setMetaTileEntity")) {
+
+ mv = getWriter().visitMethod(ACC_PUBLIC, "setMetaTileEntity", "(Lgregtech/api/interfaces/metatileentity/IMetaTileEntity;)V", null, null);
+ mv.visitCode();
+ Label l0 = new Label();
+ Label l1 = new Label();
+ Label l2 = new Label();
+ mv.visitTryCatchBlock(l0, l1, l2, "java/lang/Throwable");
+ mv.visitLabel(l0);
+ mv.visitLineNumber(1568, l0);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitVarInsn(ALOAD, 1);
+ mv.visitTypeInsn(CHECKCAST, "gregtech/api/metatileentity/MetaTileEntity");
+ mv.visitFieldInsn(PUTFIELD, "gregtech/api/metatileentity/BaseMetaTileEntity", "mMetaTileEntity", "Lgregtech/api/metatileentity/MetaTileEntity;");
+ mv.visitLabel(l1);
+ mv.visitLineNumber(1569, l1);
+ Label l3 = new Label();
+ mv.visitJumpInsn(GOTO, l3);
+ mv.visitLabel(l2);
+ mv.visitLineNumber(1570, l2);
+ mv.visitFrame(F_SAME1, 0, null, 1, new Object[] {"java/lang/Throwable"});
+ mv.visitVarInsn(ASTORE, 2);
+ Label l4 = new Label();
+ mv.visitLabel(l4);
+ mv.visitLineNumber(1571, l4);
+ mv.visitFieldInsn(GETSTATIC, "gregtech/api/util/GT_Log", "err", "Ljava/io/PrintStream;");
+ mv.visitLdcInsn("[BMTE] Bad Tile Entity set in world, your game would have crashed if not for me!");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "java/io/PrintStream", "println", "(Ljava/lang/String;)V", false);
+ Label l5 = new Label();
+ mv.visitLabel(l5);
+ mv.visitLineNumber(1572, l5);
+ mv.visitVarInsn(ALOAD, 1);
+ Label l6 = new Label();
+ mv.visitJumpInsn(IFNULL, l6);
+ Label l7 = new Label();
+ mv.visitLabel(l7);
+ mv.visitLineNumber(1573, l7);
+ mv.visitFieldInsn(GETSTATIC, "gregtech/api/util/GT_Log", "err", "Ljava/io/PrintStream;");
+ mv.visitTypeInsn(NEW, "java/lang/StringBuilder");
+ mv.visitInsn(DUP);
+ mv.visitLdcInsn("Tile was of type: ");
+ mv.visitMethodInsn(INVOKESPECIAL, "java/lang/StringBuilder", "<init>", "(Ljava/lang/String;)V", false);
+ mv.visitVarInsn(ALOAD, 1);
+ mv.visitMethodInsn(INVOKEINTERFACE, "gregtech/api/interfaces/metatileentity/IMetaTileEntity", "getInventoryName", "()Ljava/lang/String;", true);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/StringBuilder", "append", "(Ljava/lang/String;)Ljava/lang/StringBuilder;", false);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/StringBuilder", "toString", "()Ljava/lang/String;", false);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "java/io/PrintStream", "println", "(Ljava/lang/String;)V", false);
+ mv.visitLabel(l6);
+ mv.visitLineNumber(1574, l6);
+ mv.visitFrame(F_APPEND,1, new Object[] {"java/lang/Throwable"}, 0, null);
+ mv.visitVarInsn(ALOAD, 2);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/Throwable", "printStackTrace", "()V", false);
+ mv.visitLabel(l3);
+ mv.visitLineNumber(1576, l3);
+ mv.visitFrame(F_CHOP,1, null, 0, null);
+ mv.visitInsn(RETURN);
+ Label l8 = new Label();
+ mv.visitLabel(l8);
+ mv.visitLocalVariable("this", "Lgregtech/api/metatileentity/BaseMetaTileEntity;", null, l0, l8, 0);
+ mv.visitLocalVariable("aMetaTileEntity", "Lgregtech/api/interfaces/metatileentity/IMetaTileEntity;", null, l0, l8, 1);
+ mv.visitLocalVariable("t", "Ljava/lang/Throwable;", null, l4, l3, 2);
+ mv.visitMaxs(4, 3);
+ mv.visitEnd();
+
+ didInject = true;
+ }
+ FMLRelaunchLog.log("[GT++ ASM] Gregtech setMetaTileEntity Patch", Level.INFO, "Method injection complete.");
+ return didInject;
+ }
+
+ public 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) {
+ MethodVisitor methodVisitor;
+ if (name.equals("setMetaTileEntity")) {
+ FMLRelaunchLog.log("[GT++ ASM] Gregtech setMetaTileEntity Patch", Level.INFO, "Found method "+name+", removing.");
+ methodVisitor = null;
+ }
+ else {
+ methodVisitor = super.visitMethod(access, name, desc, signature, exceptions);
+ }
+ return methodVisitor;
+ }
+ }
+
+}
diff --git a/src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_GT_BlockMachines_MetaPipeEntity.java b/src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_GT_BlockMachines_MetaPipeEntity.java
new file mode 100644
index 0000000000..dce1fa15d2
--- /dev/null
+++ b/src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_GT_BlockMachines_MetaPipeEntity.java
@@ -0,0 +1,286 @@
+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.GETFIELD;
+import static org.objectweb.asm.Opcodes.ILOAD;
+import static org.objectweb.asm.Opcodes.INVOKESTATIC;
+import static org.objectweb.asm.Opcodes.IRETURN;
+
+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.GregTech_API;
+import gregtech.api.enums.Materials;
+import gregtech.api.enums.SubTag;
+import gregtech.api.metatileentity.BaseMetaPipeEntity;
+import gtPlusPlus.xmod.gregtech.common.Meta_GT_Proxy;
+import net.minecraft.tileentity.TileEntity;
+import net.minecraft.world.World;
+
+public class ClassTransformer_GT_BlockMachines_MetaPipeEntity {
+
+ //The qualified name of the class we plan to transform.
+ //gregtech/common/blocks/GT_Block_Machines
+
+ private final boolean isValid;
+ private final ClassReader reader;
+ private final ClassWriter writer;
+
+ /**
+ * Utility Functions
+ */
+
+ public static String getHarvestTool(int aMeta) {
+ //FMLRelaunchLog.log("[GT++ ASM] Gregtech getTileEntityBaseType Patch", Level.INFO, "Attempting to call getHarvestTool. Meta: "+aMeta);
+ if (aMeta >= 8 && aMeta <= 11) {
+ return "cutter";
+ }
+ return "wrench";
+ }
+
+ /*
+ * Used to patch the method in Fluid pipes, Frame Boxes and Item Pipes
+ */
+ /**
+ * This determines the BaseMetaTileEntity belonging to this MetaTileEntity by using the Meta ID of the Block itself.
+ * <p/>
+ * 0 = BaseMetaTileEntity, Wrench lvl 0 to dismantle
+ * 1 = BaseMetaTileEntity, Wrench lvl 1 to dismantle
+ * <p/>
+ * 2 = BaseMetaTileEntity, Wrench lvl 2 to dismantle
+ * 3 = BaseMetaTileEntity, Wrench lvl 3 to dismantle
+ * <p/>
+ * 4 = BaseMetaPipeEntity, Wrench lvl 0 to dismantle
+ * 5 = BaseMetaPipeEntity, Wrench lvl 1 to dismantle
+ * <p/>
+ * 6 = BaseMetaPipeEntity, Wrench lvl 2 to dismantle
+ * 7 = BaseMetaPipeEntity, Wrench lvl 3 to dismantle
+ * <p/>
+ * 8 = BaseMetaPipeEntity, Cutter lvl 0 to dismantle
+ * 9 = BaseMetaPipeEntity, Cutter lvl 1 to dismantle
+ * <p/>
+ * 10 = BaseMetaPipeEntity, Cutter lvl 2 to dismantle
+ * 11 = BaseMetaPipeEntity, Cutter lvl 3 to dismantle
+ * <p/>
+ * == Reserved For Alkalus (Was previously used to allow axes on wooden blocks, but that's fucking stupid.)
+ * <p/>
+ * 12 = BaseCustomPower_MTE, Wrench lvl 0 to dismantle
+ * 13 = BaseCustomTileEntity, Wrench lvl 1 to dismantle
+ * <p/>
+ * 14 = BaseCustomTileEntity, Wrench lvl 2 to dismantle
+ * 15 = BaseCustomTileEntity, Wrench lvl 3 to dismantle
+ */
+ public static byte getTileEntityBaseType(Materials mMaterial) {
+ byte mMetaID;
+ //Modified code that should never return 12-15 for Wooden items.
+ //mMetaID = (byte) (mMaterial == null ? 4 : (byte) (4) + Math.max(0, Math.min(3, mMaterial.mToolQuality)));
+ //Original Code for debug purposes
+ mMetaID = mMaterial == null ? 4 : (byte) ((mMaterial.contains(SubTag.WOOD) ? 4 : 4) + Math.max(0, Math.min(3, mMaterial.mToolQuality)));
+ //FMLRelaunchLog.log("[GT++ ASM] Gregtech getTileEntityBaseType Patch", Level.INFO, "Attempting to call getTileEntityBaseType. Using Meta: "+mMetaID);
+ return mMetaID;
+ }
+
+
+
+ /**
+ * This determines the BaseMetaTileEntity belonging to this MetaTileEntity by using the Meta ID of the Block itself.
+ * <p/>
+ * 0 = BaseMetaTileEntity, Wrench lvl 0 to dismantle
+ * 1 = BaseMetaTileEntity, Wrench lvl 1 to dismantle
+ * <p/>
+ * 2 = BaseMetaTileEntity, Wrench lvl 2 to dismantle
+ * 3 = BaseMetaTileEntity, Wrench lvl 3 to dismantle
+ * <p/>
+ * 4 = BaseMetaPipeEntity, Wrench lvl 0 to dismantle
+ * 5 = BaseMetaPipeEntity, Wrench lvl 1 to dismantle
+ * <p/>
+ * 6 = BaseMetaPipeEntity, Wrench lvl 2 to dismantle
+ * 7 = BaseMetaPipeEntity, Wrench lvl 3 to dismantle
+ * <p/>
+ * 8 = BaseMetaPipeEntity, Cutter lvl 0 to dismantle
+ * 9 = BaseMetaPipeEntity, Cutter lvl 1 to dismantle
+ * <p/>
+ * 10 = BaseMetaPipeEntity, Cutter lvl 2 to dismantle
+ * 11 = BaseMetaPipeEntity, Cutter lvl 3 to dismantle
+ * <p/>
+ * == Reserved For Alkalus (Was previously used to allow axes on wooden blocks, but that's fucking stupid.)
+ * <p/>
+ * 12 = BaseCustomPower_MTE, Wrench lvl 2 to dismantle
+ * 13 = BaseCustomTileEntity, Wrench lvl 2 to dismantle
+ * <p/>
+ * 14 = BaseCustomTileEntity, Wrench lvl 3 to dismantle
+ * 15 = BaseCustomTileEntity, Wrench lvl 3 to dismantle
+ */
+ public static TileEntity createTileEntity(World aWorld, int aMeta) {
+ //Logger.INFO("Creating Tile Entity with Meta of "+aMeta);
+ if (aMeta < 4) {
+ return GregTech_API.constructBaseMetaTileEntity();
+ } else if (aMeta < 12) {
+ return new BaseMetaPipeEntity();
+ } else {
+ //Because Wooden pipes/frames may exist in world, we try cast to the GT++ tile first, if tht fails, we cast a pipe..
+ try {
+ return Meta_GT_Proxy.constructCustomGregtechMetaTileEntityByMeta(aMeta);
+ }
+ catch (Throwable c) {
+ //Returns a pipe entity, once this returns, it should correct itself and no longer error in future.
+ return new BaseMetaPipeEntity();
+ }
+ }
+ }
+
+ public static TileEntity createTileEntity_Original(World aWorld, int aMeta) {
+ // Logger.INFO("Creating Tile Entity with Meta of "+aMeta);
+ if (aMeta < 4) {
+ return GregTech_API.constructBaseMetaTileEntity();
+ } else {
+ return new BaseMetaPipeEntity();
+ }
+ }
+
+ int mMode;
+
+ public ClassTransformer_GT_BlockMachines_MetaPipeEntity(byte[] basicClass, int aMode) {
+ mMode = aMode;
+ ClassReader aTempReader = null;
+ ClassWriter aTempWriter = null;
+
+ FMLRelaunchLog.log("[GT++ ASM] Gregtech getTileEntityBaseType Patch", Level.INFO, "Attempting to patch in mode "+aMode+".");
+
+ aTempReader = new ClassReader(basicClass);
+ aTempWriter = new ClassWriter(aTempReader, ClassWriter.COMPUTE_FRAMES);
+ aTempReader.accept(new localClassVisitor(aTempWriter, mMode), 0);
+
+ if (aTempReader != null && aTempWriter != null) {
+ isValid = true;
+ }
+ else {
+ isValid = false;
+ }
+ FMLRelaunchLog.log("[GT++ ASM] Gregtech getTileEntityBaseType Patch", Level.INFO, "Valid patch? "+isValid+".");
+ reader = aTempReader;
+ writer = aTempWriter;
+
+
+ if (reader != null && writer != null) {
+ FMLRelaunchLog.log("[GT++ ASM] Gregtech getTileEntityBaseType Patch", Level.INFO, "Attempting Method Injection.");
+ if (aMode == 0) {
+ injectMethod("getHarvestTool");
+ injectMethod("createTileEntity");
+ }
+ else {
+ injectMethod("getTileEntityBaseType");
+ }
+ }
+
+ }
+
+ 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;
+ FMLRelaunchLog.log("[GT++ ASM] Gregtech getTileEntityBaseType 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_GT_BlockMachines_MetaPipeEntity", "getHarvestTool", "(I)Ljava/lang/String;", false);
+ mv.visitInsn(ARETURN);
+ Label l1 = new Label();
+ mv.visitLabel(l1);
+ mv.visitLocalVariable("this", "Lgregtech/common/blocks/GT_Block_Machines;", null, l0, l1, 0);
+ mv.visitLocalVariable("aMeta", "I", null, l0, l1, 1);
+ mv.visitMaxs(1, 2);
+ mv.visitEnd();
+ didInject = true;
+ }
+ else if (aMethodName.equals("createTileEntity")) {
+ mv = getWriter().visitMethod(ACC_PUBLIC, "createTileEntity", "(Lnet/minecraft/world/World;I)Lnet/minecraft/tileentity/TileEntity;", null, null);
+ mv.visitCode();
+ Label l0 = new Label();
+ mv.visitLabel(l0);
+ mv.visitLineNumber(442, l0);
+ mv.visitVarInsn(ALOAD, 1);
+ mv.visitVarInsn(ILOAD, 2);
+ mv.visitMethodInsn(INVOKESTATIC, "gtPlusPlus/preloader/asm/transformers/ClassTransformer_GT_BlockMachines_MetaPipeEntity", "createTileEntity", "(Lnet/minecraft/world/World;I)Lnet/minecraft/tileentity/TileEntity;", false);
+ mv.visitInsn(ARETURN);
+ Label l1 = new Label();
+ mv.visitLabel(l1);
+ mv.visitLocalVariable("this", "Lgregtech/common/blocks/GT_Block_Machines;", null, l0, l1, 0);
+ mv.visitLocalVariable("aWorld", "Lnet/minecraft/world/World;", null, l0, l1, 1);
+ mv.visitLocalVariable("aMeta", "I", null, l0, l1, 2);
+ mv.visitMaxs(2, 3);
+ mv.visitEnd();
+ didInject = true;
+
+ }
+ else if (aMethodName.equals("getTileEntityBaseType")) {
+
+ String aClassName = mMode == 1 ? "gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Item" : mMode == 2 ? "gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Frame" : "gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Fluid";
+ mv = getWriter().visitMethod(ACC_PUBLIC, "getTileEntityBaseType", "()B", null, null);
+ mv.visitCode();
+ Label l0 = new Label();
+ mv.visitLabel(l0);
+ mv.visitLineNumber(37, l0);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitFieldInsn(GETFIELD, ""+aClassName+"", "mMaterial", "Lgregtech/api/enums/Materials;");
+ mv.visitMethodInsn(INVOKESTATIC, "gtPlusPlus/preloader/asm/transformers/ClassTransformer_GT_BlockMachines_MetaPipeEntity", "getTileEntityBaseType", "(Lgregtech/api/enums/Materials;)B", false);
+ mv.visitInsn(IRETURN);
+ Label l1 = new Label();
+ mv.visitLabel(l1);
+ mv.visitLocalVariable("this", "L"+aClassName+";", null, l0, l1, 0);
+ mv.visitMaxs(1, 1);
+ mv.visitEnd();
+ didInject = true;
+
+ }
+ FMLRelaunchLog.log("[GT++ ASM] Gregtech getTileEntityBaseType Patch", Level.INFO, "Method injection complete.");
+ return didInject;
+ }
+
+ public final class localClassVisitor extends ClassVisitor {
+
+ private final int mMode;
+
+ public localClassVisitor(ClassVisitor cv, int aMode) {
+ super(ASM5, cv);
+ mMode = aMode;
+ }
+
+ @Override
+ public MethodVisitor visitMethod(int access, String name, String desc, String signature, String[] exceptions) {
+ MethodVisitor methodVisitor;
+ if ((mMode == 0 && (name.equals("createTileEntity") || name.equals("getHarvestTool"))) || (mMode > 0 && name.equals("getTileEntityBaseType"))) {
+ FMLRelaunchLog.log("[GT++ ASM] Gregtech getTileEntityBaseType Patch", Level.INFO, "Found method "+name+", removing.");
+ methodVisitor = null;
+ }
+ else {
+ methodVisitor = super.visitMethod(access, name, desc, signature, exceptions);
+ }
+ return methodVisitor;
+ }
+ }
+
+}
diff --git a/src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_GT_BlockMachines_NBT.java b/src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_GT_BlockMachines_NBT.java
new file mode 100644
index 0000000000..349bdc3e88
--- /dev/null
+++ b/src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_GT_BlockMachines_NBT.java
@@ -0,0 +1,193 @@
+package gtPlusPlus.preloader.asm.transformers;
+
+import static org.objectweb.asm.Opcodes.*;
+
+import java.io.IOException;
+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 gtPlusPlus.core.lib.CORE;
+import gtPlusPlus.preloader.DevHelper;
+import gtPlusPlus.preloader.asm.AsmConfig;
+
+public class ClassTransformer_GT_BlockMachines_NBT {
+
+ //The qualified name of the class we plan to transform.
+ private static final String className = "gregtech.common.blocks.GT_Block_Machines";
+ //gregtech/common/blocks/GT_Block_Machines
+
+ private final boolean isValid;
+ private final ClassReader reader;
+ private final ClassWriter writer;
+
+ String aEntityPlayer;
+ String aEntityPlayerMP;
+ String aWorld;
+
+ public static boolean isNbtPersistencyPatchAlreadyApplied = false;
+
+ public ClassTransformer_GT_BlockMachines_NBT(byte[] basicClass, boolean obfuscated) {
+
+ ClassReader aTempReader = null;
+ ClassWriter aTempWriter = null;
+
+ FMLRelaunchLog.log("[GT++ ASM] Gregtech NBT Persistency Patch", Level.INFO, "Attempting to patch "+className+".");
+
+ aTempReader = new ClassReader(basicClass);
+ aTempWriter = new ClassWriter(aTempReader, ClassWriter.COMPUTE_FRAMES);
+ aTempReader.accept(new localClassVisitor(aTempWriter), 0);
+
+ if (aTempReader != null && aTempWriter != null) {
+ isValid = true;
+ }
+ else {
+ isValid = false;
+ }
+ FMLRelaunchLog.log("[GT++ ASM] Gregtech NBT Persistency Patch", Level.INFO, "Valid patch? "+isValid+".");
+ reader = aTempReader;
+ writer = aTempWriter;
+
+ CORE.NBT_PERSISTENCY_PATCH_APPLIED = isNbtPersistencyPatchAlreadyApplied;
+
+ if (reader != null && writer != null && !isNbtPersistencyPatchAlreadyApplied && AsmConfig.enableGtNbtFix) {
+ aEntityPlayer = obfuscated ? DevHelper.getObfuscated("net/minecraft/entity/player/EntityPlayer") : "net/minecraft/entity/player/EntityPlayer";
+ aEntityPlayerMP = obfuscated ? DevHelper.getObfuscated("net/minecraft/entity/player/EntityPlayerMP") : "net/minecraft/entity/player/EntityPlayerMP";
+ aWorld = obfuscated ? DevHelper.getObfuscated("net/minecraft/world/World") : "net/minecraft/world/World";
+ FMLRelaunchLog.log("[GT++ ASM] Gregtech NBT Persistency Patch", Level.INFO, "Attempting Method Injection.");
+ if (injectMethod("removedByPlayer") && injectMethod("harvestBlock")) {
+ CORE.NBT_PERSISTENCY_PATCH_APPLIED = true;
+ }
+ }
+
+ }
+
+ 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;
+ FMLRelaunchLog.log("[GT++ ASM] Gregtech NBT Persistency Patch", Level.INFO, "Injecting "+aMethodName+" into "+className+".");
+ if (aMethodName.equals("removedByPlayer")) {
+
+ mv = getWriter().visitMethod(ACC_PUBLIC, "removedByPlayer", "(L"+aWorld+";L"+aEntityPlayer+";IIIZ)Z", null, null);
+ mv.visitCode();
+ Label l0 = new Label();
+ mv.visitLabel(l0);
+ mv.visitLineNumber(535, l0);
+ mv.visitVarInsn(ILOAD, 6);
+ Label l1 = new Label();
+ mv.visitJumpInsn(IFEQ, l1);
+ Label l2 = new Label();
+ mv.visitLabel(l2);
+ mv.visitLineNumber(536, l2);
+ mv.visitInsn(ICONST_1);
+ mv.visitInsn(IRETURN);
+ mv.visitLabel(l1);
+ mv.visitLineNumber(538, l1);
+ mv.visitFrame(F_SAME, 0, null, 0, null);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitVarInsn(ALOAD, 1);
+ mv.visitVarInsn(ALOAD, 2);
+ mv.visitVarInsn(ILOAD, 3);
+ mv.visitVarInsn(ILOAD, 4);
+ mv.visitVarInsn(ILOAD, 5);
+ mv.visitInsn(ICONST_0);
+ mv.visitMethodInsn(INVOKESPECIAL, "gregtech/api/items/GT_Generic_Block", "removedByPlayer", "(L"+aWorld+";L"+aEntityPlayer+";IIIZ)Z", false);
+ mv.visitInsn(IRETURN);
+ Label l3 = new Label();
+ mv.visitLabel(l3);
+ mv.visitLocalVariable("this", "Lgregtech/common/blocks/GT_Block_Machines;", null, l0, l3, 0);
+ mv.visitLocalVariable("aWorld", "L"+aWorld+";", null, l0, l3, 1);
+ mv.visitLocalVariable("aPlayer", "L"+aEntityPlayer+";", null, l0, l3, 2);
+ mv.visitLocalVariable("aX", "I", null, l0, l3, 3);
+ mv.visitLocalVariable("aY", "I", null, l0, l3, 4);
+ mv.visitLocalVariable("aZ", "I", null, l0, l3, 5);
+ mv.visitLocalVariable("aWillHarvest", "Z", null, l0, l3, 6);
+ mv.visitMaxs(7, 7);
+ mv.visitEnd();
+ didInject = true;
+
+ }
+ else if (aMethodName.equals("harvestBlock")) {
+
+ mv = getWriter().visitMethod(ACC_PUBLIC, "harvestBlock", "(L"+aWorld+";L"+aEntityPlayer+";IIII)V", null, null);
+ mv.visitCode();
+ Label l0 = new Label();
+ mv.visitLabel(l0);
+ mv.visitLineNumber(544, l0);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitVarInsn(ALOAD, 1);
+ mv.visitVarInsn(ALOAD, 2);
+ mv.visitVarInsn(ILOAD, 3);
+ mv.visitVarInsn(ILOAD, 4);
+ mv.visitVarInsn(ILOAD, 5);
+ mv.visitVarInsn(ILOAD, 6);
+ mv.visitMethodInsn(INVOKESPECIAL, "gregtech/api/items/GT_Generic_Block", "harvestBlock", "(L"+aWorld+";L"+aEntityPlayer+";IIII)V", false);
+ Label l1 = new Label();
+ mv.visitLabel(l1);
+ mv.visitLineNumber(545, l1);
+ mv.visitVarInsn(ALOAD, 1);
+ mv.visitVarInsn(ILOAD, 3);
+ mv.visitVarInsn(ILOAD, 4);
+ mv.visitVarInsn(ILOAD, 5);
+ mv.visitMethodInsn(INVOKEVIRTUAL, ""+aWorld+"", "setBlockToAir", "(III)Z", false);
+ mv.visitInsn(POP);
+ Label l2 = new Label();
+ mv.visitLabel(l2);
+ mv.visitLineNumber(546, l2);
+ mv.visitInsn(RETURN);
+ Label l3 = new Label();
+ mv.visitLabel(l3);
+ mv.visitLocalVariable("this", "Lgregtech/common/blocks/GT_Block_Machines;", null, l0, l3, 0);
+ mv.visitLocalVariable("aWorld", "L"+aWorld+";", null, l0, l3, 1);
+ mv.visitLocalVariable("aPlayer", "L"+aEntityPlayer+";", null, l0, l3, 2);
+ mv.visitLocalVariable("aX", "I", null, l0, l3, 3);
+ mv.visitLocalVariable("aY", "I", null, l0, l3, 4);
+ mv.visitLocalVariable("aZ", "I", null, l0, l3, 5);
+ mv.visitLocalVariable("aMeta", "I", null, l0, l3, 6);
+ mv.visitMaxs(7, 7);
+ mv.visitEnd();
+ didInject = true;
+
+ }
+ FMLRelaunchLog.log("[GT++ ASM] Gregtech NBT Persistency Patch", Level.INFO, "Method injection complete.");
+ return didInject;
+ }
+
+ 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("removedByPlayer")) {
+ FMLRelaunchLog.log("[GT++ ASM] Gregtech NBT Persistency Patch", Level.INFO, "Found method "+name+", skipping patch.");
+ isNbtPersistencyPatchAlreadyApplied = true;
+ }
+ if (name.equals("harvestBlock")) {
+ FMLRelaunchLog.log("[GT++ ASM] Gregtech NBT Persistency Patch", Level.INFO, "Found method "+name+", skipping patch.");
+ isNbtPersistencyPatchAlreadyApplied = true;
+ }
+ MethodVisitor methodVisitor = super.visitMethod(access, name, desc, signature, exceptions);
+ return methodVisitor;
+ }
+ }
+
+}
diff --git a/src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_GT_CharcoalPit.java b/src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_GT_CharcoalPit.java
new file mode 100644
index 0000000000..1e54bd3632
--- /dev/null
+++ b/src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_GT_CharcoalPit.java
@@ -0,0 +1,184 @@
+package gtPlusPlus.preloader.asm.transformers;
+
+import static org.objectweb.asm.Opcodes.*;
+
+import java.util.ArrayList;
+
+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.enums.OrePrefixes;
+import gregtech.api.util.GT_Utility;
+import gtPlusPlus.core.util.minecraft.ItemUtils;
+import gtPlusPlus.core.util.reflect.ReflectionUtils;
+import net.minecraft.block.Block;
+import net.minecraft.item.ItemStack;
+import net.minecraftforge.oredict.OreDictionary;
+
+public class ClassTransformer_GT_CharcoalPit {
+
+ private final boolean isValid;
+ private final ClassReader reader;
+ private final ClassWriter writer;
+
+ public static boolean isWoodLog(Block log) {
+ return isWoodLog(log, Short.MAX_VALUE);
+ }
+
+ public static boolean isWoodLog(Block log, int meta) {
+ ItemStack aLogStack = ItemUtils.getSimpleStack(log, meta, 1);
+ ArrayList<ItemStack> aData = OrePrefixes.log.mPrefixedItems;
+ for (ItemStack aStack : aData) {
+ if (GT_Utility.areStacksEqual(aStack, aLogStack)) {
+ return true;
+ }
+ }
+ aData.clear();
+ aData = OreDictionary.getOres("logWood");
+ for (ItemStack aStack : aData) {
+ if (GT_Utility.areStacksEqual(aStack, aLogStack)) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ public ClassTransformer_GT_CharcoalPit(byte[] basicClass, boolean obfuscated) {
+ ClassReader aTempReader = null;
+ ClassWriter aTempWriter = null;
+ boolean aBadTime = false;
+ if (ReflectionUtils.doesClassExist("aji")) {
+ obfuscated = true;
+ }
+ else {
+ if (ReflectionUtils.doesClassExist("net.minecraft.block.Block")) {
+ obfuscated = false;
+ }
+ else {
+ // Bad... Like.. very bad..
+ FMLRelaunchLog.log("[GT++ ASM] GT Charcoal Pit Fix", Level.INFO, "Unable to find Block.class/aji.class, this is BAD. Not Patching.");
+ }
+ }
+ aTempReader = new ClassReader(basicClass);
+ aTempWriter = new ClassWriter(aTempReader, ClassWriter.COMPUTE_FRAMES);
+ if (!aBadTime) {
+ aTempReader.accept(new CustomClassVisitor(aTempWriter), 0);
+ injectMethod("isWoodLog", obfuscated, aTempWriter);
+ if (aTempReader != null && aTempWriter != null) {
+ isValid = true;
+ } else {
+ isValid = false;
+ }
+ }
+ else {
+ isValid = false;
+ }
+ FMLRelaunchLog.log("[GT++ ASM] GT Charcoal Pit Fix", 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, boolean obfuscated, ClassWriter cw) {
+ MethodVisitor mv;
+ boolean didInject = false;
+ FMLRelaunchLog.log("[GT++ ASM] GT Charcoal Pit Fix", Level.INFO, "Injecting " + aMethodName + ".");
+
+ String aBlockClassName = "net/minecraft/block/Block";
+ if (obfuscated) {
+ aBlockClassName = "aji";
+ }
+ if (aMethodName.equals("isWoodLog")) {
+
+ // Inject original Method with only block arg.
+ mv = cw.visitMethod(ACC_PUBLIC, "isWoodLog", "(L"+aBlockClassName+";)Z", null, null);
+ mv.visitCode();
+ Label l0 = new Label();
+ mv.visitLabel(l0);
+ mv.visitLineNumber(197, l0);
+ mv.visitVarInsn(ALOAD, 1);
+ mv.visitMethodInsn(INVOKESTATIC, "gtPlusPlus/preloader/asm/transformers/ClassTransformer_GT_CharcoalPit", "isWoodLog", "(L"+aBlockClassName+";)Z", false);
+ mv.visitInsn(IRETURN);
+ Label l1 = new Label();
+ mv.visitLabel(l1);
+ mv.visitLocalVariable("this", "Lgregtech/common/tileentities/machines/multi/GT_MetaTileEntity_Charcoal_Pit;", null, l0, l1, 0);
+ mv.visitLocalVariable("log", "L"+aBlockClassName+";", null, l0, l1, 1);
+ mv.visitMaxs(1, 2);
+ mv.visitEnd();
+
+
+ // Inject better Method with block & meta arg.
+ mv = cw.visitMethod(ACC_PUBLIC, "isWoodLog", "(L"+aBlockClassName+";I)Z", null, null);
+ mv.visitCode();
+ Label label0 = new Label();
+ mv.visitLabel(label0);
+ mv.visitLineNumber(201, label0);
+ mv.visitVarInsn(ALOAD, 1);
+ mv.visitVarInsn(ILOAD, 2);
+ mv.visitMethodInsn(INVOKESTATIC, "gtPlusPlus/preloader/asm/transformers/ClassTransformer_GT_CharcoalPit", "isWoodLog", "(L"+aBlockClassName+";I)Z", false);
+ mv.visitInsn(IRETURN);
+ Label label1 = new Label();
+ mv.visitLabel(label1);
+ mv.visitLocalVariable("this", "Lgregtech/common/tileentities/machines/multi/GT_MetaTileEntity_Charcoal_Pit;", null, label0, label1, 0);
+ mv.visitLocalVariable("log", "L"+aBlockClassName+";", null, label0, label1, 1);
+ mv.visitLocalVariable("meta", "I", null, label0, label1, 2);
+ mv.visitMaxs(2, 3);
+ mv.visitEnd();
+
+ didInject = true;
+
+ }
+ FMLRelaunchLog.log("[GT++ ASM] GT Charcoal Pit Fix", Level.INFO, "Method injection complete.");
+ return didInject;
+ }
+
+ public class CustomClassVisitor extends ClassVisitor {
+
+ public CustomClassVisitor(ClassVisitor cv) {
+ super(ASM5, cv);
+ this.cv = cv;
+ }
+
+ private final String[] aMethodsToStrip = new String[] { "isWoodLog" };
+
+ @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] GT Charcoal Pit Fix", Level.INFO, "Found method " + name + ", removing.");
+ }
+ return methodVisitor;
+ }
+
+ }
+
+}
diff --git a/src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_GT_Client.java b/src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_GT_Client.java
new file mode 100644
index 0000000000..e2d34c38e7
--- /dev/null
+++ b/src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_GT_Client.java
@@ -0,0 +1,410 @@
+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.ASM5;
+import static org.objectweb.asm.Opcodes.INVOKESPECIAL;
+import static org.objectweb.asm.Opcodes.INVOKESTATIC;
+import static org.objectweb.asm.Opcodes.RETURN;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.net.URL;
+import java.net.URLClassLoader;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.LinkedHashMap;
+import java.util.Map;
+import java.util.Map.Entry;
+import java.util.Set;
+import java.util.UUID;
+import java.util.jar.JarEntry;
+import java.util.jar.JarInputStream;
+
+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 com.google.common.collect.ImmutableMap;
+import com.google.common.collect.Maps;
+import com.google.common.reflect.ClassPath;
+import com.google.common.reflect.ClassPath.ClassInfo;
+
+import cpw.mods.fml.common.gameevent.TickEvent.Phase;
+import cpw.mods.fml.common.gameevent.TickEvent.PlayerTickEvent;
+import cpw.mods.fml.relauncher.FMLRelaunchLog;
+import gregtech.api.GregTech_API;
+import gregtech.api.util.GT_Log;
+import gregtech.api.util.GT_PlayedSound;
+import gregtech.api.util.GT_Recipe;
+import gregtech.api.util.GT_Recipe.GT_Recipe_Map;
+import gregtech.api.util.GT_Utility;
+import gtPlusPlus.api.objects.Logger;
+import gtPlusPlus.core.util.minecraft.ItemUtils;
+import gtPlusPlus.xmod.gregtech.common.StaticFields59;
+import gtPlusPlus.xmod.gregtech.loaders.misc.AssLineAchievements;
+import net.minecraft.client.Minecraft;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.item.ItemStack;
+import net.minecraft.stats.StatFileWriter;
+
+public class ClassTransformer_GT_Client {
+
+ private final boolean valid;
+ private final ClassReader read;
+ private final ClassWriter write;
+ private boolean mModern = true;
+ private boolean mObfuscated = true;
+ private byte[] mTooledClass;
+
+ public ClassTransformer_GT_Client(byte[] basicClass, boolean obfuscated) {
+
+ ClassReader aTempReader = null;
+ ClassWriter aTempWriter = null;
+
+ mObfuscated = obfuscated;
+
+ aTempReader = new ClassReader(basicClass);
+ aTempWriter = new ClassWriter(aTempReader, ClassWriter.COMPUTE_FRAMES);
+
+ /**
+ * Let's just read the GT archive for some info
+ */
+ //mModern = findAssemblyLineClass();
+ //FMLRelaunchLog.log("[GT++ ASM] Gregtech Client Proxy Patch", Level.INFO, "Found Assembly Line? "+mModern+".");
+ FMLRelaunchLog.log("[GT++ ASM] Gregtech Client Proxy Patch", Level.INFO, "Fixing Issues in vanilla GT.");
+ if (mModern) {
+ aTempReader.accept(new MethodAdaptor2(aTempWriter), 0);
+ //FMLRelaunchLog.log("[GT++ ASM] Gregtech Client Proxy Patch", Level.INFO, "Patching Client handling of Assembly Line recipe visibility for GT 5.09");
+ //injectMethod(aTempWriter, "onPlayerTickEventClient");
+ injectMethod(aTempWriter, "onPostLoad");
+ if (aTempReader != null && aTempWriter != null) {
+ valid = true;
+ mTooledClass = aTempWriter.toByteArray();
+ }
+ else {
+ valid = false;
+ }
+ }
+ else {
+ mTooledClass = basicClass;
+ valid = true;
+ }
+ FMLRelaunchLog.log("[GT++ ASM] Gregtech Client Proxy Patch", Level.INFO, "Valid? "+valid+".");
+ read = aTempReader;
+ write = aTempWriter;
+ }
+
+ public boolean isValidTransformer() {
+ return valid;
+ }
+
+ public ClassReader getReader() {
+ return read;
+ }
+
+ public ClassWriter getWriter() {
+ return write;
+ }
+
+ public boolean findAssemblyLineClass() {
+ ClassLoader cl = getClass().getClassLoader();
+ try {
+ Set<ClassPath.ClassInfo> classesInPackage = ClassPath.from(cl).getTopLevelClassesRecursive("gregtech");
+ if (classesInPackage != null && classesInPackage.size() > 0) {
+ for (ClassInfo x : classesInPackage) {
+ if (x.getResourceName().contains("GT_MetaTileEntity_AssemblyLine")) {
+ FMLRelaunchLog.log("[GT++ ASM] Gregtech Client Proxy Patch", Level.INFO,
+ "Patchable class | " + x.getResourceName());
+ return true;
+ }
+ }
+ }
+ } catch (IOException e) {
+ }
+
+ FMLRelaunchLog.log("[GT++ ASM] Gregtech Client Proxy Patch", Level.INFO, "Failed to find Gregtech classes using prefered method, using backup.");
+
+ cl = ClassLoader.getSystemClassLoader();
+ ImmutableMap<File, ClassLoader> g = getClassPathEntries(cl);
+ File aGregtech = null;
+ if (g.size() > 0) {
+ for (int i = 0; i < g.size(); i++) {
+ String aName;
+ try {
+ File aF = g.keySet().asList().get(i);
+ aName = aF.getName();
+ if (aName != null && aName.length() > 0) {
+ if (aName.toLowerCase().contains("gregtech")) {
+ FMLRelaunchLog.log("[GT++ ASM] Gregtech Client Proxy Patch", Level.INFO, "Patchable class | "+aName);
+ aGregtech = aF;
+ }
+ }
+ }
+ catch (Throwable t) {}
+ }
+ }
+
+ if (aGregtech != null) {
+ File file = aGregtech;
+ FileInputStream fis;
+ JarInputStream jis;
+ try {
+ fis = new FileInputStream(file);
+ jis = new JarInputStream(fis);
+ System.out.println(jis.markSupported());
+ JarEntry je;
+ while((je=jis.getNextJarEntry())!=null){
+ if (je.getName().contains("GT_MetaTileEntity_AssemblyLine")) {
+ FMLRelaunchLog.log("[GT++ ASM] Gregtech Client Proxy Patch", Level.INFO, "Patchable class | "+je.getName());
+ jis.close();
+ return true;
+ }
+ }
+ if (jis != null) {
+ jis.close();
+ }
+ return true;
+ } catch (IOException e1) {
+ }
+ }
+ FMLRelaunchLog.log("[GT++ ASM] Gregtech Client Proxy Patch", Level.INFO, "Failed to find Gregtech classes using backup method, probably using GT 5.08");
+
+ return false;
+ }
+
+ static ImmutableMap<File, ClassLoader> getClassPathEntries(ClassLoader classloader) {
+ LinkedHashMap<File, ClassLoader> entries = Maps.newLinkedHashMap();
+ // Search parent first, since it's the order ClassLoader#loadClass() uses.
+ ClassLoader parent = classloader.getParent();
+ if (parent != null) {
+ entries.putAll(getClassPathEntries(parent));
+ }
+ if (classloader instanceof URLClassLoader) {
+ URLClassLoader urlClassLoader = (URLClassLoader) classloader;
+ for (URL entry : urlClassLoader.getURLs()) {
+ if (entry.getProtocol().equals("file")) {
+ File file = new File(entry.getFile());
+ if (!entries.containsKey(file)) {
+ entries.put(file, classloader);
+ }
+ }
+ }
+ }
+ return ImmutableMap.copyOf(entries);
+ }
+
+ public boolean injectMethod(ClassWriter cw, String string) {
+ MethodVisitor mv;
+ boolean didInject = false;
+ FMLRelaunchLog.log("[GT++ ASM] Gregtech Client Proxy Patch", Level.INFO, "Injecting " + string + ". Obfuscated? "+mObfuscated);
+
+ if (string.equals("onPlayerTickEventClient")) {
+ /**
+ * Inject new, safer code
+ */
+ AnnotationVisitor av0;
+ /**
+ * Static invocation of custom handler instead
+ */
+ mv = cw.visitMethod(ACC_PUBLIC, "onPlayerTickEventClient", "(Lcpw/mods/fml/common/gameevent/TickEvent$PlayerTickEvent;)V", null, null);
+ av0 = mv.visitAnnotation("Lcpw/mods/fml/common/eventhandler/SubscribeEvent;", true);
+ av0.visitEnd();
+ mv.visitCode();
+ Label l0 = new Label();
+ mv.visitLabel(l0);
+ mv.visitLineNumber(371, l0);
+ mv.visitVarInsn(ALOAD, 1);
+ mv.visitMethodInsn(INVOKESTATIC, "gtPlusPlus/preloader/asm/transformers/ClassTransformer_GT_Client", "onPlayerTickEventClient", "(Lcpw/mods/fml/common/gameevent/TickEvent$PlayerTickEvent;)V", false);
+ Label l1 = new Label();
+ mv.visitLabel(l1);
+ mv.visitLineNumber(372, l1);
+ mv.visitInsn(RETURN);
+ Label l2 = new Label();
+ mv.visitLabel(l2);
+ mv.visitLocalVariable("this", "Lgregtech/common/GT_Client;", null, l0, l2, 0);
+ mv.visitLocalVariable("aEvent", "Lcpw/mods/fml/common/gameevent/TickEvent$PlayerTickEvent;", null, l0, l2, 1);
+ mv.visitMaxs(1, 2);
+ mv.visitEnd();
+ didInject = true;
+ }
+ else if (string.equals("onPostLoad")) {
+ mv = cw.visitMethod(ACC_PUBLIC, "onPostLoad", "()V", null, null);
+ mv.visitCode();
+ Label l0 = new Label();
+ mv.visitLabel(l0);
+ mv.visitLineNumber(315, l0);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitMethodInsn(INVOKESPECIAL, "gregtech/common/GT_Proxy", "onPostLoad", "()V", false);
+ Label l1 = new Label();
+ mv.visitLabel(l1);
+ mv.visitLineNumber(316, l1);
+ mv.visitMethodInsn(INVOKESTATIC, "gtPlusPlus/preloader/asm/transformers/ClassTransformer_GT_Client", "onPostLoad", "()V", false);
+ Label l2 = new Label();
+ mv.visitLabel(l2);
+ mv.visitLineNumber(317, l2);
+ mv.visitInsn(RETURN);
+ Label l3 = new Label();
+ mv.visitLabel(l3);
+ mv.visitLocalVariable("this", "Lgregtech/common/GT_Client;", null, l0, l3, 0);
+ mv.visitMaxs(1, 1);
+ mv.visitEnd();
+ didInject = true;
+ }
+
+
+
+
+
+ FMLRelaunchLog.log("[GT++ ASM] Gregtech Client Proxy Patch", Level.INFO, "Method injection complete.");
+ return didInject;
+
+ }
+
+ public class MethodAdaptor2 extends ClassVisitor {
+
+ public MethodAdaptor2(ClassVisitor cv) {
+ super(ASM5, cv);
+ this.cv = cv;
+ }
+
+ @Override
+ public MethodVisitor visitMethod(int access, String name, String desc, String signature, String[] exceptions) {
+ MethodVisitor methodVisitor;
+ if (/*name.equals("onPlayerTickEventClient") || */name.equals("onPostLoad")) {
+ FMLRelaunchLog.log("[GT++ ASM] Gregtech Client Proxy Patch", Level.INFO,
+ "Found method " + name + ", removing.");
+ methodVisitor = null;
+ }
+ else {
+ methodVisitor = super.visitMethod(access, name, desc, signature, exceptions);
+ }
+ return methodVisitor;
+ }
+ }
+
+ public byte[] getByteArray() {
+ if (mTooledClass != null) {
+ return mTooledClass;
+ }
+ return getWriter().toByteArray();
+ }
+
+
+ private static final Map<UUID, Long> aTimeMap = new HashMap<UUID, Long>();
+
+
+ public static void onPlayerTickEventClient(PlayerTickEvent aEvent) {
+ if (aEvent.side.isClient() && aEvent.phase == Phase.END && !aEvent.player.isDead) {
+ long aTime = 0;
+ if (aTimeMap.get(aEvent.player.getUniqueID()) == null) {
+ aTimeMap.put(aEvent.player.getUniqueID(), 0l);
+ }
+ else {
+ aTime = aTimeMap.get(aEvent.player.getUniqueID()) + 1;
+ aTimeMap.put(aEvent.player.getUniqueID(), aTime);
+ }
+ if (aTime >= 100L) {
+ aTimeMap.put(aEvent.player.getUniqueID(), 0l);
+ /**
+ * Remove original handling
+ */
+ if (StaticFields59.mAssLineVisualMapNEI != null) {
+ StatFileWriter tList = Minecraft.getMinecraft().thePlayer.getStatFileWriter();
+ GT_Recipe_Map aAssLineNei;
+ try {
+ aAssLineNei = (GT_Recipe_Map) StaticFields59.mAssLineVisualMapNEI.get(null);
+ for (GT_Recipe aFakeAssLineRecipe : aAssLineNei.mRecipeList) {
+ String aSafeUnlocalName;
+ if (aFakeAssLineRecipe.getOutput(0) == null) {
+ Logger.INFO(
+ "Someone tried to register an achievement for a recipe with null output. Please report this to Alkalus.");
+ continue;
+ }
+ ItemStack aStack = aFakeAssLineRecipe.getOutput(0);
+ try {
+ aSafeUnlocalName = aStack.getUnlocalizedName();
+ } catch (Throwable t) {
+ aSafeUnlocalName = ItemUtils.getUnlocalizedItemName(aStack);
+ }
+ boolean aHidden = true;
+ try {
+ aHidden = tList.hasAchievementUnlocked(AssLineAchievements.getAchievement(aSafeUnlocalName));
+ Logger.INFO("Found achievement for "+aSafeUnlocalName);
+ }
+ catch (NullPointerException rrr) {
+ aHidden = true;
+ //Logger.INFO("Exception handling achievement for "+aSafeUnlocalName);
+ //rrr.printStackTrace();
+ }
+ aFakeAssLineRecipe.mHidden = !aHidden;
+ }
+ } catch (IllegalArgumentException | IllegalAccessException e) {
+ }
+ }
+ }
+
+ Iterator tKey;
+ ArrayList arg5 = new ArrayList();
+ tKey = GT_Utility.sPlayedSoundMap.entrySet().iterator();
+
+ while (tKey.hasNext()) {
+ Entry arg7 = (Entry) tKey.next();
+ if (((Integer) arg7.getValue()).intValue() < 0) {
+ arg5.add(arg7.getKey());
+ } else {
+ arg7.setValue(Integer.valueOf(((Integer) arg7.getValue()).intValue() - 1));
+ }
+ }
+
+ Iterator arg8 = arg5.iterator();
+
+ while (arg8.hasNext()) {
+ GT_PlayedSound arg6 = (GT_PlayedSound) arg8.next();
+ GT_Utility.sPlayedSoundMap.remove(arg6);
+ }
+
+ if (!GregTech_API.mServerStarted) {
+ GregTech_API.mServerStarted = true;
+ }
+ }
+ }
+
+
+
+
+ /**
+ * GT_Client's onPostLoad
+ */
+
+ public static void onPostLoad() {
+ try {
+ for (int i = 0; i < GregTech_API.METATILEENTITIES.length; i++) {
+ try {
+ if (GregTech_API.METATILEENTITIES[i] != null) {
+ GregTech_API.METATILEENTITIES[i].getStackForm(1L).getTooltip((EntityPlayer) null, true);
+ }
+ }
+ catch (Throwable t) {
+ GT_Log.err.println("Error in MetaTileEntity with ID of "+i);
+ t.printStackTrace(GT_Log.err);
+ }
+ }
+ } catch (Throwable var2) {
+ var2.printStackTrace();
+ }
+ }
+
+
+
+
+
+
+
+} \ No newline at end of file
diff --git a/src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_GT_EnergyHatchPatch.java b/src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_GT_EnergyHatchPatch.java
new file mode 100644
index 0000000000..83560eb6c3
--- /dev/null
+++ b/src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_GT_EnergyHatchPatch.java
@@ -0,0 +1,317 @@
+package gtPlusPlus.preloader.asm.transformers;
+
+import static org.objectweb.asm.Opcodes.*;
+
+import org.apache.logging.log4j.Level;
+import org.objectweb.asm.*;
+
+import cpw.mods.fml.relauncher.FMLRelaunchLog;
+import gtPlusPlus.preloader.asm.ClassesToTransform;
+
+public class ClassTransformer_GT_EnergyHatchPatch {
+
+ private static final String aRtgInputFormatted = ClassesToTransform.GTPP_MTE_HATCH_RTG.replace(".", "/");
+ private static final String aEnergyFormatted = ClassesToTransform.GT_MTE_HATCH_ENERGY.replace(".", "/");
+
+ private final boolean isValid;
+ private final ClassReader reader;
+ private final ClassWriter writer;
+
+
+ public ClassTransformer_GT_EnergyHatchPatch(byte[] basicClass, String aClassName) {
+ ClassReader aTempReader = null;
+ ClassWriter aTempWriter = null;
+
+ FMLRelaunchLog.log("[GT++ ASM] Gregtech Energy Hatch Patch", Level.INFO, "Attempting to add slots capabilities to GT Energy Hatches.");
+ FMLRelaunchLog.log("[GT++ ASM] Gregtech Energy Hatch Patch", Level.INFO, "Patching "+aClassName+".");
+
+ aTempReader = new ClassReader(basicClass);
+ aTempWriter = new ClassWriter(aTempReader, ClassWriter.COMPUTE_FRAMES);
+ aTempReader.accept(new localClassVisitor(aTempWriter, aClassName), 0);
+
+ if (aTempReader != null && aTempWriter != null) {
+ isValid = true;
+ }
+ else {
+ isValid = false;
+ }
+ FMLRelaunchLog.log("[GT++ ASM] Gregtech Energy Hatch Patch", Level.INFO, "Valid patch? "+isValid+".");
+ reader = aTempReader;
+ writer = aTempWriter;
+
+
+ if (reader != null && writer != null) {
+ FMLRelaunchLog.log("[GT++ ASM] Gregtech Energy Hatch Patch", Level.INFO, "Attempting Method Injection.");
+ injectMethod(aClassName);
+ }
+
+ }
+
+ public boolean isValidTransformer() {
+ return isValid;
+ }
+
+ public ClassReader getReader() {
+ return reader;
+ }
+
+ public ClassWriter getWriter() {
+ return writer;
+ }
+
+
+ public boolean injectMethod(String aClassName) {
+
+ boolean didInject = false;
+ MethodVisitor mv;
+ ClassWriter cw = getWriter();
+ int aConID = 1;
+
+ //GT_MetaTileEntity_Hatch_Energy
+ //Constructor
+ if (aClassName.equals(ClassesToTransform.GT_MTE_HATCH_ENERGY)){
+
+
+ //Constructor 1
+ {
+ mv = cw.visitMethod(ACC_PUBLIC, "<init>", "(ILjava/lang/String;Ljava/lang/String;II[Ljava/lang/String;)V", null, null);
+ mv.visitCode();
+ Label l0 = new Label();
+ mv.visitLabel(l0);
+ mv.visitLineNumber(26, l0);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitVarInsn(ILOAD, 1);
+ mv.visitVarInsn(ALOAD, 2);
+ mv.visitVarInsn(ALOAD, 3);
+ mv.visitVarInsn(ILOAD, 4);
+ mv.visitVarInsn(ILOAD, 5);
+ mv.visitVarInsn(ALOAD, 6);
+ mv.visitInsn(ICONST_0);
+ mv.visitTypeInsn(ANEWARRAY, "gregtech/api/interfaces/ITexture");
+ mv.visitMethodInsn(INVOKESPECIAL, "gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch", "<init>", "(ILjava/lang/String;Ljava/lang/String;II[Ljava/lang/String;[Lgregtech/api/interfaces/ITexture;)V", false);
+ Label l1 = new Label();
+ mv.visitLabel(l1);
+ mv.visitLineNumber(27, l1);
+ mv.visitInsn(RETURN);
+ Label l2 = new Label();
+ mv.visitLabel(l2);
+ mv.visitLocalVariable("this", "Lgregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Energy;", null, l0, l2, 0);
+ mv.visitLocalVariable("aID", "I", null, l0, l2, 1);
+ mv.visitLocalVariable("aName", "Ljava/lang/String;", null, l0, l2, 2);
+ mv.visitLocalVariable("aNameRegional", "Ljava/lang/String;", null, l0, l2, 3);
+ mv.visitLocalVariable("aTier", "I", null, l0, l2, 4);
+ mv.visitLocalVariable("aSlots", "I", null, l0, l2, 5);
+ mv.visitLocalVariable("aDesc", "[Ljava/lang/String;", null, l0, l2, 6);
+ mv.visitMaxs(8, 7);
+ mv.visitEnd();
+ FMLRelaunchLog.log("[GT++ ASM] Gregtech Energy Hatch Patch", Level.INFO, "Injection new constructor "+(aConID++));
+ }
+
+ //Constructor 2
+ {
+ mv = cw.visitMethod(ACC_PUBLIC, "<init>", "(Ljava/lang/String;IILjava/lang/String;[[[Lgregtech/api/interfaces/ITexture;)V", null, null);
+ mv.visitCode();
+ Label l0 = new Label();
+ mv.visitLabel(l0);
+ mv.visitLineNumber(30, l0);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitVarInsn(ALOAD, 1);
+ mv.visitVarInsn(ILOAD, 2);
+ mv.visitVarInsn(ILOAD, 3);
+ mv.visitVarInsn(ALOAD, 4);
+ mv.visitVarInsn(ALOAD, 5);
+ mv.visitMethodInsn(INVOKESPECIAL, "gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch", "<init>", "(Ljava/lang/String;IILjava/lang/String;[[[Lgregtech/api/interfaces/ITexture;)V", false);
+ Label l1 = new Label();
+ mv.visitLabel(l1);
+ mv.visitLineNumber(31, l1);
+ mv.visitInsn(RETURN);
+ Label l2 = new Label();
+ mv.visitLabel(l2);
+ mv.visitLocalVariable("this", "Lgregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Energy;", null, l0, l2, 0);
+ mv.visitLocalVariable("aName", "Ljava/lang/String;", null, l0, l2, 1);
+ mv.visitLocalVariable("aTier", "I", null, l0, l2, 2);
+ mv.visitLocalVariable("aSlots", "I", null, l0, l2, 3);
+ mv.visitLocalVariable("aDescription", "Ljava/lang/String;", null, l0, l2, 4);
+ mv.visitLocalVariable("aTextures", "[[[Lgregtech/api/interfaces/ITexture;", null, l0, l2, 5);
+ mv.visitMaxs(6, 6);
+ mv.visitEnd();
+ FMLRelaunchLog.log("[GT++ ASM] Gregtech Energy Hatch Patch", Level.INFO, "Injection new constructor "+(aConID++));
+ }
+
+ //Third constructor with String[] for GT 5.09
+ {
+ mv = cw.visitMethod(ACC_PUBLIC, "<init>", "(Ljava/lang/String;II[Ljava/lang/String;[[[Lgregtech/api/interfaces/ITexture;)V", null, null);
+ mv.visitCode();
+ Label l0 = new Label();
+ mv.visitLabel(l0);
+ mv.visitLineNumber(34, l0);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitVarInsn(ALOAD, 1);
+ mv.visitVarInsn(ILOAD, 2);
+ mv.visitVarInsn(ILOAD, 3);
+ mv.visitVarInsn(ALOAD, 4);
+ mv.visitVarInsn(ALOAD, 5);
+ mv.visitMethodInsn(INVOKESPECIAL, "gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch", "<init>", "(Ljava/lang/String;II[Ljava/lang/String;[[[Lgregtech/api/interfaces/ITexture;)V", false);
+ Label l1 = new Label();
+ mv.visitLabel(l1);
+ mv.visitLineNumber(35, l1);
+ mv.visitInsn(RETURN);
+ Label l2 = new Label();
+ mv.visitLabel(l2);
+ mv.visitLocalVariable("this", "Lgregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Energy;", null, l0, l2, 0);
+ mv.visitLocalVariable("aName", "Ljava/lang/String;", null, l0, l2, 1);
+ mv.visitLocalVariable("aTier", "I", null, l0, l2, 2);
+ mv.visitLocalVariable("aSlots", "I", null, l0, l2, 3);
+ mv.visitLocalVariable("aDescription", "[Ljava/lang/String;", null, l0, l2, 4);
+ mv.visitLocalVariable("aTextures", "[[[Lgregtech/api/interfaces/ITexture;", null, l0, l2, 5);
+ mv.visitMaxs(6, 6);
+ mv.visitEnd();
+ FMLRelaunchLog.log("[GT++ ASM] Gregtech Energy Hatch Patch", Level.INFO, "Injection new constructor "+(aConID++));
+ }
+ didInject = true;
+ }
+
+ //GT_MetaTileEntity_Hatch_Energy_RTG
+ //Constructor
+ if (aClassName.equals(ClassesToTransform.GTPP_MTE_HATCH_RTG)){
+
+ {
+ mv = cw.visitMethod(ACC_PUBLIC, "<init>", "(ILjava/lang/String;Ljava/lang/String;II)V", null, null);
+ mv.visitCode();
+ Label l0 = new Label();
+ mv.visitLabel(l0);
+ mv.visitLineNumber(38, l0);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitVarInsn(ILOAD, 1);
+ mv.visitVarInsn(ALOAD, 2);
+ mv.visitVarInsn(ALOAD, 3);
+ mv.visitVarInsn(ILOAD, 4);
+ mv.visitVarInsn(ILOAD, 5);
+ mv.visitInsn(ICONST_2);
+ mv.visitTypeInsn(ANEWARRAY, "java/lang/String");
+ mv.visitInsn(DUP);
+ mv.visitInsn(ICONST_0);
+ mv.visitLdcInsn("Energy Injector for Multiblocks");
+ mv.visitInsn(AASTORE);
+ mv.visitInsn(DUP);
+ mv.visitInsn(ICONST_1);
+ mv.visitLdcInsn("Accepts RTG pellets for Fuel");
+ mv.visitInsn(AASTORE);
+ mv.visitMethodInsn(INVOKESPECIAL, "gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Energy", "<init>", "(ILjava/lang/String;Ljava/lang/String;II[Ljava/lang/String;)V", false);
+ Label l1 = new Label();
+ mv.visitLabel(l1);
+ mv.visitLineNumber(39, l1);
+ mv.visitInsn(RETURN);
+ Label l2 = new Label();
+ mv.visitLabel(l2);
+ mv.visitLocalVariable("this", "LgtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Energy_RTG;", null, l0, l2, 0);
+ mv.visitLocalVariable("aID", "I", null, l0, l2, 1);
+ mv.visitLocalVariable("aName", "Ljava/lang/String;", null, l0, l2, 2);
+ mv.visitLocalVariable("aNameRegional", "Ljava/lang/String;", null, l0, l2, 3);
+ mv.visitLocalVariable("aTier", "I", null, l0, l2, 4);
+ mv.visitLocalVariable("aSlots", "I", null, l0, l2, 5);
+ mv.visitMaxs(10, 6);
+ mv.visitEnd();
+ FMLRelaunchLog.log("[GT++ ASM] Gregtech Energy Hatch Patch", Level.INFO, "Injection new constructor "+(aConID++));
+ }
+ {
+ mv = cw.visitMethod(ACC_PUBLIC, "<init>", "(Ljava/lang/String;IILjava/lang/String;[[[Lgregtech/api/interfaces/ITexture;)V", null, null);
+ mv.visitCode();
+ Label l0 = new Label();
+ mv.visitLabel(l0);
+ mv.visitLineNumber(42, l0);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitVarInsn(ALOAD, 1);
+ mv.visitVarInsn(ILOAD, 2);
+ mv.visitVarInsn(ILOAD, 3);
+ mv.visitVarInsn(ALOAD, 4);
+ mv.visitVarInsn(ALOAD, 5);
+ mv.visitMethodInsn(INVOKESPECIAL, "gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Energy", "<init>", "(Ljava/lang/String;IILjava/lang/String;[[[Lgregtech/api/interfaces/ITexture;)V", false);
+ Label l1 = new Label();
+ mv.visitLabel(l1);
+ mv.visitLineNumber(43, l1);
+ mv.visitInsn(RETURN);
+ Label l2 = new Label();
+ mv.visitLabel(l2);
+ mv.visitLocalVariable("this", "LgtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Energy_RTG;", null, l0, l2, 0);
+ mv.visitLocalVariable("aName", "Ljava/lang/String;", null, l0, l2, 1);
+ mv.visitLocalVariable("aTier", "I", null, l0, l2, 2);
+ mv.visitLocalVariable("aSlots", "I", null, l0, l2, 3);
+ mv.visitLocalVariable("aDescription", "Ljava/lang/String;", null, l0, l2, 4);
+ mv.visitLocalVariable("aTextures", "[[[Lgregtech/api/interfaces/ITexture;", null, l0, l2, 5);
+ mv.visitMaxs(6, 6);
+ mv.visitEnd();
+ FMLRelaunchLog.log("[GT++ ASM] Gregtech Energy Hatch Patch", Level.INFO, "Injection new constructor "+(aConID++));
+ }
+ {
+ mv = cw.visitMethod(ACC_PUBLIC, "<init>", "(Ljava/lang/String;II[Ljava/lang/String;[[[Lgregtech/api/interfaces/ITexture;)V", null, null);
+ mv.visitCode();
+ Label l0 = new Label();
+ mv.visitLabel(l0);
+ mv.visitLineNumber(46, l0);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitVarInsn(ALOAD, 1);
+ mv.visitVarInsn(ILOAD, 2);
+ mv.visitVarInsn(ILOAD, 3);
+ mv.visitVarInsn(ALOAD, 4);
+ mv.visitVarInsn(ALOAD, 5);
+ mv.visitMethodInsn(INVOKESPECIAL, "gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Energy", "<init>", "(Ljava/lang/String;II[Ljava/lang/String;[[[Lgregtech/api/interfaces/ITexture;)V", false);
+ Label l1 = new Label();
+ mv.visitLabel(l1);
+ mv.visitLineNumber(47, l1);
+ mv.visitInsn(RETURN);
+ Label l2 = new Label();
+ mv.visitLabel(l2);
+ mv.visitLocalVariable("this", "LgtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Energy_RTG;", null, l0, l2, 0);
+ mv.visitLocalVariable("aName", "Ljava/lang/String;", null, l0, l2, 1);
+ mv.visitLocalVariable("aTier", "I", null, l0, l2, 2);
+ mv.visitLocalVariable("aSlots", "I", null, l0, l2, 3);
+ mv.visitLocalVariable("aDescription", "[Ljava/lang/String;", null, l0, l2, 4);
+ mv.visitLocalVariable("aTextures", "[[[Lgregtech/api/interfaces/ITexture;", null, l0, l2, 5);
+ mv.visitMaxs(6, 6);
+ mv.visitEnd();
+ FMLRelaunchLog.log("[GT++ ASM] Gregtech Energy Hatch Patch", Level.INFO, "Injection new constructor "+(aConID++));
+ }
+
+
+ didInject = true;
+ }
+
+ FMLRelaunchLog.log("[GT++ ASM] Gregtech Energy Hatch Patch", Level.INFO, "Method injection complete. Successful? "+didInject);
+ return didInject;
+
+ }
+
+ public final class localClassVisitor extends ClassVisitor {
+
+ private final String mClassName;
+
+ public localClassVisitor(ClassVisitor cv, String aClassName) {
+ super(ASM5, cv);
+ mClassName = aClassName;
+ }
+
+ @Override
+ public MethodVisitor visitMethod(int access, String name, String desc, String signature, String[] exceptions) {
+ MethodVisitor methodVisitor = null;
+ if ((mClassName.equals(ClassesToTransform.GTPP_MTE_HATCH_RTG)) && access == ACC_PUBLIC && name.equals("<init>") && (desc.equals("(Ljava/lang/String;ILjava/lang/String;[[[Lgregtech/api/interfaces/ITexture;)V") || desc.equals("(Ljava/lang/String;I[Ljava/lang/String;[[[Lgregtech/api/interfaces/ITexture;)V"))) {
+ FMLRelaunchLog.log("[GT++ ASM] Gregtech Energy Hatch Patch", Level.INFO, "Found Constructor, "+"'"+access+"', "+"'"+name+"', "+"'"+desc+"', "+"'"+signature+"'");
+ methodVisitor = null;
+ }
+ else {
+ methodVisitor = super.visitMethod(access, name, desc, signature, exceptions);
+ }
+ if (methodVisitor == null) {
+ if (mClassName.equals(ClassesToTransform.GT_MTE_HATCH_ENERGY)){
+ FMLRelaunchLog.log("[GT++ ASM] Gregtech Energy Hatch Patch", Level.INFO, "Removed method from "+mClassName);
+ }
+ else {
+ FMLRelaunchLog.log("[GT++ ASM] Gregtech Energy Hatch Patch", Level.INFO, "Removed Constructor with descriptor '"+desc+"' from "+mClassName);
+ }
+ }
+ return methodVisitor;
+ }
+ }
+
+
+}
diff --git a/src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_GT_ItemMachines_Tooltip.java b/src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_GT_ItemMachines_Tooltip.java
new file mode 100644
index 0000000000..4b2a10df07
--- /dev/null
+++ b/src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_GT_ItemMachines_Tooltip.java
@@ -0,0 +1,139 @@
+package gtPlusPlus.preloader.asm.transformers;
+
+import static org.objectweb.asm.Opcodes.*;
+
+import java.io.IOException;
+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 gtPlusPlus.preloader.DevHelper;
+
+public class ClassTransformer_GT_ItemMachines_Tooltip {
+
+ //The qualified name of the class we plan to transform.
+ private static final String className = "gregtech.common.blocks.GT_Item_Machines";
+ //gregtech/common/blocks/GT_Item_Machines
+
+ private final boolean isValid;
+ private final ClassReader reader;
+ private final ClassWriter writer;
+
+ String aEntityPlayer;
+ String aItemStack;
+ String aWorld;
+
+ private static boolean doesMethodAlreadyExist = false;
+
+ public ClassTransformer_GT_ItemMachines_Tooltip(byte[] basicClass, boolean obfuscated) {
+
+ 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 && !doesMethodAlreadyExist) {
+ aEntityPlayer = obfuscated ? DevHelper.getObfuscated("net/minecraft/entity/player/EntityPlayer") : "net/minecraft/entity/player/EntityPlayer";
+ aItemStack = obfuscated ? DevHelper.getObfuscated("net/minecraft/item/ItemStack") : "net/minecraft/item/ItemStack";
+ aWorld = obfuscated ? DevHelper.getObfuscated("net/minecraft/world/World") : "net/minecraft/world/World";
+
+ injectMethod("addInformation");
+ }
+
+ }
+
+ public boolean isValidTransformer() {
+ return isValid;
+ }
+
+ public ClassReader getReader() {
+ return reader;
+ }
+
+ public ClassWriter getWriter() {
+ return writer;
+ }
+
+ public void injectMethod(String aMethodName) {
+ MethodVisitor mv;
+ FMLRelaunchLog.log("[GT++ ASM] Gregtech Tooltip Patch", Level.INFO, "Injecting "+aMethodName+" into "+className+".");
+ if (aMethodName.equals("addInformation")) {
+
+ mv = getWriter().visitMethod(ACC_PUBLIC, "addInformation", "(L"+aItemStack+";L"+aEntityPlayer+";Ljava/util/List;Z)V", null, null);
+ mv.visitCode();
+ Label l0 = new Label();
+ Label l1 = new Label();
+ Label l2 = new Label();
+ mv.visitTryCatchBlock(l0, l1, l2, "java/lang/Throwable");
+ mv.visitLabel(l0);
+ mv.visitLineNumber(120, l0);
+ mv.visitVarInsn(ALOAD, 1);
+ mv.visitVarInsn(ALOAD, 2);
+ mv.visitVarInsn(ALOAD, 3);
+ mv.visitVarInsn(ILOAD, 4);
+ mv.visitMethodInsn(INVOKESTATIC, "gtPlusPlus/xmod/gregtech/common/Meta_GT_Proxy", "conStructGtTileBlockTooltip", "(L"+aItemStack+";L"+aEntityPlayer+";Ljava/util/List;Z)V", false);
+ mv.visitLabel(l1);
+ mv.visitLineNumber(121, l1);
+ Label l3 = new Label();
+ mv.visitJumpInsn(GOTO, l3);
+ mv.visitLabel(l2);
+ mv.visitFrame(F_SAME1, 0, null, 1, new Object[] {"java/lang/Throwable"});
+ mv.visitVarInsn(ASTORE, 5);
+ Label l4 = new Label();
+ mv.visitLabel(l4);
+ mv.visitLineNumber(122, l4);
+ mv.visitVarInsn(ALOAD, 5);
+ mv.visitFieldInsn(GETSTATIC, "gregtech/api/util/GT_Log", "err", "Ljava/io/PrintStream;");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/Throwable", "printStackTrace", "(Ljava/io/PrintStream;)V", false);
+ mv.visitLabel(l3);
+ mv.visitLineNumber(124, l3);
+ mv.visitFrame(F_SAME, 0, null, 0, null);
+ mv.visitInsn(RETURN);
+ Label l5 = new Label();
+ mv.visitLabel(l5);
+ mv.visitLocalVariable("this", "Lgregtech/common/blocks/GT_Item_Machines;", null, l0, l5, 0);
+ mv.visitLocalVariable("aStack", "L"+aItemStack+";", null, l0, l5, 1);
+ mv.visitLocalVariable("aPlayer", "L"+aEntityPlayer+";", null, l0, l5, 2);
+ mv.visitLocalVariable("aList", "Ljava/util/List;", null, l0, l5, 3);
+ mv.visitLocalVariable("par4", "Z", null, l0, l5, 4);
+ mv.visitLocalVariable("e", "Ljava/lang/Throwable;", null, l4, l3, 5);
+ mv.visitMaxs(4, 6);
+ mv.visitEnd();
+}
+ FMLRelaunchLog.log("[GT++ ASM] Gregtech Tooltip 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("addInformation")) {
+ FMLRelaunchLog.log("[GT++ ASM] Gregtech Tooltip Patch", Level.INFO, "Found method "+name+", Patching.");
+ return null;
+ }
+ MethodVisitor methodVisitor = super.visitMethod(access, name, desc, signature, exceptions);
+ return methodVisitor;
+ }
+ }
+
+}
diff --git a/src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_GT_MetaGenerated_Tool.java b/src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_GT_MetaGenerated_Tool.java
new file mode 100644
index 0000000000..b6cd9c8d67
--- /dev/null
+++ b/src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_GT_MetaGenerated_Tool.java
@@ -0,0 +1,116 @@
+package gtPlusPlus.preloader.asm.transformers;
+
+import static org.objectweb.asm.Opcodes.ACC_FINAL;
+import static org.objectweb.asm.Opcodes.ACC_PUBLIC;
+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 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 gtPlusPlus.preloader.Preloader_Logger;
+
+public class ClassTransformer_GT_MetaGenerated_Tool {
+
+ private final boolean isValid;
+ private final ClassReader reader;
+ private final ClassWriter writer;
+
+ public ClassTransformer_GT_MetaGenerated_Tool(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);
+ boolean completed = injectMethod("getSubItems", aTempWriter);
+ if (aTempReader != null && aTempWriter != null && completed) {
+ isValid = true;
+ } else {
+ isValid = false;
+ }
+ Preloader_Logger.LOG("GT Tool Fix", 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) {
+ MethodVisitor mv;
+ boolean didInject = false;
+ Preloader_Logger.LOG("GT Tool Fix", Level.INFO, "Injecting " + aMethodName + ".");
+ if (aMethodName.equals("getSubItems")) {
+ {
+ mv = cw.visitMethod(ACC_PUBLIC + ACC_FINAL, "getSubItems", "(Lnet/minecraft/item/Item;Lnet/minecraft/creativetab/CreativeTabs;Ljava/util/List;)V", null, null);
+ {
+ AnnotationVisitor 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(321, l0);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitVarInsn(ALOAD, 1);
+ mv.visitVarInsn(ALOAD, 2);
+ mv.visitVarInsn(ALOAD, 3);
+ mv.visitMethodInsn(INVOKESTATIC, "gtPlusPlus/preloader/asm/helpers/MethodHelper_GT", "getSubItems", "(Lgregtech/api/items/GT_MetaGenerated_Tool;Lnet/minecraft/item/Item;Lnet/minecraft/creativetab/CreativeTabs;Ljava/util/List;)V", false);
+ Label l1 = new Label();
+ mv.visitLabel(l1);
+ mv.visitLineNumber(322, l1);
+ mv.visitInsn(RETURN);
+ Label l2 = new Label();
+ mv.visitLabel(l2);
+ mv.visitLocalVariable("this", "Lgregtech/api/items/GT_MetaGenerated_Tool;", null, l0, l2, 0);
+ mv.visitLocalVariable("var1", "Lnet/minecraft/item/Item;", null, l0, l2, 1);
+ mv.visitLocalVariable("aCreativeTab", "Lnet/minecraft/creativetab/CreativeTabs;", null, l0, l2, 2);
+ mv.visitLocalVariable("aList", "Ljava/util/List;", null, l0, l2, 3);
+ mv.visitMaxs(4, 4);
+ mv.visitEnd();
+ didInject = true;
+ }
+
+ }
+ Preloader_Logger.LOG("GT Tool Fix", Level.INFO, "Method injection complete.");
+ return didInject;
+ }
+
+ public 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) {
+ MethodVisitor methodVisitor;
+ if (name.equals("getSubItems") && desc.equals("(Lnet/minecraft/item/Item;Lnet/minecraft/creativetab/CreativeTabs;Ljava/util/List;)V")) {
+ methodVisitor = null;
+ Preloader_Logger.LOG("GT Tool Fix", Level.INFO, "Found method "+name+", removing.");
+ }
+ else {
+ methodVisitor = super.visitMethod(access, name, desc, signature, exceptions);
+ }
+ return methodVisitor;
+ }
+ }
+
+}
diff --git a/src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_GT_Packet_TileEntity.java b/src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_GT_Packet_TileEntity.java
new file mode 100644
index 0000000000..1f281ce492
--- /dev/null
+++ b/src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_GT_Packet_TileEntity.java
@@ -0,0 +1,319 @@
+package gtPlusPlus.preloader.asm.transformers;
+
+import static org.objectweb.asm.Opcodes.*;
+
+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_GT_Packet_TileEntity {
+
+ //The qualified name of the class we plan to transform.
+ //gregtech/common/blocks/GT_Block_Machines
+
+ private final boolean isValid;
+ private final ClassReader reader;
+ private final ClassWriter writer;
+
+
+ public ClassTransformer_GT_Packet_TileEntity(byte[] basicClass, boolean obfuscated) {
+ ClassReader aTempReader = null;
+ ClassWriter aTempWriter = null;
+
+ FMLRelaunchLog.log("[GT++ ASM] Gregtech GT_Packet_TileEntity Patch", Level.INFO, "Attempting to make GT Packets safer.");
+
+ aTempReader = new ClassReader(basicClass);
+ aTempWriter = new ClassWriter(aTempReader, ClassWriter.COMPUTE_FRAMES);
+ aTempReader.accept(new localClassVisitor(aTempWriter), 0);
+
+ if (aTempReader != null && aTempWriter != null) {
+ isValid = true;
+ }
+ else {
+ isValid = false;
+ }
+ FMLRelaunchLog.log("[GT++ ASM] Gregtech GT_Packet_TileEntity Patch", Level.INFO, "Valid patch? "+isValid+".");
+ reader = aTempReader;
+ writer = aTempWriter;
+
+
+ if (reader != null && writer != null) {
+ FMLRelaunchLog.log("[GT++ ASM] Gregtech GT_Packet_TileEntity Patch", Level.INFO, "Attempting Method Injection.");
+ injectMethod("process", obfuscated);
+ }
+
+ }
+
+ public boolean isValidTransformer() {
+ return isValid;
+ }
+
+ public ClassReader getReader() {
+ return reader;
+ }
+
+ public ClassWriter getWriter() {
+ return writer;
+ }
+
+ public boolean injectMethod(String aMethodName, boolean obfuscated) {
+ MethodVisitor mv;
+ boolean didInject = false;
+ String aGetTile = obfuscated ? "func_147438_o" : "getTileEntity";
+
+ FMLRelaunchLog.log("[GT++ ASM] Gregtech GT_Packet_TileEntity Patch", Level.INFO, "Injecting "+aMethodName+".");
+ if (aMethodName.equals("process")) {
+ mv = getWriter().visitMethod(ACC_PUBLIC, "process", "(Lnet/minecraft/world/IBlockAccess;)V", null, null);
+ mv.visitCode();
+ Label l0 = new Label();
+ Label l1 = new Label();
+ Label l2 = new Label();
+ mv.visitTryCatchBlock(l0, l1, l2, "java/lang/Throwable");
+ Label l3 = new Label();
+ mv.visitLabel(l3);
+ mv.visitLineNumber(93, l3);
+ mv.visitVarInsn(ALOAD, 1);
+ Label l4 = new Label();
+ mv.visitJumpInsn(IFNULL, l4);
+ Label l5 = new Label();
+ mv.visitLabel(l5);
+ mv.visitLineNumber(94, l5);
+ mv.visitVarInsn(ALOAD, 1);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitFieldInsn(GETFIELD, "gregtech/api/net/GT_Packet_TileEntity", "mX", "I");
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitFieldInsn(GETFIELD, "gregtech/api/net/GT_Packet_TileEntity", "mY", "S");
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitFieldInsn(GETFIELD, "gregtech/api/net/GT_Packet_TileEntity", "mZ", "I");
+ mv.visitMethodInsn(INVOKEINTERFACE, "net/minecraft/world/IBlockAccess", ""+aGetTile+"", "(III)Lnet/minecraft/tileentity/TileEntity;", true);
+ mv.visitVarInsn(ASTORE, 2);
+ Label l6 = new Label();
+ mv.visitLabel(l6);
+ mv.visitLineNumber(95, l6);
+ mv.visitVarInsn(ALOAD, 2);
+ mv.visitJumpInsn(IFNULL, l4);
+ mv.visitLabel(l0);
+ mv.visitLineNumber(97, l0);
+ mv.visitVarInsn(ALOAD, 2);
+ mv.visitTypeInsn(INSTANCEOF, "gregtech/api/metatileentity/BaseMetaTileEntity");
+ Label l7 = new Label();
+ mv.visitJumpInsn(IFEQ, l7);
+ Label l8 = new Label();
+ mv.visitLabel(l8);
+ mv.visitLineNumber(98, l8);
+ mv.visitVarInsn(ALOAD, 2);
+ mv.visitTypeInsn(CHECKCAST, "gregtech/api/metatileentity/BaseMetaTileEntity");
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitFieldInsn(GETFIELD, "gregtech/api/net/GT_Packet_TileEntity", "mID", "S");
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitFieldInsn(GETFIELD, "gregtech/api/net/GT_Packet_TileEntity", "mC0", "I");
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitFieldInsn(GETFIELD, "gregtech/api/net/GT_Packet_TileEntity", "mC1", "I");
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitFieldInsn(GETFIELD, "gregtech/api/net/GT_Packet_TileEntity", "mC2", "I");
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitFieldInsn(GETFIELD, "gregtech/api/net/GT_Packet_TileEntity", "mC3", "I");
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitFieldInsn(GETFIELD, "gregtech/api/net/GT_Packet_TileEntity", "mC4", "I");
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitFieldInsn(GETFIELD, "gregtech/api/net/GT_Packet_TileEntity", "mC5", "I");
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitFieldInsn(GETFIELD, "gregtech/api/net/GT_Packet_TileEntity", "mTexture", "B");
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitFieldInsn(GETFIELD, "gregtech/api/net/GT_Packet_TileEntity", "mTexturePage", "B");
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitFieldInsn(GETFIELD, "gregtech/api/net/GT_Packet_TileEntity", "mUpdate", "B");
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitFieldInsn(GETFIELD, "gregtech/api/net/GT_Packet_TileEntity", "mRedstone", "B");
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitFieldInsn(GETFIELD, "gregtech/api/net/GT_Packet_TileEntity", "mColor", "B");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "gregtech/api/metatileentity/BaseMetaTileEntity", "receiveMetaTileEntityData", "(SIIIIIIBBBBB)V", false);
+ Label l9 = new Label();
+ mv.visitLabel(l9);
+ mv.visitLineNumber(99, l9);
+ mv.visitJumpInsn(GOTO, l4);
+ mv.visitLabel(l7);
+ mv.visitLineNumber(101, l7);
+ mv.visitFrame(F_APPEND,1, new Object[] {"net/minecraft/tileentity/TileEntity"}, 0, null);
+ mv.visitVarInsn(ALOAD, 2);
+ mv.visitTypeInsn(INSTANCEOF, "gregtech/api/metatileentity/BaseMetaPipeEntity");
+ mv.visitJumpInsn(IFEQ, l4);
+ Label l10 = new Label();
+ mv.visitLabel(l10);
+ mv.visitLineNumber(102, l10);
+ mv.visitVarInsn(ALOAD, 2);
+ mv.visitTypeInsn(CHECKCAST, "gregtech/api/metatileentity/BaseMetaPipeEntity");
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitFieldInsn(GETFIELD, "gregtech/api/net/GT_Packet_TileEntity", "mID", "S");
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitFieldInsn(GETFIELD, "gregtech/api/net/GT_Packet_TileEntity", "mC0", "I");
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitFieldInsn(GETFIELD, "gregtech/api/net/GT_Packet_TileEntity", "mC1", "I");
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitFieldInsn(GETFIELD, "gregtech/api/net/GT_Packet_TileEntity", "mC2", "I");
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitFieldInsn(GETFIELD, "gregtech/api/net/GT_Packet_TileEntity", "mC3", "I");
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitFieldInsn(GETFIELD, "gregtech/api/net/GT_Packet_TileEntity", "mC4", "I");
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitFieldInsn(GETFIELD, "gregtech/api/net/GT_Packet_TileEntity", "mC5", "I");
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitFieldInsn(GETFIELD, "gregtech/api/net/GT_Packet_TileEntity", "mTexture", "B");
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitFieldInsn(GETFIELD, "gregtech/api/net/GT_Packet_TileEntity", "mUpdate", "B");
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitFieldInsn(GETFIELD, "gregtech/api/net/GT_Packet_TileEntity", "mRedstone", "B");
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitFieldInsn(GETFIELD, "gregtech/api/net/GT_Packet_TileEntity", "mColor", "B");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "gregtech/api/metatileentity/BaseMetaPipeEntity", "receiveMetaTileEntityData", "(SIIIIIIBBBB)V", false);
+ mv.visitLabel(l1);
+ mv.visitLineNumber(104, l1);
+ mv.visitJumpInsn(GOTO, l4);
+ mv.visitLabel(l2);
+ mv.visitLineNumber(105, l2);
+ mv.visitFrame(F_SAME1, 0, null, 1, new Object[] {"java/lang/Throwable"});
+ mv.visitVarInsn(ASTORE, 3);
+ Label l11 = new Label();
+ mv.visitLabel(l11);
+ mv.visitLineNumber(106, l11);
+ mv.visitFieldInsn(GETSTATIC, "gregtech/api/util/GT_Log", "err", "Ljava/io/PrintStream;");
+ mv.visitTypeInsn(NEW, "java/lang/StringBuilder");
+ mv.visitInsn(DUP);
+ mv.visitLdcInsn("[GTPTE] Bad Tile Entity set in world, your game would have crashed if not for me! Was Null? ");
+ mv.visitMethodInsn(INVOKESPECIAL, "java/lang/StringBuilder", "<init>", "(Ljava/lang/String;)V", false);
+ mv.visitVarInsn(ALOAD, 2);
+ Label l12 = new Label();
+ mv.visitJumpInsn(IFNONNULL, l12);
+ mv.visitInsn(ICONST_1);
+ Label l13 = new Label();
+ mv.visitJumpInsn(GOTO, l13);
+ mv.visitLabel(l12);
+ mv.visitFrame(F_FULL, 4, new Object[] {"gregtech/api/net/GT_Packet_TileEntity", "net/minecraft/world/IBlockAccess", "net/minecraft/tileentity/TileEntity", "java/lang/Throwable"}, 2, new Object[] {"java/io/PrintStream", "java/lang/StringBuilder"});
+ mv.visitInsn(ICONST_0);
+ mv.visitLabel(l13);
+ mv.visitFrame(F_FULL, 4, new Object[] {"gregtech/api/net/GT_Packet_TileEntity", "net/minecraft/world/IBlockAccess", "net/minecraft/tileentity/TileEntity", "java/lang/Throwable"}, 3, new Object[] {"java/io/PrintStream", "java/lang/StringBuilder", INTEGER});
+ mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/StringBuilder", "append", "(Z)Ljava/lang/StringBuilder;", false);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/StringBuilder", "toString", "()Ljava/lang/String;", false);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "java/io/PrintStream", "println", "(Ljava/lang/String;)V", false);
+ Label l14 = new Label();
+ mv.visitLabel(l14);
+ mv.visitLineNumber(107, l14);
+ mv.visitFieldInsn(GETSTATIC, "gregtech/api/util/GT_Log", "err", "Ljava/io/PrintStream;");
+ mv.visitTypeInsn(NEW, "java/lang/StringBuilder");
+ mv.visitInsn(DUP);
+ mv.visitLdcInsn("Tile location [");
+ mv.visitMethodInsn(INVOKESPECIAL, "java/lang/StringBuilder", "<init>", "(Ljava/lang/String;)V", false);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitFieldInsn(GETFIELD, "gregtech/api/net/GT_Packet_TileEntity", "mX", "I");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/StringBuilder", "append", "(I)Ljava/lang/StringBuilder;", false);
+ mv.visitLdcInsn("][");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/StringBuilder", "append", "(Ljava/lang/String;)Ljava/lang/StringBuilder;", false);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitFieldInsn(GETFIELD, "gregtech/api/net/GT_Packet_TileEntity", "mY", "S");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/StringBuilder", "append", "(I)Ljava/lang/StringBuilder;", false);
+ mv.visitLdcInsn("][");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/StringBuilder", "append", "(Ljava/lang/String;)Ljava/lang/StringBuilder;", false);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitFieldInsn(GETFIELD, "gregtech/api/net/GT_Packet_TileEntity", "mZ", "I");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/StringBuilder", "append", "(I)Ljava/lang/StringBuilder;", false);
+ mv.visitLdcInsn("]");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/StringBuilder", "append", "(Ljava/lang/String;)Ljava/lang/StringBuilder;", false);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/StringBuilder", "toString", "()Ljava/lang/String;", false);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "java/io/PrintStream", "println", "(Ljava/lang/String;)V", false);
+ Label l15 = new Label();
+ mv.visitLabel(l15);
+ mv.visitLineNumber(108, l15);
+ mv.visitVarInsn(ALOAD, 2);
+ Label l16 = new Label();
+ mv.visitJumpInsn(IFNULL, l16);
+ Label l17 = new Label();
+ mv.visitLabel(l17);
+ mv.visitLineNumber(109, l17);
+ mv.visitVarInsn(ALOAD, 2);
+ mv.visitTypeInsn(INSTANCEOF, "gregtech/api/metatileentity/BaseMetaPipeEntity");
+ Label l18 = new Label();
+ mv.visitJumpInsn(IFEQ, l18);
+ Label l19 = new Label();
+ mv.visitLabel(l19);
+ mv.visitLineNumber(110, l19);
+ mv.visitFieldInsn(GETSTATIC, "gregtech/api/util/GT_Log", "err", "Ljava/io/PrintStream;");
+ mv.visitLdcInsn("Type: Pipe");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "java/io/PrintStream", "println", "(Ljava/lang/String;)V", false);
+ Label l20 = new Label();
+ mv.visitLabel(l20);
+ mv.visitLineNumber(111, l20);
+ mv.visitJumpInsn(GOTO, l16);
+ mv.visitLabel(l18);
+ mv.visitLineNumber(112, l18);
+ mv.visitFrame(F_SAME, 0, null, 0, null);
+ mv.visitVarInsn(ALOAD, 2);
+ mv.visitTypeInsn(INSTANCEOF, "gregtech/api/metatileentity/BaseMetaTileEntity");
+ Label l21 = new Label();
+ mv.visitJumpInsn(IFEQ, l21);
+ Label l22 = new Label();
+ mv.visitLabel(l22);
+ mv.visitLineNumber(113, l22);
+ mv.visitFieldInsn(GETSTATIC, "gregtech/api/util/GT_Log", "err", "Ljava/io/PrintStream;");
+ mv.visitLdcInsn("Type: Machine");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "java/io/PrintStream", "println", "(Ljava/lang/String;)V", false);
+ Label l23 = new Label();
+ mv.visitLabel(l23);
+ mv.visitLineNumber(114, l23);
+ mv.visitJumpInsn(GOTO, l16);
+ mv.visitLabel(l21);
+ mv.visitLineNumber(116, l21);
+ mv.visitFrame(F_SAME, 0, null, 0, null);
+ mv.visitFieldInsn(GETSTATIC, "gregtech/api/util/GT_Log", "err", "Ljava/io/PrintStream;");
+ mv.visitLdcInsn("Type: Non-GT (Could be GT++/TT/BW)");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "java/io/PrintStream", "println", "(Ljava/lang/String;)V", false);
+ mv.visitLabel(l16);
+ mv.visitLineNumber(119, l16);
+ mv.visitFrame(F_SAME, 0, null, 0, null);
+ mv.visitVarInsn(ALOAD, 3);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/Throwable", "printStackTrace", "()V", false);
+ mv.visitLabel(l4);
+ mv.visitLineNumber(123, l4);
+ mv.visitFrame(F_CHOP,2, null, 0, null);
+ mv.visitInsn(RETURN);
+ Label l24 = new Label();
+ mv.visitLabel(l24);
+ mv.visitLocalVariable("this", "Lgregtech/api/net/GT_Packet_TileEntity;", null, l3, l24, 0);
+ mv.visitLocalVariable("aWorld", "Lnet/minecraft/world/IBlockAccess;", null, l3, l24, 1);
+ mv.visitLocalVariable("tTileEntity", "Lnet/minecraft/tileentity/TileEntity;", null, l6, l4, 2);
+ mv.visitLocalVariable("t", "Ljava/lang/Throwable;", null, l11, l4, 3);
+ mv.visitMaxs(13, 4);
+ mv.visitEnd();
+
+
+ didInject = true;
+ }
+ FMLRelaunchLog.log("[GT++ ASM] Gregtech GT_Packet_TileEntity Patch", Level.INFO, "Method injection complete.");
+ return didInject;
+ }
+
+ public 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) {
+ MethodVisitor methodVisitor;
+ if (name.equals("process")) {
+ FMLRelaunchLog.log("[GT++ ASM] Gregtech GT_Packet_TileEntity Patch", Level.INFO, "Found method "+name+", removing.");
+ methodVisitor = null;
+ }
+ else {
+ methodVisitor = super.visitMethod(access, name, desc, signature, exceptions);
+ }
+ return methodVisitor;
+ }
+ }
+
+}
diff --git a/src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_GT_Utility.java b/src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_GT_Utility.java
new file mode 100644
index 0000000000..fa711e5693
--- /dev/null
+++ b/src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_GT_Utility.java
@@ -0,0 +1,283 @@
+package gtPlusPlus.preloader.asm.transformers;
+
+import static org.objectweb.asm.Opcodes.*;
+
+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 gtPlusPlus.core.util.Utils;
+import gtPlusPlus.preloader.Preloader_Logger;
+import ic2.core.IC2Potion;
+import ic2.core.item.armor.ItemArmorHazmat;
+import net.minecraft.entity.EntityLivingBase;
+import net.minecraft.entity.EnumCreatureAttribute;
+import net.minecraft.potion.Potion;
+import net.minecraft.potion.PotionEffect;
+
+public class ClassTransformer_GT_Utility {
+
+ private final boolean isValid;
+ private final ClassReader reader;
+ private final ClassWriter writer;
+ private final String className;
+
+
+
+ public ClassTransformer_GT_Utility(byte[] basicClass, String aClassName) {
+
+ className = aClassName;
+ ClassReader aTempReader = null;
+ ClassWriter aTempWriter = null;
+
+ 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;
+ }
+
+ Preloader_Logger.LOG("Gregtech Utilities Patch", Level.INFO, "Valid patch? " + isValid + ".");
+ reader = aTempReader;
+ writer = aTempWriter;
+
+ if (reader != null && writer != null) {
+ Preloader_Logger.LOG("Gregtech Utilities Patch", Level.INFO, "Attempting Method Injection.");
+ injectMethod("getTier");
+ injectMethod("applyRadioactivity");
+ injectMethod("isWearingFullFrostHazmat");
+ injectMethod("isWearingFullHeatHazmat");
+ injectMethod("isWearingFullBioHazmat");
+ injectMethod("isWearingFullRadioHazmat");
+ injectMethod("isWearingFullElectroHazmat");
+ injectMethod("isWearingFullGasHazmat");
+ }
+
+ }
+
+ 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;
+ ClassWriter cw = getWriter();
+ String aClassNameFormatted = Utils.class.getName().replace(".", "/");
+
+ if (aMethodName.equals("isWearingFullFrostHazmat")){
+ Preloader_Logger.LOG("Gregtech Utilities Patch", Level.INFO, "Injecting " + aMethodName + ".");
+ mv = cw.visitMethod(ACC_PUBLIC + ACC_STATIC, "isWearingFullFrostHazmat", "(Lnet/minecraft/entity/EntityLivingBase;)Z", null, null);
+ mv.visitCode();
+ Label l0 = new Label();
+ mv.visitLabel(l0);
+ mv.visitLineNumber(1273, l0);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitMethodInsn(INVOKESTATIC, "gtPlusPlus/core/util/minecraft/EntityUtils", "isWearingFullFrostHazmat", "(Lnet/minecraft/entity/EntityLivingBase;)Z", false);
+ mv.visitInsn(IRETURN);
+ Label l1 = new Label();
+ mv.visitLabel(l1);
+ mv.visitLocalVariable("aEntity", "Lnet/minecraft/entity/EntityLivingBase;", null, l0, l1, 0);
+ mv.visitMaxs(1, 1);
+ mv.visitEnd();
+ didInject = true;
+ }
+
+ if (aMethodName.equals("isWearingFullHeatHazmat")){
+ Preloader_Logger.LOG("Gregtech Utilities Patch", Level.INFO, "Injecting " + aMethodName + ".");
+ mv = cw.visitMethod(ACC_PUBLIC + ACC_STATIC, "isWearingFullHeatHazmat", "(Lnet/minecraft/entity/EntityLivingBase;)Z", null, null);
+ mv.visitCode();
+ Label l0 = new Label();
+ mv.visitLabel(l0);
+ mv.visitLineNumber(1277, l0);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitMethodInsn(INVOKESTATIC, "gtPlusPlus/core/util/minecraft/EntityUtils", "isWearingFullHeatHazmat", "(Lnet/minecraft/entity/EntityLivingBase;)Z", false);
+ mv.visitInsn(IRETURN);
+ Label l1 = new Label();
+ mv.visitLabel(l1);
+ mv.visitLocalVariable("aEntity", "Lnet/minecraft/entity/EntityLivingBase;", null, l0, l1, 0);
+ mv.visitMaxs(1, 1);
+ mv.visitEnd();
+ didInject = true;
+ }
+
+ if (aMethodName.equals("isWearingFullBioHazmat")){
+ Preloader_Logger.LOG("Gregtech Utilities Patch", Level.INFO, "Injecting " + aMethodName + ".");
+ mv = cw.visitMethod(ACC_PUBLIC + ACC_STATIC, "isWearingFullBioHazmat", "(Lnet/minecraft/entity/EntityLivingBase;)Z", null, null);
+ mv.visitCode();
+ Label l0 = new Label();
+ mv.visitLabel(l0);
+ mv.visitLineNumber(1281, l0);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitMethodInsn(INVOKESTATIC, "gtPlusPlus/core/util/minecraft/EntityUtils", "isWearingFullBioHazmat", "(Lnet/minecraft/entity/EntityLivingBase;)Z", false);
+ mv.visitInsn(IRETURN);
+ Label l1 = new Label();
+ mv.visitLabel(l1);
+ mv.visitLocalVariable("aEntity", "Lnet/minecraft/entity/EntityLivingBase;", null, l0, l1, 0);
+ mv.visitMaxs(1, 1);
+ mv.visitEnd();
+ didInject = true;
+ }
+
+ if (aMethodName.equals("isWearingFullRadioHazmat")){
+ Preloader_Logger.LOG("Gregtech Utilities Patch", Level.INFO, "Injecting " + aMethodName + ".");
+ mv = cw.visitMethod(ACC_PUBLIC + ACC_STATIC, "isWearingFullRadioHazmat", "(Lnet/minecraft/entity/EntityLivingBase;)Z", null, null);
+ mv.visitCode();
+ Label l0 = new Label();
+ mv.visitLabel(l0);
+ mv.visitLineNumber(1285, l0);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitMethodInsn(INVOKESTATIC, "gtPlusPlus/core/util/minecraft/EntityUtils", "isWearingFullRadioHazmat", "(Lnet/minecraft/entity/EntityLivingBase;)Z", false);
+ mv.visitInsn(IRETURN);
+ Label l1 = new Label();
+ mv.visitLabel(l1);
+ mv.visitLocalVariable("aEntity", "Lnet/minecraft/entity/EntityLivingBase;", null, l0, l1, 0);
+ mv.visitMaxs(1, 1);
+ mv.visitEnd();
+ didInject = true;
+ }
+
+ if (aMethodName.equals("isWearingFullElectroHazmat")){
+ Preloader_Logger.LOG("Gregtech Utilities Patch", Level.INFO, "Injecting " + aMethodName + ".");
+ mv = cw.visitMethod(ACC_PUBLIC + ACC_STATIC, "isWearingFullElectroHazmat", "(Lnet/minecraft/entity/EntityLivingBase;)Z", null, null);
+ mv.visitCode();
+ Label l0 = new Label();
+ mv.visitLabel(l0);
+ mv.visitLineNumber(1289, l0);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitMethodInsn(INVOKESTATIC, "gtPlusPlus/core/util/minecraft/EntityUtils", "isWearingFullElectroHazmat", "(Lnet/minecraft/entity/EntityLivingBase;)Z", false);
+ mv.visitInsn(IRETURN);
+ Label l1 = new Label();
+ mv.visitLabel(l1);
+ mv.visitLocalVariable("aEntity", "Lnet/minecraft/entity/EntityLivingBase;", null, l0, l1, 0);
+ mv.visitMaxs(1, 1);
+ mv.visitEnd();
+ didInject = true;
+ }
+
+ if (aMethodName.equals("isWearingFullGasHazmat")){
+ Preloader_Logger.LOG("Gregtech Utilities Patch", Level.INFO, "Injecting " + aMethodName + ".");
+ mv = cw.visitMethod(ACC_PUBLIC + ACC_STATIC, "isWearingFullGasHazmat", "(Lnet/minecraft/entity/EntityLivingBase;)Z", null, null);
+ mv.visitCode();
+ Label l0 = new Label();
+ mv.visitLabel(l0);
+ mv.visitLineNumber(1293, l0);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitMethodInsn(INVOKESTATIC, "gtPlusPlus/core/util/minecraft/EntityUtils", "isWearingFullGasHazmat", "(Lnet/minecraft/entity/EntityLivingBase;)Z", false);
+ mv.visitInsn(IRETURN);
+ Label l1 = new Label();
+ mv.visitLabel(l1);
+ mv.visitLocalVariable("aEntity", "Lnet/minecraft/entity/EntityLivingBase;", null, l0, l1, 0);
+ mv.visitMaxs(1, 1);
+ mv.visitEnd();
+ didInject = true;
+ }
+
+ if (aMethodName.equals("getTier")) {
+ Preloader_Logger.LOG("Gregtech Utilities Patch", Level.INFO, "Injecting " + aMethodName + ", static replacement call to "+aClassNameFormatted+".");
+ mv = cw.visitMethod(ACC_PUBLIC + ACC_STATIC, "getTier", "(J)B", null, null);
+ mv.visitCode();
+ Label l0 = new Label();
+ mv.visitLabel(l0);
+ mv.visitLineNumber(23, l0);
+ mv.visitVarInsn(LLOAD, 0);
+ mv.visitMethodInsn(INVOKESTATIC, aClassNameFormatted, "getTier", "(J)B", false);
+ mv.visitInsn(IRETURN);
+ Label l1 = new Label();
+ mv.visitLabel(l1);
+ mv.visitLocalVariable("l", "J", null, l0, l1, 0);
+ mv.visitMaxs(2, 2);
+ mv.visitEnd();
+ didInject = true;
+ }
+
+ if (aMethodName.equals("applyRadioactivity")){
+ Preloader_Logger.LOG("Gregtech Utilities Patch", Level.INFO, "Injecting " + aMethodName + ".");
+ mv = cw.visitMethod(ACC_PUBLIC + ACC_STATIC, "applyRadioactivity", "(Lnet/minecraft/entity/EntityLivingBase;II)Z", null, null);
+ mv.visitCode();
+ Label l0 = new Label();
+ mv.visitLabel(l0);
+ mv.visitLineNumber(1342, l0);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitVarInsn(ILOAD, 1);
+ mv.visitVarInsn(ILOAD, 2);
+ mv.visitMethodInsn(INVOKESTATIC, "gtPlusPlus/core/util/minecraft/EntityUtils", "applyRadioactivity", "(Lnet/minecraft/entity/EntityLivingBase;II)Z", false);
+ mv.visitInsn(IRETURN);
+ Label l1 = new Label();
+ mv.visitLabel(l1);
+ mv.visitLocalVariable("aEntity", "Lnet/minecraft/entity/EntityLivingBase;", null, l0, l1, 0);
+ mv.visitLocalVariable("aLevel", "I", null, l0, l1, 1);
+ mv.visitLocalVariable("aAmountOfItems", "I", null, l0, l1, 2);
+ mv.visitMaxs(3, 3);
+ mv.visitEnd();
+ didInject = true;
+ }
+
+ Preloader_Logger.LOG("Gregtech Utilities 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 (name.equals("getTier")) {
+ methodVisitor = null;
+ }
+ else if (name.equals("applyRadioactivity")){
+ methodVisitor = null;
+ }
+ else if (name.equals("isWearingFullFrostHazmat")){
+ methodVisitor = null;
+ }
+ else if (name.equals("isWearingFullHeatHazmat")){
+ methodVisitor = null;
+ }
+ else if (name.equals("isWearingFullBioHazmat")){
+ methodVisitor = null;
+ }
+ else if (name.equals("isWearingFullRadioHazmat")){
+ methodVisitor = null;
+ }
+ else if (name.equals("isWearingFullElectroHazmat")){
+ methodVisitor = null;
+ }
+ else if (name.equals("isWearingFullGasHazmat")){
+ methodVisitor = null;
+ }
+ else {
+ methodVisitor = super.visitMethod(access, name, desc, signature, exceptions);
+ }
+
+ if (methodVisitor == null) {
+ Preloader_Logger.LOG("Gregtech Utilities Patch", Level.INFO, "Found method " + name + ", removing.");
+ Preloader_Logger.LOG("Gregtech Utilities Patch", Level.INFO, "Descriptor: "+desc);
+ }
+ return methodVisitor;
+ }
+ }
+
+}
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
new file mode 100644
index 0000000000..6aad6831cb
--- /dev/null
+++ b/src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_IC2_GetHarvestTool.java
@@ -0,0 +1,214 @@
+package gtPlusPlus.preloader.asm.transformers;
+
+import static org.objectweb.asm.Opcodes.*;
+
+import java.util.Random;
+
+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 net.minecraft.block.Block;
+import net.minecraft.item.Item;
+
+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_IC2_Hazmat.java b/src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_IC2_Hazmat.java
new file mode 100644
index 0000000000..10f04e7a48
--- /dev/null
+++ b/src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_IC2_Hazmat.java
@@ -0,0 +1,147 @@
+package gtPlusPlus.preloader.asm.transformers;
+
+import static org.objectweb.asm.Opcodes.*;
+
+import org.apache.logging.log4j.Level;
+import org.objectweb.asm.*;
+
+import cpw.mods.fml.relauncher.FMLRelaunchLog;
+import gtPlusPlus.core.util.minecraft.HazmatUtils;
+import net.minecraft.entity.EntityLivingBase;
+
+public class ClassTransformer_IC2_Hazmat {
+
+ private final boolean isValid;
+ private final ClassReader reader;
+ private final ClassWriter writer;
+ private final String className;
+
+ public static boolean hasCompleteHazmat(EntityLivingBase living) {
+ return HazmatUtils.hasCompleteHazmat(living);
+ }
+
+ public ClassTransformer_IC2_Hazmat(byte[] basicClass, String aClassName) {
+ className = aClassName;
+ ClassReader aTempReader = null;
+ ClassWriter aTempWriter = null;
+
+ FMLRelaunchLog.log("[GT++ ASM] IC2 Hazmat Patch", Level.INFO, "Attempting to patch in mode " + className + ".");
+
+ 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 Hazmat Patch", Level.INFO, "Valid patch? " + isValid + ".");
+ reader = aTempReader;
+ writer = aTempWriter;
+
+ if (reader != null && writer != null) {
+ FMLRelaunchLog.log("[GT++ ASM] IC2 Hazmat Patch", Level.INFO, "Attempting Method Injection.");
+ injectMethod("hasCompleteHazmat");
+ }
+
+ }
+
+ 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;
+ ClassWriter cw = getWriter();
+
+ boolean isObf;
+ try {
+ isObf = Class.forName("net.minecraft.entity.EntityLivingBase") == null;
+ } catch (ClassNotFoundException e) {
+ isObf = true;
+ }
+ String aEntityLivingBase = "net/minecraft/entity/EntityLivingBase";
+ if (isObf) {
+ aEntityLivingBase = "sv";
+ }
+ FMLRelaunchLog.log("[GT++ ASM] IC2 Hazmat Patch", Level.INFO, "Method Handler: "+aEntityLivingBase);
+
+
+ FMLRelaunchLog.log("[GT++ ASM] IC2 Hazmat Patch", Level.INFO, "Injecting " + aMethodName + ".");
+ if (aMethodName.equals("hasCompleteHazmat")) {
+
+ //Bad Local Variable - https://pastebin.com/TUCfdHqS
+ /*mv = cw.visitMethod(ACC_PUBLIC + ACC_STATIC, "hasCompleteHazmat", "(L"+aEntityLivingBase+";)Z", null, null);
+ mv.visitCode();
+ Label l0 = new Label();
+ mv.visitLabel(l0);
+ mv.visitLineNumber(23, l0);
+ mv.visitVarInsn(ALOAD, 1);
+ mv.visitMethodInsn(INVOKESTATIC, "gtPlusPlus/core/util/minecraft/HazmatUtils", "hasCompleteHazmat", "(L"+aEntityLivingBase+";)Z", false);
+ mv.visitInsn(IRETURN);
+ Label l1 = new Label();
+ mv.visitLabel(l1);
+ mv.visitLocalVariable("this", "Lic2/core/item/armor/ItemArmorHazmat;", null, l0, l1, 0);
+ mv.visitLocalVariable("living", "L"+aEntityLivingBase+";", null, l0, l1, 1);
+ mv.visitMaxs(1, 2);
+ mv.visitEnd();*/
+
+
+ mv = cw.visitMethod(ACC_PUBLIC + ACC_STATIC, "hasCompleteHazmat", "(L"+aEntityLivingBase+";)Z", null, null);
+ mv.visitCode();
+ Label l0 = new Label();
+ mv.visitLabel(l0);
+ mv.visitLineNumber(24, l0);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitMethodInsn(INVOKESTATIC, "gtPlusPlus/core/util/minecraft/HazmatUtils", "hasCompleteHazmat", "(L"+aEntityLivingBase+";)Z", false);
+ mv.visitInsn(IRETURN);
+ Label l1 = new Label();
+ mv.visitLabel(l1);
+ mv.visitLocalVariable("living", "L"+aEntityLivingBase+";", null, l0, l1, 0);
+ mv.visitMaxs(1, 1);
+ mv.visitEnd();
+ didInject = true;
+ }
+ FMLRelaunchLog.log("[GT++ ASM] IC2 Hazmat 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 (name.equals("hasCompleteHazmat")) {
+ methodVisitor = null;
+ } else {
+ methodVisitor = super.visitMethod(access, name, desc, signature, exceptions);
+ }
+
+ if (methodVisitor == null) {
+ FMLRelaunchLog.log("[GT++ ASM] IC2 Hazmat 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
new file mode 100644
index 0000000000..3ec4426ec1
--- /dev/null
+++ b/src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_LWJGL_Keyboard.java
@@ -0,0 +1,278 @@
+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 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 gtPlusPlus.core.util.Utils;
+import gtPlusPlus.core.util.reflect.ReflectionUtils;
+import net.minecraft.client.Minecraft;
+import net.minecraft.client.settings.GameSettings;
+import net.minecraft.client.settings.KeyBinding;
+
+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<String, String>();
+
+ /**
+ * 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) {
+ if (Utils.isClient() && ReflectionUtils.doesClassExist("net.minecraft.client.Minecraft")) {
+ 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 (int j = 0; j < i; ++j) {
+ KeyBinding keybinding = akeybinding[j];
+ 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 = ReflectionUtils.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[]) {
+ String[] y = (String[]) o;
+ 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_Railcraft_FluidCartHandling.java b/src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_Railcraft_FluidCartHandling.java
new file mode 100644
index 0000000000..bf71582ae7
--- /dev/null
+++ b/src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_Railcraft_FluidCartHandling.java
@@ -0,0 +1,117 @@
+package gtPlusPlus.preloader.asm.transformers;
+
+import static org.objectweb.asm.Opcodes.ACC_FINAL;
+import static org.objectweb.asm.Opcodes.ACC_PRIVATE;
+import static org.objectweb.asm.Opcodes.ACC_STATIC;
+import static org.objectweb.asm.Opcodes.ASM5;
+
+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.FieldVisitor;
+
+import cpw.mods.fml.relauncher.FMLRelaunchLog;
+import gtPlusPlus.preloader.asm.AsmConfig;
+
+public class ClassTransformer_Railcraft_FluidCartHandling {
+
+ private final boolean isValid;
+ private final ClassReader reader;
+ private final ClassWriter writer;
+
+ //mods.railcraft.common.blocks.machine.gamma.TileFluidLoader
+ //mods.railcraft.common.blocks.machine.gamma.TileFluidLoader.TRANSFER_RATE
+
+ //mods.railcraft.common.blocks.machine.gamma.TileFluidUnloader
+ //mods.railcraft.common.blocks.machine.gamma.TileFluidUnloader.TRANSFER_RATE
+
+ public static final int TileFluidLoader_RATE = 20;
+ public static final int TileFluidUnloader_RATE = 80;
+
+ private static final int TYPE_LOADER = 0;
+ private static final int TYPE_UNLOADER = 1;
+
+ public ClassTransformer_Railcraft_FluidCartHandling(byte[] basicClass, boolean obfuscated, String aClassName) {
+ ClassReader aTempReader = null;
+ ClassWriter aTempWriter = null;
+ boolean aLoader = aClassName.equals("mods.railcraft.common.blocks.machine.gamma.TileFluidLoader");
+
+ FMLRelaunchLog.log("[GT++ ASM] Railcraft TRANSFER_RATE Patch", Level.INFO, "Attempting to patch field TRANSFER_RATE in "+aClassName+", default value is "+(aLoader ? 20 : 80));
+ aTempReader = new ClassReader(basicClass);
+ aTempWriter = new ClassWriter(aTempReader, ClassWriter.COMPUTE_FRAMES);
+
+ if (aLoader) {
+ aTempReader.accept(new AddFieldAdapter(aTempWriter), 0);
+ addField(ACC_PRIVATE + ACC_FINAL + ACC_STATIC, "TRANSFER_RATE", aTempWriter, TYPE_LOADER);
+ }
+ else {
+ aTempReader.accept(new AddFieldAdapter(aTempWriter), 0);
+ addField(ACC_PRIVATE + ACC_FINAL + ACC_STATIC, "TRANSFER_RATE", aTempWriter, TYPE_UNLOADER);
+ }
+
+ if (aTempReader != null && aTempWriter != null) {
+ isValid = true;
+ FMLRelaunchLog.log("[GT++ ASM] Railcraft TRANSFER_RATE Patch", Level.INFO, "Valid? "+isValid+".");
+ }
+ else {
+ isValid = false;
+ }
+ reader = aTempReader;
+ writer = aTempWriter;
+ }
+
+ public boolean isValidTransformer() {
+ return isValid;
+ }
+
+ public ClassReader getReader() {
+ return reader;
+ }
+
+ public ClassWriter getWriter() {
+ return writer;
+ }
+
+ public boolean addField(int access, String fieldName, ClassWriter cv, int aType) {
+ int aValue = (aType == TYPE_LOADER ? AsmConfig.maxRailcraftFluidLoaderFlow : AsmConfig.maxRailcraftFluidUnloaderFlow);
+ FMLRelaunchLog.log("[GT++ ASM] Railcraft TRANSFER_RATE Patch", Level.INFO, "Injecting " + fieldName + " with new value: "+aValue);
+ FieldVisitor fv = cv.visitField(access, fieldName, "I", null, new Integer(aValue));
+ if (fv != null) {
+ fv.visitEnd();
+ return true;
+ }
+ return false;
+ }
+
+
+
+
+ public class AddFieldAdapter extends ClassVisitor {
+
+ public AddFieldAdapter(ClassVisitor cv) {
+ super(ASM5, cv);
+ this.cv = cv;
+ }
+
+ @Override
+ public FieldVisitor visitField(
+ int access, String name, String desc, String signature, Object value) {
+ if (name.equals("TRANSFER_RATE") && desc.equals("I")) {
+ FMLRelaunchLog.log("[GT++ ASM] Railcraft TRANSFER_RATE Patch", Level.INFO, "Removing "+"TRANSFER_RATE"+".");
+ return null;
+ }
+ else {
+ FMLRelaunchLog.log("[GT++ ASM] Railcraft TRANSFER_RATE Patch", Level.INFO, "Found Field "+name+" | "+desc);
+ }
+ return cv.visitField(access, name, desc, signature, value);
+ }
+
+ }
+
+
+
+
+
+
+}
diff --git a/src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_Railcraft_FluidHelper.java b/src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_Railcraft_FluidHelper.java
new file mode 100644
index 0000000000..1249df0777
--- /dev/null
+++ b/src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_Railcraft_FluidHelper.java
@@ -0,0 +1,695 @@
+package gtPlusPlus.preloader.asm.transformers;
+
+import static org.objectweb.asm.Opcodes.*;
+
+import java.lang.reflect.Method;
+
+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.FieldVisitor;
+import org.objectweb.asm.Label;
+import org.objectweb.asm.MethodVisitor;
+
+import cpw.mods.fml.relauncher.FMLRelaunchLog;
+import gtPlusPlus.preloader.asm.AsmConfig;
+import net.minecraft.inventory.IInventory;
+
+public class ClassTransformer_Railcraft_FluidHelper {
+
+ private final boolean isValid;
+ private final ClassReader reader;
+ private final ClassWriter writer;
+
+ public static int PROCESS_VOLUME;
+
+ public ClassTransformer_Railcraft_FluidHelper(byte[] basicClass, boolean obfuscated2) {
+
+ PROCESS_VOLUME = AsmConfig.maxRailcraftTankProcessVolume;
+
+ ClassReader aTempReader = null;
+ ClassWriter aTempWriter = null;
+
+ FMLRelaunchLog.log("[GT++ ASM] Railcraft PROCESS_VOLUME Patch", Level.INFO, "Attempting to patch field PROCESS_VOLUME in mods.railcraft.common.fluids.FluidHelper with new value: "+PROCESS_VOLUME);
+
+ boolean obfuscated = false;
+ boolean a1 = false;
+ boolean a2 = false;
+
+ //Find Non-Obf method
+ try {
+ Method aGetStackInSlot = IInventory.class.getDeclaredMethod("getStackInSlot", int.class);
+ if (aGetStackInSlot != null) {
+ a1 = true;
+ }
+ } catch (NoSuchMethodException | SecurityException e) {}
+
+ //Find Obf method
+ try {
+ Method aGetStackInSlotObf = IInventory.class.getDeclaredMethod("func_70301_a", int.class);
+ if (aGetStackInSlotObf != null) {
+ a2 = true;
+ }
+ } catch (NoSuchMethodException | SecurityException e) {}
+
+
+ if (a1) {
+ obfuscated = false;
+ }
+ else if (a2) {
+ obfuscated = true;
+ }
+ else {
+ //Fallback
+ obfuscated = false;
+ }
+ FMLRelaunchLog.log("[GT++ ASM] Railcraft PROCESS_VOLUME Patch", Level.INFO, "Are we patching obfuscated methods? "+obfuscated);
+
+ aTempReader = new ClassReader(basicClass);
+ aTempWriter = new ClassWriter(aTempReader, ClassWriter.COMPUTE_FRAMES);
+ aTempReader.accept(new AddFieldAdapter(aTempWriter), 0);
+
+ addField(ACC_PUBLIC + ACC_FINAL + ACC_STATIC, "PROCESS_VOLUME", aTempWriter);
+ injectMethod("fillContainers", aTempWriter, obfuscated);
+ injectMethod("drainContainers", aTempWriter, obfuscated);
+
+ if (aTempReader != null && aTempWriter != null) {
+ isValid = true;
+ }
+ else {
+ isValid = false;
+ }
+
+ FMLRelaunchLog.log("[GT++ ASM] Railcraft PROCESS_VOLUME 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 addField(int access, String fieldName, ClassWriter cv) {
+ FMLRelaunchLog.log(
+ "[GT++ ASM] Railcraft PROCESS_VOLUME Patch",
+ Level.INFO,
+ "Injecting " + fieldName + " with new value.");
+ FieldVisitor fv = cv.visitField(access, fieldName, "I", null, PROCESS_VOLUME);
+ if (fv != null) {
+ fv.visitEnd();
+ return true;
+ }
+ return false;
+ }
+
+ public boolean injectMethod(String aMethodName, ClassWriter cw, boolean obfuscated) {
+ MethodVisitor mv;
+ boolean didInject = false;
+ FMLRelaunchLog.log("[GT++ ASM] Railcraft PROCESS_VOLUME Patch", Level.INFO, "Injecting " + aMethodName + ".");
+
+ if (aMethodName.equals("fillContainers") && !obfuscated) {
+ mv = cw.visitMethod(ACC_PUBLIC + ACC_STATIC, "fillContainers", "(Lnet/minecraftforge/fluids/IFluidHandler;Lnet/minecraft/inventory/IInventory;IILnet/minecraftforge/fluids/Fluid;)Z", null, null);
+ mv.visitCode();
+ Label l0 = new Label();
+ mv.visitLabel(l0);
+ mv.visitLineNumber(126, l0);
+ mv.visitVarInsn(ALOAD, 4);
+ Label l1 = new Label();
+ mv.visitJumpInsn(IFNONNULL, l1);
+ Label l2 = new Label();
+ mv.visitLabel(l2);
+ mv.visitLineNumber(127, l2);
+ mv.visitInsn(ICONST_0);
+ mv.visitInsn(IRETURN);
+ mv.visitLabel(l1);
+ mv.visitLineNumber(128, l1);
+ mv.visitFrame(F_SAME, 0, null, 0, null);
+ mv.visitVarInsn(ALOAD, 1);
+ mv.visitVarInsn(ILOAD, 2);
+ mv.visitMethodInsn(INVOKEINTERFACE, "net/minecraft/inventory/IInventory", "getStackInSlot", "(I)Lnet/minecraft/item/ItemStack;", true);
+ mv.visitVarInsn(ASTORE, 5);
+ Label l3 = new Label();
+ mv.visitLabel(l3);
+ mv.visitLineNumber(129, l3);
+ mv.visitVarInsn(ALOAD, 1);
+ mv.visitVarInsn(ILOAD, 3);
+ mv.visitMethodInsn(INVOKEINTERFACE, "net/minecraft/inventory/IInventory", "getStackInSlot", "(I)Lnet/minecraft/item/ItemStack;", true);
+ mv.visitVarInsn(ASTORE, 6);
+ Label l4 = new Label();
+ mv.visitLabel(l4);
+ mv.visitLineNumber(130, l4);
+ mv.visitVarInsn(ALOAD, 5);
+ mv.visitTypeInsn(NEW, "net/minecraftforge/fluids/FluidStack");
+ mv.visitInsn(DUP);
+ mv.visitVarInsn(ALOAD, 4);
+ mv.visitIntInsn(SIPUSH, PROCESS_VOLUME);
+ mv.visitMethodInsn(INVOKESPECIAL, "net/minecraftforge/fluids/FluidStack", "<init>", "(Lnet/minecraftforge/fluids/Fluid;I)V", false);
+ mv.visitMethodInsn(INVOKESTATIC, "mods/railcraft/common/fluids/FluidItemHelper", "fillContainer", "(Lnet/minecraft/item/ItemStack;Lnet/minecraftforge/fluids/FluidStack;)Lmods/railcraft/common/fluids/FluidItemHelper$FillReturn;", false);
+ mv.visitVarInsn(ASTORE, 7);
+ Label l5 = new Label();
+ mv.visitLabel(l5);
+ mv.visitLineNumber(131, l5);
+ mv.visitVarInsn(ALOAD, 7);
+ mv.visitFieldInsn(GETFIELD, "mods/railcraft/common/fluids/FluidItemHelper$FillReturn", "container", "Lnet/minecraft/item/ItemStack;");
+ Label l6 = new Label();
+ mv.visitJumpInsn(IFNULL, l6);
+ mv.visitVarInsn(ALOAD, 6);
+ mv.visitVarInsn(ALOAD, 7);
+ mv.visitFieldInsn(GETFIELD, "mods/railcraft/common/fluids/FluidItemHelper$FillReturn", "container", "Lnet/minecraft/item/ItemStack;");
+ mv.visitMethodInsn(INVOKESTATIC, "mods/railcraft/common/fluids/FluidHelper", "hasPlaceToPutContainer", "(Lnet/minecraft/item/ItemStack;Lnet/minecraft/item/ItemStack;)Z", false);
+ mv.visitJumpInsn(IFEQ, l6);
+ Label l7 = new Label();
+ mv.visitLabel(l7);
+ mv.visitLineNumber(132, l7);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitFieldInsn(GETSTATIC, "net/minecraftforge/common/util/ForgeDirection", "UNKNOWN", "Lnet/minecraftforge/common/util/ForgeDirection;");
+ mv.visitVarInsn(ALOAD, 7);
+ mv.visitFieldInsn(GETFIELD, "mods/railcraft/common/fluids/FluidItemHelper$FillReturn", "amount", "I");
+ mv.visitInsn(ICONST_0);
+ mv.visitMethodInsn(INVOKEINTERFACE, "net/minecraftforge/fluids/IFluidHandler", "drain", "(Lnet/minecraftforge/common/util/ForgeDirection;IZ)Lnet/minecraftforge/fluids/FluidStack;", true);
+ mv.visitVarInsn(ASTORE, 8);
+ Label l8 = new Label();
+ mv.visitLabel(l8);
+ mv.visitLineNumber(133, l8);
+ mv.visitVarInsn(ALOAD, 8);
+ mv.visitJumpInsn(IFNULL, l6);
+ mv.visitVarInsn(ALOAD, 8);
+ mv.visitFieldInsn(GETFIELD, "net/minecraftforge/fluids/FluidStack", "amount", "I");
+ mv.visitVarInsn(ALOAD, 7);
+ mv.visitFieldInsn(GETFIELD, "mods/railcraft/common/fluids/FluidItemHelper$FillReturn", "amount", "I");
+ mv.visitJumpInsn(IF_ICMPNE, l6);
+ Label l9 = new Label();
+ mv.visitLabel(l9);
+ mv.visitLineNumber(134, l9);
+ mv.visitVarInsn(ALOAD, 5);
+ mv.visitVarInsn(ALOAD, 8);
+ mv.visitMethodInsn(INVOKESTATIC, "mods/railcraft/common/fluids/FluidItemHelper", "fillContainer", "(Lnet/minecraft/item/ItemStack;Lnet/minecraftforge/fluids/FluidStack;)Lmods/railcraft/common/fluids/FluidItemHelper$FillReturn;", false);
+ mv.visitVarInsn(ASTORE, 7);
+ Label l10 = new Label();
+ mv.visitLabel(l10);
+ mv.visitLineNumber(135, l10);
+ mv.visitVarInsn(ALOAD, 7);
+ mv.visitFieldInsn(GETFIELD, "mods/railcraft/common/fluids/FluidItemHelper$FillReturn", "container", "Lnet/minecraft/item/ItemStack;");
+ Label l11 = new Label();
+ mv.visitJumpInsn(IFNULL, l11);
+ mv.visitVarInsn(ALOAD, 7);
+ mv.visitFieldInsn(GETFIELD, "mods/railcraft/common/fluids/FluidItemHelper$FillReturn", "amount", "I");
+ mv.visitVarInsn(ALOAD, 8);
+ mv.visitFieldInsn(GETFIELD, "net/minecraftforge/fluids/FluidStack", "amount", "I");
+ mv.visitJumpInsn(IF_ICMPNE, l11);
+ Label l12 = new Label();
+ mv.visitLabel(l12);
+ mv.visitLineNumber(136, l12);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitFieldInsn(GETSTATIC, "net/minecraftforge/common/util/ForgeDirection", "UNKNOWN", "Lnet/minecraftforge/common/util/ForgeDirection;");
+ mv.visitVarInsn(ALOAD, 7);
+ mv.visitFieldInsn(GETFIELD, "mods/railcraft/common/fluids/FluidItemHelper$FillReturn", "amount", "I");
+ mv.visitInsn(ICONST_1);
+ mv.visitMethodInsn(INVOKEINTERFACE, "net/minecraftforge/fluids/IFluidHandler", "drain", "(Lnet/minecraftforge/common/util/ForgeDirection;IZ)Lnet/minecraftforge/fluids/FluidStack;", true);
+ mv.visitInsn(POP);
+ Label l13 = new Label();
+ mv.visitLabel(l13);
+ mv.visitLineNumber(137, l13);
+ mv.visitVarInsn(ALOAD, 1);
+ mv.visitVarInsn(ILOAD, 2);
+ mv.visitVarInsn(ILOAD, 3);
+ mv.visitVarInsn(ALOAD, 7);
+ mv.visitFieldInsn(GETFIELD, "mods/railcraft/common/fluids/FluidItemHelper$FillReturn", "container", "Lnet/minecraft/item/ItemStack;");
+ mv.visitMethodInsn(INVOKESTATIC, "mods/railcraft/common/fluids/FluidHelper", "storeContainer", "(Lnet/minecraft/inventory/IInventory;IILnet/minecraft/item/ItemStack;)V", false);
+ mv.visitLabel(l11);
+ mv.visitLineNumber(139, l11);
+ mv.visitFrame(F_FULL, 9, new Object[] {"net/minecraftforge/fluids/IFluidHandler", "net/minecraft/inventory/IInventory", INTEGER, INTEGER, "net/minecraftforge/fluids/Fluid", "net/minecraft/item/ItemStack", "net/minecraft/item/ItemStack", "mods/railcraft/common/fluids/FluidItemHelper$FillReturn", "net/minecraftforge/fluids/FluidStack"}, 0, new Object[] {});
+ mv.visitInsn(ICONST_1);
+ mv.visitInsn(IRETURN);
+ mv.visitLabel(l6);
+ mv.visitLineNumber(142, l6);
+ mv.visitFrame(F_CHOP,1, null, 0, null);
+ mv.visitInsn(ICONST_0);
+ mv.visitInsn(IRETURN);
+ Label l14 = new Label();
+ mv.visitLabel(l14);
+ mv.visitLocalVariable("drain", "Lnet/minecraftforge/fluids/FluidStack;", null, l8, l6, 8);
+ mv.visitLocalVariable("fluidHandler", "Lnet/minecraftforge/fluids/IFluidHandler;", null, l0, l14, 0);
+ mv.visitLocalVariable("inv", "Lnet/minecraft/inventory/IInventory;", null, l0, l14, 1);
+ mv.visitLocalVariable("inputSlot", "I", null, l0, l14, 2);
+ mv.visitLocalVariable("outputSlot", "I", null, l0, l14, 3);
+ mv.visitLocalVariable("fluidToFill", "Lnet/minecraftforge/fluids/Fluid;", null, l0, l14, 4);
+ mv.visitLocalVariable("input", "Lnet/minecraft/item/ItemStack;", null, l3, l14, 5);
+ mv.visitLocalVariable("output", "Lnet/minecraft/item/ItemStack;", null, l4, l14, 6);
+ mv.visitLocalVariable("fill", "Lmods/railcraft/common/fluids/FluidItemHelper$FillReturn;", null, l5, l14, 7);
+ mv.visitMaxs(5, 9);
+ mv.visitEnd();
+ didInject = true;
+ }
+ else if (aMethodName.equals("fillContainers") && obfuscated) {
+ mv = cw.visitMethod(ACC_PUBLIC + ACC_STATIC, "fillContainers", "(Lnet/minecraftforge/fluids/IFluidHandler;Lnet/minecraft/inventory/IInventory;IILnet/minecraftforge/fluids/Fluid;)Z", null, null);
+ mv.visitCode();
+ Label l0 = new Label();
+ mv.visitLabel(l0);
+ mv.visitLineNumber(126, l0);
+ mv.visitVarInsn(ALOAD, 4);
+ Label l1 = new Label();
+ mv.visitJumpInsn(IFNONNULL, l1);
+ Label l2 = new Label();
+ mv.visitLabel(l2);
+ mv.visitLineNumber(127, l2);
+ mv.visitInsn(ICONST_0);
+ mv.visitInsn(IRETURN);
+ mv.visitLabel(l1);
+ mv.visitLineNumber(128, l1);
+ mv.visitFrame(F_SAME, 0, null, 0, null);
+ mv.visitVarInsn(ALOAD, 1);
+ mv.visitVarInsn(ILOAD, 2);
+ mv.visitMethodInsn(INVOKEINTERFACE, "net/minecraft/inventory/IInventory", "func_70301_a", "(I)Lnet/minecraft/item/ItemStack;", true);
+ mv.visitVarInsn(ASTORE, 5);
+ Label l3 = new Label();
+ mv.visitLabel(l3);
+ mv.visitLineNumber(129, l3);
+ mv.visitVarInsn(ALOAD, 1);
+ mv.visitVarInsn(ILOAD, 3);
+ mv.visitMethodInsn(INVOKEINTERFACE, "net/minecraft/inventory/IInventory", "func_70301_a", "(I)Lnet/minecraft/item/ItemStack;", true);
+ mv.visitVarInsn(ASTORE, 6);
+ Label l4 = new Label();
+ mv.visitLabel(l4);
+ mv.visitLineNumber(130, l4);
+ mv.visitVarInsn(ALOAD, 5);
+ mv.visitTypeInsn(NEW, "net/minecraftforge/fluids/FluidStack");
+ mv.visitInsn(DUP);
+ mv.visitVarInsn(ALOAD, 4);
+ mv.visitIntInsn(SIPUSH, PROCESS_VOLUME);
+ mv.visitMethodInsn(INVOKESPECIAL, "net/minecraftforge/fluids/FluidStack", "<init>", "(Lnet/minecraftforge/fluids/Fluid;I)V", false);
+ mv.visitMethodInsn(INVOKESTATIC, "mods/railcraft/common/fluids/FluidItemHelper", "fillContainer", "(Lnet/minecraft/item/ItemStack;Lnet/minecraftforge/fluids/FluidStack;)Lmods/railcraft/common/fluids/FluidItemHelper$FillReturn;", false);
+ mv.visitVarInsn(ASTORE, 7);
+ Label l5 = new Label();
+ mv.visitLabel(l5);
+ mv.visitLineNumber(131, l5);
+ mv.visitVarInsn(ALOAD, 7);
+ mv.visitFieldInsn(GETFIELD, "mods/railcraft/common/fluids/FluidItemHelper$FillReturn", "container", "Lnet/minecraft/item/ItemStack;");
+ Label l6 = new Label();
+ mv.visitJumpInsn(IFNULL, l6);
+ mv.visitVarInsn(ALOAD, 6);
+ mv.visitVarInsn(ALOAD, 7);
+ mv.visitFieldInsn(GETFIELD, "mods/railcraft/common/fluids/FluidItemHelper$FillReturn", "container", "Lnet/minecraft/item/ItemStack;");
+ mv.visitMethodInsn(INVOKESTATIC, "mods/railcraft/common/fluids/FluidHelper", "hasPlaceToPutContainer", "(Lnet/minecraft/item/ItemStack;Lnet/minecraft/item/ItemStack;)Z", false);
+ mv.visitJumpInsn(IFEQ, l6);
+ Label l7 = new Label();
+ mv.visitLabel(l7);
+ mv.visitLineNumber(132, l7);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitFieldInsn(GETSTATIC, "net/minecraftforge/common/util/ForgeDirection", "UNKNOWN", "Lnet/minecraftforge/common/util/ForgeDirection;");
+ mv.visitVarInsn(ALOAD, 7);
+ mv.visitFieldInsn(GETFIELD, "mods/railcraft/common/fluids/FluidItemHelper$FillReturn", "amount", "I");
+ mv.visitInsn(ICONST_0);
+ mv.visitMethodInsn(INVOKEINTERFACE, "net/minecraftforge/fluids/IFluidHandler", "drain", "(Lnet/minecraftforge/common/util/ForgeDirection;IZ)Lnet/minecraftforge/fluids/FluidStack;", true);
+ mv.visitVarInsn(ASTORE, 8);
+ Label l8 = new Label();
+ mv.visitLabel(l8);
+ mv.visitLineNumber(133, l8);
+ mv.visitVarInsn(ALOAD, 8);
+ mv.visitJumpInsn(IFNULL, l6);
+ mv.visitVarInsn(ALOAD, 8);
+ mv.visitFieldInsn(GETFIELD, "net/minecraftforge/fluids/FluidStack", "amount", "I");
+ mv.visitVarInsn(ALOAD, 7);
+ mv.visitFieldInsn(GETFIELD, "mods/railcraft/common/fluids/FluidItemHelper$FillReturn", "amount", "I");
+ mv.visitJumpInsn(IF_ICMPNE, l6);
+ Label l9 = new Label();
+ mv.visitLabel(l9);
+ mv.visitLineNumber(134, l9);
+ mv.visitVarInsn(ALOAD, 5);
+ mv.visitVarInsn(ALOAD, 8);
+ mv.visitMethodInsn(INVOKESTATIC, "mods/railcraft/common/fluids/FluidItemHelper", "fillContainer", "(Lnet/minecraft/item/ItemStack;Lnet/minecraftforge/fluids/FluidStack;)Lmods/railcraft/common/fluids/FluidItemHelper$FillReturn;", false);
+ mv.visitVarInsn(ASTORE, 7);
+ Label l10 = new Label();
+ mv.visitLabel(l10);
+ mv.visitLineNumber(135, l10);
+ mv.visitVarInsn(ALOAD, 7);
+ mv.visitFieldInsn(GETFIELD, "mods/railcraft/common/fluids/FluidItemHelper$FillReturn", "container", "Lnet/minecraft/item/ItemStack;");
+ Label l11 = new Label();
+ mv.visitJumpInsn(IFNULL, l11);
+ mv.visitVarInsn(ALOAD, 7);
+ mv.visitFieldInsn(GETFIELD, "mods/railcraft/common/fluids/FluidItemHelper$FillReturn", "amount", "I");
+ mv.visitVarInsn(ALOAD, 8);
+ mv.visitFieldInsn(GETFIELD, "net/minecraftforge/fluids/FluidStack", "amount", "I");
+ mv.visitJumpInsn(IF_ICMPNE, l11);
+ Label l12 = new Label();
+ mv.visitLabel(l12);
+ mv.visitLineNumber(136, l12);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitFieldInsn(GETSTATIC, "net/minecraftforge/common/util/ForgeDirection", "UNKNOWN", "Lnet/minecraftforge/common/util/ForgeDirection;");
+ mv.visitVarInsn(ALOAD, 7);
+ mv.visitFieldInsn(GETFIELD, "mods/railcraft/common/fluids/FluidItemHelper$FillReturn", "amount", "I");
+ mv.visitInsn(ICONST_1);
+ mv.visitMethodInsn(INVOKEINTERFACE, "net/minecraftforge/fluids/IFluidHandler", "drain", "(Lnet/minecraftforge/common/util/ForgeDirection;IZ)Lnet/minecraftforge/fluids/FluidStack;", true);
+ mv.visitInsn(POP);
+ Label l13 = new Label();
+ mv.visitLabel(l13);
+ mv.visitLineNumber(137, l13);
+ mv.visitVarInsn(ALOAD, 1);
+ mv.visitVarInsn(ILOAD, 2);
+ mv.visitVarInsn(ILOAD, 3);
+ mv.visitVarInsn(ALOAD, 7);
+ mv.visitFieldInsn(GETFIELD, "mods/railcraft/common/fluids/FluidItemHelper$FillReturn", "container", "Lnet/minecraft/item/ItemStack;");
+ mv.visitMethodInsn(INVOKESTATIC, "mods/railcraft/common/fluids/FluidHelper", "storeContainer", "(Lnet/minecraft/inventory/IInventory;IILnet/minecraft/item/ItemStack;)V", false);
+ mv.visitLabel(l11);
+ mv.visitLineNumber(139, l11);
+ mv.visitFrame(F_FULL, 9, new Object[] {"net/minecraftforge/fluids/IFluidHandler", "net/minecraft/inventory/IInventory", INTEGER, INTEGER, "net/minecraftforge/fluids/Fluid", "net/minecraft/item/ItemStack", "net/minecraft/item/ItemStack", "mods/railcraft/common/fluids/FluidItemHelper$FillReturn", "net/minecraftforge/fluids/FluidStack"}, 0, new Object[] {});
+ mv.visitInsn(ICONST_1);
+ mv.visitInsn(IRETURN);
+ mv.visitLabel(l6);
+ mv.visitLineNumber(142, l6);
+ mv.visitFrame(F_CHOP,1, null, 0, null);
+ mv.visitInsn(ICONST_0);
+ mv.visitInsn(IRETURN);
+ Label l14 = new Label();
+ mv.visitLabel(l14);
+ mv.visitLocalVariable("drain", "Lnet/minecraftforge/fluids/FluidStack;", null, l8, l6, 8);
+ mv.visitLocalVariable("fluidHandler", "Lnet/minecraftforge/fluids/IFluidHandler;", null, l0, l14, 0);
+ mv.visitLocalVariable("inv", "Lnet/minecraft/inventory/IInventory;", null, l0, l14, 1);
+ mv.visitLocalVariable("inputSlot", "I", null, l0, l14, 2);
+ mv.visitLocalVariable("outputSlot", "I", null, l0, l14, 3);
+ mv.visitLocalVariable("fluidToFill", "Lnet/minecraftforge/fluids/Fluid;", null, l0, l14, 4);
+ mv.visitLocalVariable("input", "Lnet/minecraft/item/ItemStack;", null, l3, l14, 5);
+ mv.visitLocalVariable("output", "Lnet/minecraft/item/ItemStack;", null, l4, l14, 6);
+ mv.visitLocalVariable("fill", "Lmods/railcraft/common/fluids/FluidItemHelper$FillReturn;", null, l5, l14, 7);
+ mv.visitMaxs(5, 9);
+ mv.visitEnd();
+ didInject = true;
+ }
+ else if (aMethodName.equals("drainContainers") && !obfuscated) {
+ mv = cw.visitMethod(ACC_PUBLIC + ACC_STATIC, "drainContainers", "(Lnet/minecraftforge/fluids/IFluidHandler;Lnet/minecraft/inventory/IInventory;II)Z", null, null);
+ mv.visitCode();
+ Label l0 = new Label();
+ mv.visitLabel(l0);
+ mv.visitLineNumber(146, l0);
+ mv.visitVarInsn(ALOAD, 1);
+ mv.visitVarInsn(ILOAD, 2);
+ mv.visitMethodInsn(INVOKEINTERFACE, "net/minecraft/inventory/IInventory", "getStackInSlot", "(I)Lnet/minecraft/item/ItemStack;", true);
+ mv.visitVarInsn(ASTORE, 4);
+ Label l1 = new Label();
+ mv.visitLabel(l1);
+ mv.visitLineNumber(147, l1);
+ mv.visitVarInsn(ALOAD, 1);
+ mv.visitVarInsn(ILOAD, 3);
+ mv.visitMethodInsn(INVOKEINTERFACE, "net/minecraft/inventory/IInventory", "getStackInSlot", "(I)Lnet/minecraft/item/ItemStack;", true);
+ mv.visitVarInsn(ASTORE, 5);
+ Label l2 = new Label();
+ mv.visitLabel(l2);
+ mv.visitLineNumber(148, l2);
+ mv.visitVarInsn(ALOAD, 4);
+ Label l3 = new Label();
+ mv.visitJumpInsn(IFNULL, l3);
+ Label l4 = new Label();
+ mv.visitLabel(l4);
+ mv.visitLineNumber(149, l4);
+ mv.visitVarInsn(ALOAD, 4);
+ mv.visitIntInsn(SIPUSH, PROCESS_VOLUME);
+ mv.visitMethodInsn(INVOKESTATIC, "mods/railcraft/common/fluids/FluidItemHelper", "drainContainer", "(Lnet/minecraft/item/ItemStack;I)Lmods/railcraft/common/fluids/FluidItemHelper$DrainReturn;", false);
+ mv.visitVarInsn(ASTORE, 6);
+ Label l5 = new Label();
+ mv.visitLabel(l5);
+ mv.visitLineNumber(150, l5);
+ mv.visitVarInsn(ALOAD, 6);
+ mv.visitFieldInsn(GETFIELD, "mods/railcraft/common/fluids/FluidItemHelper$DrainReturn", "fluidDrained", "Lnet/minecraftforge/fluids/FluidStack;");
+ mv.visitJumpInsn(IFNULL, l3);
+ mv.visitVarInsn(ALOAD, 6);
+ mv.visitFieldInsn(GETFIELD, "mods/railcraft/common/fluids/FluidItemHelper$DrainReturn", "container", "Lnet/minecraft/item/ItemStack;");
+ Label l6 = new Label();
+ mv.visitJumpInsn(IFNULL, l6);
+ mv.visitVarInsn(ALOAD, 5);
+ mv.visitVarInsn(ALOAD, 6);
+ mv.visitFieldInsn(GETFIELD, "mods/railcraft/common/fluids/FluidItemHelper$DrainReturn", "container", "Lnet/minecraft/item/ItemStack;");
+ mv.visitMethodInsn(INVOKESTATIC, "mods/railcraft/common/fluids/FluidHelper", "hasPlaceToPutContainer", "(Lnet/minecraft/item/ItemStack;Lnet/minecraft/item/ItemStack;)Z", false);
+ mv.visitJumpInsn(IFEQ, l3);
+ mv.visitLabel(l6);
+ mv.visitLineNumber(151, l6);
+ mv.visitFrame(F_APPEND,3, new Object[] {"net/minecraft/item/ItemStack", "net/minecraft/item/ItemStack", "mods/railcraft/common/fluids/FluidItemHelper$DrainReturn"}, 0, null);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitFieldInsn(GETSTATIC, "net/minecraftforge/common/util/ForgeDirection", "UNKNOWN", "Lnet/minecraftforge/common/util/ForgeDirection;");
+ mv.visitVarInsn(ALOAD, 6);
+ mv.visitFieldInsn(GETFIELD, "mods/railcraft/common/fluids/FluidItemHelper$DrainReturn", "fluidDrained", "Lnet/minecraftforge/fluids/FluidStack;");
+ mv.visitInsn(ICONST_0);
+ mv.visitMethodInsn(INVOKEINTERFACE, "net/minecraftforge/fluids/IFluidHandler", "fill", "(Lnet/minecraftforge/common/util/ForgeDirection;Lnet/minecraftforge/fluids/FluidStack;Z)I", true);
+ mv.visitVarInsn(ISTORE, 7);
+ Label l7 = new Label();
+ mv.visitLabel(l7);
+ mv.visitLineNumber(152, l7);
+ mv.visitVarInsn(ALOAD, 6);
+ mv.visitFieldInsn(GETFIELD, "mods/railcraft/common/fluids/FluidItemHelper$DrainReturn", "isAtomic", "Z");
+ Label l8 = new Label();
+ mv.visitJumpInsn(IFEQ, l8);
+ mv.visitVarInsn(ILOAD, 7);
+ mv.visitVarInsn(ALOAD, 6);
+ mv.visitFieldInsn(GETFIELD, "mods/railcraft/common/fluids/FluidItemHelper$DrainReturn", "fluidDrained", "Lnet/minecraftforge/fluids/FluidStack;");
+ mv.visitFieldInsn(GETFIELD, "net/minecraftforge/fluids/FluidStack", "amount", "I");
+ Label l9 = new Label();
+ mv.visitJumpInsn(IF_ICMPEQ, l9);
+ mv.visitLabel(l8);
+ mv.visitFrame(F_APPEND,1, new Object[] {INTEGER}, 0, null);
+ mv.visitVarInsn(ALOAD, 6);
+ mv.visitFieldInsn(GETFIELD, "mods/railcraft/common/fluids/FluidItemHelper$DrainReturn", "isAtomic", "Z");
+ mv.visitJumpInsn(IFNE, l3);
+ mv.visitVarInsn(ALOAD, 6);
+ mv.visitFieldInsn(GETFIELD, "mods/railcraft/common/fluids/FluidItemHelper$DrainReturn", "fluidDrained", "Lnet/minecraftforge/fluids/FluidStack;");
+ mv.visitFieldInsn(GETFIELD, "net/minecraftforge/fluids/FluidStack", "amount", "I");
+ mv.visitJumpInsn(IFLE, l3);
+ mv.visitLabel(l9);
+ mv.visitLineNumber(153, l9);
+ mv.visitFrame(F_SAME, 0, null, 0, null);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitFieldInsn(GETSTATIC, "net/minecraftforge/common/util/ForgeDirection", "UNKNOWN", "Lnet/minecraftforge/common/util/ForgeDirection;");
+ mv.visitVarInsn(ALOAD, 6);
+ mv.visitFieldInsn(GETFIELD, "mods/railcraft/common/fluids/FluidItemHelper$DrainReturn", "fluidDrained", "Lnet/minecraftforge/fluids/FluidStack;");
+ mv.visitInsn(ICONST_1);
+ mv.visitMethodInsn(INVOKEINTERFACE, "net/minecraftforge/fluids/IFluidHandler", "fill", "(Lnet/minecraftforge/common/util/ForgeDirection;Lnet/minecraftforge/fluids/FluidStack;Z)I", true);
+ mv.visitInsn(POP);
+ Label l10 = new Label();
+ mv.visitLabel(l10);
+ mv.visitLineNumber(154, l10);
+ mv.visitVarInsn(ALOAD, 1);
+ mv.visitVarInsn(ILOAD, 2);
+ mv.visitVarInsn(ILOAD, 3);
+ mv.visitVarInsn(ALOAD, 6);
+ mv.visitFieldInsn(GETFIELD, "mods/railcraft/common/fluids/FluidItemHelper$DrainReturn", "container", "Lnet/minecraft/item/ItemStack;");
+ mv.visitMethodInsn(INVOKESTATIC, "mods/railcraft/common/fluids/FluidHelper", "storeContainer", "(Lnet/minecraft/inventory/IInventory;IILnet/minecraft/item/ItemStack;)V", false);
+ Label l11 = new Label();
+ mv.visitLabel(l11);
+ mv.visitLineNumber(155, l11);
+ mv.visitInsn(ICONST_1);
+ mv.visitInsn(IRETURN);
+ mv.visitLabel(l3);
+ mv.visitLineNumber(159, l3);
+ mv.visitFrame(F_CHOP,2, null, 0, null);
+ mv.visitInsn(ICONST_0);
+ mv.visitInsn(IRETURN);
+ Label l12 = new Label();
+ mv.visitLabel(l12);
+ mv.visitLocalVariable("used", "I", null, l7, l3, 7);
+ mv.visitLocalVariable("drain", "Lmods/railcraft/common/fluids/FluidItemHelper$DrainReturn;", null, l5, l3, 6);
+ mv.visitLocalVariable("fluidHandler", "Lnet/minecraftforge/fluids/IFluidHandler;", null, l0, l12, 0);
+ mv.visitLocalVariable("inv", "Lnet/minecraft/inventory/IInventory;", null, l0, l12, 1);
+ mv.visitLocalVariable("inputSlot", "I", null, l0, l12, 2);
+ mv.visitLocalVariable("outputSlot", "I", null, l0, l12, 3);
+ mv.visitLocalVariable("input", "Lnet/minecraft/item/ItemStack;", null, l1, l12, 4);
+ mv.visitLocalVariable("output", "Lnet/minecraft/item/ItemStack;", null, l2, l12, 5);
+ mv.visitMaxs(4, 8);
+ mv.visitEnd();
+ didInject = true;
+ }
+ else if (aMethodName.equals("drainContainers") && obfuscated) {
+ mv = cw.visitMethod(ACC_PUBLIC + ACC_STATIC, "drainContainers", "(Lnet/minecraftforge/fluids/IFluidHandler;Lnet/minecraft/inventory/IInventory;II)Z", null, null);
+ mv.visitCode();
+ Label l0 = new Label();
+ mv.visitLabel(l0);
+ mv.visitLineNumber(146, l0);
+ mv.visitVarInsn(ALOAD, 1);
+ mv.visitVarInsn(ILOAD, 2);
+ mv.visitMethodInsn(INVOKEINTERFACE, "net/minecraft/inventory/IInventory", "func_70301_a", "(I)Lnet/minecraft/item/ItemStack;", true);
+ mv.visitVarInsn(ASTORE, 4);
+ Label l1 = new Label();
+ mv.visitLabel(l1);
+ mv.visitLineNumber(147, l1);
+ mv.visitVarInsn(ALOAD, 1);
+ mv.visitVarInsn(ILOAD, 3);
+ mv.visitMethodInsn(INVOKEINTERFACE, "net/minecraft/inventory/IInventory", "func_70301_a", "(I)Lnet/minecraft/item/ItemStack;", true);
+ mv.visitVarInsn(ASTORE, 5);
+ Label l2 = new Label();
+ mv.visitLabel(l2);
+ mv.visitLineNumber(148, l2);
+ mv.visitVarInsn(ALOAD, 4);
+ Label l3 = new Label();
+ mv.visitJumpInsn(IFNULL, l3);
+ Label l4 = new Label();
+ mv.visitLabel(l4);
+ mv.visitLineNumber(149, l4);
+ mv.visitVarInsn(ALOAD, 4);
+ mv.visitIntInsn(SIPUSH, PROCESS_VOLUME);
+ mv.visitMethodInsn(INVOKESTATIC, "mods/railcraft/common/fluids/FluidItemHelper", "drainContainer", "(Lnet/minecraft/item/ItemStack;I)Lmods/railcraft/common/fluids/FluidItemHelper$DrainReturn;", false);
+ mv.visitVarInsn(ASTORE, 6);
+ Label l5 = new Label();
+ mv.visitLabel(l5);
+ mv.visitLineNumber(150, l5);
+ mv.visitVarInsn(ALOAD, 6);
+ mv.visitFieldInsn(GETFIELD, "mods/railcraft/common/fluids/FluidItemHelper$DrainReturn", "fluidDrained", "Lnet/minecraftforge/fluids/FluidStack;");
+ mv.visitJumpInsn(IFNULL, l3);
+ mv.visitVarInsn(ALOAD, 6);
+ mv.visitFieldInsn(GETFIELD, "mods/railcraft/common/fluids/FluidItemHelper$DrainReturn", "container", "Lnet/minecraft/item/ItemStack;");
+ Label l6 = new Label();
+ mv.visitJumpInsn(IFNULL, l6);
+ mv.visitVarInsn(ALOAD, 5);
+ mv.visitVarInsn(ALOAD, 6);
+ mv.visitFieldInsn(GETFIELD, "mods/railcraft/common/fluids/FluidItemHelper$DrainReturn", "container", "Lnet/minecraft/item/ItemStack;");
+ mv.visitMethodInsn(INVOKESTATIC, "mods/railcraft/common/fluids/FluidHelper", "hasPlaceToPutContainer", "(Lnet/minecraft/item/ItemStack;Lnet/minecraft/item/ItemStack;)Z", false);
+ mv.visitJumpInsn(IFEQ, l3);
+ mv.visitLabel(l6);
+ mv.visitLineNumber(151, l6);
+ mv.visitFrame(F_APPEND,3, new Object[] {"net/minecraft/item/ItemStack", "net/minecraft/item/ItemStack", "mods/railcraft/common/fluids/FluidItemHelper$DrainReturn"}, 0, null);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitFieldInsn(GETSTATIC, "net/minecraftforge/common/util/ForgeDirection", "UNKNOWN", "Lnet/minecraftforge/common/util/ForgeDirection;");
+ mv.visitVarInsn(ALOAD, 6);
+ mv.visitFieldInsn(GETFIELD, "mods/railcraft/common/fluids/FluidItemHelper$DrainReturn", "fluidDrained", "Lnet/minecraftforge/fluids/FluidStack;");
+ mv.visitInsn(ICONST_0);
+ mv.visitMethodInsn(INVOKEINTERFACE, "net/minecraftforge/fluids/IFluidHandler", "fill", "(Lnet/minecraftforge/common/util/ForgeDirection;Lnet/minecraftforge/fluids/FluidStack;Z)I", true);
+ mv.visitVarInsn(ISTORE, 7);
+ Label l7 = new Label();
+ mv.visitLabel(l7);
+ mv.visitLineNumber(152, l7);
+ mv.visitVarInsn(ALOAD, 6);
+ mv.visitFieldInsn(GETFIELD, "mods/railcraft/common/fluids/FluidItemHelper$DrainReturn", "isAtomic", "Z");
+ Label l8 = new Label();
+ mv.visitJumpInsn(IFEQ, l8);
+ mv.visitVarInsn(ILOAD, 7);
+ mv.visitVarInsn(ALOAD, 6);
+ mv.visitFieldInsn(GETFIELD, "mods/railcraft/common/fluids/FluidItemHelper$DrainReturn", "fluidDrained", "Lnet/minecraftforge/fluids/FluidStack;");
+ mv.visitFieldInsn(GETFIELD, "net/minecraftforge/fluids/FluidStack", "amount", "I");
+ Label l9 = new Label();
+ mv.visitJumpInsn(IF_ICMPEQ, l9);
+ mv.visitLabel(l8);
+ mv.visitFrame(F_APPEND,1, new Object[] {INTEGER}, 0, null);
+ mv.visitVarInsn(ALOAD, 6);
+ mv.visitFieldInsn(GETFIELD, "mods/railcraft/common/fluids/FluidItemHelper$DrainReturn", "isAtomic", "Z");
+ mv.visitJumpInsn(IFNE, l3);
+ mv.visitVarInsn(ALOAD, 6);
+ mv.visitFieldInsn(GETFIELD, "mods/railcraft/common/fluids/FluidItemHelper$DrainReturn", "fluidDrained", "Lnet/minecraftforge/fluids/FluidStack;");
+ mv.visitFieldInsn(GETFIELD, "net/minecraftforge/fluids/FluidStack", "amount", "I");
+ mv.visitJumpInsn(IFLE, l3);
+ mv.visitLabel(l9);
+ mv.visitLineNumber(153, l9);
+ mv.visitFrame(F_SAME, 0, null, 0, null);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitFieldInsn(GETSTATIC, "net/minecraftforge/common/util/ForgeDirection", "UNKNOWN", "Lnet/minecraftforge/common/util/ForgeDirection;");
+ mv.visitVarInsn(ALOAD, 6);
+ mv.visitFieldInsn(GETFIELD, "mods/railcraft/common/fluids/FluidItemHelper$DrainReturn", "fluidDrained", "Lnet/minecraftforge/fluids/FluidStack;");
+ mv.visitInsn(ICONST_1);
+ mv.visitMethodInsn(INVOKEINTERFACE, "net/minecraftforge/fluids/IFluidHandler", "fill", "(Lnet/minecraftforge/common/util/ForgeDirection;Lnet/minecraftforge/fluids/FluidStack;Z)I", true);
+ mv.visitInsn(POP);
+ Label l10 = new Label();
+ mv.visitLabel(l10);
+ mv.visitLineNumber(154, l10);
+ mv.visitVarInsn(ALOAD, 1);
+ mv.visitVarInsn(ILOAD, 2);
+ mv.visitVarInsn(ILOAD, 3);
+ mv.visitVarInsn(ALOAD, 6);
+ mv.visitFieldInsn(GETFIELD, "mods/railcraft/common/fluids/FluidItemHelper$DrainReturn", "container", "Lnet/minecraft/item/ItemStack;");
+ mv.visitMethodInsn(INVOKESTATIC, "mods/railcraft/common/fluids/FluidHelper", "storeContainer", "(Lnet/minecraft/inventory/IInventory;IILnet/minecraft/item/ItemStack;)V", false);
+ Label l11 = new Label();
+ mv.visitLabel(l11);
+ mv.visitLineNumber(155, l11);
+ mv.visitInsn(ICONST_1);
+ mv.visitInsn(IRETURN);
+ mv.visitLabel(l3);
+ mv.visitLineNumber(159, l3);
+ mv.visitFrame(F_CHOP,2, null, 0, null);
+ mv.visitInsn(ICONST_0);
+ mv.visitInsn(IRETURN);
+ Label l12 = new Label();
+ mv.visitLabel(l12);
+ mv.visitLocalVariable("used", "I", null, l7, l3, 7);
+ mv.visitLocalVariable("drain", "Lmods/railcraft/common/fluids/FluidItemHelper$DrainReturn;", null, l5, l3, 6);
+ mv.visitLocalVariable("fluidHandler", "Lnet/minecraftforge/fluids/IFluidHandler;", null, l0, l12, 0);
+ mv.visitLocalVariable("inv", "Lnet/minecraft/inventory/IInventory;", null, l0, l12, 1);
+ mv.visitLocalVariable("inputSlot", "I", null, l0, l12, 2);
+ mv.visitLocalVariable("outputSlot", "I", null, l0, l12, 3);
+ mv.visitLocalVariable("input", "Lnet/minecraft/item/ItemStack;", null, l1, l12, 4);
+ mv.visitLocalVariable("output", "Lnet/minecraft/item/ItemStack;", null, l2, l12, 5);
+ mv.visitMaxs(4, 8);
+ mv.visitEnd();
+ didInject = true;
+ }
+
+ FMLRelaunchLog.log("[GT++ ASM] Railcraft PROCESS_VOLUME Patch", Level.INFO, "Method injection complete. "+(obfuscated ? "Obfuscated" : "Non-Obfuscated"));
+ return didInject;
+ }
+
+
+
+
+
+
+
+
+
+ public class AddFieldAdapter extends ClassVisitor {
+
+ public AddFieldAdapter(ClassVisitor cv) {
+ super(ASM5, cv);
+ this.cv = cv;
+ }
+
+ @Override
+ public FieldVisitor visitField(
+ int access, String name, String desc, String signature, Object value) {
+ if (name.equals("PROCESS_VOLUME") && desc.equals("I")) {
+ FMLRelaunchLog.log("[GT++ ASM] Railcraft PROCESS_VOLUME Patch", Level.INFO, "Removing "+"PROCESS_VOLUME"+".");
+ return null;
+ }
+ return cv.visitField(access, name, desc, signature, value);
+ }
+
+
+ private final String[] aMethodsToStrip = new String[] {"fillContainers", "drainContainers"};
+
+
+ @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] Railcraft PROCESS_VOLUME Patch", Level.INFO,
+ "Found method " + name + ", removing.");
+ }
+ return methodVisitor;
+ }
+
+
+ }
+
+
+
+
+
+
+}
diff --git a/src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_Railcraft_InvTools.java b/src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_Railcraft_InvTools.java
new file mode 100644
index 0000000000..75896c1c0f
--- /dev/null
+++ b/src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_Railcraft_InvTools.java
@@ -0,0 +1,235 @@
+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.ARETURN;
+import static org.objectweb.asm.Opcodes.ASM5;
+import static org.objectweb.asm.Opcodes.INVOKESTATIC;
+
+import java.lang.reflect.Method;
+
+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.enums.GT_Values;
+import gtPlusPlus.core.util.minecraft.ItemUtils;
+import net.minecraft.inventory.IInventory;
+import net.minecraft.item.ItemStack;
+
+public class ClassTransformer_Railcraft_InvTools {
+
+ private final boolean isValid;
+ private final ClassReader reader;
+ private final ClassWriter writer;
+ private boolean obfuscated = true;
+
+
+ public static ItemStack depleteItem(ItemStack stack) {
+ if (stack == null) {
+ return GT_Values.NI;
+ } else {
+ if (stack.stackSize == 0) {
+ return GT_Values.NI;
+ }
+ else if (stack.stackSize == 1) {
+ ItemStack container = stack.getItem().getContainerItem(stack);
+ if (container != null) {
+ return container;
+ } else {
+ return GT_Values.NI;
+ }
+ }
+ else {
+ return ItemUtils.depleteStack(stack);
+ }
+ }
+ }
+
+ public ClassTransformer_Railcraft_InvTools(byte[] basicClass, boolean obfuscated2) {
+ ClassReader aTempReader = null;
+ ClassWriter aTempWriter = null;
+
+ boolean devEnv = false;
+ boolean a1 = false;
+ boolean a2 = false;
+
+ //Find Non-Obf method
+ try {
+ Method aGetStackInSlot = IInventory.class.getDeclaredMethod("getStackInSlot", int.class);
+ if (aGetStackInSlot != null) {
+ a1 = true;
+ }
+ } catch (NoSuchMethodException | SecurityException e) {}
+
+ //Find Obf method
+ try {
+ Method aGetStackInSlotObf = IInventory.class.getDeclaredMethod("func_70301_a", int.class);
+ if (aGetStackInSlotObf != null) {
+ a2 = true;
+ }
+ } catch (NoSuchMethodException | SecurityException e) {}
+
+
+ if (a1) {
+ devEnv = false;
+ }
+ else if (a2) {
+ devEnv = true;
+ }
+ else {
+ //Fallback
+ devEnv = false;
+ }
+
+ if (obfuscated && devEnv) {
+
+ }
+ else {
+
+
+ }
+
+
+
+ FMLRelaunchLog.log("[GT++ ASM] Railcraft negative ItemStack Fix", Level.INFO, "Are we patching obfuscated method? "+obfuscated);
+
+ aTempReader = new ClassReader(basicClass);
+ aTempWriter = new ClassWriter(aTempReader, ClassWriter.COMPUTE_FRAMES);
+ aTempReader.accept(new AddFieldAdapter(aTempWriter), 0);
+
+ injectMethod("depleteItem", aTempWriter, obfuscated);
+
+ if (aTempReader != null && aTempWriter != null) {
+ isValid = true;
+ }
+ else {
+ isValid = false;
+ }
+
+ FMLRelaunchLog.log("[GT++ ASM] Railcraft negative ItemStack Fix", 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] Railcraft negative ItemStack Fix", Level.INFO, "Injecting " + aMethodName + ".");
+ if (aMethodName.equals("depleteItem") && !obfuscated) {
+ mv = cw.visitMethod(ACC_PUBLIC + ACC_STATIC, "depleteItem", "(Lnet/minecraft/item/ItemStack;)Lnet/minecraft/item/ItemStack;", null, null);
+ mv.visitCode();
+ Label l0 = new Label();
+ mv.visitLabel(l0);
+ mv.visitLineNumber(36, l0);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitMethodInsn(INVOKESTATIC, "gtPlusPlus/preloader/asm/transformers/ClassTransformer_Railcraft_InvTools", "depleteItem", "(Lnet/minecraft/item/ItemStack;)Lnet/minecraft/item/ItemStack;", false);
+ mv.visitInsn(ARETURN);
+ Label l1 = new Label();
+ mv.visitLabel(l1);
+ mv.visitLocalVariable("stack", "Lnet/minecraft/item/ItemStack;", null, l0, l1, 0);
+ mv.visitMaxs(1, 1);
+ mv.visitEnd();
+ didInject = true;
+ }
+ else if (aMethodName.equals("depleteItem") && obfuscated) {
+ mv = cw.visitMethod(ACC_PUBLIC + ACC_STATIC, "depleteItem", "(Ladd;)Ladd;", null, null);
+ mv.visitCode();
+ Label l0 = new Label();
+ mv.visitLabel(l0);
+ mv.visitLineNumber(36, l0);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitMethodInsn(INVOKESTATIC, "gtPlusPlus/preloader/asm/transformers/ClassTransformer_Railcraft_InvTools", "depleteItem", "(Ladd;)Ladd;", false);
+ mv.visitInsn(ARETURN);
+ Label l1 = new Label();
+ mv.visitLabel(l1);
+ mv.visitLocalVariable("stack", "Ladd;", null, l0, l1, 0);
+ mv.visitMaxs(1, 1);
+ mv.visitEnd();
+ didInject = true;
+ }
+ FMLRelaunchLog.log("[GT++ ASM] Railcraft negative ItemStack Fix", Level.INFO, "Method injection complete. "+(obfuscated ? "Obfuscated" : "Non-Obfuscated"));
+ return didInject;
+ }
+
+
+
+
+
+
+
+
+
+ public class AddFieldAdapter extends ClassVisitor {
+
+ public AddFieldAdapter(ClassVisitor cv) {
+ super(ASM5, cv);
+ this.cv = cv;
+ }
+
+ private final String[] aMethodsToStrip = new String[] {"depleteItem"};
+
+
+ @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 {
+ if (desc.equals("(Lnet/minecraft/item/ItemStack;)Lnet/minecraft/item/ItemStack;")) {
+ obfuscated = false;
+ }
+ else if (desc.equals("(Ladd;)Ladd;")) {
+ obfuscated = true;
+ }
+ else {
+ obfuscated = false;
+ }
+ FMLRelaunchLog.log("[GT++ ASM] Railcraft negative ItemStack Fix", Level.INFO,
+ "Method desc " + desc + ", using "+(obfuscated ? "obfuscated method handler" : "deobfuscated method handler"));
+ methodVisitor = null;
+ }
+
+ if (found) {
+ FMLRelaunchLog.log("[GT++ ASM] Railcraft negative ItemStack 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
new file mode 100644
index 0000000000..8f65709478
--- /dev/null
+++ b/src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_TC_ItemWispEssence.java
@@ -0,0 +1,278 @@
+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;
+import gtPlusPlus.preloader.DevHelper;
+
+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;
+ boolean obfuscated = obfuscated2;
+ FMLRelaunchLog.log("[GT++ ASM] Thaumcraft WispEssence_Patch", Level.INFO, "Are we patching obfuscated methods? "+obfuscated);
+ String aGetColour = obfuscated ? DevHelper.getSRG("getColorFromItemStack") : "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, obfuscated);
+ injectMethod(aGetColour, aTempWriter, obfuscated);
+ 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/ClassTransformer_TT_ThaumicRestorer.java b/src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_TT_ThaumicRestorer.java
new file mode 100644
index 0000000000..05b8054ff8
--- /dev/null
+++ b/src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_TT_ThaumicRestorer.java
@@ -0,0 +1,611 @@
+package gtPlusPlus.preloader.asm.transformers;
+
+import static org.objectweb.asm.Opcodes.*;
+
+import java.lang.reflect.Field;
+import java.lang.reflect.Method;
+
+import org.apache.logging.log4j.Level;
+import org.objectweb.asm.*;
+
+import cpw.mods.fml.common.Loader;
+import gtPlusPlus.core.util.reflect.ReflectionUtils;
+import gtPlusPlus.preloader.Preloader_Logger;
+import net.minecraft.item.ItemStack;
+import net.minecraft.tileentity.TileEntity;
+
+public class ClassTransformer_TT_ThaumicRestorer {
+
+ private final boolean isValid;
+ private final ClassReader reader;
+ private final ClassWriter writer;
+
+ private static boolean mInit = false;
+
+ private static Class mTileRepairerClass;
+ private static Class mTTConfigHandler;
+ private static Class mTinkersConstructCompat;
+ private static Class mThaumicTinkerer;
+ private static Class mTCProxy;
+
+ private static Method mIsTcTool;
+ private static Method mGetTcDamage;
+ private static Method mFixTcDamage;
+ private static Method mSparkle;
+ private static Method mDrawEssentia;
+
+ private static Field mRepairTiconTools;
+ private static Field mTicksExisted;
+ private static Field mInventory;
+ private static Field mTookLastTick;
+ private static Field mDamageLastTick;
+ private static Field mProxyTC;
+
+ private static boolean repairTConTools = false;
+
+ // thaumic.tinkerer.common.block.tile.TileRepairer
+
+ private static final boolean isTConstructTool(ItemStack aStack) {
+ return ReflectionUtils.invoke(null, mIsTcTool, new Object[] {aStack});
+ }
+ private static final int getDamage(ItemStack aStack) {
+ return (int) ReflectionUtils.invokeNonBool(null, mGetTcDamage, new Object[] {aStack});
+ }
+ private static final boolean fixDamage(ItemStack aStack, int aAmount) {
+ return ReflectionUtils.invoke(null, mFixTcDamage, new Object[] {aStack, aAmount});
+ }
+ private static final int drawEssentia(TileEntity aTile) {
+ return (int) ReflectionUtils.invokeNonBool(aTile, mDrawEssentia, new Object[] {});
+ }
+ private static final void sparkle(float a, float b, float c, int d) {
+ ReflectionUtils.invokeVoid(ReflectionUtils.getFieldValue(mProxyTC), mSparkle, new Object[] {a, b, c, d});
+ }
+
+ public static void updateEntity(TileEntity aTile) {
+ if (!mInit) {
+ // Set the classes we need
+ mTileRepairerClass = ReflectionUtils.getClass("thaumic.tinkerer.common.block.tile.TileRepairer");
+ mTTConfigHandler = ReflectionUtils.getClass("thaumic.tinkerer.common.core.handler.ConfigHandler");
+ mTinkersConstructCompat = ReflectionUtils.getClass("thaumic.tinkerer.common.compat.TinkersConstructCompat");
+ mThaumicTinkerer = ReflectionUtils.getClass("thaumic.tinkerer.common.ThaumicTinkerer");
+ mTCProxy = ReflectionUtils.getClass("thaumcraft.common.CommonProxy");
+ // Set the methods we need
+ mIsTcTool = ReflectionUtils.getMethod(mTinkersConstructCompat, "isTConstructTool", new Class[] {ItemStack.class});
+ mGetTcDamage = ReflectionUtils.getMethod(mTinkersConstructCompat, "getDamage", new Class[] {ItemStack.class});
+ mFixTcDamage = ReflectionUtils.getMethod(mTinkersConstructCompat, "fixDamage", new Class[] {ItemStack.class, int.class});
+ mSparkle = ReflectionUtils.getMethod(mTCProxy, "sparkle", new Class[] {float.class, float.class, float.class, int.class});
+ mDrawEssentia = ReflectionUtils.getMethod(mTileRepairerClass, "drawEssentia", new Class[] {});
+ // Set the fields we need
+ mRepairTiconTools = ReflectionUtils.getField(mTTConfigHandler, "repairTConTools");
+ mTicksExisted = ReflectionUtils.getField(mTileRepairerClass, "ticksExisted");
+ mInventory = ReflectionUtils.getField(mTileRepairerClass, "inventorySlots");
+ mTookLastTick = ReflectionUtils.getField(mTileRepairerClass, "tookLastTick");
+ mDamageLastTick = ReflectionUtils.getField(mTileRepairerClass, "dmgLastTick");
+ mProxyTC = ReflectionUtils.getField(mThaumicTinkerer, "tcProxy");
+ repairTConTools = (boolean) ReflectionUtils.getFieldValue(mRepairTiconTools);
+ mInit = true;
+ }
+ if (mInit) {
+ if (mTileRepairerClass.isInstance(aTile)) {
+ int ticksExisted = (int) ReflectionUtils.getFieldValue(mTicksExisted, aTile);
+ ItemStack[] inventorySlots = (ItemStack[]) ReflectionUtils.getFieldValue(mInventory, aTile);
+ boolean tookLastTick = (boolean) ReflectionUtils.getFieldValue(mTookLastTick, aTile);
+ int dmgLastTick = (int) ReflectionUtils.getFieldValue(mDamageLastTick, aTile);
+ ticksExisted++;
+ ReflectionUtils.setField(aTile, mTicksExisted, ticksExisted);
+ boolean aDidRun = false;
+ if (ticksExisted % 10 == 0) {
+ if (Loader.isModLoaded("TConstruct") && repairTConTools && inventorySlots[0] != null && isTConstructTool(inventorySlots[0])) {
+ final int dmg = getDamage(inventorySlots[0]);
+ if (dmg > 0) {
+ final int essentia = drawEssentia(aTile);
+ fixDamage(inventorySlots[0], essentia);
+ aTile.markDirty();
+ if (dmgLastTick != 0 && dmgLastTick != dmg) {
+ sparkle((float)(aTile.xCoord + 0.25 + Math.random() / 2.0), (float)(aTile.yCoord + 1 + Math.random() / 2.0), (float)(aTile.zCoord + 0.25 + Math.random() / 2.0), 0);
+ tookLastTick = true;
+ }
+ else {
+ tookLastTick = false;
+ }
+ }
+ else {
+ tookLastTick = false;
+ }
+ dmgLastTick = ((inventorySlots[0] == null) ? 0 : getDamage(inventorySlots[0]));
+ aDidRun = true;
+ }
+ if (inventorySlots[0] != null && inventorySlots[0].getItemDamage() > 0 && inventorySlots[0].getItem().isRepairable()) {
+ final int essentia2 = drawEssentia(aTile);
+ final int dmg2 = inventorySlots[0].getItemDamage();
+ inventorySlots[0].setItemDamage(Math.max(0, dmg2 - essentia2));
+ aTile.markDirty();
+ if (dmgLastTick != 0 && dmgLastTick != dmg2) {
+ sparkle((float)(aTile.xCoord + 0.25 + Math.random() / 2.0), (float)(aTile.yCoord + 1 + Math.random() / 2.0), (float)(aTile.zCoord + 0.25 + Math.random() / 2.0), 0);
+ tookLastTick = true;
+ }
+ else {
+ tookLastTick = false;
+ }
+ }
+ else {
+ tookLastTick = false;
+ }
+ dmgLastTick = ((inventorySlots[0] == null) ? 0 : inventorySlots[0].getItemDamage());
+ aDidRun = true;
+ }
+ if (aDidRun) {
+ ReflectionUtils.setField(aTile, mInventory, inventorySlots);
+ ReflectionUtils.setField(aTile, mTookLastTick, tookLastTick);
+ ReflectionUtils.setField(aTile, mDamageLastTick, dmgLastTick);
+ }
+ }
+ }
+ }
+
+ public ClassTransformer_TT_ThaumicRestorer(byte[] basicClass) {
+ ClassReader aTempReader = null;
+ ClassWriter aTempWriter = null;
+ boolean obfuscated = false;
+ aTempReader = new ClassReader(basicClass);
+ aTempWriter = new ClassWriter(aTempReader, ClassWriter.COMPUTE_FRAMES);
+ AddAdapter aMethodStripper = new AddAdapter(aTempWriter);
+ aTempReader.accept(aMethodStripper, 0);
+ obfuscated = aMethodStripper.isObfuscated;
+ String aUpdateEntity = obfuscated ? "func_145845_h" : "updateEntity";
+ Preloader_Logger.LOG("Thaumic Tinkerer RepairItem Patch", Level.INFO, "Patching: "+aUpdateEntity+", Are we patching obfuscated methods? "+obfuscated);
+ //injectMethod(aUpdateEntity, aTempWriter, obfuscated);
+ injectMethodNew(aTempWriter, obfuscated);
+ if (aTempReader != null && aTempWriter != null) {
+ isValid = true;
+ }
+ else {
+ isValid = false;
+ }
+ Preloader_Logger.LOG("Thaumic Tinkerer RepairItem 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 injectMethodNew(ClassWriter cw, boolean obfuscated) {
+ MethodVisitor mv;
+ boolean didInject = false;
+ String aUpdateEntity = obfuscated ? "func_145845_h" : "updateEntity";
+ String aTileEntity = obfuscated ? "aor" : "net/minecraft/tileentity/TileEntity";
+ Preloader_Logger.LOG("Thaumic Tinkerer RepairItem Patch", Level.INFO, "Injecting " + aUpdateEntity + ".");
+ mv = cw.visitMethod(ACC_PUBLIC, aUpdateEntity, "()V", null, null);
+ mv.visitCode();
+ Label l0 = new Label();
+ mv.visitLabel(l0);
+ mv.visitLineNumber(60, l0);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitMethodInsn(INVOKESTATIC, "gtPlusPlus/preloader/asm/transformers/ClassTransformer_TT_ThaumicRestorer", "updateEntity", "(L"+aTileEntity+";)V", false);
+ Label l1 = new Label();
+ mv.visitLabel(l1);
+ mv.visitLineNumber(61, l1);
+ mv.visitInsn(RETURN);
+ Label l2 = new Label();
+ mv.visitLabel(l2);
+ mv.visitLocalVariable("this", "Lthaumic/tinkerer/common/block/tile/TileRepairer;", null, l0, l2, 0);
+ mv.visitMaxs(1, 1);
+ mv.visitEnd();
+ didInject = true;
+ Preloader_Logger.LOG("Thaumic Tinkerer RepairItem Patch", Level.INFO, "Method injection complete. "+(obfuscated ? "Obfuscated" : "Non-Obfuscated"));
+ return didInject;
+ }
+
+ public boolean injectMethod(String aMethodName, ClassWriter cw, boolean obfuscated) {
+ MethodVisitor mv;
+ boolean didInject = false;
+ Preloader_Logger.LOG("Thaumic Tinkerer RepairItem Patch", Level.INFO, "Injecting " + aMethodName + ".");
+
+ String aItemStack = obfuscated ? "add" : "net/minecraft/item/ItemStack";
+ String aItem = obfuscated ? "adb" : "net/minecraft/item/Item";
+ String aGetItemDamage = obfuscated ? "func_150976_a" : "getItemDamage";
+ String aGetItem = obfuscated ? "func_77973_b" : "getItem";
+ String aSetItemDamage = obfuscated ? "func_77964_b" : "setItemDamage";
+ String aIsRepairable = obfuscated ? "func_82789_a" : "isRepairable";
+
+ mv = cw.visitMethod(ACC_PUBLIC, aMethodName, "()V", null, null);
+ mv.visitCode();
+ Label l0 = new Label();
+ mv.visitLabel(l0);
+ mv.visitLineNumber(59, l0);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitInsn(DUP);
+ mv.visitFieldInsn(GETFIELD, "thaumic/tinkerer/common/block/tile/TileRepairer", "ticksExisted", "I");
+ mv.visitInsn(ICONST_1);
+ mv.visitInsn(IADD);
+ mv.visitInsn(DUP_X1);
+ mv.visitFieldInsn(PUTFIELD, "thaumic/tinkerer/common/block/tile/TileRepairer", "ticksExisted", "I");
+ mv.visitIntInsn(BIPUSH, 10);
+ mv.visitInsn(IREM);
+ Label l1 = new Label();
+ mv.visitJumpInsn(IFNE, l1);
+ Label l2 = new Label();
+ mv.visitLabel(l2);
+ mv.visitLineNumber(60, l2);
+ mv.visitLdcInsn("TConstruct");
+ mv.visitMethodInsn(INVOKESTATIC, "cpw/mods/fml/common/Loader", "isModLoaded", "(Ljava/lang/String;)Z", false);
+ Label l3 = new Label();
+ mv.visitJumpInsn(IFEQ, l3);
+ mv.visitFieldInsn(GETSTATIC, "thaumic/tinkerer/common/core/handler/ConfigHandler", "repairTConTools", "Z");
+ mv.visitJumpInsn(IFEQ, l3);
+ Label l4 = new Label();
+ mv.visitLabel(l4);
+ mv.visitLineNumber(61, l4);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitFieldInsn(GETFIELD, "thaumic/tinkerer/common/block/tile/TileRepairer", "inventorySlots", "[L"+aItemStack+";");
+ mv.visitInsn(ICONST_0);
+ mv.visitInsn(AALOAD);
+ mv.visitJumpInsn(IFNULL, l3);
+ Label l5 = new Label();
+ mv.visitLabel(l5);
+ mv.visitLineNumber(62, l5);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitFieldInsn(GETFIELD, "thaumic/tinkerer/common/block/tile/TileRepairer", "inventorySlots", "[L"+aItemStack+";");
+ mv.visitInsn(ICONST_0);
+ mv.visitInsn(AALOAD);
+ mv.visitMethodInsn(INVOKESTATIC, "thaumic/tinkerer/common/compat/TinkersConstructCompat", "isTConstructTool", "(L"+aItemStack+";)Z", false);
+ mv.visitJumpInsn(IFEQ, l3);
+ Label l6 = new Label();
+ mv.visitLabel(l6);
+ mv.visitLineNumber(63, l6);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitFieldInsn(GETFIELD, "thaumic/tinkerer/common/block/tile/TileRepairer", "inventorySlots", "[L"+aItemStack+";");
+ mv.visitInsn(ICONST_0);
+ mv.visitInsn(AALOAD);
+ mv.visitMethodInsn(INVOKESTATIC, "thaumic/tinkerer/common/compat/TinkersConstructCompat", "getDamage", "(L"+aItemStack+";)I", false);
+ mv.visitVarInsn(ISTORE, 1);
+ Label l7 = new Label();
+ mv.visitLabel(l7);
+ mv.visitLineNumber(64, l7);
+ mv.visitVarInsn(ILOAD, 1);
+ Label l8 = new Label();
+ mv.visitJumpInsn(IFLE, l8);
+ Label l9 = new Label();
+ mv.visitLabel(l9);
+ mv.visitLineNumber(65, l9);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "thaumic/tinkerer/common/block/tile/TileRepairer", "drawEssentia", "()I", false);
+ mv.visitVarInsn(ISTORE, 2);
+ Label l10 = new Label();
+ mv.visitLabel(l10);
+ mv.visitLineNumber(66, l10);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitFieldInsn(GETFIELD, "thaumic/tinkerer/common/block/tile/TileRepairer", "inventorySlots", "[L"+aItemStack+";");
+ mv.visitInsn(ICONST_0);
+ mv.visitInsn(AALOAD);
+ mv.visitVarInsn(ILOAD, 2);
+ mv.visitMethodInsn(INVOKESTATIC, "thaumic/tinkerer/common/compat/TinkersConstructCompat", "fixDamage", "(L"+aItemStack+";I)Z", false);
+ mv.visitInsn(POP);
+ Label l11 = new Label();
+ mv.visitLabel(l11);
+ mv.visitLineNumber(67, l11);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "thaumic/tinkerer/common/block/tile/TileRepairer", "markDirty", "()V", false);
+ Label l12 = new Label();
+ mv.visitLabel(l12);
+ mv.visitLineNumber(68, l12);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitFieldInsn(GETFIELD, "thaumic/tinkerer/common/block/tile/TileRepairer", "dmgLastTick", "I");
+ Label l13 = new Label();
+ mv.visitJumpInsn(IFEQ, l13);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitFieldInsn(GETFIELD, "thaumic/tinkerer/common/block/tile/TileRepairer", "dmgLastTick", "I");
+ mv.visitVarInsn(ILOAD, 1);
+ mv.visitJumpInsn(IF_ICMPEQ, l13);
+ Label l14 = new Label();
+ mv.visitLabel(l14);
+ mv.visitLineNumber(69, l14);
+ mv.visitFieldInsn(GETSTATIC, "thaumic/tinkerer/common/ThaumicTinkerer", "tcProxy", "Lthaumcraft/common/CommonProxy;");
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitFieldInsn(GETFIELD, "thaumic/tinkerer/common/block/tile/TileRepairer", "xCoord", "I");
+ mv.visitInsn(I2D);
+ mv.visitLdcInsn(new Double("0.25"));
+ mv.visitInsn(DADD);
+ mv.visitMethodInsn(INVOKESTATIC, "java/lang/Math", "random", "()D", false);
+ mv.visitLdcInsn(new Double("2.0"));
+ mv.visitInsn(DDIV);
+ mv.visitInsn(DADD);
+ mv.visitInsn(D2F);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitFieldInsn(GETFIELD, "thaumic/tinkerer/common/block/tile/TileRepairer", "yCoord", "I");
+ mv.visitInsn(ICONST_1);
+ mv.visitInsn(IADD);
+ mv.visitInsn(I2D);
+ mv.visitMethodInsn(INVOKESTATIC, "java/lang/Math", "random", "()D", false);
+ mv.visitLdcInsn(new Double("2.0"));
+ mv.visitInsn(DDIV);
+ mv.visitInsn(DADD);
+ mv.visitInsn(D2F);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitFieldInsn(GETFIELD, "thaumic/tinkerer/common/block/tile/TileRepairer", "zCoord", "I");
+ mv.visitInsn(I2D);
+ mv.visitLdcInsn(new Double("0.25"));
+ mv.visitInsn(DADD);
+ mv.visitMethodInsn(INVOKESTATIC, "java/lang/Math", "random", "()D", false);
+ mv.visitLdcInsn(new Double("2.0"));
+ mv.visitInsn(DDIV);
+ mv.visitInsn(DADD);
+ mv.visitInsn(D2F);
+ mv.visitInsn(ICONST_0);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "thaumcraft/common/CommonProxy", "sparkle", "(FFFI)V", false);
+ Label l15 = new Label();
+ mv.visitLabel(l15);
+ mv.visitLineNumber(70, l15);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitInsn(ICONST_1);
+ mv.visitFieldInsn(PUTFIELD, "thaumic/tinkerer/common/block/tile/TileRepairer", "tookLastTick", "Z");
+ Label l16 = new Label();
+ mv.visitLabel(l16);
+ mv.visitLineNumber(71, l16);
+ Label l17 = new Label();
+ mv.visitJumpInsn(GOTO, l17);
+ mv.visitLabel(l13);
+ mv.visitFrame(Opcodes.F_APPEND,2, new Object[] {Opcodes.INTEGER, Opcodes.INTEGER}, 0, null);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitInsn(ICONST_0);
+ mv.visitFieldInsn(PUTFIELD, "thaumic/tinkerer/common/block/tile/TileRepairer", "tookLastTick", "Z");
+ Label l18 = new Label();
+ mv.visitLabel(l18);
+ mv.visitLineNumber(72, l18);
+ mv.visitJumpInsn(GOTO, l17);
+ mv.visitLabel(l8);
+ mv.visitFrame(Opcodes.F_CHOP,1, null, 0, null);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitInsn(ICONST_0);
+ mv.visitFieldInsn(PUTFIELD, "thaumic/tinkerer/common/block/tile/TileRepairer", "tookLastTick", "Z");
+ mv.visitLabel(l17);
+ mv.visitLineNumber(73, l17);
+ mv.visitFrame(Opcodes.F_SAME, 0, null, 0, null);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitFieldInsn(GETFIELD, "thaumic/tinkerer/common/block/tile/TileRepairer", "inventorySlots", "[L"+aItemStack+";");
+ mv.visitInsn(ICONST_0);
+ mv.visitInsn(AALOAD);
+ Label l19 = new Label();
+ mv.visitJumpInsn(IFNONNULL, l19);
+ mv.visitInsn(ICONST_0);
+ Label l20 = new Label();
+ mv.visitJumpInsn(GOTO, l20);
+ mv.visitLabel(l19);
+ mv.visitFrame(Opcodes.F_SAME1, 0, null, 1, new Object[] {"thaumic/tinkerer/common/block/tile/TileRepairer"});
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitFieldInsn(GETFIELD, "thaumic/tinkerer/common/block/tile/TileRepairer", "inventorySlots", "[L"+aItemStack+";");
+ mv.visitInsn(ICONST_0);
+ mv.visitInsn(AALOAD);
+ mv.visitMethodInsn(INVOKESTATIC, "thaumic/tinkerer/common/compat/TinkersConstructCompat", "getDamage", "(L"+aItemStack+";)I", false);
+ mv.visitLabel(l20);
+ mv.visitFrame(Opcodes.F_FULL, 2, new Object[] {"thaumic/tinkerer/common/block/tile/TileRepairer", Opcodes.INTEGER}, 2, new Object[] {"thaumic/tinkerer/common/block/tile/TileRepairer", Opcodes.INTEGER});
+ mv.visitFieldInsn(PUTFIELD, "thaumic/tinkerer/common/block/tile/TileRepairer", "dmgLastTick", "I");
+ Label l21 = new Label();
+ mv.visitLabel(l21);
+ mv.visitLineNumber(74, l21);
+ mv.visitInsn(RETURN);
+ mv.visitLabel(l3);
+ mv.visitLineNumber(78, l3);
+ mv.visitFrame(Opcodes.F_CHOP,1, null, 0, null);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitFieldInsn(GETFIELD, "thaumic/tinkerer/common/block/tile/TileRepairer", "inventorySlots", "[L"+aItemStack+";");
+ mv.visitInsn(ICONST_0);
+ mv.visitInsn(AALOAD);
+ Label l22 = new Label();
+ mv.visitJumpInsn(IFNULL, l22);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitFieldInsn(GETFIELD, "thaumic/tinkerer/common/block/tile/TileRepairer", "inventorySlots", "[L"+aItemStack+";");
+ mv.visitInsn(ICONST_0);
+ mv.visitInsn(AALOAD);
+ mv.visitMethodInsn(INVOKEVIRTUAL, ""+aItemStack+"", ""+aGetItemDamage+"", "()I", false);
+ mv.visitJumpInsn(IFLE, l22);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitFieldInsn(GETFIELD, "thaumic/tinkerer/common/block/tile/TileRepairer", "inventorySlots", "[L"+aItemStack+";");
+ mv.visitInsn(ICONST_0);
+ mv.visitInsn(AALOAD);
+ mv.visitMethodInsn(INVOKEVIRTUAL, ""+aItemStack+"", ""+aGetItem+"", "()L"+aItem+";", false);
+ mv.visitMethodInsn(INVOKEVIRTUAL, ""+aItem+"", ""+aIsRepairable+"", "()Z", false);
+ mv.visitJumpInsn(IFEQ, l22);
+ Label l23 = new Label();
+ mv.visitLabel(l23);
+ mv.visitLineNumber(79, l23);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "thaumic/tinkerer/common/block/tile/TileRepairer", "drawEssentia", "()I", false);
+ mv.visitVarInsn(ISTORE, 1);
+ Label l24 = new Label();
+ mv.visitLabel(l24);
+ mv.visitLineNumber(80, l24);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitFieldInsn(GETFIELD, "thaumic/tinkerer/common/block/tile/TileRepairer", "inventorySlots", "[L"+aItemStack+";");
+ mv.visitInsn(ICONST_0);
+ mv.visitInsn(AALOAD);
+ mv.visitMethodInsn(INVOKEVIRTUAL, ""+aItemStack+"", ""+aGetItemDamage+"", "()I", false);
+ mv.visitVarInsn(ISTORE, 2);
+ Label l25 = new Label();
+ mv.visitLabel(l25);
+ mv.visitLineNumber(81, l25);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitFieldInsn(GETFIELD, "thaumic/tinkerer/common/block/tile/TileRepairer", "inventorySlots", "[L"+aItemStack+";");
+ mv.visitInsn(ICONST_0);
+ mv.visitInsn(AALOAD);
+ mv.visitInsn(ICONST_0);
+ mv.visitVarInsn(ILOAD, 2);
+ mv.visitVarInsn(ILOAD, 1);
+ mv.visitInsn(ISUB);
+ mv.visitMethodInsn(INVOKESTATIC, "java/lang/Math", "max", "(II)I", false);
+ mv.visitMethodInsn(INVOKEVIRTUAL, ""+aItemStack+"", ""+aSetItemDamage+"", "(I)V", false);
+ Label l26 = new Label();
+ mv.visitLabel(l26);
+ mv.visitLineNumber(82, l26);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "thaumic/tinkerer/common/block/tile/TileRepairer", "markDirty", "()V", false);
+ Label l27 = new Label();
+ mv.visitLabel(l27);
+ mv.visitLineNumber(84, l27);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitFieldInsn(GETFIELD, "thaumic/tinkerer/common/block/tile/TileRepairer", "dmgLastTick", "I");
+ Label l28 = new Label();
+ mv.visitJumpInsn(IFEQ, l28);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitFieldInsn(GETFIELD, "thaumic/tinkerer/common/block/tile/TileRepairer", "dmgLastTick", "I");
+ mv.visitVarInsn(ILOAD, 2);
+ mv.visitJumpInsn(IF_ICMPEQ, l28);
+ Label l29 = new Label();
+ mv.visitLabel(l29);
+ mv.visitLineNumber(85, l29);
+ mv.visitFieldInsn(GETSTATIC, "thaumic/tinkerer/common/ThaumicTinkerer", "tcProxy", "Lthaumcraft/common/CommonProxy;");
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitFieldInsn(GETFIELD, "thaumic/tinkerer/common/block/tile/TileRepairer", "xCoord", "I");
+ mv.visitInsn(I2D);
+ mv.visitLdcInsn(new Double("0.25"));
+ mv.visitInsn(DADD);
+ mv.visitMethodInsn(INVOKESTATIC, "java/lang/Math", "random", "()D", false);
+ mv.visitLdcInsn(new Double("2.0"));
+ mv.visitInsn(DDIV);
+ mv.visitInsn(DADD);
+ mv.visitInsn(D2F);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitFieldInsn(GETFIELD, "thaumic/tinkerer/common/block/tile/TileRepairer", "yCoord", "I");
+ mv.visitInsn(ICONST_1);
+ mv.visitInsn(IADD);
+ mv.visitInsn(I2D);
+ mv.visitMethodInsn(INVOKESTATIC, "java/lang/Math", "random", "()D", false);
+ mv.visitLdcInsn(new Double("2.0"));
+ mv.visitInsn(DDIV);
+ mv.visitInsn(DADD);
+ mv.visitInsn(D2F);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitFieldInsn(GETFIELD, "thaumic/tinkerer/common/block/tile/TileRepairer", "zCoord", "I");
+ mv.visitInsn(I2D);
+ mv.visitLdcInsn(new Double("0.25"));
+ mv.visitInsn(DADD);
+ mv.visitMethodInsn(INVOKESTATIC, "java/lang/Math", "random", "()D", false);
+ mv.visitLdcInsn(new Double("2.0"));
+ mv.visitInsn(DDIV);
+ mv.visitInsn(DADD);
+ mv.visitInsn(D2F);
+ mv.visitInsn(ICONST_0);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "thaumcraft/common/CommonProxy", "sparkle", "(FFFI)V", false);
+ Label l30 = new Label();
+ mv.visitLabel(l30);
+ mv.visitLineNumber(86, l30);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitInsn(ICONST_1);
+ mv.visitFieldInsn(PUTFIELD, "thaumic/tinkerer/common/block/tile/TileRepairer", "tookLastTick", "Z");
+ Label l31 = new Label();
+ mv.visitLabel(l31);
+ mv.visitLineNumber(87, l31);
+ Label l32 = new Label();
+ mv.visitJumpInsn(GOTO, l32);
+ mv.visitLabel(l28);
+ mv.visitFrame(Opcodes.F_APPEND,2, new Object[] {Opcodes.INTEGER, Opcodes.INTEGER}, 0, null);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitInsn(ICONST_0);
+ mv.visitFieldInsn(PUTFIELD, "thaumic/tinkerer/common/block/tile/TileRepairer", "tookLastTick", "Z");
+ Label l33 = new Label();
+ mv.visitLabel(l33);
+ mv.visitLineNumber(88, l33);
+ mv.visitJumpInsn(GOTO, l32);
+ mv.visitLabel(l22);
+ mv.visitFrame(Opcodes.F_CHOP,2, null, 0, null);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitInsn(ICONST_0);
+ mv.visitFieldInsn(PUTFIELD, "thaumic/tinkerer/common/block/tile/TileRepairer", "tookLastTick", "Z");
+ mv.visitLabel(l32);
+ mv.visitLineNumber(90, l32);
+ mv.visitFrame(Opcodes.F_SAME, 0, null, 0, null);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitFieldInsn(GETFIELD, "thaumic/tinkerer/common/block/tile/TileRepairer", "inventorySlots", "[L"+aItemStack+";");
+ mv.visitInsn(ICONST_0);
+ mv.visitInsn(AALOAD);
+ Label l34 = new Label();
+ mv.visitJumpInsn(IFNONNULL, l34);
+ mv.visitInsn(ICONST_0);
+ Label l35 = new Label();
+ mv.visitJumpInsn(GOTO, l35);
+ mv.visitLabel(l34);
+ mv.visitFrame(Opcodes.F_SAME1, 0, null, 1, new Object[] {"thaumic/tinkerer/common/block/tile/TileRepairer"});
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitFieldInsn(GETFIELD, "thaumic/tinkerer/common/block/tile/TileRepairer", "inventorySlots", "[L"+aItemStack+";");
+ mv.visitInsn(ICONST_0);
+ mv.visitInsn(AALOAD);
+ mv.visitMethodInsn(INVOKEVIRTUAL, ""+aItemStack+"", ""+aGetItemDamage+"", "()I", false);
+ mv.visitLabel(l35);
+ mv.visitFrame(Opcodes.F_FULL, 1, new Object[] {"thaumic/tinkerer/common/block/tile/TileRepairer"}, 2, new Object[] {"thaumic/tinkerer/common/block/tile/TileRepairer", Opcodes.INTEGER});
+ mv.visitFieldInsn(PUTFIELD, "thaumic/tinkerer/common/block/tile/TileRepairer", "dmgLastTick", "I");
+ mv.visitLabel(l1);
+ mv.visitLineNumber(92, l1);
+ mv.visitFrame(Opcodes.F_SAME, 0, null, 0, null);
+ mv.visitInsn(RETURN);
+ Label l36 = new Label();
+ mv.visitLabel(l36);
+ mv.visitLocalVariable("this", "Lthaumic/tinkerer/common/block/tile/TileRepairer;", null, l0, l36, 0);
+ mv.visitLocalVariable("dmg", "I", null, l7, l3, 1);
+ mv.visitLocalVariable("essentia", "I", null, l10, l18, 2);
+ mv.visitLocalVariable("essentia", "I", null, l24, l33, 1);
+ mv.visitLocalVariable("dmg", "I", null, l25, l33, 2);
+ mv.visitMaxs(9, 3);
+ mv.visitEnd();
+ didInject = true;
+ Preloader_Logger.LOG("Thaumic Tinkerer RepairItem Patch", Level.INFO, "Method injection complete. "+(obfuscated ? "Obfuscated" : "Non-Obfuscated"));
+ return didInject;
+ }
+
+ public class AddAdapter extends ClassVisitor {
+
+ public AddAdapter(ClassVisitor cv) {
+ super(ASM5, cv);
+ this.cv = cv;
+ }
+
+ private final String[] aMethodsToStrip = new String[] {"updateEntity", "func_145845_h"};
+ public boolean isObfuscated = false;
+
+
+ @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;
+ if (s.equals(aMethodsToStrip[1])) {
+ isObfuscated = true;
+ }
+ break;
+ }
+ }
+ if (!found) {
+ methodVisitor = super.visitMethod(access, name, desc, signature, exceptions);
+ }
+ else {
+ methodVisitor = null;
+ }
+
+ if (found) {
+ Preloader_Logger.LOG("Thaumic Tinkerer RepairItem Patch", Level.INFO,
+ "Found method " + name + ", removing.");
+ }
+ return methodVisitor;
+ }
+
+ }
+
+
+
+
+}
diff --git a/src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_TiConFluids.java b/src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_TiConFluids.java
new file mode 100644
index 0000000000..083041050d
--- /dev/null
+++ b/src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_TiConFluids.java
@@ -0,0 +1,164 @@
+package gtPlusPlus.preloader.asm.transformers;
+
+import static org.objectweb.asm.Opcodes.*;
+
+import java.io.IOException;
+
+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 gtPlusPlus.preloader.DevHelper;
+
+
+public class ClassTransformer_TiConFluids {
+
+
+ //Leftover Code, in case I ever want to inject interfaces.
+ //private static final String cloneableInterface = "java/lang/Cloneable";
+
+ //The qualified name of the class we plan to transform.
+ private static final String className = "tconstruct.smeltery.blocks.TConstructFluid";
+
+ private final boolean isValid;
+ private final boolean isObfuscated;
+ private final String methodName;
+ private final ClassReader reader;
+ private final ClassWriter writer;
+
+ public ClassTransformer_TiConFluids(String aMethodName, boolean obfuscated, byte[] basicClass) {
+ isObfuscated = obfuscated;
+
+ methodName = obfuscated ? DevHelper.getSRG(aMethodName) : aMethodName;
+
+ ClassReader aTempReader = null;
+ ClassWriter aTempWriter = null;
+
+ aTempReader = new ClassReader(basicClass);
+ aTempWriter = new ClassWriter(aTempReader, ClassWriter.COMPUTE_FRAMES);
+ aTempReader.accept(new localClassVisitir(aTempWriter, isObfuscated), 0);
+
+ if (aTempReader != null && aTempWriter != null) {
+ isValid = true;
+ }
+ else {
+ isValid = false;
+ }
+ reader = aTempReader;
+ writer = aTempWriter;
+
+ if (reader != null && writer != null) {
+ injectMethod();
+ }
+
+ }
+
+ public boolean isValidTransformer() {
+ return isValid;
+ }
+
+ public ClassReader getReader() {
+ return reader;
+ }
+
+ public ClassWriter getWriter() {
+ return writer;
+ }
+
+ public void injectMethod() {
+ if (isValidTransformer()) {
+ FMLRelaunchLog.log("[GT++ ASM] Bright Fluids", Level.INFO, "Injecting "+methodName+" into "+className+". ["+(isObfuscated ? "Obfuscated" : "Unobfuscated")+"]");
+ //Account for Obfuscated constructor args.
+ String IBlockAccessName = isObfuscated ? "ahl" : "net/minecraft/world/IBlockAccess";
+ String aConstructorTypes = "(L"+IBlockAccessName+";III)I";
+
+ MethodVisitor mv = getWriter().visitMethod(ACC_PUBLIC, methodName, aConstructorTypes, null, null);
+ mv.visitCode();
+ Label l0 = new Label();
+ mv.visitLabel(l0);
+ mv.visitLineNumber(17, l0);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitFieldInsn(GETFIELD, "tconstruct/smeltery/blocks/TConstructFluid", "maxScaledLight", "I");
+ mv.visitVarInsn(ISTORE, 5);
+ Label l1 = new Label();
+ mv.visitLabel(l1);
+ mv.visitLineNumber(18, l1);
+ mv.visitVarInsn(ILOAD, 5);
+ Label l2 = new Label();
+ mv.visitJumpInsn(IFLE, l2);
+ Label l3 = new Label();
+ mv.visitLabel(l3);
+ mv.visitLineNumber(19, l3);
+ mv.visitVarInsn(ILOAD, 5);
+ mv.visitInsn(IRETURN);
+ mv.visitLabel(l2);
+ mv.visitLineNumber(21, l2);
+ mv.visitFrame(F_APPEND,1, new Object[] {INTEGER}, 0, null);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitVarInsn(ALOAD, 1);
+ mv.visitVarInsn(ILOAD, 2);
+ mv.visitVarInsn(ILOAD, 3);
+ mv.visitVarInsn(ILOAD, 4);
+ //net.minecraftforge.fluids.BlockFluidClassic.getLightValue(IBlockAccess, int, int, int)
+ mv.visitMethodInsn(INVOKESPECIAL, "net/minecraftforge/fluids/BlockFluidClassic", methodName, aConstructorTypes, false);
+ mv.visitInsn(IRETURN);
+ Label l4 = new Label();
+ mv.visitLabel(l4);
+ mv.visitLocalVariable("this", "Ltconstruct/smeltery/blocks/TConstructFluid;", null, l0, l4, 0);
+ mv.visitLocalVariable("world", "L"+IBlockAccessName+";", null, l0, l4, 1);
+ mv.visitLocalVariable("x", "I", null, l0, l4, 2);
+ mv.visitLocalVariable("y", "I", null, l0, l4, 3);
+ mv.visitLocalVariable("z", "I", null, l0, l4, 4);
+ mv.visitLocalVariable("maxLight", "I", null, l1, l4, 5);
+ mv.visitMaxs(5, 6);
+ mv.visitEnd();
+ FMLRelaunchLog.log("[GT++ ASM] Bright Fluids", Level.INFO, "Method injection complete.");
+
+ }
+ }
+
+ public final class localClassVisitir extends ClassVisitor {
+
+ private final boolean mIsObfuscated;
+
+ public localClassVisitir(ClassVisitor cv, boolean obfuscated) {
+ super(ASM5, cv);
+ mIsObfuscated = obfuscated;
+ }
+
+ @Override
+ public MethodVisitor visitMethod(int access, String name, String desc, String signature, String[] exceptions) {
+ String IBlockAccessName = isObfuscated ? "ahl" : "net/minecraft/world/IBlockAccess";
+ String aConstructorTypes = "(L"+IBlockAccessName+";III)I";
+ MethodVisitor methodVisitor = super.visitMethod(access, name, desc, signature, exceptions);
+ if(name.equals(methodName) && desc.equals(aConstructorTypes)) {
+ FMLRelaunchLog.log("[GT++ ASM] OreDictTransformer", Level.INFO, "Found target method. ["+mIsObfuscated+"]");
+ return new localMethodVisitor(methodVisitor, mIsObfuscated);
+ }
+ return methodVisitor;
+ }
+
+ }
+
+ private final class localMethodVisitor extends MethodVisitor {
+
+ private final boolean mObfuscated;
+
+ public localMethodVisitor(MethodVisitor mv, boolean obfuscated) {
+ super(ASM5, mv);
+ this.mObfuscated = obfuscated;
+ }
+
+ @Override
+ public void visitCode() {
+
+ }
+
+ }
+
+
+}
diff --git a/src/main/java/gtPlusPlus/preloader/asm/transformers/Preloader_ClassTransformer.java b/src/main/java/gtPlusPlus/preloader/asm/transformers/Preloader_ClassTransformer.java
new file mode 100644
index 0000000000..05a476c1c8
--- /dev/null
+++ b/src/main/java/gtPlusPlus/preloader/asm/transformers/Preloader_ClassTransformer.java
@@ -0,0 +1,79 @@
+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/Preloader_GT_OreDict",
+ "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/Preloader_GT_OreDict",
+ "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_ClassTransformer2.java b/src/main/java/gtPlusPlus/preloader/asm/transformers/Preloader_ClassTransformer2.java
new file mode 100644
index 0000000000..443337bd35
--- /dev/null
+++ b/src/main/java/gtPlusPlus/preloader/asm/transformers/Preloader_ClassTransformer2.java
@@ -0,0 +1,16 @@
+package gtPlusPlus.preloader.asm.transformers;
+
+public class Preloader_ClassTransformer2 {
+
+ /**
+ *
+ * So what I'd try is something like patch a new field into BaseMetaTileEntity to hold the ItemNBT,
+ * then patch GT_Block_Machines.breakBlock to store the ItemNBT into that field by calling setItemNBT,
+ * and then patch BaseMetaTileEntity.getDrops to retrieve that field instead of calling setItemNBT
+ * But there's probably a simpler solution if all you want to do is fix this
+ * for your super tanks rather than for all GT machines
+ * (which would only include saving the output count for chest buffers and item distributors...)
+ *
+ */
+
+}
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
new file mode 100644
index 0000000000..5cb2eef066
--- /dev/null
+++ b/src/main/java/gtPlusPlus/preloader/asm/transformers/Preloader_Transformer_Handler.java
@@ -0,0 +1,286 @@
+package gtPlusPlus.preloader.asm.transformers;
+
+import cpw.mods.fml.relauncher.CoreModManager;
+import cpw.mods.fml.relauncher.ReflectionHelper;
+import gtPlusPlus.api.objects.data.AutoMap;
+import gtPlusPlus.preloader.CORE_Preloader;
+import gtPlusPlus.preloader.DevHelper;
+import gtPlusPlus.preloader.Preloader_Logger;
+import gtPlusPlus.preloader.asm.AsmConfig;
+import gtPlusPlus.preloader.asm.transformers.Preloader_ClassTransformer.OreDictionaryVisitor;
+import net.minecraft.launchwrapper.IClassTransformer;
+import net.minecraft.launchwrapper.Launch;
+import org.objectweb.asm.ClassReader;
+import org.objectweb.asm.ClassWriter;
+
+import java.io.File;
+import java.io.IOException;
+
+import static gtPlusPlus.preloader.asm.ClassesToTransform.*;
+
+public class Preloader_Transformer_Handler implements IClassTransformer {
+
+ public static final AsmConfig mConfig;
+ public static final AutoMap<String> IC2_WRENCH_PATCH_CLASS_NAMES = new AutoMap<String>();
+
+ static {
+ mConfig = new AsmConfig(new File("config/GTplusplus/asm.cfg"));
+ Preloader_Logger.INFO("Config Location: "+AsmConfig.config.getConfigFile().getAbsolutePath());
+ Preloader_Logger.INFO("Is DevHelper Valid? "+DevHelper.mIsValidHelper);
+ IC2_WRENCH_PATCH_CLASS_NAMES.add(IC2_BLOCK_BASE_TILE_ENTITY);
+ IC2_WRENCH_PATCH_CLASS_NAMES.add(IC2_BLOCK_MACHINE1);
+ IC2_WRENCH_PATCH_CLASS_NAMES.add(IC2_BLOCK_MACHINE2);
+ IC2_WRENCH_PATCH_CLASS_NAMES.add(IC2_BLOCK_MACHINE3);
+ IC2_WRENCH_PATCH_CLASS_NAMES.add(IC2_BLOCK_KINETIC_GENERATOR);
+ IC2_WRENCH_PATCH_CLASS_NAMES.add(IC2_BLOCK_HEAT_GENERATOR);
+ IC2_WRENCH_PATCH_CLASS_NAMES.add(IC2_BLOCK_GENERATOR);
+ IC2_WRENCH_PATCH_CLASS_NAMES.add(IC2_BLOCK_REACTOR_ACCESS_HATCH);
+ IC2_WRENCH_PATCH_CLASS_NAMES.add(IC2_BLOCK_REACTOR_CHAMBER);
+ IC2_WRENCH_PATCH_CLASS_NAMES.add(IC2_BLOCK_REACTOR_FLUID_PORT);
+ IC2_WRENCH_PATCH_CLASS_NAMES.add(IC2_BLOCK_REACTOR_REDSTONE_PORT);
+ IC2_WRENCH_PATCH_CLASS_NAMES.add(IC2_BLOCK_REACTOR_VESSEL);
+ IC2_WRENCH_PATCH_CLASS_NAMES.add(IC2_BLOCK_PERSONAL);
+ IC2_WRENCH_PATCH_CLASS_NAMES.add(IC2_BLOCK_CHARGEPAD);
+ IC2_WRENCH_PATCH_CLASS_NAMES.add(IC2_BLOCK_ELECTRIC);
+ IC2_WRENCH_PATCH_CLASS_NAMES.add(IC2_BLOCK_LUMINATOR);
+ }
+
+ private static Boolean mObf = null;
+
+ public boolean checkObfuscated() {
+ if (mObf != null) {
+ return mObf;
+ }
+ boolean obfuscated = false;
+ try {
+ obfuscated = !(boolean) ReflectionHelper.findField(CoreModManager.class, "deobfuscatedEnvironment").get(null);
+ } catch (IllegalArgumentException | IllegalAccessException e) {
+ e.printStackTrace();
+ byte[] bs;
+ try {
+ bs = Launch.classLoader.getClassBytes("net.minecraft.world.World");
+ if (bs != null) {
+ obfuscated = false;
+ } else {
+ obfuscated = true;
+ }
+ } catch (IOException e1) {
+ e1.printStackTrace();
+ obfuscated = false;
+ }
+ }
+ mObf = obfuscated;
+ return obfuscated;
+ }
+
+ public byte[] transform(String name, String transformedName, byte[] basicClass) {
+ /*
+ * Here we patch all instances of entity.setHealth and replace them with a static function.
+ * Only EntityLivingBase is left untouched, as nothing else truly needs to be calling this method and avoiding forge hooks.
+ * May exclude all vanilla/forge class if this causes issues though.
+ */
+ /* PatchForge : if (AsmConfig.enabledFixEntitySetHealth && !transformedName.contains("gtPlusPlus.preloader")) {
+
+ //Skip Vanilla/Forge Classes
+ if (transformedName.contains("net.minecraft.") || transformedName.contains("cpw.")) {
+ //break PatchForge;
+ }
+
+ ClassTransformer_Forge_EntityLivingBase_SetHealth aForgeHealthFix = new ClassTransformer_Forge_EntityLivingBase_SetHealth(transformedName, basicClass);
+ if (aForgeHealthFix.isValidTransformer() && aForgeHealthFix.didPatchClass()) {
+ Preloader_Logger.INFO("Fix EntityLivingBase.setHealth misuse", "Transforming "+transformedName);
+ basicClass = aForgeHealthFix.getWriter().toByteArray();
+ }
+ }*/
+
+ // Is this environment obfuscated? (Extra checks just in case some weird shit happens during the check)
+ final boolean obfuscated = checkObfuscated();
+
+ // Fix LWJGL index array out of bounds on keybinding IDs
+ if ((transformedName.equals(LWJGL_KEYBOARD) || transformedName.equals(MINECRAFT_GAMESETTINGS_OBF) || transformedName.equals(MINECRAFT_GAMESETTINGS)) && AsmConfig.enabledLwjglKeybindingFix) {
+ boolean isClientSettingsClass = false;
+ if (!transformedName.equals("org.lwjgl.input.Keyboard")) {
+ isClientSettingsClass = true;
+ }
+ Preloader_Logger.INFO("LWJGL Keybinding index out of bounds fix", "Transforming "+transformedName);
+ return new ClassTransformer_LWJGL_Keyboard(basicClass, isClientSettingsClass).getWriter().toByteArray();
+ }
+
+ //Enable mapping of Tickets and loaded chunks. - Forge
+ if (transformedName.equals(FORGE_CHUNK_MANAGER) && AsmConfig.enableChunkDebugging) {
+ Preloader_Logger.INFO("Chunkloading Patch", "Transforming "+transformedName);
+ return new ClassTransformer_Forge_ChunkLoading(basicClass, false).getWriter().toByteArray();
+ }
+
+ // Fix the OreDictionary - Forge
+ if (transformedName.equals(FORGE_ORE_DICTIONARY) && AsmConfig.enableOreDictPatch) {
+ Preloader_Logger.INFO("OreDictTransformer", "Transforming "+transformedName);
+ ClassWriter classWriter = new ClassWriter(ClassWriter.COMPUTE_FRAMES);
+ new ClassReader(basicClass).accept(new OreDictionaryVisitor(classWriter), 0);
+ return classWriter.toByteArray();
+ }
+
+ // Log Handling of CodeChicken
+ if (transformedName.equals("codechicken.nei.guihook.GuiContainerManager")) {
+ //Preloader_Logger.INFO("CodeChicken GuiContainerManager Patch", "Transforming "+transformedName);
+ //return new ClassTransformer_CC_GuiContainerManager(basicClass).getWriter().toByteArray();
+ }
+ // Fix the OreDictionary COFH
+ if (transformedName.equals(COFH_ORE_DICTIONARY_ARBITER) && (AsmConfig.enableCofhPatch || !obfuscated)) {
+ Preloader_Logger.INFO("COFH", "Transforming "+transformedName);
+ return new ClassTransformer_COFH_OreDictionaryArbiter(basicClass).getWriter().toByteArray();
+ }
+
+ // Fix Tinkers Fluids
+ if (transformedName.equals(TINKERS_FLUID_BLOCK) && AsmConfig.enableTiConFluidLighting) {
+ Preloader_Logger.INFO("Bright Fluids", "Transforming "+transformedName);
+ return new ClassTransformer_TiConFluids("getLightValue", obfuscated, basicClass).getWriter().toByteArray();
+ }
+
+ //Fix RC stuff
+ //Patching PROCESS_VOLUME to allow more transfer limits
+ if (transformedName.equals(RAILCRAFT_FLUID_HELPER) && (AsmConfig.enableRcFlowFix && AsmConfig.maxRailcraftTankProcessVolume != 4000)) {
+ Preloader_Logger.INFO("Railcraft PROCESS_VOLUME Patch", "Transforming "+transformedName);
+ return new ClassTransformer_Railcraft_FluidHelper(basicClass, obfuscated).getWriter().toByteArray();
+ }
+ //Patching TRANSFER_RATE in Fluid Loaders/Unloaders
+ if ((transformedName.equals(RAILCRAFT_TILE_FLUID_LOADER) && AsmConfig.maxRailcraftFluidLoaderFlow != 20) || (transformedName.equals("mods.railcraft.common.blocks.machine.gamma.TileFluidUnloader") && AsmConfig.maxRailcraftFluidUnloaderFlow != 80)) {
+ Preloader_Logger.INFO("Railcraft TRANSFER_RATE Patch", "Transforming "+transformedName);
+ return new ClassTransformer_Railcraft_FluidCartHandling(basicClass, obfuscated, transformedName).getWriter().toByteArray();
+ }
+ //Fix Weird glitch involving negative itemstacks.
+ if (transformedName.equals(RAILCRAFT_INVENTORY_TOOLS) && AsmConfig.enableRcItemDupeFix) {
+ Preloader_Logger.INFO("Railcraft negative ItemStack Fix", "Transforming "+transformedName);
+ return new ClassTransformer_Railcraft_InvTools(basicClass, obfuscated).getWriter().toByteArray();
+ }
+
+ //Fix GC stuff
+ if (AsmConfig.enableGcFuelChanges) {
+ if (transformedName.equals(GALACTICRAFT_FLUID_UTILS)) {
+ Preloader_Logger.INFO("Galacticraft FluidUtils Patch", "Transforming "+transformedName);
+ return new ClassTransformer_GC_FluidUtil(basicClass, false).getWriter().toByteArray();
+ }
+ if (transformedName.equals(GALACTICRAFT_TILE_ENTITY_FUEL_LOADER)) {
+ Preloader_Logger.INFO("Galacticraft Fuel_Loader Patch", "Transforming "+transformedName);
+ return new ClassTransformer_GC_FuelLoader(basicClass, false).getWriter().toByteArray();
+ }
+ if (transformedName.equals(GALACTICRAFT_ENTITY_AUTO_ROCKET)) {
+ Preloader_Logger.INFO("Galacticraft EntityAutoRocket Patch", "Transforming "+transformedName);
+ return new ClassTransformer_GC_EntityAutoRocket(basicClass, false).getWriter().toByteArray();
+ }
+ }
+
+
+ /**
+ * Gregtech ASM Patches
+ */
+
+// if (transformedName.equals(GT_UTILITY)) {
+// Preloader_Logger.INFO("Gregtech Utilities Patch", "Transforming "+transformedName);
+// return new ClassTransformer_GT_Utility(basicClass, transformedName).getWriter().toByteArray();
+// }
+ //Inject Custom constructors for RTG Hatches
+ if (transformedName.equals(GT_MTE_HATCH_ENERGY) || transformedName.equals(GTPP_MTE_HATCH_RTG)) {
+ Preloader_Logger.INFO("Gregtech RTG Patch", "Transforming " + transformedName);
+ return new ClassTransformer_GT_EnergyHatchPatch(basicClass, transformedName).getWriter().toByteArray();
+ }
+ //Try patch achievements
+ if (transformedName.equals(GT_ACHIEVEMENTS)) {
+ Preloader_Logger.INFO("Gregtech Achievements Patch", "Transforming " + transformedName);
+ return new ClassTransformer_GT_Achievements_CrashFix(basicClass, obfuscated).getWriter().toByteArray();
+ }
+
+ //Fix bad handling of a loop left from original decompilation
+ //Also Fix Achievements, although currently disabled.
+ if (transformedName.equals(GT_CLIENT_PROXY)) {
+ Preloader_Logger.INFO("Gregtech Client Proxy Patch", "Transforming " + transformedName);
+ return new ClassTransformer_GT_Client(basicClass, obfuscated).getByteArray();
+ }
+
+ //Make GT packets safer, fill them with debug info.
+ if (transformedName.equals(GT_PACKET_TILE_ENTITY)) {
+ Preloader_Logger.INFO("Gregtech GT_Packet_TileEntity Patch", "Transforming "+transformedName);
+ return new ClassTransformer_GT_Packet_TileEntity(basicClass, obfuscated).getWriter().toByteArray();
+ }
+ //Make the setting of GT Tiles safer, so as not to crash the client.
+ if (transformedName.equals(GT_BASE_META_TILE_ENTITY)) {
+ Preloader_Logger.INFO("Gregtech setMetaTileEntity Patch", "Transforming "+transformedName);
+ return new ClassTransformer_GT_BaseMetaTileEntity(basicClass).getWriter().toByteArray();
+ }
+ //Add extra tools if we're in a dev environment.
+ if (transformedName.equals(GT_METAGENERATED_TOOL) && CORE_Preloader.DEV_ENVIRONMENT) {
+ Preloader_Logger.INFO("Gregtech Additional Tools Patch", "Transforming "+transformedName);
+ return new ClassTransformer_GT_MetaGenerated_Tool(basicClass).getWriter().toByteArray();
+ }
+ //Fix log handling on the charcoal pit
+ if (transformedName.equals(GT_MTE_CHARCOAL_PIT) && AsmConfig.enableGtCharcoalPitFix) {
+ Preloader_Logger.INFO("GT Charcoal Pit Fix", "Transforming "+transformedName);
+ return new ClassTransformer_GT_CharcoalPit(basicClass, obfuscated).getWriter().toByteArray();
+ }
+
+
+
+
+ //Patching Meta Tile Tooltips
+ if (transformedName.equals(GT_ITEM_MACHINES) && AsmConfig.enableGtTooltipFix) {
+ //Preloader_Logger.INFO("Gregtech Tooltip Patch", "Transforming "+transformedName);
+ //return new ClassTransformer_GT_ItemMachines_Tooltip(basicClass, false).getWriter().toByteArray();
+ }
+
+
+ if (transformedName.equals(GT_BLOCK_MACHINES)) {
+ //Fix GT NBT Persistency issue
+ Preloader_Logger.INFO("Gregtech NBT Persistency Patch", "Transforming "+transformedName);
+ byte[] g = new ClassTransformer_GT_BlockMachines_NBT(basicClass, false).getWriter().toByteArray();
+ Preloader_Logger.INFO("Gregtech getTileEntityBaseType Patch", "Transforming "+transformedName);
+ return new ClassTransformer_GT_BlockMachines_MetaPipeEntity(g, 0).getWriter().toByteArray();
+ }
+ if (transformedName.equals(GT_METAPIPE_ITEM) || transformedName.equals(GT_METAPIPE_FRAME) || transformedName.equals(GT_METAPIPE_FLUID)) {
+ Preloader_Logger.INFO("Gregtech getTileEntityBaseType Patch", "Transforming "+transformedName);
+ int mode = 0;
+ if (transformedName.equals(GT_METAPIPE_ITEM)) {
+ mode = 1;
+ }
+ else if (transformedName.equals(GT_METAPIPE_FRAME)) {
+ mode = 2;
+ }
+ else {
+ mode = 3;
+ }
+ return new ClassTransformer_GT_BlockMachines_MetaPipeEntity(basicClass, mode).getWriter().toByteArray();
+ }
+
+
+ //Fix IC2 Wrench Harvesting
+ for (String y : IC2_WRENCH_PATCH_CLASS_NAMES) {
+ if (transformedName.equals(y)) {
+ Preloader_Logger.INFO("IC2 getHarvestTool Patch", "Transforming "+transformedName);
+ return new ClassTransformer_IC2_GetHarvestTool(basicClass, obfuscated, transformedName).getWriter().toByteArray();
+ }
+ }
+
+ //This is breaking IC2 Hazmat, moved to hodgepodge
+// if (transformedName.equals(IC2_ITEM_ARMOUR_HAZMAT)) {
+// Preloader_Logger.INFO("IC2 Hazmat Patch", "Transforming "+transformedName);
+// return new ClassTransformer_IC2_Hazmat(basicClass, transformedName).getWriter().toByteArray();
+// }
+
+ //Fix Thaumcraft Shit
+ //Patching ItemWispEssence to allow invalid item handling
+ if (transformedName.equals(THAUMCRAFT_ITEM_WISP_ESSENCE) && AsmConfig.enableTcAspectSafety) {
+ Preloader_Logger.INFO("Thaumcraft WispEssence_Patch", "Transforming "+transformedName);
+ return new ClassTransformer_TC_ItemWispEssence(basicClass, obfuscated).getWriter().toByteArray();
+ }
+ //Fix Thaumic Tinkerer Shit
+ if (transformedName.equals(THAUMICTINKERER_TILE_REPAIRER) && AsmConfig.enableThaumicTinkererRepairFix) {
+ //Preloader_Logger.INFO("Thaumic Tinkerer RepairItem Patch", "Transforming "+transformedName);
+ //return new ClassTransformer_TT_ThaumicRestorer(basicClass).getWriter().toByteArray();
+ }
+
+
+ return basicClass;
+ }
+
+
+
+}
diff --git a/src/main/java/gtPlusPlus/preloader/keyboard/BetterKeyboard.java b/src/main/java/gtPlusPlus/preloader/keyboard/BetterKeyboard.java
new file mode 100644
index 0000000000..e25c06653c
--- /dev/null
+++ b/src/main/java/gtPlusPlus/preloader/keyboard/BetterKeyboard.java
@@ -0,0 +1,132 @@
+/*
+ * 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 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;
+import net.minecraft.client.resources.I18n;
+
+/**
+ * <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.
+ *
+ * @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$
+ */
+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 = (String[]) 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 = (Map<String, Integer>) 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 = (ByteBuffer) 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);
+ }
+
+}