Hi i get "illegal start of expression" compiling error
ZMOD.java:1295: illegal start of expression
for (int j = 0; j < paramArrayOfgz.length; j++) localArrayList.add(paramArrayOfgz[j] = = paramArrayOfgz[j]);
^
1 error
Press any key to continue . . .

the whole code is this

import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.PrintStream;
import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.Collections;
import java.util.ConcurrentModificationException;
import java.util.Date;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Properties;
import java.util.Random;
import net.minecraft.client.Minecraft;
import org.lwjgl.input.Keyboard;
import org.lwjgl.opengl.GL11;

public class ZMod
{
  public static final String version = "4.3";
  public static Minecraft mc;
  private static String path;
  private static PrintStream out;
  private static String logPath;
  private static String firstError;
  private static ZFR text;
  private static ZRG render;
  private static Properties conf;
  private static boolean exceptionReported;
  private static boolean[] keys = new boolean[256];
  public static Random rnd = new Random();
  public static boolean modCloudEnabled;
  public static boolean modCartEnabled;
  public static boolean modWieldEnabled;
  public static boolean modBuildEnabled;
  public static boolean modCompassEnabled;
  public static boolean modSunEnabled;
  public static boolean modCraftEnabled;
  public static boolean modFlyEnabled;
  public static boolean modPathEnabled;
  public static boolean modRecipeEnabled;
  public static boolean modSafeEnabled;
  public static boolean modBoomEnabled;
  public static boolean modSpawnEnabled;
  public static boolean modOreEnabled;
  public static boolean modTeleportEnabled;
  public static int keyBaseInfo;
  public static int keyCloudToggle;
  public static int keyCloudUp;
  public static int keyCloudDown;
  public static int keyCloudVanilla;
  public static int keyCartStop;
  public static int keyCartPerpetual;
  public static int keyWield;
  public static int keyBuildToggle;
  public static int keyBuildA;
  public static int keyBuildB;
  public static int keyCompassSet;
  public static int keyCompassToggle;
  public static int keySunTimeAdd;
  public static int keySunTimeSub;
  public static int keySunStop;
  public static int keySunTimeNormal;
  public static int keyCraftAll;
  public static int keyPathShow;
  public static int keyPathDelete;
  public static int keyFlyOn;
  public static int keyFlyOff;
  public static int keyFlyUp;
  public static int keyFlyDown;
  public static int keyFlySpeed;
  public static int keyFlyToggle;
  public static int keySafeShow;
  public static boolean optBaseDisableWarning;
  public static boolean optBaseShowInfo;
  public static boolean optCloudShow;
  public static boolean optCloudVanilla;
  public static boolean optCartPerpetual;
  public static boolean optWieldBowFirst;
  public static boolean optBuild;
  public static boolean optCompassShowPos;
  public static boolean optPathShow;
  public static boolean optRecipeShowId;
  public static boolean optRecipeDump;
  public static boolean optBuildLockQuantity;
  public static boolean optOreLavaFloor;
  public static float optCloudOffset;
  public static float optCartSpeedAccumCap;
  public static float optCartAcceleration;
  public static float optPathMin;
  public static float optPathAnimSpeed;
  public static float optBoomScaleTNT;
  public static float optBoomScaleCreeper;
  public static double optFlySpeedVertical;
  public static double optFlySpeedMulNormal;
  public static double optFlySpeedMulModifier;
  public static int optSunTimeStep;
  public static int optPathPoints;
  public static int optPathSpacing;
  public static int optBoomSafeRange;
  public static String tagCloudVanilla;
  public static String tagCartPerpetual;
  public static String tagBuildEnabled;
  public static String tagCompassAlternate;
  public static String tagSunTime;
  public static String tagFly;
  public static String tagSafe;
  public static float optBoomDropOreChance;
  public static float optBoomDropChance;
  public static boolean optSpawnAllowInNonAir;
  public static boolean optSpawnAllowOnNonNatural;
  public static boolean optSpawnAllowOnGrass;
  public static boolean optSpawnAllowOnCobble;
  public static boolean optSpawnAllowOnSand;
  public static boolean optSpawnAllowOnGravel;
  public static boolean optSpawnAllowOnTree;
  public static int optSpawnPigReduction;
  public static int optSpawnChickenReduction;
  public static int optSpawnCowReduction;
  public static int optSpawnSheepReduction;
  public static int optSpawnSquidReduction;
  public static int optSpawnGhastReduction;
  public static int optSpawnSpiderReduction;
  public static int optSpawnSkeletonReduction;
  public static int optSpawnCreeperReduction;
  public static int optSpawnZombieReduction;
  public static int optSpawnSlimeReduction;
  public static int optSpawnPigZombieReduction;
  public static boolean optSpawnSupportMods;
  public static int[] optOreCoalRule;
  public static int[] optOreIronRule;
  public static int[] optOreGoldRule;
  public static int[] optOreBlueRule;
  public static int[] optOreRedRule;
  public static int[] optOreDiamondRule;
  private static int optTeleportItem;
  private static int optTeleportPlayer;
  private static int optTeleportCritter;
  private static final int safeMax = 1024;
  private static boolean buildActive;
  private static double cartSpeed;
  private static float[] buildOriginal;
  private static float pathAnimCur;
  private static float[] pathf;
  private static int[][] buildSets;
  private static int pathCount;
  private static int pathLast;
  private static int compassOX;
  private static int compassOY;
  private static int compassOZ;
  private static int compassMX;
  private static int compassMY;
  private static int compassMZ;
  private static boolean compassHaveOrig;
  private static boolean compassHaveMine;
  private static boolean compassShowOrig = true;
  public static long sunTimeOffset = 0L;
  public static long sunTimeMoment;
  public static boolean sunTimeStop = false; public static boolean fly = false;
  private static List recipesSP;
  private static List recipesMP;
  private static Object cmanager;
  private static ZMod.Mark[] safeMark = new ZMod.Mark[1024];
  private static int safeCur;
  private static int safeUpdate;
  private static boolean safeShow;
  private static HashMap teleportNames;
  private static Field fCMRecipes;
  private static Field fCBTable;
  private static Field fDamage;
  private static Field fSpawnX;
  private static Field fSpawnY;
  private static Field fSpawnZ;
  private static Field fTime;
  public static int[] block = new int[256];
  public static int KNOWN = 1; public static int SOLID = 2; public static int LIQUID = 4; public static int CRAFT = 8; public static int BASIC = 16; public static int SPACE = 32; public static int TREE = 64; public static int GRASS = 128; public static int COBBLE = 256; public static int DECAL = 512; public static int SAND = 1024; public static int GRAVEL = 2048; public static int ORE = 4096; public static int OBSIDIAN = 8192; public static int SPAWN = 16384; public static int TOUCH = 32768;
  public static fd player;
  public static dt world;
  public static mh renderer;
  public static boolean isMenu;
  public static boolean isMultiplayer;
  public static boolean isHell;
  public static double posX;
  public static double posY;
  public static double posZ;
  public static double motionX;
  public static double motionY;
  public static double motionZ;
  public static om inWhat;
  public static gy inv;
  public static gz[] invItems;
  public static dc spawn;
  public static final int GHAST = 1;
  public static final int COW = 2;
  public static final int SPIDER = 3;
  public static final int SHEEP = 4;
  public static final int SKELLY = 5;
  public static final int CREEPER = 6;
  public static final int ZOMBIE = 7;
  public static final int SLIME = 8;
  public static final int PIG = 9;
  public static final int CHICKEN = 10;
  public static final int SQUID = 11;
  public static final int PIGZOMBIE = 12;
  public static final int PLAYER = 13;
  public static final int LIVING = 14;
  private static long prevTick;
  private static long curTick;
  private static float seconds;
  public static double flyMX;
  public static double flyMY;
  public static double flyMZ;
  private static HashMap pNames;
  private static HashSet<String> pFiles;
  private static List pList;
  private static final int IGNORE = 0;
  private static final int NAMEMAP = 1;
  private static final int RECIPES = 2;

  private static final int fix(double paramDouble)
  {
    return (int)Math.floor(paramDouble);
  }

