Files
2018-07-15 13:26:53 +08:00

40 lines
1.6 KiB
Diff

--- ../src-base/minecraft/net/minecraftforge/common/util/EnumHelper.java
+++ ../src-work/minecraft/net/minecraftforge/common/util/EnumHelper.java
@@ -43,6 +43,10 @@
import net.minecraft.world.EnumSkyBlock;
import net.minecraft.world.gen.structure.StructureStrongholdPieces.Stronghold.Door;
import net.minecraftforge.classloading.FMLForgePlugin;
+import net.minecraftforge.fml.relauncher.ReflectionHelper;
+import org.bukkit.World;
+import org.bukkit.entity.Entity;
+import org.bukkit.entity.EntityType;
public class EnumHelper
{
@@ -372,4 +376,25 @@
setup();
}
}
+
+ public static EntityType addBukkitEntityType(String name, Class <? extends org.bukkit.entity.Entity> clazz, int typeId, boolean independent) {
+ String entityType = name.replace("-", "_").toUpperCase();
+ EntityType bukkitType = addEnum(EntityType.class, entityType, new Class[] { String.class, Class.class, Integer.TYPE, Boolean.TYPE }, new Object[] { name, clazz, typeId, independent });
+
+ Map<String, EntityType> NAME_MAP = ReflectionHelper.getPrivateValue(EntityType.class, null, "NAME_MAP");
+ Map<Short, EntityType> ID_MAP = ReflectionHelper.getPrivateValue(EntityType.class, null, "ID_MAP");
+
+ NAME_MAP.put(name.toLowerCase(), bukkitType);
+ ID_MAP.put((short)typeId, bukkitType);
+
+
+ return bukkitType;
+ }
+
+ public static World.Environment addBukkitEnvironment(int id, String name) {
+ if(!isSetup){
+ setup();
+ }
+ return (World.Environment)addEnum(World.Environment.class,name,new Class[]{Integer.TYPE}, new Object[]{Integer.valueOf(id)});
+ }
}