Merge pull request #153 from kashike/feature/slot

Access items by EquipmentSlot
This commit is contained in:
Zach 2016-03-27 02:24:12 -05:00
commit 5108183346
2 changed files with 104 additions and 0 deletions

View File

@ -0,0 +1,36 @@
From df17741c376cfdac8301e64a9dc9a956e75ae5f1 Mon Sep 17 00:00:00 2001
From: Jedediah Smith <jedediah@silencegreys.com>
Date: Sun, 20 Mar 2016 06:44:49 -0400
Subject: [PATCH] Access items by EquipmentSlot
diff --git a/src/main/java/org/bukkit/inventory/PlayerInventory.java b/src/main/java/org/bukkit/inventory/PlayerInventory.java
index 557cc04..799f150 100644
--- a/src/main/java/org/bukkit/inventory/PlayerInventory.java
+++ b/src/main/java/org/bukkit/inventory/PlayerInventory.java
@@ -211,4 +211,22 @@ public interface PlayerInventory extends Inventory {
public int clear(int id, int data);
public HumanEntity getHolder();
+
+ // Paper start
+ /**
+ * Gets the {@link ItemStack} found in the slot.
+ *
+ * @param slot The slot
+ * @return The item stack in the slot
+ */
+ ItemStack getItem(EquipmentSlot slot);
+
+ /**
+ * Sets the {@link ItemStack} at the given {@link EquipmentSlot}.
+ *
+ * @param slot The slot for the stack
+ * @param stack The item stack to set
+ */
+ void setItem(EquipmentSlot slot, ItemStack stack);
+ // Paper end
}
--
2.7.4

View File

@ -0,0 +1,68 @@
From 05a7b0cbf7f16e5868a57af9417e646aa62f2870 Mon Sep 17 00:00:00 2001
From: Jedediah Smith <jedediah@silencegreys.com>
Date: Sun, 20 Mar 2016 06:45:01 -0400
Subject: [PATCH] Access items by EquipmentSlot
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventoryPlayer.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventoryPlayer.java
index 0902386..19662da 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventoryPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventoryPlayer.java
@@ -268,4 +268,54 @@ public class CraftInventoryPlayer extends CraftInventory implements org.bukkit.i
public void setBootsDropChance(float chance) {
throw new UnsupportedOperationException();
}
+
+ // Paper start
+ @Override
+ public ItemStack getItem(org.bukkit.inventory.EquipmentSlot slot) {
+ Preconditions.checkNotNull(slot, "slot");
+ switch (slot) {
+ case HAND:
+ return this.getItemInMainHand();
+ case OFF_HAND:
+ return this.getItemInOffHand();
+ case HEAD:
+ return this.getHelmet();
+ case CHEST:
+ return this.getChestplate();
+ case LEGS:
+ return this.getLeggings();
+ case FEET:
+ return this.getBoots();
+ }
+
+ throw new UnsupportedOperationException(slot.name());
+ }
+
+ @Override
+ public void setItem(org.bukkit.inventory.EquipmentSlot slot, ItemStack stack) {
+ Preconditions.checkNotNull(slot, "slot");
+ switch (slot) {
+ case HAND:
+ this.setItemInMainHand(stack);
+ return;
+ case OFF_HAND:
+ this.setItemInOffHand(stack);
+ return;
+ case HEAD:
+ this.setHelmet(stack);
+ return;
+ case CHEST:
+ this.setChestplate(stack);
+ return;
+ case LEGS:
+ this.setLeggings(stack);
+ return;
+ case FEET:
+ this.setBoots(stack);
+ return;
+ }
+
+ throw new UnsupportedOperationException(slot.name());
+ }
+ // Paper end
}
--
2.7.4