diff options
Diffstat (limited to 'patches/api/0472-Fix-equipment-slot-and-group-API.patch')
-rw-r--r-- | patches/api/0472-Fix-equipment-slot-and-group-API.patch | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/patches/api/0472-Fix-equipment-slot-and-group-API.patch b/patches/api/0472-Fix-equipment-slot-and-group-API.patch new file mode 100644 index 0000000000..4b04cc2455 --- /dev/null +++ b/patches/api/0472-Fix-equipment-slot-and-group-API.patch @@ -0,0 +1,76 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Jake Potrebic <[email protected]> +Date: Wed, 22 May 2024 10:00:19 -0700 +Subject: [PATCH] Fix equipment slot and group API + +was missing the 'body' slot group + +diff --git a/src/main/java/org/bukkit/attribute/AttributeModifier.java b/src/main/java/org/bukkit/attribute/AttributeModifier.java +index 90f18f355a6a236a7e4273cc1258e7c8034b8276..a0750d457a9cd7cf3ab9c45bb28ce5a2aef35298 100644 +--- a/src/main/java/org/bukkit/attribute/AttributeModifier.java ++++ b/src/main/java/org/bukkit/attribute/AttributeModifier.java +@@ -112,6 +112,7 @@ public class AttributeModifier implements ConfigurationSerializable, Keyed { + */ + @Nullable + @Deprecated ++ @io.papermc.paper.annotation.DoNotUse // Paper + public EquipmentSlot getSlot() { + return slot == EquipmentSlotGroup.ANY ? null : slot.getExample(); + } +diff --git a/src/main/java/org/bukkit/inventory/EntityEquipment.java b/src/main/java/org/bukkit/inventory/EntityEquipment.java +index 1b34286fb6cbedb3841c84c499eb626f61885126..0829418cc4b586ea9c800617f7184b1e60f756a6 100644 +--- a/src/main/java/org/bukkit/inventory/EntityEquipment.java ++++ b/src/main/java/org/bukkit/inventory/EntityEquipment.java +@@ -15,6 +15,7 @@ public interface EntityEquipment { + * + * @param slot the slot to put the ItemStack + * @param item the ItemStack to set ++ * @throws IllegalArgumentException if the slot is invalid for the entity + */ + public void setItem(@NotNull EquipmentSlot slot, @Nullable ItemStack item); + +@@ -23,7 +24,8 @@ public interface EntityEquipment { + * + * @param slot the slot to put the ItemStack + * @param item the ItemStack to set +- * @param silent whether or not the equip sound should be silenced ++ * @param silent whether the equip sound should be silenced ++ * @throws IllegalArgumentException if the slot is invalid for the entity + */ + public void setItem(@NotNull EquipmentSlot slot, @Nullable ItemStack item, boolean silent); + +@@ -32,6 +34,7 @@ public interface EntityEquipment { + * + * @param slot the slot to get the ItemStack + * @return the ItemStack in the given slot ++ * @throws IllegalArgumentException if the slot is invalid for the entity + */ + @NotNull + public ItemStack getItem(@NotNull EquipmentSlot slot); +diff --git a/src/main/java/org/bukkit/inventory/EquipmentSlot.java b/src/main/java/org/bukkit/inventory/EquipmentSlot.java +index c1c69ba4c361740f0ad422a7840a7f0f055c186a..1bedf9b7ee16729397e1fa2915dd76a1c6fbe212 100644 +--- a/src/main/java/org/bukkit/inventory/EquipmentSlot.java ++++ b/src/main/java/org/bukkit/inventory/EquipmentSlot.java +@@ -15,7 +15,7 @@ public enum EquipmentSlot { + /** + * Only for certain entities such as horses and wolves. + */ +- BODY(() -> EquipmentSlotGroup.ARMOR); ++ BODY(() -> EquipmentSlotGroup.BODY); // Paper - add missing slot type + + private final Supplier<EquipmentSlotGroup> group; // Supplier because of class loading order, since EquipmentSlot and EquipmentSlotGroup reference each other on class init + +diff --git a/src/main/java/org/bukkit/inventory/EquipmentSlotGroup.java b/src/main/java/org/bukkit/inventory/EquipmentSlotGroup.java +index 0019c8d91eefbfb44e76b9f929b25cd189295b79..2ba475ee5e976a6f5451021be17697345b29110a 100644 +--- a/src/main/java/org/bukkit/inventory/EquipmentSlotGroup.java ++++ b/src/main/java/org/bukkit/inventory/EquipmentSlotGroup.java +@@ -25,7 +25,8 @@ public final class EquipmentSlotGroup implements Predicate<EquipmentSlot> { + public static final EquipmentSlotGroup LEGS = get("legs", EquipmentSlot.LEGS); + public static final EquipmentSlotGroup CHEST = get("chest", EquipmentSlot.CHEST); + public static final EquipmentSlotGroup HEAD = get("head", EquipmentSlot.HEAD); +- public static final EquipmentSlotGroup ARMOR = get("armor", (test) -> test == EquipmentSlot.FEET || test == EquipmentSlot.LEGS || test == EquipmentSlot.CHEST || test == EquipmentSlot.HEAD, EquipmentSlot.CHEST); ++ public static final EquipmentSlotGroup ARMOR = get("armor", (test) -> test == EquipmentSlot.FEET || test == EquipmentSlot.LEGS || test == EquipmentSlot.CHEST || test == EquipmentSlot.HEAD || test == EquipmentSlot.BODY, EquipmentSlot.CHEST); // Paper - add missing slot type ++ public static final EquipmentSlotGroup BODY = get("body", EquipmentSlot.BODY); // Paper - add missing slot group + // + private final String key; + private final Predicate<EquipmentSlot> predicate; |