--- a/net/minecraft/enchantment/EnchantmentType.java
+++ b/net/minecraft/enchantment/EnchantmentType.java
@@ -11,7 +11,7 @@
 import net.minecraft.item.ToolItem;
 import net.minecraft.item.TridentItem;
 
-public enum EnchantmentType {
+public enum EnchantmentType implements net.minecraftforge.common.IExtensibleEnum {
    ARMOR {
       public boolean func_77557_a(Item p_77557_1_) {
          return p_77557_1_ instanceof ArmorItem;
@@ -86,5 +86,16 @@
    private EnchantmentType() {
    }
 
-   public abstract boolean func_77557_a(Item p_77557_1_);
+   private java.util.function.Predicate<Item> delegate;
+   private EnchantmentType(java.util.function.Predicate<Item> delegate) {
+      this.delegate = delegate;
+   }
+
+   public static EnchantmentType create(String name, java.util.function.Predicate<Item> delegate) {
+      throw new IllegalStateException("Enum not extended");
+   }
+
+   public boolean func_77557_a(Item p_77557_1_) {
+      return this.delegate == null ? false : this.delegate.test(p_77557_1_);
+   }
 }
