@@ -0,0 +1,2625 @@
+package com.masahirosaito.spigot.homes.nms.v1_11_R1;%0A%0Aimport net.minecraft.server.v1_11_R1.*;%0Aimport org.bukkit.entity.EntityType;%0A%0Aimport java.lang.reflect.Field;%0Aimport java.util.Set;%0A%0Apublic enum CustomEntities %7B%0A%0A    HOMES_DISPLAY_ARMOR_STAND(%0A            %22Homes_DisplayArmorStand%22, 30,%0A            EntityType.ARMOR_STAND,%0A            EntityArmorStand.class,%0A            EntityNMSArmorStand.class);%0A%0A    private String name;%0A    private int id;%0A    private EntityType entityType;%0A    private Class%3C? extends Entity%3E nmsClass;%0A    private Class%3C? extends Entity%3E customClass;%0A    private MinecraftKey key;%0A    private MinecraftKey oldKey;%0A%0A    @SuppressWarnings(%22unchecked%22)%0A    CustomEntities(String name, int id, EntityType entityType,%0A                   Class%3C? extends Entity%3E nmsClass,%0A                   Class%3C? extends Entity%3E customClass) %7B%0A        this.name = name;%0A        this.id = id;%0A        this.entityType = entityType;%0A        this.nmsClass = nmsClass;%0A        this.customClass = customClass;%0A        this.key = new MinecraftKey(name);%0A        this.oldKey = ((RegistryMaterials%3CMinecraftKey, Class%3C?%3E%3E)%0A                getPrivateStatic(EntityTypes.class, %22b%22)).b(nmsClass);%0A    %7D%0A%0A    public static void registerEntities() %7B%0A        for (CustomEntities ce : CustomEntities.values()) ce.register();%0A    %7D%0A%0A    public static void unregisterEntities() %7B%0A        for (CustomEntities ce : CustomEntities.values()) ce.unregister();%0A    %7D%0A%0A    @SuppressWarnings(%22unchecked%22)%0A    private void register() %7B%0A        ((Set%3CMinecraftKey%3E) getPrivateStatic(EntityTypes.class, %22d%22)).add(key);%0A        ((RegistryMaterials%3CMinecraftKey, Class%3C?%3E%3E)%0A                getPrivateStatic(EntityTypes.class, %22b%22)).a(id, key, customClass);%0A    %7D%0A%0A    @SuppressWarnings(%22unchecked%22)%0A    private void unregister() %7B%0A        ((Set%3CMinecraftKey%3E) getPrivateStatic(EntityTypes.class, %22d%22)).remove(key);%0A        ((RegistryMaterials%3CMinecraftKey, Class%3C?%3E%3E)%0A                getPrivateStatic(EntityTypes.class, %22b%22)).a(id, oldKey, nmsClass);%0A    %7D%0A%0A    public String getName() %7B%0A        return name;%0A    %7D%0A%0A    public int getID() %7B%0A        return id;%0A    %7D%0A%0A    public EntityType getEntityType() %7B%0A        return entityType;%0A    %7D%0A%0A    public Class%3C?%3E getCustomClass() %7B%0A        return customClass;%0A    %7D%0A%0A    private static Object getPrivateStatic(final Class%3C?%3E clazz, final String f) %7B%0A        try %7B%0A            Field field = clazz.getDeclaredField(f);%0A            field.setAccessible(true);%0A            return field.get(null);%0A        %7D catch (Exception e) %7B%0A            e.printStackTrace();%0A            return null;%0A        %7D%0A    %7D%0A%7D%0A

Create new enum CustomEntities for custom entities registering