Fix merchant inventories with custom titles

This commit is contained in:
blablubbabc 2018-08-01 08:49:53 +10:00 committed by md_5
parent a3b7e3433a
commit a0c7bcf02a
3 changed files with 15 additions and 3 deletions

View file

@ -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 @@
}

View file

@ -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) {

View file

@ -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