程序包 org.bukkit.entity

# 接口 Villager

所有超级接口:
  `AbstractVillager`, `Ageable`, `Attributable`, `Breedable`, `CommandSender`, `Creature`, `Damageable`, `Entity`, `InventoryHolder`, `LivingEntity`, `Lootable`, `Merchant`, `Metadatable`, `Mob`, `Nameable`, `NPC`, `Permissible`, `PersistentDataHolder`, `ProjectileSource`, `ServerOperator`

public interface Villager extends AbstractVillager
Represents a villager NPC

- ## 嵌套类概要

  嵌套类
  修饰符和类型
  接口
  说明
  `static interface`
  `Villager.Profession`
  Represents the various different Villager professions there may be.
  `static interface`
  `Villager.Type`
  Represents Villager type, usually corresponding to what biome they spawn in.

  ## 从接口继承的嵌套类/接口 org.bukkit.entity.Entity

  `Entity.Spigot`

- ## 方法概要

  修饰符和类型
  方法
  说明
  `@NotNull Villager.Profession`
  `getProfession()`
  Gets the current profession of this villager.
  `int`
  `getVillagerExperience()`
  Gets the trading experience of this villager.
  `int`
  `getVillagerLevel()`
  Gets the level of this villager.
  `@NotNull Villager.Type`
  `getVillagerType()`
  Gets the current type of this villager.
  `void`
  `setProfession(@NotNull Villager.Profession profession)`
  Sets the new profession of this villager.
  `void`
  `setVillagerExperience(int experience)`
  Sets the trading experience of this villager.
  `void`
  `setVillagerLevel(int level)`
  Sets the level of this villager.
  `void`
  `setVillagerType(@NotNull Villager.Type type)`
  Sets the new type of this villager.
  `void`
  `shakeHead()`
  Causes this villager to shake his head.
  `boolean`
  `sleep(@NotNull Location location)`
  Attempts to make this villager sleep at the given location.
  `void`
  `wakeup()`
  Causes this villager to wake up if he's currently sleeping.
  `@Nullable ZombieVillager`
  `zombify()`
  Convert this Villager into a ZombieVillager as if it was killed by a Zombie.

  ### 从接口继承的方法 org.bukkit.entity.AbstractVillager

  `getInventory`

  ### 从接口继承的方法 org.bukkit.entity.Ageable

  `getAge, isAdult, setAdult, setAge, setBaby`

  ### 从接口继承的方法 org.bukkit.attribute.Attributable

  `getAttribute`

  ### 从接口继承的方法 org.bukkit.entity.Breedable

  `canBreed, getAgeLock, setAgeLock, setBreed`

  ### 从接口继承的方法 org.bukkit.command.CommandSender

  `getName, sendMessage, sendMessage, sendMessage, sendMessage`

  ### 从接口继承的方法 org.bukkit.entity.Damageable

  `damage, damage, damage, getAbsorptionAmount, getHealth, getMaxHealth, resetMaxHealth, setAbsorptionAmount, setHealth, setMaxHealth`

  ### 从接口继承的方法 org.bukkit.entity.Entity

  `addPassenger, addScoreboardTag, copy, copy, createSnapshot, eject, getAsString, getBoundingBox, getEntityId, getFacing, getFallDistance, getFireTicks, getFreezeTicks, getHeight, getLastDamageCause, getLocation, getLocation, getMaxFireTicks, getMaxFreezeTicks, getNearbyEntities, getPassenger, getPassengers, getPistonMoveReaction, getPortalCooldown, getPose, getScoreboardTags, getServer, getSpawnCategory, getSwimHighSpeedSplashSound, getSwimSound, getSwimSplashSound, getTicksLived, getTrackedBy, getType, getUniqueId, getVehicle, getVelocity, getWidth, getWorld, hasGravity, isCustomNameVisible, isDead, isEmpty, isFrozen, isGlowing, isInsideVehicle, isInvulnerable, isInWater, isInWorld, isOnGround, isPersistent, isSilent, isValid, isVisibleByDefault, isVisualFire, leaveVehicle, playEffect, remove, removePassenger, removeScoreboardTag, setCustomNameVisible, setFallDistance, setFireTicks, setFreezeTicks, setGlowing, setGravity, setInvulnerable, setLastDamageCause, setPassenger, setPersistent, setPortalCooldown, setRotation, setSilent, setTicksLived, setVelocity, setVisibleByDefault, setVisualFire, spigot, teleport, teleport, teleport, teleport`

  ### 从接口继承的方法 org.bukkit.entity.LivingEntity

  `addPotionEffect, addPotionEffect, addPotionEffects, attack, canBreatheUnderwater, getActivePotionEffects, getArrowCooldown, getArrowsInBody, getCanPickupItems, getCategory, getCollidableExemptions, getDeathSound, getDrinkingSound, getEatingSound, getEquipment, getEyeHeight, getEyeHeight, getEyeLocation, getFallDamageSound, getFallDamageSoundBig, getFallDamageSoundSmall, getHurtSound, getItemInUse, getItemInUseTicks, getKiller, getLastDamage, getLastTwoTargetBlocks, getLeashHolder, getLineOfSight, getMaximumAir, getMaximumNoDamageTicks, getMemory, getNoActionTicks, getNoDamageTicks, getPotionEffect, getRemainingAir, getRemoveWhenFarAway, getTargetBlock, getTargetBlockExact, getTargetBlockExact, hasAI, hasLineOfSight, hasPotionEffect, isClimbing, isCollidable, isGliding, isInvisible, isLeashed, isRiptiding, isSleeping, isSwimming, playHurtAnimation, rayTraceBlocks, rayTraceBlocks, removePotionEffect, setAI, setArrowCooldown, setArrowsInBody, setCanPickupItems, setCollidable, setGliding, setInvisible, setItemInUseTicks, setLastDamage, setLeashHolder, setMaximumAir, setMaximumNoDamageTicks, setMemory, setNoActionTicks, setNoDamageTicks, setRemainingAir, setRemoveWhenFarAway, setSwimming, swingMainHand, swingOffHand`

  ### 从接口继承的方法 org.bukkit.loot.Lootable

  `getLootTable, getSeed, setLootTable, setSeed`

  ### 从接口继承的方法 org.bukkit.inventory.Merchant

  `getRecipe, getRecipeCount, getRecipes, getTrader, isTrading, setRecipe, setRecipes`

  ### 从接口继承的方法 org.bukkit.metadata.Metadatable

  `getMetadata, hasMetadata, removeMetadata, setMetadata`

  ### 从接口继承的方法 org.bukkit.entity.Mob

  `getAmbientSound, getTarget, isAware, setAware, setTarget`

  ### 从接口继承的方法 org.bukkit.Nameable

  `getCustomName, setCustomName`

  ### 从接口继承的方法 org.bukkit.permissions.Permissible

  `addAttachment, addAttachment, addAttachment, addAttachment, getEffectivePermissions, hasPermission, hasPermission, isPermissionSet, isPermissionSet, recalculatePermissions, removeAttachment`

  ### 从接口继承的方法 org.bukkit.persistence.PersistentDataHolder

  `getPersistentDataContainer`

  ### 从接口继承的方法 org.bukkit.projectiles.ProjectileSource

  `launchProjectile, launchProjectile`

  ### 从接口继承的方法 org.bukkit.permissions.ServerOperator

  `isOp, setOp`

