aboutsummaryrefslogtreecommitdiffhomepage
path: root/patches/server/1015-Add-slot-sanity-checks-in-container-clicks.patch
blob: c83c1b58189d0910a6c1e29b7da4733655333ae2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
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 3ef712299fe248602b0b117c0a8e285cdf4e05c2..5d298b11f74cd2da47e6613ced621ab62aa73a7b 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 || button < 0) return; // Paper
                     slot2 = (Slot) this.slots.get(slotIndex);
                     itemstack1 = playerinventory.getItem(button);
                     itemstack = slot2.getItem();