31 Zeilen
1.4 KiB
Diff
31 Zeilen
1.4 KiB
Diff
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||
|
From: Josh Roy <joshroy126@gmail.com>
|
||
|
Date: Mon, 23 Jan 2023 19:19:01 -0500
|
||
|
Subject: [PATCH] Remove CraftItemStack#setAmount null assignment
|
||
|
|
||
|
This creates a problem with Paper's item serialization
|
||
|
api where deserialized items, which are internally
|
||
|
created as a CraftItemStack, will be completely lost if
|
||
|
#setAmount(0) is invoked (since the underlying handle
|
||
|
is set to null), while a regular Bukkit ItemStack
|
||
|
simply sets the amount field to zero, retaining the
|
||
|
item's data.
|
||
|
|
||
|
Vanilla treats items with zero amounts the same as items
|
||
|
with less than zero amounts, so this code doesn't create
|
||
|
a problem with operations on the vanilla ItemStack.
|
||
|
|
||
|
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java
|
||
|
index 3e5abea2f814a0a364cf87ff4ce1b1718ba2ddac..97c5a72096ac0fd0b08a397466486014cfea4579 100644
|
||
|
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java
|
||
|
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java
|
||
|
@@ -146,7 +146,7 @@ public final class CraftItemStack extends ItemStack {
|
||
|
}
|
||
|
|
||
|
this.handle.setCount(amount);
|
||
|
- if (amount == 0) {
|
||
|
+ if (false && amount == 0) { // Paper - remove CraftItemStack#setAmount null assignment
|
||
|
this.handle = null;
|
||
|
}
|
||
|
}
|