  public static void initialize(Minecraft paramMinecraft)
  {
    mc = paramMinecraft;

    block[0] = (KNOWN | SPACE | BASIC);
    block[1] = (KNOWN | SOLID | BASIC);
    block[2] = (KNOWN | SOLID | GRASS);
    block[3] = (KNOWN | SOLID | BASIC);
    block[4] = (KNOWN | SOLID | COBBLE);
    block[5] = (KNOWN | SOLID | CRAFT);
    block[6] = (KNOWN | SPACE | DECAL);
    block[7] = (KNOWN | SOLID | BASIC);
    block[8] = (KNOWN | SPACE | LIQUID);
    block[9] = (KNOWN | SPACE | LIQUID);
    block[10] = (KNOWN | LIQUID);
    block[11] = (KNOWN | LIQUID);
    block[12] = (KNOWN | SOLID | SAND);
    block[13] = (KNOWN | SOLID | GRAVEL);
    block[14] = (KNOWN | SOLID | ORE | BASIC);
    block[15] = (KNOWN | SOLID | ORE | BASIC);
    block[16] = (KNOWN | SOLID | ORE | BASIC);
    block[17] = (KNOWN | SOLID | TREE);
    block[18] = (KNOWN | SOLID | TREE);
    block[19] = (KNOWN | SOLID | CRAFT);
    block[20] = (KNOWN | SOLID | CRAFT);
    block[21] = (KNOWN | SOLID | ORE | BASIC);
    block[22] = (KNOWN | SOLID | CRAFT);
    block[23] = (KNOWN | SOLID | CRAFT);
    block[24] = (KNOWN | SOLID | CRAFT);
    block[25] = (KNOWN | SOLID | CRAFT);
    block[26] = (KNOWN | SOLID | CRAFT);
    block[35] = (KNOWN | SOLID | CRAFT);
    block[37] = (KNOWN | SPACE | DECAL);
    block[38] = (KNOWN | SPACE | DECAL);
    block[39] = (KNOWN | SPACE | DECAL);
    block[40] = (KNOWN | SPACE | DECAL);
    block[41] = (KNOWN | SOLID | CRAFT);
    block[42] = (KNOWN | SOLID | CRAFT);
    block[43] = (KNOWN | SOLID | CRAFT);
    block[44] = (KNOWN | SOLID | CRAFT);
    block[45] = (KNOWN | SOLID | CRAFT);
    block[46] = (KNOWN | SOLID | CRAFT);
    block[47] = (KNOWN | SOLID | CRAFT);
    block[48] = (KNOWN | SOLID | BASIC);
    block[49] = (KNOWN | SOLID | OBSIDIAN);
    block[50] = (KNOWN | SPACE | DECAL);
    block[51] = (KNOWN | SPACE | DECAL);
    block[52] = (KNOWN | SOLID | BASIC);
    block[53] = (KNOWN | SOLID | CRAFT);
    block[54] = (KNOWN | SOLID | CRAFT);
    block[55] = (KNOWN | SPACE | DECAL);
    block[56] = (KNOWN | SOLID | ORE | BASIC);
    block[57] = (KNOWN | SOLID | CRAFT);
    block[58] = (KNOWN | SOLID | CRAFT);
    block[59] = (KNOWN | SPACE | DECAL);
    block[60] = (KNOWN | SOLID | CRAFT);
    block[61] = (KNOWN | SOLID | CRAFT);
    block[62] = (KNOWN | SOLID | CRAFT);
    block[63] = (KNOWN | SPACE | DECAL | TOUCH);
    block[64] = (KNOWN | SPACE | DECAL | TOUCH);
    block[65] = (KNOWN | SPACE | DECAL);
    block[66] = (KNOWN | SPACE | DECAL);
    block[67] = (KNOWN | SOLID | CRAFT);
    block[68] = (KNOWN | SPACE | DECAL | TOUCH);
    block[69] = (KNOWN | SPACE | DECAL | TOUCH);
    block[70] = (KNOWN | SPACE | DECAL);
    block[71] = (KNOWN | SPACE | DECAL | TOUCH);
    block[72] = (KNOWN | SPACE | DECAL);
    block[73] = (KNOWN | SOLID | ORE | BASIC);
    block[74] = (KNOWN | SOLID | ORE | BASIC);
    block[75] = (KNOWN | SPACE | DECAL);
    block[76] = (KNOWN | SPACE | DECAL);
    block[77] = (KNOWN | SPACE | DECAL);
    block[78] = (KNOWN | SPACE);
    block[79] = (KNOWN | SOLID | BASIC);
    block[80] = (KNOWN | SOLID | CRAFT);
    block[81] = (KNOWN | SOLID | BASIC);
    block[82] = (KNOWN | SOLID | BASIC);
    block[83] = (KNOWN | SPACE | DECAL);
    block[84] = (KNOWN | SOLID | CRAFT);
    block[85] = (KNOWN | SOLID | CRAFT);
    block[86] = (KNOWN | SOLID | BASIC);
    block[87] = (KNOWN | SOLID | BASIC);
    block[88] = (KNOWN | SOLID | BASIC);
    block[89] = (KNOWN | SOLID | BASIC);
    block[90] = (KNOWN | SPACE);
    block[91] = (KNOWN | SOLID | CRAFT);
    block[92] = (KNOWN | SOLID | CRAFT | TOUCH);
    block[93] = (KNOWN | SOLID | CRAFT | TOUCH);
    block[94] = (KNOWN | SOLID | CRAFT | TOUCH);
    for (int i = 0; i < 256; i++) { if (!spawnCheckA(i)) continue; block[i] |= SPAWN; }
    try {
      path = Minecraft.b().getCanonicalPath(); } catch (Exception localException1) { path = ""; }
    path = new StringBuilder().append(path).append(File.separatorChar).append("mods").append(File.separatorChar).append("zombe").append(File.separatorChar).toString();
    try { File localFile1 = new File(path); localFile1.mkdirs(); } catch (Exception localException2) { path = ""; }
    try {
      File localFile2 = new File(new StringBuilder().append(path).append("log.txt").toString()); out = new PrintStream(localFile2); logPath = localFile2.getCanonicalPath(); } catch (Exception localException3) { logPath = "failed to create one :("; out = System.out; }
    out.println("=========== logging ===========");
    out.println("ZModPack: version 4.3");
    out.println(new StringBuilder().append("Log started at: ").append(new Timestamp(new Date().getTime())).toString());

    conf = new Properties();
    try
    {
      Properties localProperties;
      (localProperties = new Properties()).load(new FileInputStream(new StringBuilder().append(path).append("config.txt").toString()));
      conf = localProperties;
      log("info: processing configuration");
    } catch (Exception localException4) {
      err("error: failed to load configuration from config.txt", localException4);
    }

    try
    {
      fDamage = getField(gz.class, "d");
      fCBTable = getField(jv.class, "a");
      fCMRecipes = getField(fr.class, "b");
      fSpawnX = getField(dc.class, "b");
      fSpawnY = getField(dc.class, "c");
      fSpawnZ = getField(dc.class, "d");
      fTime = getField(dc.class, "e");

      keyBaseInfo = getBind("keyBaseInfo", 66);
      optBaseDisableWarning = getBool("optBaseDisableWarning", false);
      int j = 0;

      if ((ZMod.modCloudEnabled = getBool("modCloudEnabled", false)) == true) {
        log("info: loading config for \"cloud\"");
        keyCloudToggle = getBind("keyCloudToggle", 55);
        keyCloudVanilla = getBind("keyCloudVanilla", 47);
        keyCloudUp = getBind("keyCloudUp", 0);
        keyCloudDown = getBind("keyCloudDown", 0);
        optCloudShow = getBool("optCloudShow", true);
        optCloudOffset = getFloat("optCloudOffset", 24.0F, -64.0F, 64.0F);
        tagCloudVanilla = getString("tagCloudVanilla", "no-could-mod");
        j++;
      }

      if ((ZMod.modCartEnabled = getBool("modCartEnabled", false)) == true) {
        log("info: loading config for \"cart\"");
        keyCartStop = getBind("keyCartStop", 28);
        keyCartPerpetual = getBind("keyCartPerpetual", 200);
        optCartSpeedAccumCap = getFloat("optCartSpeedAccumCap", 1.0F, 0.5F, 5.0F);
        optCartAcceleration = getFloat("optCartAcceleration", 2.0F, 0.5F, 10.0F);
        tagCartPerpetual = getString("tagCartPerpetual", "perpetual");
        j++;
      }

      if ((ZMod.modWieldEnabled = getBool("modWieldEnabled", false)) == true) {
        log("info: loading config for \"wield\"");
        keyWield = getBind("keyWield", 19);
        optWieldBowFirst = getBool("optWieldBowFirst", true);
        j++;
      }
      Object localObject1;
      Object localObject2;
      if ((ZMod.modBuildEnabled = getBool("modBuildEnabled", false)) == true) {
        log("info: loading config for \"build\"");
        keyBuildToggle = getBind("keyBuildToggle", 48);
        keyBuildA = getBind("keyBuildA", 42);
        keyBuildB = getBind("keyBuildB", 29);
        optBuild = getBool("optBuild", false);
        optBuildLockQuantity = getBool("optBuildLockQuantity", true);
        tagBuildEnabled = getString("tagBuildEnabled", "builder");
        localObject1 = new String[] { getString("optBuildA1", "smooth, cobble, grass, dirt, sand, gravel, clay, obsidian, sandstone"), getString("optBuildA2", "trunk, pine, birch, wood, shelves, chest, workbench, jukebox, furnace"), getString("optBuildA3", "woolYellow, woolOrange, woolRed, woolPink, woolMagenta, woolPurple, woolBlue, woolCyan, woolLightBlue"), getString("optBuildA4", "wool, woolLightGray, woolGray, woolBlack, woolBrown, woolGreen, woolLime, cage, sponge"), getString("optBuildA5", "snowcap, ice, snow, water, lava, fire, glass, pumpkinC, torch"), getString("optBuildA6", "sapling, leaves, flowerY, flowerR, shroomB, shroomR, cactus, pumpkin, reed"), getString("optBuildA7", "blockG, blockI, blockD, blockB, blockL, mossy, nether, soul, 0"), getString("optBuildA8", "oreG, oreI, oreC, oreD, oreR, oreY, oreL, 0, torch"), getString("optBuildA9", "doorW, doorI, switch, red, plateS, plateW, button, dispenser, note"), getString("optBuildB1", "ladder, tracks, fence, stairC, stairW, sign, half, double, picture"), getString("optBuildB2", "pickD, cart, boat, saddle, tnt, cake, 0, 0, torch"), getString("optBuildB3", ""), getString("optBuildB4", ""), getString("optBuildB5", ""), getString("optBuildB6", ""), getString("optBuildB7", ""), getString("optBuildB8", "arrow, compass"), getString("optBuildB9", "bucketW, watch, glass, appleG, swordD, bow, shovelD, pickD, torch") };

        buildSets = new int[localObject1.length][9];
        parse(new ArrayList(), "names.txt", 1);
        for (int k = 0; k < localObject1.length; k++) if (!localObject1[k].equals("")) {
            localObject2 = localObject1[k].split("[\t ]*,[\t ]*");
            int m = localObject2.length; if (m > 9) m = 9;
            for (int n = 0; n < m; n++) {
              if (pNames.containsKey(localObject2[n])) { buildSets[k][n] = ((Integer)(Integer)pNames.get(localObject2[n])).intValue();
              } else {
                int i1 = parseIdInfo(localObject2[n]);
                if (i1 == -1) err(new StringBuilder().append("error: config.txt @ optBuild").append(k > 9 ? "B" : "A").append(k % 9 + 1).append(" - unknown item name or invalid code: \"").append(localObject2[n]).append("\"").toString()); else
                  buildSets[k][n] = i1;
              }
            }
          }
        j++;
      }

      if ((ZMod.modCompassEnabled = getBool("modCompassEnabled", false)) == true) {
        log("info: loading config for \"compass\"");
        keyCompassSet = getBind("keyCompassSet", 210);
        keyCompassToggle = getBind("keyCompassToggle", 199);
        tagCompassAlternate = getString("tagCompassAlternate", "altSpawn");
        optCompassShowPos = getBool("optCompassShowPos", true);
        j++;
      }

      if ((ZMod.modSunEnabled = getBool("modSunEnabled", false)) == true) {
        log("info: loading config for \"sun\"");
        keySunTimeAdd = getBind("keySunTimeAdd", 78);
        keySunTimeSub = getBind("keySunTimeSub", 74);
        keySunStop = getBind("keySunStop", 207);
        keySunTimeNormal = getBind("keySunTimeNormal", 13);
        optSunTimeStep = getInt("optSunTimeStep", 30, 1, 600) * 20;
        tagSunTime = getString("tagSunTime", "time");
        if (!checkClass(sd.class)) { err("error: sd.class has not been installed - sun mod disabled"); modSunEnabled = false; } else {
          j++;
        }
      }
      if ((ZMod.modCraftEnabled = getBool("modCraftEnabled", false)) == true) {
        log("info: loading config for \"craft\"");
        keyCraftAll = getBind("keyCraftAll", 42);
        if (!checkClass(gg.class)) { err("error: gg.class has not been installed - craft mod disabled"); modCraftEnabled = false; } else {
          j++;
        }
      }
      if ((ZMod.modFlyEnabled = getBool("modFlyEnabled", false)) == true) {
        log("info: loading config for \"fly\"");
        keyFlyOn = getBind("keyFlyOn", 0);
        keyFlyOff = getBind("keyFlyOff", 0);
        keyFlyUp = getBind("keyFlyUp", 18);
        keyFlyDown = getBind("keyFlyDown", 16);
        keyFlySpeed = getBind("keyFlySpeed", 42);
        keyFlyToggle = getBind("keyFlyToggle", 33);
        optFlySpeedVertical = getFloat("optFlySpeedVertical", 0.2F, 0.1F, 1.0F);
        optFlySpeedMulNormal = getFloat("optFlySpeedMulNormal", 1.0F, 0.1F, 10.0F);
        optFlySpeedMulModifier = getFloat("optFlySpeedMulModifier", 2.0F, 1.0F, 10.0F);
        tagFly = getString("tagFly", "flying");
        if (!checkClass(fd.class)) { err("error: fd.class has not been installed - fly mod disabled"); modFlyEnabled = false; } else {
          j++;
        }
      }
      if ((ZMod.modPathEnabled = getBool("modPathEnabled", false)) == true) {
        log("info: loading config for \"path\"");
        keyPathShow = getBind("keyPathShow", 14);
        keyPathDelete = getBind("keyPathDelete", 211);
        optPathPoints = getInt("optPathPoints", 8192, 256, 32768); pathf = new float[3 * optPathPoints];
        optPathSpacing = getInt("optPathSpacing", 6, 0, 32) + 2;
        optPathMin = getFloat("optPathMin", 0.25F, 0.1F, 4.0F); optPathMin *= optPathMin;
        optPathAnimSpeed = getFloat("optPathAnimSpeed", 8.0F, 0.0F, 32.0F);
        optPathShow = getBool("optPathShow", false);
        j++;
      }

      if ((ZMod.modRecipeEnabled = getBool("modRecipeEnabled", false)) == true) {
        log("info: loading config for \"recipe\"");
        optRecipeShowId = getBool("optRecipeShowId", true);
        optRecipeDump = getBool("optRecipeDump", false);
        cmanager = fr.a();
        recipesSP = (List)getValue(fCMRecipes, cmanager);
        recipesMP = new ArrayList();
        log(new StringBuilder().append("info: ").append(recipesSP.size()).append(" SP recipes before loading mod").toString());
        parse(recipesSP, "recipes.txt", 2); Collections.sort(recipesSP, new ii((fr)cmanager));
        log(new StringBuilder().append("info: ").append(recipesSP.size()).append(" SP recipes after loading mod").toString());
        parse(recipesMP, "recipes-mp.txt", 2); Collections.sort(recipesMP, new ii((fr)cmanager));
        log(new StringBuilder().append("info: ").append(recipesMP.size()).append(" vanilla recipes for MP compatibility").toString());
        if (optRecipeDump) {
          log("==== recipe dump ====");
          localObject1 = getField(gv.class, "b"); Field localField1 = getField(gv.class, "c"); localObject2 = getField(gv.class, "d"); Field localField2 = getField(gv.class, "e");
          Field localField3 = getField(pp.class, "b"); Field localField4 = getField(pp.class, "a");

          for (int i2 = 0; i2 < recipesSP.size(); i2++)
          {
            Object localObject3;
            Object localObject4;
            Object localObject5;
            String str;
            int i3;
            if ((recipesSP.get(i2) instanceof gv)) {
              localObject3 = recipesSP.get(i2);
              localObject4 = getValue(localField2, localObject3);
              localObject5 = (Object[])(Object[])getValue((Field)localObject2, localObject3);
              str = new StringBuilder().append("type normal    : ").append(getItemsId(localObject4)).append("/").append(getItemsInfo(localObject4)).append(" ").append(getValue((Field)localObject1, localObject3)).append(" ").append(getValue(localField1, localObject3)).toString();
              for (i3 = 0; i3 < localObject5.length; i3++) str = new StringBuilder().append(str).append(localObject5[i3] == null ? Integer.valueOf(0) : new StringBuilder().append(" ").append(getItemsId(localObject5[i3])).append("/").append(getItemsInfo(localObject5[i3])).toString()).toString(); 
            }
            else if ((recipesSP.get(i2) instanceof pp)) {
              localObject3 = recipesSP.get(i2);
              localObject4 = getValue(localField4, localObject3);
              localObject5 = (List)getValue(localField3, localObject3);
              str = new StringBuilder().append("type shapeless : ").append(getItemsId(localObject4)).append("/").append(getItemsInfo(localObject4)).append(" ").append(((List)localObject5).size()).append(" 0").toString();
              for (i3 = 0; i3 < ((List)localObject5).size(); i3++) str = new StringBuilder().append(str).append(" ").append(getItemsId(((List)localObject5).get(i3))).append("/").append(getItemsInfo(((List)localObject5).get(i3))).toString(); 
            }
            else {
              str = new StringBuilder().append("type: KST ").append(recipesSP.get(i2)).toString();
            }
            log(str);
          }
        }
        j++;
      }

      if ((ZMod.modSafeEnabled = getBool("modSafeEnabled", false)) == true) {
        log("info: loading config for \"safe\"");
        keySafeShow = getBind("keySafeShow", 38);
        tagSafe = getString("tagSafe", "safe");
        j++;
      }

      if ((ZMod.modBoomEnabled = getBool("modBoomEnabled", false)) == true) {
        log("info: loading config for \"boom\"");
        optBoomDropChance = getInt("optBoomDropChance", 30, 0, 100) / 100.0F;
        optBoomDropOreChance = getInt("optBoomDropOreChance", 100, 0, 100) / 100.0F;
        optBoomScaleTNT = getFloat("optBoomScaleTNT", 1.0F, 0.1F, 10.0F);
        optBoomScaleCreeper = getFloat("optBoomScaleCreeper", 1.0F, 0.1F, 10.0F);
        optBoomSafeRange = getInt("optBoomSafeRange", 16, -1, 32);
        if (!checkClass(getClass("na"))) { err("error: na.class has not been installed - boom mod disabled"); modBoomEnabled = false; } else {
          j++;
        }
      }
      if ((ZMod.modSpawnEnabled = getBool("modSpawnEnabled", false)) == true) {
        log("info: loading config for \"spawn\"");
        optSpawnSupportMods = getBool("optSpawnSupportMods", true);
        optSpawnAllowInNonAir = getBool("optSpawnAllowInNonAir", false);
        optSpawnAllowOnNonNatural = getBool("optSpawnAllowOnNonNatural", false);
        optSpawnAllowOnGrass = getBool("optSpawnAllowOnGrass", true);
        optSpawnAllowOnCobble = getBool("optSpawnAllowOnCobble", false);
        optSpawnAllowOnSand = getBool("optSpawnAllowOnSand", true);
        optSpawnAllowOnGravel = getBool("optSpawnAllowOnGravel", true);
        optSpawnAllowOnTree = getBool("optSpawnAllowOnTree", false);

        optSpawnPigReduction = getInt("optSpawnPigReduction", 75, 0, 100);
        optSpawnChickenReduction = getInt("optSpawnChickenReduction", 0, 0, 100);
        optSpawnCowReduction = getInt("optSpawnCowReduction", 0, 0, 100);
        optSpawnSheepReduction = getInt("optSpawnSheepReduction", 0, 0, 100);
        optSpawnSquidReduction = getInt("optSpawnSquidReduction", 0, 0, 100);

        optSpawnSpiderReduction = getInt("optSpawnSpiderReduction", 0, 0, 100);
        optSpawnSkeletonReduction = getInt("optSpawnSkeletonReduction", 0, 0, 100);
        optSpawnCreeperReduction = getInt("optSpawnCreeperReduction", 0, 0, 100);
        optSpawnZombieReduction = getInt("optSpawnZombieReduction", 0, 0, 100);
        optSpawnSlimeReduction = getInt("optSpawnSlimeReduction", 0, 0, 100);

        optSpawnGhastReduction = getInt("optSpawnGhastReduction", 0, 0, 100);
        optSpawnPigZombieReduction = getInt("optSpawnPigZombieReduction", 0, 0, 100);
        j++;
      }

      if ((ZMod.modOreEnabled = getBool("modOreEnabled", false)) == true) {
        log("info: loading config for \"ore\"");
        optOreLavaFloor = getBool("optOreLavaFloor", true);

        optOreCoalRule = parseRule(getString("optOreCoalRule", "75/80/48/8/16/1  10/120/32/128/4/1 5/120/64/1/128/1"));
        optOreIronRule = parseRule(getString("optOreIronRule", "100/80/16/8/16/1 100/96/8/16/8/1   5/120/64/128/1/1"));
        optOreGoldRule = parseRule(getString("optOreGoldRule", "50/32/4/4/16/1   5/96/8/8/64/1"));
        optOreBlueRule = parseRule(getString("optOreBlueRule", "100/32/8/2/8/1   5/56/48/64/2/1    5/96/48/1/32/1/1"));
        optOreRedRule = parseRule(getString("optOreRedRule", "100/32/8/2/8/1   10/120/96/64/1/1"));
        optOreDiamondRule = parseRule(getString("optOreDiamondRule", "75/16/4/2/8/1    100/32/2/128/2/11 10/120/16/2/8/1"));
        j++;
      }

      if ((ZMod.modTeleportEnabled = getBool("modTeleportEnabled", false)) == true) {
        log("info: loading config for \"teleport\"");
        localObject1 = null;
        try {
          parse(new ArrayList(), "names.txt", 1);
          teleportNames = pNames;
          localObject1 = getString("optTeleportItem", "blockI"); optTeleportItem = (teleportNames.containsKey(localObject1) ? (Integer)teleportNames.get(localObject1) : new Integer((String)localObject1)).intValue();
          localObject1 = getString("optTeleportPlayer", "blockG"); optTeleportPlayer = (teleportNames.containsKey(localObject1) ? (Integer)teleportNames.get(localObject1) : new Integer((String)localObject1)).intValue();
          localObject1 = getString("optTeleportCritter", "blockD"); optTeleportCritter = (teleportNames.containsKey(localObject1) ? (Integer)teleportNames.get(localObject1) : new Integer((String)localObject1)).intValue();
          j++;
        } catch (Exception localException6) {
          modTeleportEnabled = false;
          err(new StringBuilder().append("error: invalid item name or id - teleport mod disabled : \"").append((String)localObject1).append("\"").toString(), localException6);
        }
      }

      if ((j == 0) && (!optBaseDisableWarning)) err("warning: no mods are enabled! Read the readme.txt!");
      log("info: configuration loaded");
    }
    catch (Exception localException5) {
      err("error: initialization failed", localException5);
    }
  }

