geforkt von Mirrors/Paper
89d51d5f29
Because this exploit has been widely known for years and has not been fixed by Mojang, we decided that it was worth allowing people to toggle it on/off due to how easy it is to make it configurable. It should be noted that this decision does not promise all future exploits will be configurable.
32 Zeilen
1.5 KiB
Diff
32 Zeilen
1.5 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Aeltumn <daniel@goossens.ch>
|
|
Date: Mon, 28 Aug 2023 13:44:09 +0200
|
|
Subject: [PATCH] Allow proper checking of empty item stacks
|
|
|
|
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java
|
|
index a2e605bc1418dc0b5570566a6e348df03c9aee4c..e1f9a603e7adf3468faa9bb6d93dd3339327b47e 100644
|
|
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java
|
|
@@ -33,12 +33,19 @@ public final class CraftItemStack extends ItemStack {
|
|
}
|
|
// Paper end - MC Utils
|
|
|
|
+ // Paper start - override isEmpty to use vanilla's impl
|
|
+ @Override
|
|
+ public boolean isEmpty() {
|
|
+ return handle == null || handle.isEmpty();
|
|
+ }
|
|
+ // Paper end - override isEmpty to use vanilla's impl
|
|
+
|
|
public static net.minecraft.world.item.ItemStack asNMSCopy(ItemStack original) {
|
|
if (original instanceof CraftItemStack) {
|
|
CraftItemStack stack = (CraftItemStack) original;
|
|
return stack.handle == null ? net.minecraft.world.item.ItemStack.EMPTY : stack.handle.copy();
|
|
}
|
|
- if (original == null || original.getType() == Material.AIR) {
|
|
+ if (original == null || original.isEmpty()) { // Paper - override isEmpty to use vanilla's impl; use isEmpty
|
|
return net.minecraft.world.item.ItemStack.EMPTY;
|
|
}
|
|
|