diff --git a/paper-api/src/main/java/org/bukkit/block/ChiseledBookshelf.java b/paper-api/src/main/java/org/bukkit/block/ChiseledBookshelf.java index 92f41d00dcb4..b677ccef2199 100644 --- a/paper-api/src/main/java/org/bukkit/block/ChiseledBookshelf.java +++ b/paper-api/src/main/java/org/bukkit/block/ChiseledBookshelf.java @@ -1,6 +1,5 @@ package org.bukkit.block; -import org.bukkit.inventory.BlockInventoryHolder; import org.bukkit.inventory.ChiseledBookshelfInventory; import org.bukkit.util.Vector; import org.jetbrains.annotations.NotNull; diff --git a/paper-server/patches/sources/net/minecraft/world/level/block/entity/JukeboxBlockEntity.java.patch b/paper-server/patches/sources/net/minecraft/world/level/block/entity/JukeboxBlockEntity.java.patch index 004ae297513a..01991de73ec6 100644 --- a/paper-server/patches/sources/net/minecraft/world/level/block/entity/JukeboxBlockEntity.java.patch +++ b/paper-server/patches/sources/net/minecraft/world/level/block/entity/JukeboxBlockEntity.java.patch @@ -45,6 +45,14 @@ public static final String SONG_ITEM_TAG_ID = "RecordItem"; public static final String TICKS_SINCE_SONG_STARTED_TAG_ID = "ticks_since_song_started"; private ItemStack item = ItemStack.EMPTY; +@@ -114,6 +_,7 @@ + @Override + public void setTheItem(ItemStack item) { + this.item = item; ++ if (this.level == null) return; // Paper - for unplaced block state + boolean flag = !this.item.isEmpty(); + Optional> optional = JukeboxSong.fromStack(this.level.registryAccess(), this.item); + this.notifyItemChangedInJukebox(flag); @@ -133,7 +_,7 @@ @Override diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventoryChiseledBookshelf.java b/paper-server/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventoryChiseledBookshelf.java index 8b7ec544546a..121270fc5c8a 100644 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventoryChiseledBookshelf.java +++ b/paper-server/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventoryChiseledBookshelf.java @@ -3,24 +3,11 @@ import net.minecraft.world.level.block.entity.ChiseledBookShelfBlockEntity; import org.bukkit.block.ChiseledBookshelf; import org.bukkit.inventory.ChiseledBookshelfInventory; -import org.bukkit.inventory.ItemStack; public class CraftInventoryChiseledBookshelf extends CraftInventory implements ChiseledBookshelfInventory { public CraftInventoryChiseledBookshelf(ChiseledBookShelfBlockEntity inventory) { super(inventory); - - } - - @Override - public void setItem(int index, ItemStack item) { - net.minecraft.world.item.ItemStack nms = CraftItemStack.asNMSCopy(item); - - if (nms.isEmpty()) { - this.getInventory().removeItemNoUpdate(index); - } else { - this.getInventory().setItem(index, nms); - } } @Override diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventoryJukebox.java b/paper-server/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventoryJukebox.java index d5edca2e5f95..e81534fda82f 100644 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventoryJukebox.java +++ b/paper-server/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventoryJukebox.java @@ -1,23 +1,19 @@ package org.bukkit.craftbukkit.inventory; -import net.minecraft.world.Container; +import net.minecraft.world.level.block.entity.JukeboxBlockEntity; import org.bukkit.block.Jukebox; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.JukeboxInventory; public class CraftInventoryJukebox extends CraftInventory implements JukeboxInventory { - public CraftInventoryJukebox(Container inventory) { + public CraftInventoryJukebox(JukeboxBlockEntity inventory) { super(inventory); } @Override public void setRecord(ItemStack item) { - if (item == null) { - this.inventory.removeItem(0, 0); - } else { - this.setItem(0, item); - } + this.setItem(0, item); } @Override diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventoryShelf.java b/paper-server/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventoryShelf.java index b6c1e6b1df36..d517de047b27 100644 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventoryShelf.java +++ b/paper-server/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventoryShelf.java @@ -2,7 +2,6 @@ import net.minecraft.world.level.block.entity.ShelfBlockEntity; import org.bukkit.block.Shelf; -import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ShelfInventory; public class CraftInventoryShelf extends CraftInventory implements ShelfInventory { @@ -11,17 +10,6 @@ public CraftInventoryShelf(ShelfBlockEntity inventory) { super(inventory); } - @Override - public void setItem(int index, ItemStack item) { - net.minecraft.world.item.ItemStack nms = CraftItemStack.asNMSCopy(item); - - if (nms.isEmpty()) { - this.getInventory().removeItemNoUpdate(index); - } else { - this.getInventory().setItem(index, nms); - } - } - @Override public Shelf getHolder() { return (Shelf) this.inventory.getOwner();