  public static void initOverrides()
  {
    log("info: init text"); mc.p = (ZMod.text = new ZFR(mc.x, "/font/default.png", mc.o));

    log("info: init render"); mc.f = (ZMod.render = new ZRG(mc, mc.o));
  }

  public static void pingUpdateHandle()
  {
    if (keyPress(keyBaseInfo)) optBaseShowInfo = !optBaseShowInfo;

    player = mc.g;
    world = mc.e;
    renderer = mc.s;
    if ((player == null) || (world == null) || (renderer == null)) return;
    isMenu = mc.q != null;
    isMultiplayer = mc.k();
    posX = getEntityPosX(player); posY = getEntityPosY(player); posZ = getEntityPosZ(player);
    motionX = player.aL; motionY = player.aM; motionZ = player.aN;
    isHell = worldGetId(fix(posX), 127, fix(posZ)) == 7;
    inWhat = player.aD;
    inv = player.f;
    invItems = inv.a;
    spawn = world.v();

    if ((modCloudEnabled) && (!isMenu)) {
      if (keyPress(keyCloudVanilla)) optCloudVanilla = !optCloudVanilla;
      if (keyPress(keyCloudToggle)) if (optCloudVanilla) optCloudVanilla = false; else optCloudShow = !optCloudShow;
      if (keyPress(keyCloudUp)) if (optCloudVanilla) optCloudVanilla = false; else optCloudOffset += 1.0F;
      if (keyPress(keyCloudDown)) if (optCloudVanilla) optCloudVanilla = false; else optCloudOffset -= 1.0F;
    }

    if ((!isMultiplayer) && (modCartEnabled) && ((inWhat instanceof tj))) {
      double d1 = inWhat.aL + motionX * optCartAcceleration; double d2 = inWhat.aN + motionZ * optCartAcceleration;
      double d3 = Math.sqrt(d1 * d1 + d2 * d2);
      if ((!isMenu) && (keyPress(keyCartPerpetual))) {
        optCartPerpetual = !optCartPerpetual;
        if (optCartPerpetual) cartSpeed = d3;
      }
      if ((d3 > optCartSpeedAccumCap) || ((optCartPerpetual) && (d3 > 0.001D))) {
        double d4 = optCartPerpetual ? cartSpeed / d3 : optCartSpeedAccumCap / d3;
        d1 *= d4; d2 *= d4;
      }
      if ((!isMenu) && (keyDown(keyCartStop))) { d1 = d2 = 0.0D; optCartPerpetual = false; }
      inWhat.aL = d1; inWhat.aN = d2;
    }
    int j;
    int m;
    int i1;
    int i2;
    int i;
    int i4;
    if ((modWieldEnabled) && (!isMenu) && (keyPress(keyWield))) {
      j = -1; m = -1; i1 = getInvCur();
      i2 = 0;
      for (i = 0; i < invItems.length; i++) {
        i4 = invItems[i] == null ? 0 : getItemsId(invItems[i]);
        if (i4 == 262) i2 = 1;
        if (i >= 9) continue; if (i4 == 261) { j = i; } else { if ((i4 != 268) && (i4 != 272) && (i4 != 267) && (i4 != 276)) continue; m = i; }
      }
      if (i2 == 0) j = -1;
      if (j == -1) j = m; else if (m == -1) m = j;
      i4 = optWieldBowFirst ? j : m;
      if (i1 == i4) i4 = i4 == j ? m : j;
      if (i4 != -1) setInvCur(i4);
    }

    if ((!isMultiplayer) && (modBuildEnabled))
    {
      if (buildOriginal == null) {
        buildOriginal = new float[256];
        for (i = 0; i < 256; i++) { if (qk.m[i] == null) continue; buildOriginal[i] = qk.m[i].bl; }
      }
      if (!isMenu) {
        if (keyPress(keyBuildToggle)) optBuild = !optBuild;
        if (optBuild) {
          if (!buildActive) {
            for (i = 0; i < 256; i++) { if (qk.m[i] == null) continue; qk.m[i].bl = ((block[i] & TOUCH) != 0 ? buildOriginal[i] : 0.0F); }
            buildActive = true;
          }
          j = -1;
          if (keyDown(keyBuildA)) for (i = 2; i <= 10; i++) { if (!keyPress(i)) continue; j = i - 2; }
          if (keyDown(keyBuildB)) for (i = 2; i <= 10; i++) { if (!keyPress(i)) continue; j = 9 + i - 2; }
          if (j != -1) for (m = 0; m < 9; m++) { if (buildSets[j][m] == 0) continue; invItems[m] = newItemsE(buildSets[j][m], 8); }
        }
      }
      if ((optBuild) && (optBuildLockQuantity)) for (i = 0; i < invItems.length; i++) { if (invItems[i] == null) continue; setItemsCount(invItems[i], 8); }
    }
    if ((buildActive) && ((!optBuild) || (isMultiplayer))) {
      for (i = 0; i < 256; i++) { if (qk.m[i] == null) continue; qk.m[i].bl = buildOriginal[i]; }
      buildActive = false;
    }
    int i5;
    if (modCompassEnabled) {
      j = ((Integer)getValue(fSpawnX, spawn)).intValue();
      m = ((Integer)getValue(fSpawnY, spawn)).intValue();
      i1 = ((Integer)getValue(fSpawnZ, spawn)).intValue();
      i2 = fix(posX); i4 = fix(posY); i5 = fix(posZ);
      if ((!compassHaveOrig) || (((j != compassOX) || (m != compassOY) || (i1 != compassOZ)) && ((j != compassMX) || (m != compassMY) || (i1 != compassMZ)))) {
        compassOX = j; compassOY = m; compassOZ = i1; compassHaveOrig = true;
      }
      if (!isMenu) {
        if (keyPress(keyCompassToggle)) compassShowOrig = !compassShowOrig;
        if (keyPress(keyCompassSet)) {
          compassMX = i2; compassMY = i4; compassMZ = i5;
          compassHaveMine = true;
          compassShowOrig = false;
        }
      }
      if (compassShowOrig) { j = compassOX; m = compassOY; i1 = compassOZ; } else { j = compassMX; m = compassMY; i1 = compassMZ; }
      setValue(fSpawnX, spawn, Integer.valueOf(j));
      setValue(fSpawnY, spawn, Integer.valueOf(m));
      setValue(fSpawnZ, spawn, Integer.valueOf(i1));
    }

    if (modSunEnabled) {
      long l = ((Long)getValue(fTime, spawn)).longValue();
      if (!isMenu) {
        if (keyPress(keySunTimeAdd)) { if (sunTimeStop) sunTimeMoment += optSunTimeStep; sunTimeOffset += optSunTimeStep; }
        if (keyPress(keySunTimeSub)) { if (sunTimeStop) sunTimeMoment -= optSunTimeStep; sunTimeOffset -= optSunTimeStep; }
        if (keyPress(keySunStop)) { sunTimeStop = !sunTimeStop; if (sunTimeStop) sunTimeMoment = l; 
        }
        if (keyPress(keySunTimeNormal)) { sunTimeStop = false; sunTimeOffset = 0L; }
      }
      if (sunTimeStop) { sunTimeOffset -= l - sunTimeMoment; sunTimeMoment = l;
      }
    }
    if ((modFlyEnabled) && (!isMenu)) {
      if (keyPress(keyFlyToggle)) fly = !fly;
      else if (keyDown(keyFlyOn)) fly = true;
      else if (keyDown(keyFlyOff)) fly = false;
    }

    if ((modPathEnabled) && (!isMenu)) {
      if (keyPress(keyPathShow)) optPathShow = !optPathShow;
      if (keyPress(keyPathDelete)) pathCount = 0;
    }

    if (modRecipeEnabled) {
      setValue(fCMRecipes, cmanager, isMultiplayer ? recipesMP : recipesSP);
    }

    if ((modSafeEnabled) && (!isMenu) && (keyPress(keySafeShow)))
      safeShow = !safeShow;
    int i6;
    int i7;
    if ((modSpawnEnabled) && (!isMultiplayer)) {
      List localList1 = getEntities();
      Iterator localIterator1 = localList1.iterator();
      i1 = 0;
      if (!optSpawnAllowOnGrass) i1 |= GRASS;
      if (!optSpawnAllowOnCobble) i1 |= COBBLE;
      if (!optSpawnAllowOnSand) i1 |= SAND;
      if (!optSpawnAllowOnGravel) i1 |= GRAVEL;
      if (!optSpawnAllowOnTree) i1 |= TREE;
      if (!optSpawnAllowOnNonNatural) i1 |= CRAFT;
      while (localIterator1.hasNext()) {
        om localom = (om)localIterator1.next();
        if (getEntityAge(localom) == 3) {
          i4 = 0;
          switch (getEntityType(localom)) { case 1:
            if ((optSpawnGhastReduction != 0) && (rnd.nextInt(100) < optSpawnGhastReduction)) i4 = 1; break;
          case 2:
            if ((optSpawnCowReduction != 0) && (rnd.nextInt(100) < optSpawnCowReduction)) i4 = 1; break;
          case 3:
            if ((optSpawnSpiderReduction != 0) && (rnd.nextInt(100) < optSpawnSpiderReduction)) i4 = 1; break;
          case 4:
            if ((optSpawnSheepReduction != 0) && (rnd.nextInt(100) < optSpawnSheepReduction)) i4 = 1; break;
          case 5:
            if ((optSpawnSkeletonReduction != 0) && (rnd.nextInt(100) < optSpawnSkeletonReduction)) i4 = 1; break;
          case 6:
            if ((optSpawnCreeperReduction != 0) && (rnd.nextInt(100) < optSpawnCreeperReduction)) i4 = 1; break;
          case 7:
            if ((optSpawnZombieReduction != 0) && (rnd.nextInt(100) < optSpawnZombieReduction)) i4 = 1; break;
          case 8:
            if ((optSpawnSlimeReduction != 0) && (rnd.nextInt(100) < optSpawnSlimeReduction)) i4 = 1; break;
          case 9:
            if ((optSpawnPigReduction != 0) && (rnd.nextInt(100) < optSpawnPigReduction)) i4 = 1; break;
          case 10:
            if ((optSpawnChickenReduction != 0) && (rnd.nextInt(100) < optSpawnChickenReduction)) i4 = 1; break;
          case 11:
            if ((optSpawnSquidReduction != 0) && (rnd.nextInt(100) < optSpawnSquidReduction)) i4 = 1; break;
          case 12:
            if ((optSpawnPigZombieReduction != 0) && (rnd.nextInt(100) < optSpawnPigZombieReduction)) i4 = 1; break;
          case 14:
            if (optSpawnSupportMods);
            break;
          case 13:
          default:
            continue;

            if (i4 == 0) {
              i5 = fix(getEntityPosX(localom)); i6 = fix(getEntityPosY(localom)); i7 = fix(getEntityPosZ(localom));
              if ((!optSpawnAllowInNonAir) && ((block[worldGetId(i5, i6, i7)] & DECAL) != 0)) i4 = 1;
              if ((i1 != 0) && ((block[worldGetId(i5, i6 - 1, i7)] & i1) != 0)) i4 = 1;
            }
            if (i4 != 0) localom.H();
          }
        }
      }
    }
    int i3;
    Object localObject1;
    if ((modOreEnabled) && (!isMultiplayer) && (!isHell)) {
      int k = fix(posX) >> 4; int n = fix(posZ) >> 4;
      for (i6 = k - 3; i6 <= k + 3; i6++) for (i7 = n - 3; i7 <= n + 3; i7++) {
          i1 = (i6 << 4) + 3; i3 = (i7 << 4) + 3;
          localObject1 = worldGetChunkData(i6, i7);
          if (localObject1[1024] == 7) {
            localObject1[1024] = 0; localObject1[1025] = 7;
            for (i = 0; i < localObject1.length; i++) {
              i5 = localObject1[i] & 0xFF;
              if ((block[i5] & ORE) != 0) { localObject1[i] = 1;
              } else if ((i5 == 7) && ((i & 0x7F) > 1)) { localObject1[i] = (optOreLavaFloor ? 11 : 1); } else {
                if ((i & 0x7F) != 1) continue; localObject1[i] = 7;
              }
            }
            oreDistribute(localObject1, optOreCoalRule, 16);
            oreDistribute(localObject1, optOreIronRule, 15);
            oreDistribute(localObject1, optOreGoldRule, 14);
            oreDistribute(localObject1, optOreBlueRule, 21);
            oreDistribute(localObject1, optOreRedRule, 73);
            oreDistribute(localObject1, optOreDiamondRule, 56);
            chunkNeedsUpdate(i6, i7);
          }
        }
    }
    if ((modTeleportEnabled) && (!isMultiplayer)) {
      List localList2 = getEntities();
      Iterator localIterator2 = localList2.iterator();
      try
      {
        while (localIterator2.hasNext()) {
          localObject1 = (om)localIterator2.next();
          i1 = getEntityType(localObject1);
          i3 = fix(getEntityPosX((om)localObject1)); i4 = fix(getEntityPosY((om)localObject1)) - 1; i5 = fix(getEntityPosZ((om)localObject1)); i7 = 0;
          i6 = worldGetId(i3, i4, i5);
          if ((block[i6] & SOLID) == 0) { i4--; i6 = worldGetId(i3, i4, i5); i7++; }
          if (((i1 == 0) && ((i6 != optTeleportItem) || (!(localObject1 instanceof fs)))) || 
            ((i1 != 0) && (i1 != 13) && (i6 != optTeleportCritter)) || (
            (i1 == 13) && (i6 != optTeleportPlayer))) continue;
          String[] arrayOfString = null;
          i6 = worldGetId(i3, i4 + 1, i5); if ((i6 == 63) || (i6 == 68)) arrayOfString = getSignText(i3, i4 + 1, i5);
          i6 = worldGetId(i3, i4 + 2, i5); if ((i6 == 63) || (i6 == 68)) arrayOfString = getSignText(i3, i4 + 2, i5);
          if (arrayOfString == null)
            continue;
          i3 = 0; i4 = -1; i5 = 0;
          for (i = 0; i < arrayOfString.length; i++) if ((arrayOfString[i] != null) && (arrayOfString[i].length() > 1))
            {
              Object localObject2;
              if (arrayOfString[i].charAt(0) == '!') {
                localObject2 = arrayOfString[i].substring(1).split(",");
                if (localObject2.length != 3) break;
                i3 = new Integer(localObject2[0]).intValue();
                i4 = new Integer(localObject2[1]).intValue();
                i5 = new Integer(localObject2[2]).intValue();
              } else if (arrayOfString[i].charAt(0) == '?') {
                localObject2 = arrayOfString[i].substring(1);
                i6 = teleportNames.containsKey(localObject2) ? ((Integer)teleportNames.get(localObject2)).intValue() : parseIdInfo((String)localObject2);
                i6 &= 65535;
                if (((i1 != 0) && (i1 != 13) && (i6 == i1)) || (
                  (i1 == 0) && (getItemsId(((fs)localObject1).a) == i6))) continue;
                i4 = -1; break;
              }
            }
          if (i4 == -1)
            continue;
          setEntityPos((om)localObject1, 0.5D + i3, 0.5D + (i4 + i7), 0.5D + i5);
          if (i1 != 13) break; world.a((om)localObject1, "mob.slime", 0.4F, ((rnd.nextFloat() - rnd.nextFloat()) * 0.2F + 1.0F) * 0.8F);
        }
      }
      catch (ConcurrentModificationException localConcurrentModificationException)
      {
      }
    }
  }

  private static void oreDistribute(byte[] paramArrayOfByte, int[] paramArrayOfInt, byte paramByte)
  {
    for (int i = 0; i < paramArrayOfInt.length; i += 6) {
      int j = paramArrayOfInt[(i + 0)];
      int k = paramArrayOfInt[(i + 1)];
      int m = paramArrayOfInt[(i + 2)];
      int n = paramArrayOfInt[(i + 3)];
      int i1 = paramArrayOfInt[(i + 4)];
      int i2 = paramArrayOfInt[(i + 5)];
      if ((j >= 100) || (rnd.nextInt(100) < j))
        while (n-- > 0) {
          int i3 = rnd.nextInt(14) + 1; int i4 = rnd.nextInt(1 + k - m) + m; int i5 = rnd.nextInt(14) + 1;
          int i6 = i3 << 11 | i5 << 7 | i4;
          if ((paramArrayOfByte[i6] == 1) && (paramArrayOfByte[(i6 - 1)] == 1) && (paramArrayOfByte[(i6 + 1)] == i2) && (paramArrayOfByte[(i6 + 128)] == 1) && (paramArrayOfByte[(i6 - 128)] == 1) && (paramArrayOfByte[(i6 + 2048)] == 1) && (paramArrayOfByte[(i6 - 2048)] == 1)) {
            int i7 = i1 - 1;
            paramArrayOfByte[i6] = paramByte;
            while (i7-- > 0)
              switch (rnd.nextInt(7)) { case 0:
                break;
              case 1:
                i6++; break;
              case 2:
                i6--; break;
              case 3:
                i6 += 128; break;
              case 4:
                i6 -= 128; break;
              case 5:
                i6 += 2048; break;
              case 6:
                i6 -= 2048;
              default:
                if (i6 < 0) i6 += 32768; else if (i6 >= 32768) i6 -= 32768;
                if (paramArrayOfByte[i6] != 1) continue; paramArrayOfByte[i6] = paramByte; } 
          }
        }
    }
  }

  private static final void worldSetId(int paramInt1, int paramInt2, int paramInt3, int paramInt4) {
    world.b(paramInt1, paramInt2, paramInt3, paramInt4); } 
  private static final byte[] worldGetChunkData(int paramInt1, int paramInt2) { return world.c(paramInt1, paramInt2).b;
  }

  public static int getEntityType(Object paramObject)
  {
    if ((paramObject instanceof fd)) return 13;
    if ((paramObject instanceof aw)) return 1;
    if ((paramObject instanceof bc)) return 2;
    if ((paramObject instanceof bp)) return 3;
    if ((paramObject instanceof cl)) return 4;
    if ((paramObject instanceof eg)) return 5;
    if ((paramObject instanceof ep)) return 6;
    if (((paramObject instanceof qo)) || ((paramObject instanceof kr))) return 7;
    if ((paramObject instanceof qm)) return 8;
    if ((paramObject instanceof rn)) return 9;
    if ((paramObject instanceof rx)) return 10;
    if ((paramObject instanceof ss)) return 11;
    if ((paramObject instanceof sz)) return 12;
    if ((paramObject instanceof iz)) return 14;
    return 0;
  }
  private static final int getEntityAge(Object paramObject) { return ((om)paramObject).bq;
  }

  public static void pingDrawHandle(float paramFloat)
  {
    if ((player == null) || (world == null) || (renderer == null)) return;

    posX = getEntityPosX(player); posY = getEntityPosY(player); posZ = getEntityPosZ(player);

    curTick = System.nanoTime();
    float f1 = (float)(curTick - prevTick) * 1.0E-009F;
    if (f1 > 1.0F) f1 = 0.0F;
    prevTick = curTick;

    if ((modPathEnabled) || (modSafeEnabled)) {
      float f2 = (float)posX; float f3 = (float)posY; float f4 = (float)posZ;
      float f5 = (float)player.bh; float f6 = (float)player.bi; float f7 = (float)player.bj;
      float f8 = f5 + (f2 - f5) * paramFloat; float f9 = f6 + (f3 - f6) * paramFloat; float f10 = f7 + (f4 - f7) * paramFloat;

      if (modPathEnabled)
      {
        float f11 = pathf[pathLast] - f2; float f12 = pathf[(pathLast + 1)] - (f3 - 1.25F); float f13 = pathf[(pathLast + 2)] - f4;
        float f14 = f11 * f11 + f12 * f12 + f13 * f13;

        if (f14 > optPathMin) {
          pathLast += 3; if (pathLast >= pathf.length) pathLast = 0;
          if (pathCount < optPathPoints) pathCount += 1;
          pathf[pathLast] = f2;
          pathf[(pathLast + 1)] = (f3 - 1.25F);
          pathf[(pathLast + 2)] = f4;
        }

        if ((optPathShow) && (pathCount > 3)) {
          pathAnimCur += f1 * optPathAnimSpeed;
          if (pathAnimCur > optPathSpacing) pathAnimCur -= optPathSpacing;
          float f15 = pathf[pathLast] - f8; float f16 = pathf[(pathLast + 1)] - f9; float f17 = pathf[(pathLast + 2)] - f10;
          int j = pathCount - 1; int k = pathLast; int m = ((pathf.length - pathLast) / 3 + (int)pathAnimCur) % optPathSpacing;
          int n = 4;
          GL11.glDisable(3553);
          GL11.glColor3ub(-1, 32, 32);
          GL11.glBegin(1);
          do {
            float f18 = f15; float f19 = f16; float f20 = f17;
            k -= 3; if (k < 0) k = pathf.length - 3;
            f15 = pathf[k] - f8; f16 = pathf[(k + 1)] - f9; f17 = pathf[(k + 2)] - f10;
            if (optPathSpacing > 2) {
              m++; if (m == optPathSpacing) m = 0;
              if ((m <= 1) && (n < 0)) { GL11.glVertex3f(f15, f16, f17); GL11.glVertex3f(f18, f19, f20); }
            } else if (n < 0) { GL11.glVertex3f(f15, f16, f17); GL11.glVertex3f(f18, f19, f20); }
            n--;
            j--; } while (j != 0);
          GL11.glEnd();
          GL11.glEnable(3553);
        }
      }

      if ((modSafeEnabled) && (safeShow)) {
        if (--safeUpdate < 0) {
          safeUpdate = 16;
          reCheckSafe(fix(posX), fix(posY), fix(posZ));
        }
        GL11.glDisable(3553);
        GL11.glColor3ub(-1, 0, 0);
        GL11.glBegin(1);
        for (int i = 0; i < safeCur; i++) {
          ZMod.Mark localMark = safeMark[i];
          f5 = localMark.x - f8; f6 = localMark.y - f9; f7 = localMark.z - f10;
          GL11.glVertex3f(f5 + 0.5F, f6, f7 + 0.5F); GL11.glVertex3f(f5 - 0.5F, f6, f7 - 0.5F);
          GL11.glVertex3f(f5 + 0.5F, f6, f7 - 0.5F); GL11.glVertex3f(f5 - 0.5F, f6, f7 + 0.5F);
        }
        GL11.glEnd();
        GL11.glEnable(3553);
      }
    }

    if ((modCloudEnabled) && (!optCloudVanilla)) {
      if (optCloudShow) {
        double d = player.bi;

        player.bi += (player.aJ - player.bi) * paramFloat - optCloudOffset; render.callSuper(0.0F);
        player.bi = d;
      }
    }
    else render.callSuper(paramFloat);
  }

  public static String pingTextHandle()
  {
    if ((player == null) || (world == null) || (renderer == null)) return "";
    String str = "";

    if ((modCloudEnabled) && (optCloudVanilla)) str = new StringBuilder().append(str).append(" ").append(tagCloudVanilla).toString();

    if ((!isMultiplayer) && (modCartEnabled) && (optCartPerpetual)) str = new StringBuilder().append(str).append(" ").append(tagCartPerpetual).toString();

    if ((!isMultiplayer) && (modBuildEnabled) && (optBuild)) str = new StringBuilder().append(str).append(" ").append(tagBuildEnabled).toString();

    if (modCompassEnabled) {
      if (optCompassShowPos) str = new StringBuilder().append(str).append(" (").append(fix(posX)).append(",").append(fix(posY)).append(",").append(fix(posZ)).append(")").toString();
      if (!compassShowOrig) str = new StringBuilder().append(str).append(" ").append(tagCompassAlternate).toString();
    }

    if ((modSunEnabled) && (sunTimeOffset != 0L)) str = new StringBuilder().append(str).append(" ").append(tagSunTime).append(sunTimeOffset < 0L ? "" : "+").append(sunTimeOffset / 20L).toString();

    if ((modFlyEnabled) && (fly)) str = new StringBuilder().append(str).append(" ").append(tagFly).toString();

    if ((modRecipeEnabled) && (optRecipeShowId)) str = new StringBuilder().append(str).append(invItems[getInvCur()] == null ? "" : new StringBuilder().append(" id:").append(getItemsId(invItems[getInvCur()])).append("/").append(getItemsInfo(invItems[getInvCur()])).toString()).toString();

    if ((modSafeEnabled) && (safeShow)) str = new StringBuilder().append(str).append(" ").append(tagSafe).toString();

    return str;
  }

  private static final boolean spawnCheckA(int paramInt)
  {
    return qk.m[paramInt] == null ? false : qk.m[paramInt].a();
  }
  private static void reCheckSafe(int paramInt1, int paramInt2, int paramInt3) {
    safeCur = 0;
    int i = SPAWN; int j = SPAWN | LIQUID | SOLID; int k = SPAWN; int m = 0;
    if ((modSpawnEnabled) && (!isMultiplayer)) {
      if (!optSpawnAllowInNonAir) j |= DECAL;
      if (!optSpawnAllowOnNonNatural) m |= CRAFT;
      if (!optSpawnAllowOnGrass) m |= GRASS;
      if (!optSpawnAllowOnCobble) m |= COBBLE;
      if (!optSpawnAllowOnSand) m |= SAND;
      if (!optSpawnAllowOnGravel) m |= GRAVEL;
      if (!optSpawnAllowOnTree) m |= TREE;
    }
    for (int n = paramInt1 - 16; n < paramInt1 + 16; n++) for (int i1 = paramInt2 - 16; i1 < paramInt2 + 16; i1++) for (int i2 = paramInt3 - 16; i2 < paramInt3 + 16; i2++)
        {
          int i3;
          if ((((i3 = block[worldGetId(n, i1, i2)]) & i) == 0) || 
            ((i3 & m) != 0) || 
            ((block[worldGetId(n, i1 + 1, i2)] & j) != 0) || 
            ((block[worldGetId(n, i1 + 2, i2)] & k) != 0))
            continue;
          if (world.c(n >> 4, i2 >> 4).c(n & 0xF, i1 + 1, i2 & 0xF, 16) <= 7) {
            safeMark[(safeCur++)] = new ZMod.Mark(n, i1 + 1, i2);
            if (safeCur == 1024) return;
          }
        }
  }

  public static void calculate(double paramDouble1, double paramDouble2, double paramDouble3)
  {
    flyMX = paramDouble1; flyMY = paramDouble2; flyMZ = paramDouble3;
    if (!fly) return;
    flyMY = 0.0D;
    if (!isMenu) {
      if (keyDown(keyFlyUp)) flyMY += optFlySpeedVertical;
      if (keyDown(keyFlyDown)) flyMY -= optFlySpeedVertical;
      double d = keyDown(keyFlySpeed) ? optFlySpeedMulModifier : optFlySpeedMulNormal;
      flyMX *= d; flyMY *= d; flyMZ *= d;
    }
  }

  public static final int worldGetId(int paramInt1, int paramInt2, int paramInt3) {
    return world.a(paramInt1, paramInt2, paramInt3); } 
  private static final gz newItemsE(int paramInt1, int paramInt2) { return newItems(paramInt1 & 0xFFFF, paramInt2, paramInt1 >> 16); } 
  private static final gz newItems(int paramInt1, int paramInt2, int paramInt3) { return new gz(paramInt1, paramInt2, paramInt3 == 9999 ? -1 : paramInt3); } 
  private static final gz newItems(int paramInt1, int paramInt2) { return newItems(paramInt1, paramInt2, 0); } 
  private static final int getInvCur() { return inv.c; } 
  private static final void setInvCur(int paramInt) { inv.c = paramInt; } 
  private static final int getItemsId(Object paramObject) { return ((gz)paramObject).c; } 
  private static final void setItemsCount(Object paramObject, int paramInt) { ((gz)paramObject).a = paramInt; } 
  private static final int getItemsInfo(Object paramObject) { return ((gz)paramObject).i(); } 
  private static final String[] getSignText(int paramInt1, int paramInt2, int paramInt3) { return getSign(paramInt1, paramInt2, paramInt3).a; } 
  private static final ti getSign(int paramInt1, int paramInt2, int paramInt3) { return (ti)world.b(paramInt1, paramInt2, paramInt3); } 
  private static final List getEntities() { return world.b; } 
  private static final void setEntityPos(om paramom, double paramDouble1, double paramDouble2, double paramDouble3) {
    paramom.c(0.0D, 0.0D, 0.0D);
    paramom.aF = (paramom.bh = paramom.aI = paramDouble1);
    paramom.aG = (paramom.bi = paramom.aJ = paramDouble2);
    paramom.aH = (paramom.bj = paramom.aK = paramDouble3);
    paramom.c(paramDouble1, paramDouble2, paramDouble3);
  }
  private static final double getEntityPosX(om paramom) { return paramom.aF; } 
  private static final double getEntityPosY(om paramom) { return paramom.aG; } 
  private static final double getEntityPosZ(om paramom) { return paramom.aH; } 
  private static final void chunkNeedsUpdate(int paramInt1, int paramInt2) { paramInt1 <<= 4; paramInt2 <<= 4; world.b(paramInt1, 0, paramInt2, paramInt1 + 15, 127, paramInt2 + 15); }

  public static void log(String paramString)
  {
    out.println(paramString);
  }

  public static void err(String paramString) {
    if (firstError == null) firstError = paramString;
    log(paramString);
    setMsg("ZMerror", new StringBuilder().append("ZMod: errors detected - one or more mods affected\nFirst ").append(firstError).append("\nLog: ").append(logPath).toString(), 2, 36, 16746632);
  }

  public static void err(String paramString, Exception paramException) {
    err(paramString);
    log(new StringBuilder().append("### Exception: ").append(paramException.toString()).toString());
    paramException.printStackTrace(out);
  }

  public static int getBind(String paramString, int paramInt)
  {
    String str = conf.getProperty(paramString);
    if ((str == null) || (str.equals(""))) return paramInt;
    int i = Keyboard.getKeyIndex(str);
    if (i == 0) { err(new StringBuilder().append("error: config.txt @ ").append(paramString).append(" - invalid key name \"").append(str).append("\"").toString()); return paramInt; }
    return i;
  }

  public static float getFloat(String paramString, float paramFloat1, float paramFloat2, float paramFloat3) {
    String str = conf.getProperty(paramString);
    if (str == null) return paramFloat1;
    float f = new Float(str).floatValue();
    if ((f < paramFloat2) || (f > paramFloat3)) { err(new StringBuilder().append("error: config.txt @ ").append(paramString).append(" - must be between ").append(paramFloat2).append(" and ").append(paramFloat3).toString()); return paramFloat1; }
    return f;
  }

  public static int getInt(String paramString, int paramInt1, int paramInt2, int paramInt3) {
    String str = conf.getProperty(paramString);
    if (str == null) return paramInt1;
    int i = new Integer(str).intValue();
    if ((i < paramInt2) || (i > paramInt3)) { err(new StringBuilder().append("error: config.txt @ ").append(paramString).append(" - must be between ").append(paramInt2).append(" and ").append(paramInt3).toString()); return paramInt1; }
    return i;
  }

  public static String getString(String paramString1, String paramString2) {
    String str = conf.getProperty(paramString1);
    if (str == null) return paramString2;
    return str;
  }

  public static boolean getBool(String paramString, boolean paramBoolean) {
    String str = conf.getProperty(paramString);
    if (str == null) return paramBoolean;
    if ((str.equals("1")) || (str.equals("yes")) || (str.equals("true")) || (str.equals("on"))) return true;
    if ((str.equals("0")) || (str.equals("no")) || (str.equals("false")) || (str.equals("off"))) return false;
    err(new StringBuilder().append("error: config.txt @ ").append(paramString).append(" - must be one of (1, yes, true, on, 0, no, false, off)").toString());
    return paramBoolean;
  }

  private static void reportException(Exception paramException)
  {
    if (exceptionReported) return;
    exceptionReported = true;
    err("exception in reflection code encountered !", paramException);
  }
  public static Field getField(Class paramClass, String paramString) { try { Field localField = paramClass.getDeclaredField(paramString); localField.setAccessible(true); return localField; } catch (Exception localException) { reportException(localException); } return null; } 
  public static Object getValue(Field paramField, Object paramObject) { try { return paramField.get(paramObject); } catch (Exception localException) { reportException(localException); } return null; } 
  public static void setValue(Field paramField, Object paramObject1, Object paramObject2) { try { paramField.set(paramObject1, paramObject2); } catch (Exception localException) { reportException(localException); }  } 
  public static Class getClass(String paramString) {
    try { return Class.forName(paramString); } catch (Exception localException) { reportException(localException); } return null; } 
  public static Constructor getConstructor(Class paramClass, Class[] paramArrayOfClass) { try { return paramClass.getConstructor(paramArrayOfClass); } catch (Exception localException) { reportException(localException); } return null; } 
  public static Method getMethod(Class paramClass, String paramString, Class[] paramArrayOfClass) { try { Method localMethod = paramClass.getDeclaredMethod(paramString, paramArrayOfClass); localMethod.setAccessible(true); return localMethod; } catch (Exception localException) { reportException(localException); } return null; } 
  public static Method getMethod(Class paramClass, String paramString) { return getMethod(paramClass, paramString, new Class[0]); } 
  public static Method getMethod(Class paramClass1, String paramString, Class paramClass2) { return getMethod(paramClass1, paramString, new Class[] { paramClass2 }); } 
  public static Method getMethod(Class paramClass1, String paramString, Class paramClass2, Class paramClass3) { return getMethod(paramClass1, paramString, new Class[] { paramClass2, paramClass3 }); } 
  public static Method getMethod(Class paramClass1, String paramString, Class paramClass2, Class paramClass3, Class paramClass4) { return getMethod(paramClass1, paramString, new Class[] { paramClass2, paramClass3, paramClass4 }); } 
  public static Method getMethod(Class paramClass1, String paramString, Class paramClass2, Class paramClass3, Class paramClass4, Class paramClass5) { return getMethod(paramClass1, paramString, new Class[] { paramClass2, paramClass3, paramClass4, paramClass5 }); } 
  public static Object getNew(Constructor paramConstructor, Object[] paramArrayOfObject) { try { return paramConstructor.newInstance(paramArrayOfObject); } catch (Exception localException) { reportException(localException); } return null; } 
  public static Object getNew(Constructor paramConstructor, Object paramObject) { return getNew(paramConstructor, new Object[] { paramObject }); } 
  public static Object getNew(Constructor paramConstructor, Object paramObject1, Object paramObject2) { return getNew(paramConstructor, new Object[] { paramObject1, paramObject2 }); } 
  public static Object getNew(Constructor paramConstructor, Object paramObject1, Object paramObject2, Object paramObject3) { return getNew(paramConstructor, new Object[] { paramObject1, paramObject2, paramObject3 }); } 
  public static Object getNew(Constructor paramConstructor, Object paramObject1, Object paramObject2, Object paramObject3, Object paramObject4) { return getNew(paramConstructor, new Object[] { paramObject1, paramObject2, paramObject3, paramObject4 }); } 
  public static Object getNew(Class paramClass) { try { return paramClass.newInstance(); } catch (Exception localException) { reportException(localException); } return null; } 
  public static Object getResult(Method paramMethod, Object paramObject, Object[] paramArrayOfObject) { try { return paramMethod.invoke(paramObject, paramArrayOfObject); } catch (Exception localException) { reportException(localException); } return null; } 
  public static Object getResult(Method paramMethod) { return getResult(paramMethod, null, new Object[0]); } 
  public static Object getResult(Method paramMethod, Object paramObject) { return getResult(paramMethod, paramObject, new Object[0]); } 
  public static Object getResult(Method paramMethod, Object paramObject1, Object paramObject2) { return getResult(paramMethod, paramObject1, new Object[] { paramObject2 }); } 
  public static Object getResult(Method paramMethod, Object paramObject1, Object paramObject2, Object paramObject3) { return getResult(paramMethod, paramObject1, new Object[] { paramObject2, paramObject3 }); } 
  public static Object getResult(Method paramMethod, Object paramObject1, Object paramObject2, Object paramObject3, Object paramObject4) { return getResult(paramMethod, paramObject1, new Object[] { paramObject2, paramObject3, paramObject4 }); } 
  public static Object getResult(Method paramMethod, Object paramObject1, Object paramObject2, Object paramObject3, Object paramObject4, Object paramObject5) { return getResult(paramMethod, paramObject1, new Object[] { paramObject2, paramObject3, paramObject4, paramObject5 }); } 
  public static boolean checkClass(Class paramClass) { try { Field localField = paramClass.getDeclaredField("zmodmarker"); return localField != null; } catch (Exception localException) {  }
    return false; }

  public static void delMsg(String paramString) {
    ZFR.delMsg(paramString); } 
  public static void setMsg(String paramString) { setMsg("debug", paramString, 50, 50, 16777215); } 
  public static void setMsg(String paramString1, String paramString2, int paramInt1, int paramInt2) { setMsg(paramString1, paramString2, paramInt1, paramInt2, 16777215); } 
  public static void setMsg(String paramString1, String paramString2, int paramInt1, int paramInt2, int paramInt3) { ZFR.setMsg(paramString1, paramString2, paramInt1, paramInt2, paramInt3); } 
  public static boolean keyPress(int paramInt) { int i = keys[paramInt] == 0 ? 1 : 0; return ((keys[paramInt] = Keyboard.isKeyDown(paramInt))) && (i != 0); } 
  public static boolean keyDown(int paramInt) { return Keyboard.isKeyDown(paramInt);
  }

  private static void parse(List paramList, String paramString, int paramInt)
  {
    pList = paramList;
    pNames = new HashMap();
    pFiles = new HashSet();
    parseFile(paramString, paramInt);
  }

  private static void parseFile(String paramString, int paramInt)
  {
    if (!pFiles.add(paramString)) {
      err(new StringBuilder().append("error: recursion detected - \"").append(paramString).append("\" is already included").toString());
      return;
    }
    String str1 = ""; String str2 = new StringBuilder().append(path).append(paramString).toString();
    try {
      byte[] arrayOfByte = new byte[(int)new File(str2).length()];
      BufferedInputStream localBufferedInputStream = new BufferedInputStream(new FileInputStream(str2));
      localBufferedInputStream.read(arrayOfByte);
      localBufferedInputStream.close();
      str1 = new String(arrayOfByte);
      log(new StringBuilder().append("info: parsing \"").append(paramString).append("\"").toString());
    } catch (Exception localException) {
      err(new StringBuilder().append("error: failed to load \"").append(paramString).append("\"").toString(), localException);
      str1 = "";
    }
    String[] arrayOfString = str1.split("\\r?\\n");

    for (int i = 0; i < arrayOfString.length; i++)
      if (arrayOfString[i].startsWith("[IGNORE]")) { paramInt = 0;
      } else if (arrayOfString[i].startsWith("[NAMEMAP]")) { paramInt = 1;
      } else if (arrayOfString[i].startsWith("[RECIPES]")) { paramInt = 2;
      } else if (arrayOfString[i].startsWith("[NAMEMAP=")) { parseFile(arrayOfString[i].substring(9).replaceAll("\\].*\\z", ""), 1);
      } else if (arrayOfString[i].startsWith("[RECIPES=")) { parseFile(arrayOfString[i].substring(9).replaceAll("\\].*\\z", ""), 2);
      } else if (paramInt == 1) { parseNames(arrayOfString[i], paramString, i + 1); } else {
        if (paramInt != 2) continue; parseRecipe(arrayOfString[i], paramString, i + 1);
      }
  }

  private static int parseIdInfo(String paramString) {
    try {
      String[] arrayOfString = paramString.split("/");
      if (arrayOfString.length > 2) return -1;
      int i = Integer.decode(arrayOfString[0]).intValue();
      if (arrayOfString.length == 2) {
        int j = Integer.decode(arrayOfString[1]).intValue();
        if (j < 0) j = 9999;
        i += (j << 16);
      }
      return i; } catch (Exception localException) {
    }
    return -1;
  }

  private static void parseNames(String paramString1, String paramString2, int paramInt)
  {
    String[] arrayOfString = paramString1.replaceAll("\\A[\\t ]*", "").replaceAll("[\\t ]*(|//.*)\\z", "").split("[ \\t]+");
    if ((arrayOfString.length & 0x1) != 0) {
      if ((arrayOfString.length != 1) && (!arrayOfString[0].equals(""))) err(new StringBuilder().append("error: ").append(paramString2).append(" @ line#").append(paramInt).append(" \"").append(paramString1).append("\" - incomplete name definition").toString()); 
    }
    else for (int i = 0; i < arrayOfString.length; i += 2) {
        int j = parseIdInfo(arrayOfString[(i + 1)]);
        if (j == -1) err(new StringBuilder().append("error: ").append(paramString2).append(" @ line#").append(paramInt).append(" \"").append(paramString1).append("\" - non numbers in name definition").toString()); else
          pNames.put(arrayOfString[i], Integer.valueOf(j));
      }
  }

  private static void addRecipe(int paramInt1, int paramInt2, gz[] paramArrayOfgz, int paramInt3, int paramInt4)
  {
    int i = paramInt2 > 0 ? 1 : 0;
    gz[] arrayOfgz = paramArrayOfgz;
    ArrayList localArrayList = null;
    if (i == 0) {
      arrayOfgz = new gz[9];
      localArrayList = new ArrayList();
      for (int j = 0; j < paramArrayOfgz.length; j++) localArrayList.add(arrayOfgz[j] =  = paramArrayOfgz[j]);
      paramInt1 = paramInt2 = 3;
    }
    jv localjv = new jv(null, paramInt1, paramInt2);
    setValue(fCBTable, localjv, arrayOfgz);

    for (int k = 0; k < pList.size(); k++) { if (!((cs)pList.get(k)).a(localjv)) continue; pList.remove(k);
    }
    if (paramInt3 != 0) pList.add(i != 0 ? new gv(paramInt1, paramInt2, paramArrayOfgz, newItemsE(paramInt3, paramInt4)) : new pp(newItemsE(paramInt3, paramInt4), localArrayList));
  }

  private static void parseRecipe(String paramString1, String paramString2, int paramInt)
  {
    String str = "";
    String[] arrayOfString = paramString1.replaceAll("\\A[\\t ]*", "").replaceAll("[\\t ]*(|//.*)\\z", "").split("[ \\t]+");
    if (arrayOfString.length < 5) {
      if ((arrayOfString.length != 1) && (!arrayOfString[0].equals(""))) log(new StringBuilder().append("error: ").append(paramString2).append(" @ line#").append(paramInt).append(" \"").append(paramString1).append("\" - incomplete recipe definition").toString());
      return;
    }
    try {
      str = arrayOfString[0];
      int i = Integer.decode(arrayOfString[2]).intValue(); int j = Integer.decode(arrayOfString[3]).intValue(); int k = Integer.decode(arrayOfString[1]).intValue();
      int m = pNames.containsKey(arrayOfString[0]) ? ((Integer)pNames.get(arrayOfString[0])).intValue() : parseIdInfo(arrayOfString[0]);
      if ((m < 0) || (k < 0) || ((m > 0) && (k <= 0))) {
        err(new StringBuilder().append("error: ").append(paramString2).append(" @ line#").append(paramInt).append(" \"").append(paramString1).append("\" - bad recipe result").toString());
        return;
      }
      if ((j != 0) && ((i * j + 4 != arrayOfString.length) || (i <= 0) || (j <= 0) || (i > 3) || (j > 3))) {
        err(new StringBuilder().append("error: ").append(paramString2).append(" @ line#").append(paramInt).append(" \"").append(paramString1).append("\" - invalid recipe size (").append(i).append(",").append(j).append(")").toString());
        return;
      }if ((j == 0) && ((i + 4 != arrayOfString.length) || (i <= 0))) {
        err(new StringBuilder().append("error: ").append(paramString2).append(" @ line#").append(paramInt).append(" \"").append(paramString1).append("\" - invalid recipe size (").append(i).append(")").toString());
        return;
      }
      gz[] arrayOfgz = new gz[i * (j == 0 ? 1 : j)];
      for (int n = 4; n < arrayOfString.length; n++) {
        str = arrayOfString[n];
        int i1 = pNames.containsKey(arrayOfString[n]) ? ((Integer)pNames.get(arrayOfString[n])).intValue() : parseIdInfo(arrayOfString[n]);
        if ((i1 == -1) || ((j == 0) && (i1 == 0))) throw new Exception(new StringBuilder().append("(").append(i1).append(" ").append(arrayOfString[n]).append(" ").append(pNames.containsKey(arrayOfString[n]) ? "+" : "-").append(")").toString());
        arrayOfgz[(n - 4)] = (i1 <= 0 ? null : newItemsE(i1, 1));
      }
      addRecipe(i, j, arrayOfgz, m, k);
    } catch (Exception localException) {
      err(new StringBuilder().append("error: ").append(paramString2).append(" @ line#").append(paramInt).append(" \"").append(paramString1).append("\" - \"").append(str).append("\" is unknown or malformed").toString());
      err("???", localException);
    }
  }

  private static int[] parseRule(String paramString) {
    String[] arrayOfString1 = paramString.split("[\t ]+");
    int[] arrayOfInt = new int[arrayOfString1.length * 6];
    for (int i = 0; i < arrayOfString1.length; i++) {
      String[] arrayOfString2 = arrayOfString1[i].split("/");
      if (arrayOfString2.length != 6) { modOreEnabled = false; err(new StringBuilder().append("error : ore-mod disabled - invalid ore rule found \"").append(paramString).append("\"").toString()); } else {
        arrayOfInt[(i * 6 + 0)] = new Integer(arrayOfString2[0]).intValue();
        arrayOfInt[(i * 6 + 1)] = new Integer(arrayOfString2[1]).intValue();
        arrayOfInt[(i * 6 + 2)] = new Integer(arrayOfString2[2]).intValue();
        arrayOfInt[(i * 6 + 3)] = new Integer(arrayOfString2[3]).intValue();
        arrayOfInt[(i * 6 + 4)] = new Integer(arrayOfString2[4]).intValue();
        arrayOfInt[(i * 6 + 5)] = new Integer(arrayOfString2[5]).intValue();
      }
    }
    return arrayOfInt;
  }

  private static final class Mark
  {
    public float x;
    public float y;
    public float z;

    public Mark(int paramInt1, int paramInt2, int paramInt3)
    {
      this.x = (0.5F + paramInt1); this.y = (paramInt2 + 0.13F); this.z = (0.5F + paramInt3);
    }
  }
}

localArrayList.add(arrayOfgz[j] = = paramArrayOfgz[j]);


Can you explain what you mean for this line to do? localArrayList is a raw ArrayList, so I've go no clues from the declaration what it is you mean to add here. Are you trying to assign from the paramArray to the array and then add to the localArrayList? If so, why not just do that? Like so:

arrayOfgz[j] =paramArrayOfgz[j];
localArrayList.add(paramArrayOfgz[j]);

It's legible and the compiler will probably like it.
Or do you mean to compare the two values and add a boolean to the arraylist??
In no case does x = = y mean anything, which is why you're getting a compiler error.
If you explain what you're trying to do, maybe you'll get a good suggestion about how to do it.

This article has been dead for over six months. Start a new discussion instead.