Fix more issues with looting shears patch

This commit is contained in:
BillyGalbreath
2022-01-06 20:49:39 -06:00
parent 176a9cc15d
commit fefd52e298
2 changed files with 8 additions and 8 deletions

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Shears can have looting enchantment
diff --git a/src/main/java/org/bukkit/enchantments/EnchantmentTarget.java b/src/main/java/org/bukkit/enchantments/EnchantmentTarget.java
index 93d5fad641c5afa679b59dc712f0d0faaddcfe2e..a576b6c009e058cb85bac56dc701bfd2289a1eef 100644
index 93d5fad641c5afa679b59dc712f0d0faaddcfe2e..1f478844707352072cbcefe34318637c74ff3e15 100644
--- a/src/main/java/org/bukkit/enchantments/EnchantmentTarget.java
+++ b/src/main/java/org/bukkit/enchantments/EnchantmentTarget.java
@@ -237,6 +237,16 @@ public enum EnchantmentTarget {
@@ -17,10 +17,10 @@ index 93d5fad641c5afa679b59dc712f0d0faaddcfe2e..a576b6c009e058cb85bac56dc701bfd2
+ /**
+ * Allow the Enchantment to be placed on shears.
+ */
+ SHEARS {
+ WEAPON_AND_SHEARS {
+ @Override
+ public boolean includes(@NotNull Material item) {
+ return item.equals(Material.SHEARS);
+ return WEAPON.includes(item) || item.equals(Material.SHEARS);
+ }
// Purpur end
};

View File

@@ -122,7 +122,7 @@ index d60cb629586e6eccfcd79b1b2e4da119550497f3..465bd5c7401ec29d0c43d9add3b07254
this.forceDrops = false; // CraftBukkit
}
diff --git a/src/main/java/net/minecraft/world/item/enchantment/EnchantmentCategory.java b/src/main/java/net/minecraft/world/item/enchantment/EnchantmentCategory.java
index d6417c1e77ac8823e18a179dc9f61757a1f339ad..90f3db3401d5b5ea5b9456f21d7f9bff0e48d364 100644
index d6417c1e77ac8823e18a179dc9f61757a1f339ad..a19dd0946f853193ff32b2b560db27534b8b4abf 100644
--- a/src/main/java/net/minecraft/world/item/enchantment/EnchantmentCategory.java
+++ b/src/main/java/net/minecraft/world/item/enchantment/EnchantmentCategory.java
@@ -104,6 +104,12 @@ public enum EnchantmentCategory {
@@ -130,16 +130,16 @@ index d6417c1e77ac8823e18a179dc9f61757a1f339ad..90f3db3401d5b5ea5b9456f21d7f9bff
return item instanceof BowItem || item instanceof CrossbowItem;
}
+ },
+ SHEARS {
+ WEAPON_AND_SHEARS {
+ @Override
+ public boolean canEnchant(Item item) {
+ return item instanceof net.minecraft.world.item.ShearsItem;
+ return WEAPON.canEnchant(item) || item instanceof net.minecraft.world.item.ShearsItem;
+ }
// Purpur end
};
diff --git a/src/main/java/net/minecraft/world/item/enchantment/LootBonusEnchantment.java b/src/main/java/net/minecraft/world/item/enchantment/LootBonusEnchantment.java
index 6b8a1535086aae7e4e3229d05615fb903188f507..20adfaab6af8cce48fbd489876bf18b43d1ae21c 100644
index 6b8a1535086aae7e4e3229d05615fb903188f507..60af917083de1b790b1d93d61835a669143068fb 100644
--- a/src/main/java/net/minecraft/world/item/enchantment/LootBonusEnchantment.java
+++ b/src/main/java/net/minecraft/world/item/enchantment/LootBonusEnchantment.java
@@ -7,6 +7,14 @@ public class LootBonusEnchantment extends Enchantment {
@@ -150,7 +150,7 @@ index 6b8a1535086aae7e4e3229d05615fb903188f507..20adfaab6af8cce48fbd489876bf18b4
+ @Override
+ public boolean canEnchant(net.minecraft.world.item.ItemStack stack) {
+ // we have to cheat the system because this class is loaded before purpur's config is loaded
+ return (org.purpurmc.purpur.PurpurConfig.allowShearsLooting && this.category == EnchantmentCategory.WEAPON ? EnchantmentCategory.SHEARS : this.category).canEnchant(stack.getItem());
+ return (org.purpurmc.purpur.PurpurConfig.allowShearsLooting && this.category == EnchantmentCategory.WEAPON ? EnchantmentCategory.WEAPON_AND_SHEARS : this.category).canEnchant(stack.getItem());
+ }
+ // Purpur end
+