mirror of
https://github.com/PaperMC/Paper.git
synced 2024-12-02 13:07:06 +01:00
Add the ability to make Enchanted Books. Fixes BUKKIT-3220
This commit is contained in:
parent
bd0daa6d54
commit
f4836fb428
1 changed files with 21 additions and 4 deletions
|
@ -170,17 +170,34 @@ public class ContainerEnchantTable extends Container {
|
|||
return false;
|
||||
}
|
||||
|
||||
// TODO: Apply Diffs
|
||||
entityhuman.levelDown(-level);
|
||||
boolean applied = !flag;
|
||||
for (Map.Entry<org.bukkit.enchantments.Enchantment, Integer> entry : event.getEnchantsToAdd().entrySet()) {
|
||||
try {
|
||||
item.addEnchantment(entry.getKey(), entry.getValue());
|
||||
if (flag) {
|
||||
int enchantId = entry.getKey().getId();
|
||||
if (Enchantment.byId[enchantId] == null) {
|
||||
continue;
|
||||
}
|
||||
|
||||
EnchantmentInstance enchantment = new EnchantmentInstance(enchantId, entry.getValue());
|
||||
Item.ENCHANTED_BOOK.a(itemstack, enchantment);
|
||||
applied = true;
|
||||
itemstack.id = Item.ENCHANTED_BOOK.id;
|
||||
break;
|
||||
} else {
|
||||
item.addEnchantment(entry.getKey(), entry.getValue());
|
||||
}
|
||||
} catch (IllegalArgumentException e) {
|
||||
/* Just swallow invalid enchantments */
|
||||
}
|
||||
// CraftBukkit end
|
||||
}
|
||||
|
||||
// Only down level if we've applied the enchantments
|
||||
if (applied) {
|
||||
entityhuman.levelDown(-level);
|
||||
}
|
||||
// CraftBukkit end
|
||||
|
||||
this.a(this.enchantSlots);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue