Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.lang.reflect.Field;
- import java.util.Map;
- import net.minecraft.server.v1_9_R1.Entity;
- import net.minecraft.server.v1_9_R1.EntityTNTPrimed;
- public enum EntityTypes
- {
- CUSTOM_TNT("PrimedTnt", 20, TNTPrimed_1_7.class);
- private String n;
- private int i;
- private Class<?> c;
- private EntityTypes(String name, int id, Class<? extends Entity> custom)
- {
- this.n = name;
- this.i = id;
- this.c = custom;
- }
- public static void register(EntityTypes en){
- addToMaps(en.c, en.n, en.i);
- }
- @SuppressWarnings({ "unchecked", "rawtypes" })
- private static void addToMaps(Class<?> clazz, String name, int id)
- {
- //getPrivateField is the method from above.
- //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).
- ((Map)getPrivateField("c", net.minecraft.server.v1_9_R1.EntityTypes.class, null)).put(name, clazz);
- ((Map)getPrivateField("d", net.minecraft.server.v1_9_R1.EntityTypes.class, null)).put(clazz, name);
- ((Map)getPrivateField("e", net.minecraft.server.v1_9_R1.EntityTypes.class, null)).put(Integer.valueOf(id), clazz);
- ((Map)getPrivateField("f", net.minecraft.server.v1_9_R1.EntityTypes.class, null)).put(clazz, Integer.valueOf(id));
- ((Map)getPrivateField("g", net.minecraft.server.v1_9_R1.EntityTypes.class, null)).put(name, Integer.valueOf(id));
- }
- private static Object getPrivateField(String fieldName, Class<?> clazz, Object object)
- {
- Field field;
- Object o = null;
- try
- {
- field = clazz.getDeclaredField(fieldName);
- field.setAccessible(true);
- o = field.get(object);
- }
- catch(NoSuchFieldException e)
- {
- e.printStackTrace();
- }
- catch(IllegalAccessException e)
- {
- e.printStackTrace();
- }
- return o;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement