aboutsummaryrefslogtreecommitdiffhomepage
path: root/patches/api/0367-Add-EquipmentSlot-convenience-methods.patch
diff options
context:
space:
mode:
Diffstat (limited to 'patches/api/0367-Add-EquipmentSlot-convenience-methods.patch')
-rw-r--r--patches/api/0367-Add-EquipmentSlot-convenience-methods.patch53
1 files changed, 53 insertions, 0 deletions
diff --git a/patches/api/0367-Add-EquipmentSlot-convenience-methods.patch b/patches/api/0367-Add-EquipmentSlot-convenience-methods.patch
new file mode 100644
index 0000000000..f7e2301f31
--- /dev/null
+++ b/patches/api/0367-Add-EquipmentSlot-convenience-methods.patch
@@ -0,0 +1,53 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: SoSeDiK <[email protected]>
+Date: Sun, 16 Oct 2022 15:28:49 +0300
+Subject: [PATCH] Add EquipmentSlot convenience methods
+
+
+diff --git a/src/main/java/org/bukkit/inventory/EquipmentSlot.java b/src/main/java/org/bukkit/inventory/EquipmentSlot.java
+index 5642d8af60b6649497aba9b0f6ab7bba7702b9ee..c1c69ba4c361740f0ad422a7840a7f0f055c186a 100644
+--- a/src/main/java/org/bukkit/inventory/EquipmentSlot.java
++++ b/src/main/java/org/bukkit/inventory/EquipmentSlot.java
+@@ -33,4 +33,42 @@ public enum EquipmentSlot {
+ public EquipmentSlotGroup getGroup() {
+ return group.get();
+ }
++ // Paper start
++ /**
++ * Checks whether this equipment slot is a hand:
++ * either {@link #HAND} or {@link #OFF_HAND}
++ *
++ * @return whether this is a hand slot
++ */
++ public boolean isHand() {
++ return this == HAND || this == OFF_HAND;
++ }
++
++ /**
++ * Gets the opposite hand
++ *
++ * @return the opposite hand
++ * @throws IllegalArgumentException if this equipment slot is not a hand
++ * @see #isHand()
++ */
++ public @NotNull EquipmentSlot getOppositeHand() {
++ return switch (this) {
++ case HAND -> OFF_HAND;
++ case OFF_HAND -> HAND;
++ default -> throw new IllegalArgumentException("Unable to determine an opposite hand for equipment slot: " + name());
++ };
++ }
++
++ /**
++ * Checks whether this equipment slot
++ * is one of the armor slots:
++ * {@link #HEAD}, {@link #CHEST},
++ * {@link #LEGS}, {@link #FEET}, or {@link #BODY}
++ *
++ * @return whether this is an armor slot
++ */
++ public boolean isArmor() {
++ return this == HEAD || this == CHEST || this == LEGS || this == FEET || this == BODY;
++ }
++ // Paper end
+ }