Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package net.minecraft.src;
- import java.lang.reflect.Field;
- public class Reflector {
- private static Class[] classes = new Class[16];
- private static boolean[] classesChecked = new boolean[16];
- private static Map classNameMap = null;
- private static Method[] methods = new Method[256];
- private static boolean[] methodsChecked = new boolean[256];
- private static Map methodNameMap = null;
- private static Field[] fields = new Field[256];
- private static boolean[] fieldsChecked = new boolean[256];
- private static Map fieldNameMap = null;
- public static final int ModLoader = 0;
- public static final int ForgeHooksClient = 1;
- public static final int MinecraftForgeClient = 2;
- public static final int LightCache = 3;
- public static final int BlockCoord = 4;
- public static final int ModLoader_renderWorldBlock = 0;
- public static final int ModLoader_renderInvBlock = 1;
- public static final int ModLoader_renderBlockIsItemFull3D = 2;
- public static final int ForgeHooksClient_onBlockHighlight = 10;
- public static final int ForgeHooksClient_canRenderInPass = 11;
- public static final int ForgeHooksClient_overrideTexture = 12;
- public static final int ForgeHooksClient_beforeRenderPass = 13;
- public static final int ForgeHooksClient_afterRenderPass = 14;
- public static final int ForgeHooksClient_beforeBlockRender = 15;
- public static final int ForgeHooksClient_afterBlockRender = 16;
- public static final int MinecraftForgeClient_getCustomItemRenderer = 20;
- public static final int LightCache_clear = 30;
- public static final int BlockCoord_resetPool = 40;
- public static final int LightCache_cache = 30;
- private static Map getClassNameMap() {
- if(classNameMap == null) {
- classNameMap = new HashMap();
- classNameMap.put(Integer.valueOf(0), "ModLoader");
- classNameMap.put(Integer.valueOf(1), "forge.ForgeHooksClient");
- classNameMap.put(Integer.valueOf(2), "forge.MinecraftForgeClient");
- classNameMap.put(Integer.valueOf(3), "LightCache");
- classNameMap.put(Integer.valueOf(4), "BlockCoord");
- }
- return classNameMap;
- }
- private static Map getMethodNameMap() {
- if(methodNameMap == null) {
- methodNameMap = new HashMap();
- methodNameMap.put(Integer.valueOf(0), "RenderWorldBlock");
- methodNameMap.put(Integer.valueOf(1), "RenderInvBlock");
- methodNameMap.put(Integer.valueOf(2), "RenderBlockIsItemFull3D");
- methodNameMap.put(Integer.valueOf(10), "onBlockHighlight");
- methodNameMap.put(Integer.valueOf(11), "canRenderInPass");
- methodNameMap.put(Integer.valueOf(12), "overrideTexture");
- methodNameMap.put(Integer.valueOf(13), "beforeRenderPass");
- methodNameMap.put(Integer.valueOf(14), "afterRenderPass");
- methodNameMap.put(Integer.valueOf(15), "beforeBlockRender");
- methodNameMap.put(Integer.valueOf(16), "afterBlockRender");
- methodNameMap.put(Integer.valueOf(20), "getCustomItemRenderer");
- methodNameMap.put(Integer.valueOf(30), "clear");
- methodNameMap.put(Integer.valueOf(40), "resetPool");
- }
- return methodNameMap;
- }
- private static Map getFieldNameMap() {
- if(fieldNameMap == null) {
- fieldNameMap = new HashMap();
- fieldNameMap.put(Integer.valueOf(30), "cache");
- }
- return fieldNameMap;
- }
- public static void callVoid(int var0, Object[] var1) {
- try {
- Method var2 = getMethod(var0);
- if(var2 == null) {
- return;
- }
- var2.invoke((Object)null, var1);
- } catch (Exception var3) {
- var3.printStackTrace();
- }
- }
- public static boolean callBoolean(int var0, Object[] var1) {
- try {
- Method var2 = getMethod(var0);
- if(var2 == null) {
- return false;
- } else {
- Boolean var3 = (Boolean)var2.invoke((Object)null, var1);
- return var3.booleanValue();
- }
- } catch (Throwable var4) {
- var4.printStackTrace();
- return false;
- }
- }
- public static Object call(int var0, Object[] var1) {
- try {
- Method var2 = getMethod(var0);
- if(var2 == null) {
- return Boolean.valueOf(false);
- } else {
- Object var3 = var2.invoke((Object)null, var1);
- return var3;
- }
- } catch (Throwable var4) {
- var4.printStackTrace();
- return Boolean.valueOf(false);
- }
- }
- public static void callVoid(Object var0, int var1, Object[] var2) {
- try {
- if(var0 == null) {
- return;
- }
- Method var3 = getMethod(var1);
- if(var3 == null) {
- return;
- }
- var3.invoke(var0, var2);
- } catch (Throwable var4) {
- var4.printStackTrace();
- }
- }
- private static Method getMethod(int var0) {
- Method var1 = methods[var0];
- if(var1 == null) {
- if(methodsChecked[var0]) {
- return null;
- }
- methodsChecked[var0] = true;
- var1 = findMethod(var0);
- methods[var0] = var1;
- }
- return var1;
- }
- private static Method findMethod(int var0) {
- int var1 = var0 / 10;
- Class var2 = getClass(var1);
- if(var2 == null) {
- return null;
- } else {
- String var3 = (String)getMethodNameMap().get(Integer.valueOf(var0));
- if(var3 == null) {
- Config.log("Method name not found for id: " + var0);
- return null;
- } else {
- Method[] var4 = var2.getMethods();
- for(int var5 = 0; var5 < var4.length; ++var5) {
- Method var6 = var4[var5];
- if(var6.getName().equals(var3)) {
- return var6;
- }
- }
- Config.log("Method not found: " + var2.getName() + "." + var3);
- return null;
- }
- }
- }
- private static Field getField(int var0) {
- Field var1 = fields[var0];
- if(var1 == null) {
- if(fieldsChecked[var0]) {
- return null;
- }
- fieldsChecked[var0] = true;
- var1 = findField(var0);
- fields[var0] = var1;
- }
- return var1;
- }
- private static Field findField(int var0) {
- int var1 = var0 / 10;
- Class var2 = getClass(var1);
- if(var2 == null) {
- return null;
- } else {
- String var3 = (String)getFieldNameMap().get(Integer.valueOf(var0));
- if(var3 == null) {
- Config.log("Field name not found for id: " + var0);
- return null;
- } else {
- try {
- Field var4 = var2.getDeclaredField(var3);
- return var4;
- } catch (SecurityException var5) {
- var5.printStackTrace();
- } catch (NoSuchFieldException var6) {
- Config.log("Field not found: " + var2.getName() + "." + var3);
- }
- return null;
- }
- }
- }
- private static Class getClass(int var0) {
- Class var1 = classes[var0];
- if(var1 == null) {
- if(classesChecked[var0]) {
- return null;
- }
- classesChecked[var0] = true;
- String var2 = (String)getClassNameMap().get(Integer.valueOf(var0));
- if(var2 == null) {
- Config.log("Class name not found for id: " + var0);
- return null;
- }
- try {
- var1 = Class.forName(var2);
- classes[var0] = var1;
- } catch (ClassNotFoundException var4) {
- Config.log("Class not present: " + var2);
- } catch (Throwable var5) {
- System.out.println(var2);
- var5.printStackTrace();
- }
- }
- return var1;
- }
- public static boolean hasClass(int var0) {
- Class var1 = getClass(var0);
- return var1 != null;
- }
- public static Object getFieldValue(int var0) {
- try {
- Field var1 = getField(var0);
- if(var1 == null) {
- return null;
- } else {
- Object var2 = var1.get((Object)null);
- return var2;
- }
- } catch (Throwable var3) {
- var3.printStackTrace();
- return null;
- }
- }
- }
- java.lang.NoSuchMethodError: net.minecraft.client.Minecraft.b()Ljava/io/File;
- at ModLoader.<clinit>(ModLoader.java:31)
- at java.lang.Class.forName0(Native Method)
- at java.lang.Class.forName(Unknown Source)
- at net.minecraft.src.Reflector.getClass(Reflector.java:253)
- at net.minecraft.src.Reflector.hasClass(Reflector.java:267)
- at net.minecraft.src.RenderBlocks.renderBlockByRenderType(RenderBlocks.java:207)
- at net.minecraft.src.WorldRenderer.updateRenderer(WorldRenderer.java:199)
- at net.minecraft.src.RenderGlobal.updateRenderers(RenderGlobal.java:1265)
- at net.minecraft.src.EntityRenderer.renderWorld(EntityRenderer.java:1012)
- at net.minecraft.src.EntityRenderer.updateCameraAndRender(EntityRenderer.java:844)
- at net.minecraft.src.EntityRendererProxy.updateCameraAndRender(EntityRendererProxy.java:18)
- at net.minecraft.src.EntityRendererProxyWeather.updateCameraAndRender(EntityRendererProxyWeather.java:33)
- at net.minecraft.client.Minecraft.func_40001_x(Minecraft.java:616)
- at net.minecraft.client.Minecraft.run(Minecraft.java:528)
- at java.lang.Thread.run(Unknown Source)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement