001    import java.io.PrintStream;
002    import java.lang.reflect.Constructor;
003    import java.util.HashMap;
004    import java.util.Map;
005    
006    public class jn
007    {
008      private static Map a = new HashMap();
009      private static Map b = new HashMap();
010      private static Map c = new HashMap();
011      private static Map d = new HashMap();
012    
013      private static void a(Class paramClass, String paramString, int paramInt) {
014        a.put(paramString, paramClass);
015        b.put(paramClass, paramString);
016        c.put(Integer.valueOf(paramInt), paramClass);
017        d.put(paramClass, Integer.valueOf(paramInt));
018      }
019    
020      public static fe a(String paramString, fv paramfv)
021      {
022        fe localfe = null;
023        try {
024          Class localClass = (Class)a.get(paramString);
025          if (localClass != null) localfe = (fe)localClass.getConstructor(new Class[] { fv.class }).newInstance(new Object[] { paramfv });
026        }
027        catch (Exception localException)
028        {
029          localException.printStackTrace();
030        }
031        return localfe;
032      }
033    
034      public static fe a(ah paramah, fv paramfv) {
035        fe localfe = null;
036        try {
037          Class localClass = (Class)a.get(paramah.h("id"));
038          if (localClass != null) localfe = (fe)localClass.getConstructor(new Class[] { fv.class }).newInstance(new Object[] { paramfv });
039        }
040        catch (Exception localException)
041        {
042          localException.printStackTrace();
043        }
044        if (localfe != null)
045          localfe.e(paramah);
046        else {
047          System.out.println("Skipping Entity with id " + paramah.h("id"));
048        }
049        return localfe;
050      }
051    
052      public static int a(fe paramfe)
053      {
054        return ((Integer)d.get(paramfe.getClass())).intValue();
055      }
056    
057      public static String b(fe paramfe) {
058        return (String)b.get(paramfe.getClass());
059      }
060    
061      // hMod: Let us do a name->class lookup for mob spawning
062        public static Class getEntity(String name) {
063            return (Class)a.get(name);
064        }
065    
066      static
067      {
068        a(fc.class, "Arrow", 10);
069        a(by.class, "Snowball", 11);
070        a(ic.class, "Item", 1);
071        a(dd.class, "Painting", 9);
072    
073        a(mj.class, "Mob", 48);
074        a(hq.class, "Monster", 49);
075    
076        a(gy.class, "Creeper", 50);
077        a(gj.class, "Skeleton", 51);
078        a(cr.class, "Spider", 52);
079        a(ad.class, "Giant", 53);
080        a(ia.class, "Zombie", 54);
081        a(ht.class, "Slime", 55);
082        a(br.class, "Ghast", 56);
083        a(lh.class, "PigZombie", 57);
084    
085        a(js.class, "Pig", 90);
086        a(dv.class, "Sheep", 91);
087        a(bx.class, "Cow", 92);
088        a(kk.class, "Chicken", 93);
089        a(le.class, "Squid", 94);
090    
091        a(dh.class, "PrimedTnt", 20);
092        a(kd.class, "FallingSand", 21);
093    
094        a(lw.class, "Minecart", 40);
095        a(gu.class, "Boat", 41);
096      }
097    }