- ## 方法详细资料

  - ### getProfession

    @NotNull @NotNull Villager.Profession getProfession()
    Gets the current profession of this villager.
    返回:
      Current profession.

  - ### setProfession

    void setProfession(@NotNull @NotNull Villager.Profession profession)
    Sets the new profession of this villager.
    参数:
      `profession` - New profession.

  - ### getVillagerType

    @NotNull @NotNull Villager.Type getVillagerType()
    Gets the current type of this villager.
    返回:
      Current type.

  - ### setVillagerType

    void setVillagerType(@NotNull @NotNull Villager.Type type)
    Sets the new type of this villager.
    参数:
      `type` - New type.

  - ### getVillagerLevel

    int getVillagerLevel()
    Gets the level of this villager. A villager with a level of 1 and no experience is liable to lose its profession.
    返回:
      this villager's level

  - ### setVillagerLevel

    void setVillagerLevel(int level)
    Sets the level of this villager. A villager with a level of 1 and no experience is liable to lose its profession.
    参数:
      `level` - the new level
    抛出:
      `IllegalArgumentException` - if level not between [1, 5]

  - ### getVillagerExperience

    int getVillagerExperience()
    Gets the trading experience of this villager.
    返回:
      trading experience

  - ### setVillagerExperience

    void setVillagerExperience(int experience)
    Sets the trading experience of this villager.
    参数:
      `experience` - new experience
    抛出:
      `IllegalArgumentException` - if experience < 0

  - ### sleep

    boolean sleep(@NotNull @NotNull Location location)
    Attempts to make this villager sleep at the given location.
    The location must be in the current world and have a bed placed at the location. The villager will put its head on the specified block while sleeping.
    参数:
      `location` - the location of the bed
    返回:
      whether the sleep was successful

  - ### wakeup

    void wakeup()
    Causes this villager to wake up if he's currently sleeping.
    抛出:
      `IllegalStateException` - if not sleeping

  - ### shakeHead

    void shakeHead()
    Causes this villager to shake his head.

  - ### zombify

    @Nullable @Nullable ZombieVillager zombify()
    Convert this Villager into a ZombieVillager as if it was killed by a Zombie. Note: this will fire a EntityTransformEvent
    返回:
      the converted entity `ZombieVillager` or null if the conversion its cancelled