Package org.bukkit.entity
Interface Villager
- All Superinterfaces:
AbstractVillager
,Ageable
,Attributable
,Audience
,Breedable
,CommandSender
,Creature
,Damageable
,Entity
,Frictional
,HoverEventSource<HoverEvent.ShowEntity>
,InventoryHolder
,Leashable
,LivingEntity
,Lootable
,Merchant
,Metadatable
,Mob
,Nameable
,NPC
,Permissible
,PersistentDataHolder
,PersistentDataViewHolder
,Pointered
,ProjectileSource
,ServerOperator
,Sound.Emitter
Represents a villager NPC
-
Nested Class Summary
Modifier and TypeInterfaceDescriptionstatic interface
Represents the various different Villager professions there may be.static interface
Represents Villager type, usually corresponding to what biome they spawn in.Nested classes/interfaces inherited from interface org.bukkit.entity.Entity
Entity.Spigot
-
Method Summary
Modifier and TypeMethodDescriptionboolean
addTrades
(int amount) Gives to this villager some potential new trades based to its profession and level.void
Clear all reputations from this villager.Gets the current profession of this villager.getReputation
(@NotNull UUID uniqueId) Get thereputation
for a specific player byUUID
.Get allreputations
for all players mapped by theirunique IDs
.int
Gets the amount of times a villager has restocked their trades todayint
Gets the trading experience of this villager.int
Gets the level of this villager.Gets the current type of this villager.boolean
increaseLevel
(int amount) Increases the level of this villager.boolean
Check if villager is currently lobotomizedvoid
setProfession
(@NotNull Villager.Profession profession) Sets the new profession of this villager.void
setReputation
(@NotNull UUID uniqueId, Reputation reputation) Set thereputation
for a specific player byUUID
.void
setReputations
(@NotNull Map<UUID, Reputation> reputations) Set allreputations
for all players mapped by theirunique IDs
.void
setRestocksToday
(int restocksToday) Sets the amount of times a villager has restocked their trades todayvoid
setVillagerExperience
(int experience) Sets the trading experience of this villager.void
setVillagerLevel
(int level) Sets the level of this villager.void
Sets the new type of this villager.void
Causes this villager to shake his head.boolean
Attempts to make this villager sleep at the given location.void
wakeup()
Causes this villager to wake up if he's currently sleeping.zombify()
Convert this Villager into a ZombieVillager as if it was killed by a Zombie.Methods inherited from interface org.bukkit.entity.AbstractVillager
getInventory, resetOffers
Methods inherited from interface org.bukkit.entity.Ageable
getAge, isAdult, setAdult, setAge, setBaby
Methods inherited from interface org.bukkit.attribute.Attributable
getAttribute, registerAttribute
Methods inherited from interface net.kyori.adventure.audience.Audience
clearResourcePacks, clearTitle, deleteMessage, deleteMessage, filterAudience, forEachAudience, hideBossBar, openBook, openBook, playSound, playSound, playSound, removeResourcePacks, removeResourcePacks, removeResourcePacks, removeResourcePacks, removeResourcePacks, resetTitle, sendActionBar, sendActionBar, sendMessage, sendMessage, sendMessage, sendMessage, sendMessage, sendMessage, sendMessage, sendMessage, sendMessage, sendMessage, sendMessage, sendMessage, sendMessage, sendMessage, sendPlayerListFooter, sendPlayerListFooter, sendPlayerListHeader, sendPlayerListHeader, sendPlayerListHeaderAndFooter, sendPlayerListHeaderAndFooter, sendResourcePacks, sendResourcePacks, sendResourcePacks, sendTitlePart, showBossBar, showTitle, stopSound, stopSound
Methods inherited from interface org.bukkit.entity.Breedable
canBreed, getAgeLock, setAgeLock, setBreed
Methods inherited from interface org.bukkit.command.CommandSender
getName, name, sendMessage, sendMessage, sendMessage, sendMessage, sendMessage, sendMessage, sendMessage, sendPlainMessage, sendRichMessage, sendRichMessage
Methods inherited from interface org.bukkit.entity.Damageable
damage, damage, damage, getAbsorptionAmount, getHealth, getMaxHealth, heal, heal, resetMaxHealth, setAbsorptionAmount, setHealth, setMaxHealth
Methods inherited from interface org.bukkit.entity.Entity
addPassenger, addScoreboardTag, asHoverEvent, broadcastHurtAnimation, collidesAt, copy, copy, createSnapshot, eject, fromMobSpawner, getAsString, getBoundingBox, getChunk, getEntityId, getEntitySpawnReason, getFacing, getFallDistance, getFireTicks, getFreezeTicks, getHeight, getLastDamageCause, getLocation, getLocation, getMaxFireTicks, getMaxFreezeTicks, getNearbyEntities, getOrigin, getPassenger, getPassengers, getPistonMoveReaction, getPitch, getPortalCooldown, getPose, getRider, getScheduler, getScoreboardEntryName, getScoreboardTags, getServer, getSpawnCategory, getSwimHighSpeedSplashSound, getSwimSound, getSwimSplashSound, getTicksLived, getTrackedBy, getTrackedPlayers, getType, getUniqueId, getVehicle, getVelocity, getWidth, getWorld, getX, getY, getYaw, getZ, hasFixedPose, hasGravity, hasNoPhysics, hasRider, isCustomNameVisible, isDead, isEmpty, isFreezeTickingLocked, isFrozen, isGlowing, isImmuneToFire, isInBubbleColumn, isInLava, isInPowderedSnow, isInRain, isInsideVehicle, isInvulnerable, isInWater, isInWaterOrBubbleColumn, isInWaterOrRain, isInWaterOrRainOrBubbleColumn, isInWorld, isOnGround, isPersistent, isRidable, isRidableInWater, isSilent, isSneaking, isTicking, isUnderWater, isValid, isVisibleByDefault, isVisualFire, leaveVehicle, lockFreezeTicks, playEffect, remove, removePassenger, removeScoreboardTag, setCustomNameVisible, setFallDistance, setFireTicks, setFreezeTicks, setGlowing, setGravity, setImmuneToFire, setInvulnerable, setLastDamageCause, setNoPhysics, setPassenger, setPersistent, setPortalCooldown, setPose, setPose, setRotation, setSilent, setSneaking, setTicksLived, setVelocity, setVisibleByDefault, setVisualFire, spawnAt, spawnAt, spigot, teamDisplayName, teleport, teleport, teleport, teleport, teleport, teleport, teleportAsync, teleportAsync, teleportAsync, wouldCollideUsing
Methods inherited from interface io.papermc.paper.entity.Frictional
getFrictionState, setFrictionState
Methods inherited from interface net.kyori.adventure.text.event.HoverEventSource
asHoverEvent
Methods inherited from interface io.papermc.paper.entity.Leashable
getLeashHolder, isLeashed, setLeashHolder
Methods inherited from interface org.bukkit.entity.LivingEntity
addPotionEffect, addPotionEffect, addPotionEffects, attack, broadcastSlotBreak, broadcastSlotBreak, canBreatheUnderwater, canUseEquipmentSlot, clearActiveItem, clearActivePotionEffects, completeUsingActiveItem, damageItemStack, damageItemStack, getActiveItem, getActiveItemHand, getActiveItemRemainingTime, getActiveItemUsedTime, getActivePotionEffects, getArrowCooldown, getArrowsInBody, getArrowsStuck, getBeeStingerCooldown, getBeeStingersInBody, getBodyYaw, getCanPickupItems, getCategory, getCollidableExemptions, getDeathSound, getDrinkingSound, getEatingSound, getEyeHeight, getEyeHeight, getEyeLocation, getFallDamageSound, getFallDamageSoundBig, getFallDamageSoundSmall, getForwardsMovement, getHandRaised, getHandRaisedTime, getHurtDirection, getHurtSound, getItemInUse, getItemInUseTicks, getItemUseRemainingTime, getKiller, getLastDamage, getLastTwoTargetBlocks, getLeashHolder, getLineOfSight, getMaximumAir, getMaximumNoDamageTicks, getMemory, getNextArrowRemoval, getNextBeeStingerRemoval, getNoActionTicks, getNoDamageTicks, getPotionEffect, getRemainingAir, getRemoveWhenFarAway, getShieldBlockingDelay, getSidewaysMovement, getTargetBlock, getTargetBlock, getTargetBlock, getTargetBlockExact, getTargetBlockExact, getTargetBlockFace, getTargetBlockFace, getTargetBlockFace, getTargetBlockInfo, getTargetBlockInfo, getTargetEntity, getTargetEntity, getTargetEntityInfo, getTargetEntityInfo, getUpwardsMovement, hasActiveItem, hasAI, hasLineOfSight, hasLineOfSight, hasPotionEffect, isClimbing, isCollidable, isGliding, isHandRaised, isInvisible, isJumping, isLeashed, isRiptiding, isSleeping, isSwimming, knockback, playHurtAnimation, playPickupItemAnimation, playPickupItemAnimation, rayTraceBlocks, rayTraceBlocks, rayTraceEntities, rayTraceEntities, removePotionEffect, setActiveItemRemainingTime, setAI, setArrowCooldown, setArrowsInBody, setArrowsInBody, setArrowsStuck, setBeeStingerCooldown, setBeeStingersInBody, setBodyYaw, setCanPickupItems, setCollidable, setGliding, setHurtDirection, setInvisible, setItemInUseTicks, setJumping, setKiller, setLastDamage, setLeashHolder, setMaximumAir, setMaximumNoDamageTicks, setMemory, setNextArrowRemoval, setNextBeeStingerRemoval, setNoActionTicks, setNoDamageTicks, setRemainingAir, setRemoveWhenFarAway, setRiptiding, setShieldBlockingDelay, setShouldBurnInDay, setSwimming, shouldBurnInDay, startUsingItem, swingHand, swingMainHand, swingOffHand
Methods inherited from interface org.bukkit.loot.Lootable
clearLootTable, getLootTable, getSeed, hasLootTable, setLootTable, setSeed
Methods inherited from interface org.bukkit.inventory.Merchant
getRecipe, getRecipeCount, getRecipes, getTrader, isTrading, setRecipe, setRecipes
Methods inherited from interface org.bukkit.metadata.Metadatable
getMetadata, hasMetadata, removeMetadata, setMetadata
Methods inherited from interface org.bukkit.entity.Mob
getAmbientSound, getEquipment, getHeadRotationSpeed, getMaxHeadPitch, getPathfinder, getPossibleExperienceReward, getTarget, isAggressive, isAware, isInDaylight, isLeftHanded, lookAt, lookAt, lookAt, lookAt, lookAt, lookAt, setAggressive, setAware, setLeftHanded, setLootTable, setTarget
Methods inherited from interface org.bukkit.Nameable
customName, customName, getCustomName, setCustomName
Methods inherited from interface org.bukkit.permissions.Permissible
addAttachment, addAttachment, addAttachment, addAttachment, getEffectivePermissions, hasPermission, hasPermission, isPermissionSet, isPermissionSet, permissionValue, permissionValue, recalculatePermissions, removeAttachment
Methods inherited from interface org.bukkit.persistence.PersistentDataHolder
getPersistentDataContainer
Methods inherited from interface net.kyori.adventure.pointer.Pointered
get, getOrDefault, getOrDefaultFrom, pointers
Methods inherited from interface org.bukkit.projectiles.ProjectileSource
launchProjectile, launchProjectile, launchProjectile
Methods inherited from interface org.bukkit.permissions.ServerOperator
isOp, setOp
-
Method Details
-
getProfession
Gets the current profession of this villager.- Returns:
- Current profession.
-
setProfession
Sets the new profession of this villager.- Parameters:
profession
- New profession.
-
getVillagerType
Gets the current type of this villager.- Returns:
- Current type.
-
setVillagerType
Sets the new type of this villager.- Parameters:
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.- Returns:
- 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. This doesn't update the trades of this villager.- Parameters:
level
- the new level- Throws:
IllegalArgumentException
- if level not between [1, 5]- See Also:
-
getVillagerExperience
int getVillagerExperience()Gets the trading experience of this villager.- Returns:
- trading experience
-
setVillagerExperience
void setVillagerExperience(int experience) Sets the trading experience of this villager.- Parameters:
experience
- new experience- Throws:
IllegalArgumentException
- if experience < 0
-
increaseLevel
boolean increaseLevel(int amount) Increases the level of this villager. The villager will also unlock new recipes unlike the raw methodsetVillagerLevel(int)
.A villager with a level of 1 and no experience is liable to lose its profession.
A master villager has a level of 5 in its profession and will unlock 10 trades (2 per level).
- Parameters:
amount
- The amount of level- Returns:
- Whether trades are unlocked
- Throws:
IllegalArgumentException
- if current level plus the amount isn't between [1, 5] or the amount isn't positive- See Also:
-
addTrades
boolean addTrades(int amount) Gives to this villager some potential new trades based to its profession and level.- Parameters:
amount
- The amount of trades to give- Returns:
- Whether trades are added
- Throws:
IllegalArgumentException
- if the amount isn't positive
-
getRestocksToday
int getRestocksToday()Gets the amount of times a villager has restocked their trades today- Returns:
- The amount of trade restocks.
-
setRestocksToday
void setRestocksToday(int restocksToday) Sets the amount of times a villager has restocked their trades today- Parameters:
restocksToday
- new restock count
-
sleep
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.- Parameters:
location
- the location of the bed- Returns:
- whether the sleep was successful
-
wakeup
void wakeup()Causes this villager to wake up if he's currently sleeping.- Throws:
IllegalStateException
- if not sleeping
-
shakeHead
void shakeHead()Causes this villager to shake his head. -
zombify
Convert this Villager into a ZombieVillager as if it was killed by a Zombie. Note: this will fire a EntityTransformEvent- Returns:
- the converted entity
ZombieVillager
or null if the conversion its cancelled
-
getReputation
Get thereputation
for a specific player byUUID
.- Parameters:
uniqueId
- TheUUID
of the player to get the reputation of.- Returns:
- The player's copied reputation with this villager.
-
getReputations
Get allreputations
for all players mapped by theirunique IDs
.- Returns:
- All
reputations
for all players in a copied map.
-
setReputation
Set thereputation
for a specific player byUUID
.- Parameters:
uniqueId
- TheUUID
of the player to set the reputation of.reputation
- Thereputation
to set.
-
setReputations
Set allreputations
for all players mapped by theirunique IDs
.- Parameters:
reputations
- Allreputations
for all players mapped by theirunique IDs
.
-
clearReputations
void clearReputations()Clear all reputations from this villager. This removes every single reputation regardless of its impact and the player associated. -
isLobotomized
boolean isLobotomized()Check if villager is currently lobotomized- Returns:
- True if lobotomized
-