53 lines
1.8 KiB
Diff
53 lines
1.8 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: SoSeDiK <mrsosedik@gmail.com>
|
|
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
|
|
}
|