From e2b197132d00833a82cbbb57930842a6b896d626 Mon Sep 17 00:00:00 2001
From: Nassim Jahnke <nassim@njahnke.dev>
Date: Mon, 11 Sep 2023 12:03:35 +1000
Subject: [PATCH] Add missing slot sanity checks for container clicks

---
 ...ot-sanity-checks-in-container-clicks.patch | 26 +++++++++++++++++++
 1 file changed, 26 insertions(+)
 create mode 100644 patches/server/1031-Add-slot-sanity-checks-in-container-clicks.patch

diff --git a/patches/server/1031-Add-slot-sanity-checks-in-container-clicks.patch b/patches/server/1031-Add-slot-sanity-checks-in-container-clicks.patch
new file mode 100644
index 0000000000..9cd203890f
--- /dev/null
+++ b/patches/server/1031-Add-slot-sanity-checks-in-container-clicks.patch
@@ -0,0 +1,26 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Nassim Jahnke <nassim@njahnke.dev>
+Date: Mon, 11 Sep 2023 12:01:57 +1000
+Subject: [PATCH] Add slot sanity checks in container clicks
+
+
+diff --git a/src/main/java/net/minecraft/world/inventory/AbstractContainerMenu.java b/src/main/java/net/minecraft/world/inventory/AbstractContainerMenu.java
+index 706b354ac9a1a6a4a1e61b2a109180d1dd22bbbd..71b7a091e56dd68da280d13318a393170967b042 100644
+--- a/src/main/java/net/minecraft/world/inventory/AbstractContainerMenu.java
++++ b/src/main/java/net/minecraft/world/inventory/AbstractContainerMenu.java
+@@ -423,6 +423,7 @@ public abstract class AbstractContainerMenu {
+                     this.resetQuickCraft();
+                 }
+             } else if (this.quickcraftStatus == 1) {
++                if (slotIndex < 0) return; // Paper
+                 slot = (Slot) this.slots.get(slotIndex);
+                 itemstack = this.getCarried();
+                 if (AbstractContainerMenu.canItemQuickReplace(slot, itemstack, true) && slot.mayPlace(itemstack) && (this.quickcraftType == 2 || itemstack.getCount() > this.quickcraftSlots.size()) && this.canDragTo(slot)) {
+@@ -598,6 +599,7 @@ public abstract class AbstractContainerMenu {
+                 int j2;
+ 
+                 if (actionType == ClickType.SWAP) {
++                    if (slotIndex < 0) return; // Paper
+                     slot2 = (Slot) this.slots.get(slotIndex);
+                     itemstack1 = playerinventory.getItem(button);
+                     itemstack = slot2.getItem();