SPIGOT-7867: Merchant instanceof AbstractVillager always returns false

By: Miles Holder <mwholder2005@gmail.com>
This commit is contained in:
CraftBukkit/Spigot
2024-09-07 18:14:09 +10:00
parent 7657f347d2
commit ac5e815b3e
4 changed files with 32 additions and 86 deletions

View File

@@ -1,18 +1,16 @@
package org.bukkit.craftbukkit.entity;
import java.util.List;
import net.minecraft.world.entity.npc.EntityVillager;
import net.minecraft.world.entity.npc.EntityVillagerAbstract;
import net.minecraft.world.item.trading.IMerchant;
import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.craftbukkit.inventory.CraftInventory;
import org.bukkit.craftbukkit.inventory.CraftMerchant;
import org.bukkit.entity.AbstractVillager;
import org.bukkit.entity.HumanEntity;
import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.InventoryHolder;
import org.bukkit.inventory.MerchantRecipe;
public class CraftAbstractVillager extends CraftAgeable implements AbstractVillager, InventoryHolder {
public class CraftAbstractVillager extends CraftAgeable implements CraftMerchant, AbstractVillager, InventoryHolder {
public CraftAbstractVillager(CraftServer server, EntityVillagerAbstract entity) {
super(server, entity);
@@ -23,6 +21,11 @@ public class CraftAbstractVillager extends CraftAgeable implements AbstractVilla
return (EntityVillager) entity;
}
@Override
public IMerchant getMerchant() {
return getHandle();
}
@Override
public String toString() {
return "CraftAbstractVillager";
@@ -32,43 +35,4 @@ public class CraftAbstractVillager extends CraftAgeable implements AbstractVilla
public Inventory getInventory() {
return new CraftInventory(getHandle().getInventory());
}
private CraftMerchant getMerchant() {
return getHandle().getCraftMerchant();
}
@Override
public List<MerchantRecipe> getRecipes() {
return getMerchant().getRecipes();
}
@Override
public void setRecipes(List<MerchantRecipe> recipes) {
this.getMerchant().setRecipes(recipes);
}
@Override
public MerchantRecipe getRecipe(int i) {
return getMerchant().getRecipe(i);
}
@Override
public void setRecipe(int i, MerchantRecipe merchantRecipe) {
getMerchant().setRecipe(i, merchantRecipe);
}
@Override
public int getRecipeCount() {
return getMerchant().getRecipeCount();
}
@Override
public boolean isTrading() {
return getTrader() != null;
}
@Override
public HumanEntity getTrader() {
return getMerchant().getTrader();
}
}