Advertisement
Guest User

Untitled

a guest
Aug 28th, 2016
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.98 KB | None | 0 0
  1.  
  2. import java.lang.reflect.Field;
  3. import java.util.Map;
  4.  
  5. import net.minecraft.server.v1_9_R1.Entity;
  6. import net.minecraft.server.v1_9_R1.EntityTNTPrimed;
  7.  
  8. public enum EntityTypes
  9. {
  10. CUSTOM_TNT("PrimedTnt", 20, TNTPrimed_1_7.class);
  11. private String n;
  12. private int i;
  13. private Class<?> c;
  14. private EntityTypes(String name, int id, Class<? extends Entity> custom)
  15. {
  16. this.n = name;
  17. this.i = id;
  18. this.c = custom;
  19. }
  20. public static void register(EntityTypes en){
  21. addToMaps(en.c, en.n, en.i);
  22. }
  23. @SuppressWarnings({ "unchecked", "rawtypes" })
  24. private static void addToMaps(Class<?> clazz, String name, int id)
  25. {
  26. //getPrivateField is the method from above.
  27. //Remove the lines with // in front of them if you want to override default entities (You'd have to remove the default entity from the map first though).
  28. ((Map)getPrivateField("c", net.minecraft.server.v1_9_R1.EntityTypes.class, null)).put(name, clazz);
  29. ((Map)getPrivateField("d", net.minecraft.server.v1_9_R1.EntityTypes.class, null)).put(clazz, name);
  30. ((Map)getPrivateField("e", net.minecraft.server.v1_9_R1.EntityTypes.class, null)).put(Integer.valueOf(id), clazz);
  31. ((Map)getPrivateField("f", net.minecraft.server.v1_9_R1.EntityTypes.class, null)).put(clazz, Integer.valueOf(id));
  32. ((Map)getPrivateField("g", net.minecraft.server.v1_9_R1.EntityTypes.class, null)).put(name, Integer.valueOf(id));
  33. }
  34. private static Object getPrivateField(String fieldName, Class<?> clazz, Object object)
  35. {
  36. Field field;
  37. Object o = null;
  38. try
  39. {
  40. field = clazz.getDeclaredField(fieldName);
  41. field.setAccessible(true);
  42. o = field.get(object);
  43. }
  44. catch(NoSuchFieldException e)
  45. {
  46. e.printStackTrace();
  47. }
  48. catch(IllegalAccessException e)
  49. {
  50. e.printStackTrace();
  51. }
  52. return o;
  53. }
  54. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement