Skip to content

Commit

Permalink
Don't apply enchantments of books (Fixes MC-154873)
Browse files Browse the repository at this point in the history
  • Loading branch information
Phoenix616 committed Dec 3, 2019
1 parent 865ea0f commit 73832f7
Showing 1 changed file with 46 additions and 0 deletions.
@@ -0,0 +1,46 @@
From 05d9d696971629ea49ddd5a66a4005174720bcb5 Mon Sep 17 00:00:00 2001
From: Phoenix616 <mail@moep.tv>
Date: Tue, 3 Dec 2019 02:55:02 +0100
Subject: [PATCH] Don't apply enchantments of books (Fixes MC-154873)

---
.../java/net/minecraft/server/CriterionConditionItem.java | 2 +-
.../java/net/minecraft/server/EnchantmentManager.java | 8 +++++++-
2 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/src/main/java/net/minecraft/server/CriterionConditionItem.java b/src/main/java/net/minecraft/server/CriterionConditionItem.java
index 45926a60..a1679d37 100644
--- a/src/main/java/net/minecraft/server/CriterionConditionItem.java
+++ b/src/main/java/net/minecraft/server/CriterionConditionItem.java
@@ -61,7 +61,7 @@ public class CriterionConditionItem {
} else if (!this.h.a(itemstack)) {
return false;
} else {
- Map<Enchantment, Integer> map = EnchantmentManager.a(itemstack);
+ Map<Enchantment, Integer> map = EnchantmentManager.getEnchantments(itemstack, false); // Origami - fix stored enchantments applying

for (int i = 0; i < this.f.length; ++i) {
if (!this.f[i].a(map)) {
diff --git a/src/main/java/net/minecraft/server/EnchantmentManager.java b/src/main/java/net/minecraft/server/EnchantmentManager.java
index 1d16919e..7c4b8e3c 100644
--- a/src/main/java/net/minecraft/server/EnchantmentManager.java
+++ b/src/main/java/net/minecraft/server/EnchantmentManager.java
@@ -35,8 +35,14 @@ public class EnchantmentManager {
}

public static Map<Enchantment, Integer> a(ItemStack itemstack) {
+ // Origami start - add parameter to toggle whether or not stored enchantments should be gotten
+ return getEnchantments(itemstack, true);
+ }
+
+ public static Map<Enchantment, Integer> getEnchantments(ItemStack itemstack, boolean stored) {
Map<Enchantment, Integer> map = Maps.newLinkedHashMap();
- NBTTagList nbttaglist = itemstack.getItem() == Items.ENCHANTED_BOOK ? ItemEnchantedBook.e(itemstack) : itemstack.getEnchantments();
+ NBTTagList nbttaglist = itemstack.getItem() == Items.ENCHANTED_BOOK && stored ? ItemEnchantedBook.e(itemstack) : itemstack.getEnchantments();
+ // Origami end

for (int i = 0; i < nbttaglist.size(); ++i) {
NBTTagCompound nbttagcompound = nbttaglist.getCompound(i);
--
2.18.0.windows.1

0 comments on commit 73832f7

Please sign in to comment.