Paper/patches/server/0945-Fix-chiseled-bookshelf-and-jukebox-setItem-with-air.patch
Nassim Jahnke 81834ac54a
Updated Upstream (Bukkit/CraftBukkit/Spigot)
Upstream has released updates that appear to apply and compile correctly.
This update has not been tested by PaperMC and as with ANY update, please do your own testing

Bukkit Changes:
be1f3344 SPIGOT-7326: Add ClickType#isMouseClick()

CraftBukkit Changes:
3b557627c Fix Player#setScoreboard() checking incorrect state
9a21b0b89 SPIGOT-7393: Fix new tile entities not loading Bukkit's PersistentDataContainer

Spigot Changes:
c62f4bd9 Rebuild patches
2023-06-16 13:32:29 +02:00

37 Zeilen
2.0 KiB
Diff

From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Nassim Jahnke <nassim@njahnke.dev>
Date: Sat, 18 Mar 2023 18:51:33 +0100
Subject: [PATCH] Fix chiseled bookshelf and jukebox setItem with air
diff --git a/src/main/java/net/minecraft/world/level/block/entity/ChiseledBookShelfBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/ChiseledBookShelfBlockEntity.java
index 1f09eaa36b670212f6f02569de3312ad0382493e..4fb5328855fe0700fbc997b9801ef2e1c14c8c8f 100644
--- a/src/main/java/net/minecraft/world/level/block/entity/ChiseledBookShelfBlockEntity.java
+++ b/src/main/java/net/minecraft/world/level/block/entity/ChiseledBookShelfBlockEntity.java
@@ -147,7 +147,7 @@ public class ChiseledBookShelfBlockEntity extends BlockEntity implements Contain
@Override
public void setItem(int slot, ItemStack stack) {
- if (stack.is(ItemTags.BOOKSHELF_BOOKS)) {
+ if (stack.isEmpty() || stack.is(ItemTags.BOOKSHELF_BOOKS)) { // Paper
this.items.set(slot, stack);
if (level != null) this.updateState(slot); // CraftBukkit - SPIGOT-7381: check for null world
}
diff --git a/src/main/java/net/minecraft/world/level/block/entity/JukeboxBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/JukeboxBlockEntity.java
index 77ece220a2e204c3e66e660c639abda957bf21b9..62acd6686626c84c9fc3964af62097101e8e582f 100644
--- a/src/main/java/net/minecraft/world/level/block/entity/JukeboxBlockEntity.java
+++ b/src/main/java/net/minecraft/world/level/block/entity/JukeboxBlockEntity.java
@@ -183,6 +183,12 @@ public class JukeboxBlockEntity extends BlockEntity implements Clearable, Contai
@Override
public void setItem(int slot, ItemStack stack) {
+ // Paper start
+ if (stack.isEmpty()) {
+ this.removeItem(slot, 0);
+ return;
+ }
+ // Paper end
if (stack.is(ItemTags.MUSIC_DISCS) && this.level != null) {
this.items.set(slot, stack);
this.setHasRecordBlockState((Entity) null, true);