From 51c19dd5f1d6af5c0cf78ec44e11dda411c837e3 Mon Sep 17 00:00:00 2001 From: Christian Date: Fri, 21 Dec 2012 15:44:41 -0500 Subject: [PATCH] Fix up enchantment at the enchanting table vs via a book. Adds in a method that previously exists under a new name: canApplyAtEnchantingTable() to determine enchantments that can apply at the enchanting table (a smaller subset of all possible enchantments for an item, now). Also, add your enchantments to the anvil book application list, if neccessary. --- .../enchantment/Enchantment.java.patch | 40 +++++++++++++++++++ .../enchantment/EnchantmentHelper.java.patch | 2 +- 2 files changed, 41 insertions(+), 1 deletion(-) create mode 100644 patches/minecraft/net/minecraft/enchantment/Enchantment.java.patch diff --git a/patches/minecraft/net/minecraft/enchantment/Enchantment.java.patch b/patches/minecraft/net/minecraft/enchantment/Enchantment.java.patch new file mode 100644 index 000000000..0c7d0d3fc --- /dev/null +++ b/patches/minecraft/net/minecraft/enchantment/Enchantment.java.patch @@ -0,0 +1,40 @@ +--- ../src_base/minecraft/net/minecraft/enchantment/Enchantment.java ++++ ../src_work/minecraft/net/minecraft/enchantment/Enchantment.java +@@ -1,6 +1,9 @@ + package net.minecraft.enchantment; + + import java.util.ArrayList; ++ ++import com.google.common.collect.ObjectArrays; ++ + import net.minecraft.entity.EntityLiving; + import net.minecraft.item.ItemStack; + import net.minecraft.util.DamageSource; +@@ -205,6 +208,27 @@ + return this.type.canEnchantItem(par1ItemStack.getItem()); + } + ++ /** ++ * This applies specifically to applying at the enchanting table. The other method {@link #func_92037_a(ItemStack)} ++ * applies for all possible enchantments. ++ * @param stack ++ * @return ++ */ ++ public boolean canApplyAtEnchantingTable(ItemStack stack) ++ { ++ return this.type.canEnchantItem(stack.getItem()); ++ } ++ ++ /** ++ * Add to the list of enchantments applicable by the anvil from a book ++ * ++ * @param enchantment ++ */ ++ public static void addToBookList(Enchantment enchantment) ++ { ++ ObjectArrays.concat(field_92038_c, enchantment); ++ } ++ + static + { + ArrayList var0 = new ArrayList(); diff --git a/patches/minecraft/net/minecraft/enchantment/EnchantmentHelper.java.patch b/patches/minecraft/net/minecraft/enchantment/EnchantmentHelper.java.patch index 645a316ea..2d121e7ac 100644 --- a/patches/minecraft/net/minecraft/enchantment/EnchantmentHelper.java.patch +++ b/patches/minecraft/net/minecraft/enchantment/EnchantmentHelper.java.patch @@ -5,7 +5,7 @@ Enchantment var8 = var5[var7]; - if (var8 != null && (var8.type.canEnchantItem(var2) || var4)) -+ if (var8 != null && (var8.func_92037_a(par1ItemStack) || var4)) ++ if (var8 != null && (var8.canApplyAtEnchantingTable(par1ItemStack) || var4)) { for (int var9 = var8.getMinLevel(); var9 <= var8.getMaxLevel(); ++var9) {