aboutsummaryrefslogtreecommitdiff
path: root/src/Java/gtPlusPlus
diff options
context:
space:
mode:
Diffstat (limited to 'src/Java/gtPlusPlus')
-rw-r--r--src/Java/gtPlusPlus/core/util/reflect/ReflectionUtils.java24
-rw-r--r--src/Java/gtPlusPlus/preloader/CustomClassLoader.java57
-rw-r--r--src/Java/gtPlusPlus/preloader/DevHelper.java2096
-rw-r--r--src/Java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_OB_Sprinkler.java79
-rw-r--r--src/Java/gtPlusPlus/preloader/asm/transformers/Preloader_Transformer_Handler.java115
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/blocks/textures/TexturesCentrifugeMultiblock.java43
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialCentrifuge.java45
-rw-r--r--src/Java/gtPlusPlus/xmod/ob/CallbackObject.java20
-rw-r--r--src/Java/gtPlusPlus/xmod/ob/CustomSprinklerInventory.java35
-rw-r--r--src/Java/gtPlusPlus/xmod/ob/SprinklerHandler.java9
10 files changed, 2459 insertions, 64 deletions
diff --git a/src/Java/gtPlusPlus/core/util/reflect/ReflectionUtils.java b/src/Java/gtPlusPlus/core/util/reflect/ReflectionUtils.java
index 039cddb6d6..dee9d76a4c 100644
--- a/src/Java/gtPlusPlus/core/util/reflect/ReflectionUtils.java
+++ b/src/Java/gtPlusPlus/core/util/reflect/ReflectionUtils.java
@@ -311,6 +311,30 @@ public class ReflectionUtils {
}
return m;
}
+
+ public static Method getMethodRecursively(final Class<?> clazz, final String fieldName) throws NoSuchMethodException {
+ try {
+ Method k = clazz.getDeclaredMethod(fieldName);
+ makeMethodAccessible(k);
+ return k;
+ } catch (final NoSuchMethodException e) {
+ final Class<?> superClass = clazz.getSuperclass();
+ if (superClass == null) {
+ throw e;
+ }
+ return getMethod(superClass, fieldName);
+ }
+ }
+
+ public static void makeMethodAccessible(final Method field) {
+ if (!Modifier.isPublic(field.getModifiers()) ||
+ !Modifier.isPublic(field.getDeclaringClass().getModifiers()))
+ {
+ field.setAccessible(true);
+ }
+ }
+
+
public static Class<?> getNonPublicClass(final String className) {
Class<?> c = null;
diff --git a/src/Java/gtPlusPlus/preloader/CustomClassLoader.java b/src/Java/gtPlusPlus/preloader/CustomClassLoader.java
new file mode 100644
index 0000000000..56394c11f0
--- /dev/null
+++ b/src/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/Java/gtPlusPlus/preloader/DevHelper.java b/src/Java/gtPlusPlus/preloader/DevHelper.java
index 1be486724a..1bfbc0b6eb 100644
--- a/src/Java/gtPlusPlus/preloader/DevHelper.java
+++ b/src/Java/gtPlusPlus/preloader/DevHelper.java
@@ -28,9 +28,9 @@ public class DevHelper {
public DevHelper() {
}
-
-
-
+
+
+
public boolean IsObfuscatedEnvironment() {
// Are we in a 'decompiled' environment?
boolean deobfuscatedEnvironment = false;
@@ -55,16 +55,16 @@ public class DevHelper {
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;
+ 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;
@@ -117,11 +117,24 @@ public class DevHelper {
return DevHelperInternals.srgToForge.get(mSrgName);
}
+ public String getObfuscated(String mDeob) {
+ return DevHelperInternals.deObToOb.get(mDeob);
+ }
+
+ public String getDeobfuscated(String mOb) {
+ return DevHelperInternals.obToDeOb.get(mOb);
+ }
+
public static class DevHelperInternals {
public static Map<String, String> srgToForge = new HashMap<String, String>();
public static Map<String, String> forgeToSrg = new HashMap<String, String>();
private static WeakAutoMap<Pair<String, String>> mInitMap = new WeakAutoMap<Pair<String, String>>();
+ //Obfuscation
+ public static Map<String, String> obToDeOb = new HashMap<String, String>();
+ public static 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();
@@ -135,8 +148,19 @@ public class DevHelper {
forgeToSrg.put(forge, srg);
}
}
- }
- return srgToForge.size() > 0 && forgeToSrg.size() > 0;
+ }
+
+ 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);
+ }
+ }
+ }
+ return srgToForge.size() > 0 && forgeToSrg.size() > 0 && obToDeOb.size() > 0 && deObToOb.size() > 0;
}
private static void init1() {
@@ -4968,6 +4992,2050 @@ public class DevHelper {
mInitMap.put(new Pair<String, String>("func_99999_d", "run"));
}
+ public 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&g