diff options
author | blablubbabc <lukas@wirsindwir.de> | 2018-08-01 08:49:53 +1000 |
---|---|---|
committer | md_5 <git@md-5.net> | 2018-08-01 08:50:08 +1000 |
commit | a0c7bcf02a2fb8ca6fc64a76b33be9fab2c5c099 (patch) | |
tree | 0aaeaec1f0123bae41a8838b32f3d9e97306361d | |
parent | a3b7e3433a01a5266c774912d71cb8451dcf7daf (diff) | |
download | craftbukkit-a0c7bcf02a2fb8ca6fc64a76b33be9fab2c5c099.tar craftbukkit-a0c7bcf02a2fb8ca6fc64a76b33be9fab2c5c099.tar.gz craftbukkit-a0c7bcf02a2fb8ca6fc64a76b33be9fab2c5c099.tar.lz craftbukkit-a0c7bcf02a2fb8ca6fc64a76b33be9fab2c5c099.tar.xz craftbukkit-a0c7bcf02a2fb8ca6fc64a76b33be9fab2c5c099.zip |
Fix merchant inventories with custom titles
3 files changed, 15 insertions, 3 deletions
diff --git a/nms-patches/InventoryMerchant.patch b/nms-patches/InventoryMerchant.patch index 30897b1d..f46377c3 100644 --- a/nms-patches/InventoryMerchant.patch +++ b/nms-patches/InventoryMerchant.patch @@ -55,6 +55,15 @@ public InventoryMerchant(EntityHuman entityhuman, IMerchant imerchant) { this.itemsInSlots = NonNullList.a(3, ItemStack.a); this.player = entityhuman; +@@ -78,7 +119,7 @@ + } + + public IChatBaseComponent getDisplayName() { +- return new ChatMessage("mob.villager", new Object[0]); ++ return merchant.getScoreboardDisplayName(); // CraftBukkit + } + + public boolean hasCustomName() { @@ -91,7 +132,7 @@ } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java index d96c6afd..cce9366f 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java @@ -270,6 +270,7 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity { break; case CREATIVE: case CRAFTING: + case MERCHANT: throw new IllegalArgumentException("Can't open a " + type + " inventory!"); } if (getHandle().activeContainer == formerContainer) { diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMerchantCustom.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMerchantCustom.java index bc898d69..4f8edbe3 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMerchantCustom.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMerchantCustom.java @@ -1,5 +1,6 @@ package org.bukkit.craftbukkit.inventory; +import org.apache.commons.lang.Validate; import net.minecraft.server.BlockPosition; import net.minecraft.server.ChatComponentText; import net.minecraft.server.EntityHuman; @@ -23,12 +24,13 @@ public class CraftMerchantCustom extends CraftMerchant { private static class MinecraftMerchant implements IMerchant { - private final String title; + private final IChatBaseComponent title; private final MerchantRecipeList trades = new MerchantRecipeList(); private EntityHuman tradingPlayer; public MinecraftMerchant(String title) { - this.title = title; + Validate.notNull(title, "Title cannot be null"); + this.title = new ChatComponentText(title); } @Override @@ -58,7 +60,7 @@ public class CraftMerchantCustom extends CraftMerchant { @Override public IChatBaseComponent getScoreboardDisplayName() { - return new ChatComponentText(title); + return title; } @Override |