2023-01-24 15:30:51 +01:00
|
|
|
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
|
2024-06-15 18:28:18 +02:00
|
|
|
index a147b54668854668b02bbe39c9eae22bb98dc217..8d7e7e831792422d6e9f3210496c577fb64d597f 100644
|
2023-01-24 15:30:51 +01:00
|
|
|
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java
|
|
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java
|
2024-06-14 13:07:50 +02:00
|
|
|
@@ -163,7 +163,7 @@ public final class CraftItemStack extends ItemStack {
|
2023-01-24 15:30:51 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
this.handle.setCount(amount);
|
|
|
|
- if (amount == 0) {
|
|
|
|
+ if (false && amount == 0) { // Paper - remove CraftItemStack#setAmount null assignment
|
|
|
|
this.handle = null;
|
|
|
|
}
|
|
|
|
}
|