private static void setup()
    {
        if (isSetup)
        {
            return;
        }

        //System.out.println("Enum Helper Initalizing: ");
        for (int x = 0; x < ctrs.length; x++)
        {
            try
            {
                Class<?>[] enumHeaders = new Class[ctrs[x].length + 3];
                enumHeaders[0] = String.class;
                enumHeaders[1] = int.class;
                enumHeaders[2] = String.class;
                enumHeaders[3] = int.class;

                for (int y = 1; y < ctrs[x].length; y++)
                {
                    enumHeaders[3 + y] = ctrs[x][y];
                }

                ctrs[x][0].getDeclaredConstructor(enumHeaders);
                decompiledFlags[x] = true;

            }
            catch (Exception e)
            {
                //Nom Nom Nom
            }
            //System.out.format("\t%-25s %s\r\n", ctrs[x][0].getName().replace("net.minecraft.src.", ""), decompiled[x]);
        }



        try
        {
            Method getReflectionFactory = Class.forName("sun.reflect.ReflectionFactory").getDeclaredMethod("getReflectionFactory");
            reflectionFactory      = getReflectionFactory.invoke(null);
            newConstructorAccessor = Class.forName("sun.reflect.ReflectionFactory").getDeclaredMethod("newConstructorAccessor", Constructor.class);
            newInstance            = Class.forName("sun.reflect.ConstructorAccessor").getDeclaredMethod("newInstance", Object[].class);
            newFieldAccessor       = Class.forName("sun.reflect.ReflectionFactory").getDeclaredMethod("newFieldAccessor", Field.class, boolean.class);
            fieldAccessorSet       = Class.forName("sun.reflect.FieldAccessor").getDeclaredMethod("set", Object.class, Object.class);
        }
        catch (Exception e)
        {
            e.printStackTrace();
        }

        isSetup = true;
    }