diff --git a/src/main/java/net/minecraft/server/ItemStack.java b/src/main/java/net/minecraft/server/ItemStack.java index efe82d349f..cee75b550a 100644 --- a/src/main/java/net/minecraft/server/ItemStack.java +++ b/src/main/java/net/minecraft/server/ItemStack.java @@ -329,4 +329,14 @@ public final class ItemStack { public boolean hasEnchantments() { return this.tag != null && this.tag.hasKey("ench"); } + + // CraftBukkit start - temporary method for book fix + public void a(String s, NBTBase nbtbase) { + if (this.tag == null) { + this.setTag(new NBTTagCompound()); + } + + this.tag.set(s, nbtbase); + } + // CraftBukkit end } diff --git a/src/main/java/net/minecraft/server/NetServerHandler.java b/src/main/java/net/minecraft/server/NetServerHandler.java index d41da15f18..6b33ae5357 100644 --- a/src/main/java/net/minecraft/server/NetServerHandler.java +++ b/src/main/java/net/minecraft/server/NetServerHandler.java @@ -1426,7 +1426,11 @@ public class NetServerHandler extends NetHandler { itemstack1 = this.player.inventory.getItemInHand(); if (itemstack != null && itemstack.id == Item.WRITTEN_BOOK.id && itemstack1.id == Item.BOOK_AND_QUILL.id) { - itemstack1.setTag(itemstack.getTag()); + // CraftBukkit start + itemstack1.a("author", new NBTTagString("author", this.player.name)); + itemstack1.a("title", new NBTTagString("title", itemstack.getTag().getString("title"))); + itemstack1.a("pages", itemstack.getTag().getList("pages")); + // CraftBukkit end itemstack1.id = Item.WRITTEN_BOOK.id; } } catch (Exception exception1) {