From 328a66aaf0b160765b9bb444a220a78a3cc9ca06 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 2273f213cb..60446f2478 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventoryPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventoryPlayer.java
@@ -250,4 +250,54 @@ public class CraftInventoryPlayer extends CraftInventory implements org.bukkit.i
     public void setBootsDropChance(float chance) {
         throw new UnsupportedOperationException("Cannot set drop chance for PlayerInventory");
     }
+
+    // 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.20.1