Class EntityVillager

All Implemented Interfaces:
EntityControlUtils, LogicalUtils, EntityAgeable, EntityAsyncPrepare, EntityDamageable, EntityNameable, EntityNPC, InventoryHolder, Metadatable, Cloneable

public class EntityVillager extends EntityIntelligent implements InventoryHolder, EntityNPC, EntityAgeable
  • Field Details

    • NETWORK_ID

      public static final int NETWORK_ID
      See Also:
    • recipes

      protected ListTag<Tag> recipes
      代表交易配方
    • tierExpRequirement

      public int[] tierExpRequirement
      用于控制村民的等级成长所需要的经验 例如[0,10,20,30,40] 村民达到1级所需经验0,2级为10,这里的经验是tradeExp.
    • inventory

      @PowerNukkitXOnly @Since("1.19.21-r1") protected TradeInventory inventory
    • canTrade

      protected Boolean canTrade
      用于控制该村民是否可以交易
    • displayName

      protected String displayName
      代表交易UI上方所显示的名称,在原版为村民的职业名
    • tradeTier

      protected int tradeTier
      代表村民当前的交易等级
    • maxTradeTier

      protected int maxTradeTier
      代表村民所允许的最大交易等级
    • tradeExp

      protected int tradeExp
      代表当前村民的经验,不允许为负数
    • tradeSeed

      protected int tradeSeed
    • profession

      protected int profession
      代表村民的职业
      0 generic 普通
      1 farmer 农民
      2 fisherman 渔民
      3 shepherd 牧羊人
      4 fletcher 制箭师
      5 librarian 图书管理员
      6 cartographer 制图师
      7 cleric 牧师
      8 armor 盔甲匠
      9 weapon 武器匠
      10 tool 工具匠
      11 butcher 屠夫
      12 butcher 皮匠
      13 mason 石匠
      14 nitwit 傻子
  • Constructor Details

  • Method Details

    • requireBehaviorGroup

      public IBehaviorGroup requireBehaviorGroup()
      Description copied from class: EntityIntelligent
      请求一个行为组实例,此方法在实体初始化行为组时调用
      Overrides:
      requireBehaviorGroup in class EntityIntelligent
      Returns:
      新创建的行为组
    • getNetworkId

      public int getNetworkId()
      Description copied from class: Entity
      获得该实体的网络ID

      Get the network ID of the entity

      Specified by:
      getNetworkId in class Entity
      Returns:
      the network id
    • getWidth

      public float getWidth()
      Overrides:
      getWidth in class Entity
    • getHeight

      public float getHeight()
      Description copied from class: Entity
      实体高度

      entity Height

      Overrides:
      getHeight in class Entity
      Returns:
      the height
    • getOriginalName

      @PowerNukkitOnly @Since("1.5.1.0-PN") public String getOriginalName()
      Description copied from class: Entity
      The name that English name of the type of this entity.
      Overrides:
      getOriginalName in class Entity
    • initEntity

      @PowerNukkitXOnly @Since("1.19.21-r1") public void initEntity()
      Description copied from class: Entity
      实体初始化顺序,先初始化Entity类字段->Entity构造函数->进入init方法->调用initEntity方法->子类字段初始化->子类构造函数

      用于初始化实体的NBT和实体字段的方法

      Entity initialization order, first initialize the Entity class field->Entity constructor->Enter the init method->Call the init Entity method-> subclass field initialization-> subclass constructor

      The method used to initialize the NBT and entity fields of the entity

      Overrides:
      initEntity in class EntityIntelligent
    • saveNBT

      public void saveNBT()
      Overrides:
      saveNBT in class EntityIntelligent
    • getProfession

      @PowerNukkitXOnly @Since("1.19.21-r1") public int getProfession()
      Returns:
      村民的职业id
    • setProfession

      @PowerNukkitXOnly @Since("1.19.21-r1") public void setProfession(int profession)
      设置村民职业
      Parameters:
      profession - 请查看profession
    • setTradingPlayer

      @PowerNukkitXOnly @Since("1.19.21-r1") public void setTradingPlayer(Long eid)
      这个方法插件一般不用
    • getCanTrade

      @PowerNukkitXOnly @Since("1.19.21-r1") public boolean getCanTrade()
      Returns:
      该村民是否可以交易
    • setCanTrade

      @PowerNukkitXOnly @Since("1.19.21-r1") public void setCanTrade(boolean canTrade)
      设置村民是否可以交易
      Parameters:
      canTrade - true 可以交易
    • getDisplayName

      @PowerNukkitXOnly @Since("1.19.21-r1") public String getDisplayName()
      Returns:
      交易UI的显示名称
    • setDisplayName

      @PowerNukkitXOnly @Since("1.19.21-r1") public void setDisplayName(String displayName)
      Parameters:
      displayName - 设置交易UI的显示名称
    • getTradeTier

      @PowerNukkitXOnly @Since("1.19.21-r1") public int getTradeTier()
      Returns:
      该村民的交易等级
    • setTradeTier

      @PowerNukkitXOnly @Since("1.19.21-r1") public void setTradeTier(int tradeTier)
      Parameters:
      tradeTier -

      村民的交易等级(1-maxTradeTier)

    • getMaxTradeTier

      public int getMaxTradeTier()
      Returns:
      村民所允许的最大交易等级
    • setMaxTradeTier

      public void setMaxTradeTier(int maxTradeTier)
      Parameters:
      maxTradeTier - 设置村民所允许的最大交易等级
    • getTradeExp

      public int getTradeExp()
      Returns:
      村民当前的经验值
    • setTradeExp

      public void setTradeExp(int tradeExp)
      Parameters:
      tradeExp - 设置村民当前的经验值
    • onInteract

      @PowerNukkitXOnly @Since("1.19.21-r1") public boolean onInteract(Player player, Item item, Vector3 clickedPos)
      Specified by:
      onInteract in interface EntityNameable
      Overrides:
      onInteract in class EntityIntelligent
    • getInventory

      @PowerNukkitXOnly @Since("1.19.21-r1") public TradeInventory getInventory()
      Specified by:
      getInventory in interface InventoryHolder
    • getTradeSeed

      @PowerNukkitXOnly @Since("1.20.0-r2") public int getTradeSeed()
    • setTradeSeed

      @PowerNukkitXOnly @Since("1.20.0-r2") protected void setTradeSeed(int tradeSeed)
    • addExperience

      @PowerNukkitXOnly @Since("1.20.0-r2") public void addExperience(int xp)
    • onUpdate

      @PowerNukkitXDifference public boolean onUpdate(int tick)
      Overrides:
      onUpdate in class EntityPhysical
    • applyProfession

      @PowerNukkitXOnly @Since("1.20.0-r2") public void applyProfession(Profession profession)
    • getRecipes

      public ListTag<Tag> getRecipes()
      代表交易配方