Package net.minecraft.world.entity.npc
Class Villager
- All Implemented Interfaces:
DataComponentGetter
,SyncedDataHolder
,Attackable
,EquipmentUser
,Leashable
,InventoryCarrier
,Npc
,VillagerDataHolder
,ReputationEventHandler
,Targeting
,Merchant
,EntityAccess
,UniquelyIdentifyable
,Nameable
,ScoreHolder
,Waypoint
,WaypointTransmitter
,IAttachmentHolder
,IEntityExtension
,ILivingEntityExtension
public class Villager
extends AbstractVillager
implements ReputationEventHandler, VillagerDataHolder
-
Nested Class Summary
Nested classes/interfaces inherited from class net.minecraft.world.entity.AgeableMob
AgeableMob.AgeableMobGroupData
Nested classes/interfaces inherited from class net.minecraft.world.entity.LivingEntity
LivingEntity.Fallsounds
Nested classes/interfaces inherited from class net.minecraft.world.entity.Entity
Entity.MoveFunction, Entity.MovementEmission, Entity.RemovalReason
Nested classes/interfaces inherited from class net.neoforged.neoforge.attachment.AttachmentHolder
AttachmentHolder.AsField
Nested classes/interfaces inherited from interface net.minecraft.world.entity.Leashable
Leashable.LeashData, Leashable.Wrench
Nested classes/interfaces inherited from interface net.minecraft.world.waypoints.Waypoint
Waypoint.Icon
Nested classes/interfaces inherited from interface net.minecraft.world.waypoints.WaypointTransmitter
WaypointTransmitter.BlockConnection, WaypointTransmitter.ChunkConnection, WaypointTransmitter.Connection, WaypointTransmitter.EntityAzimuthConnection, WaypointTransmitter.EntityBlockConnection, WaypointTransmitter.EntityChunkConnection
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate boolean
static final int
private boolean
private static final EntityDataAccessor
<VillagerData> private static final boolean
private static final byte
private static final int
private static final int
private static final int
private static final int
Mapping between valid food items and their respective efficiency values.private int
private static final int
private static final int
private final GossipContainer
private static final int
private static final int
private boolean
private long
private long
private long
private long
private Player
private static final org.slf4j.Logger
private static final int
private static final com.google.common.collect.ImmutableList
<MemoryModuleType<?>> private int
static final Map
<MemoryModuleType<GlobalPos>, BiPredicate<Villager, Holder<PoiType>>> private static final com.google.common.collect.ImmutableList
<SensorType<? extends Sensor<? super Villager>>> static final float
private static final long
private static final int
private int
private int
Fields inherited from class net.minecraft.world.entity.npc.AbstractVillager
offers, VILLAGER_SLOT_OFFSET
Fields inherited from class net.minecraft.world.entity.AgeableMob
age, BABY_START_AGE, DEFAULT_AGE, DEFAULT_FORCED_AGE, forcedAge, forcedAgeTimer
Fields inherited from class net.minecraft.world.entity.PathfinderMob
DEFAULT_WALK_TARGET_VALUE
Fields inherited from class net.minecraft.world.entity.Mob
ambientSoundTime, goalSelector, jumpControl, lookControl, MAX_ENCHANTED_ARMOR_CHANCE, MAX_ENCHANTED_WEAPON_CHANCE, MAX_PICKUP_LOOT_CHANCE, MAX_WEARING_ARMOR_CHANCE, moveControl, navigation, PICKUP_REACH, preventConversionSpawns, RANDOM_SPAWN_BONUS_ID, TAG_CAN_PICK_UP_LOOT, TAG_DROP_CHANCES, TAG_LEFT_HANDED, TAG_NO_AI, targetSelector, UPDATE_GOAL_SELECTOR_EVERY_N_TICKS, xpReward
Fields inherited from class net.minecraft.world.entity.LivingEntity
ARMOR_SLOT_OFFSET, attackAnim, attackStrengthTicker, autoSpinAttackDmg, autoSpinAttackItemStack, autoSpinAttackTicks, BASE_JUMP_POWER, BODY_ARMOR_OFFSET, brain, damageContainers, DATA_LIVING_ENTITY_FLAGS, dead, DEATH_DURATION, deathTime, DEFAULT_BABY_SCALE, DEFAULT_BASE_GRAVITY, elytraAnimationState, equipment, EQUIPMENT_SLOT_OFFSET, EXTRA_RENDER_CULLING_SIZE_WITH_BIG_HAT, fallFlyTicks, hurtDuration, hurtTime, INPUT_FRICTION, interpolation, invulnerableDuration, jumping, lastHurt, lastHurtByPlayer, lastHurtByPlayerMemoryTime, lerpHeadSteps, lerpYHeadRot, LIVING_ENTITY_FLAG_IS_USING, LIVING_ENTITY_FLAG_OFF_HAND, LIVING_ENTITY_FLAG_SPIN_ATTACK, MIN_MOVEMENT_DISTANCE, noActionTime, oAttackAnim, PLAYER_HURT_EXPERIENCE_TIME, PLAYER_NOT_WEARING_DISGUISE_ITEM, PLAYER_NOT_WEARING_DISGUISE_ITEM_FOR_TARGET, removeArrowTime, removeStingerTime, SADDLE_OFFSET, SLEEPING_DIMENSIONS, SWING_DURATION, swinging, swingingArm, swingTime, TAG_ATTRIBUTES, TAG_BRAIN, TAG_DEATH_TIME, TAG_EQUIPMENT, TAG_FALL_FLYING, TAG_HEALTH, TAG_HURT_BY_TIMESTAMP, TAG_HURT_TIME, TAG_SLEEPING_POS, useItem, useItemRemaining, walkAnimation, xxa, yBodyRot, yBodyRotO, yHeadRot, yHeadRotO, yya, zza
Fields inherited from class net.minecraft.world.entity.Entity
BASE_SAFE_FALL_DISTANCE, BASE_TICKS_REQUIRED_TO_FREEZE, blocksBuilding, BOARDING_COOLDOWN, boardingCooldown, CONTENTS_SLOT_INDEX, DATA_POSE, DATA_SHARED_FLAGS_ID, DEFAULT_BB_HEIGHT, DEFAULT_BB_WIDTH, DELTA_AFFECTED_BY_BLOCKS_BELOW_0_2, DELTA_AFFECTED_BY_BLOCKS_BELOW_0_5, DELTA_AFFECTED_BY_BLOCKS_BELOW_1_0, ENTITY_COUNTER, entityData, fallDistance, firstTick, FLAG_FALL_FLYING, FLAG_GLOWING, FLAG_ONFIRE, fluidHeight, flyDist, forgeFluidTypeHeight, FREEZE_HURT_FREQUENCY, hasImpulse, horizontalCollision, hurtMarked, invulnerableTime, isInPowderSnow, mainSupportingBlockPos, MAX_ENTITY_TAG_COUNT, MAX_MOVEMENTS_HANDELED_PER_TICK, minorHorizontalCollision, moveDist, noPhysics, portalProcess, random, stringUUID, stuckSpeedMultiplier, TAG_AIR, TAG_DATA, TAG_FALL_DISTANCE, TAG_FIRE, TAG_GLOWING, TAG_ID, TAG_INVULNERABLE, TAG_MOTION, TAG_NO_GRAVITY, TAG_ON_GROUND, TAG_PASSENGERS, TAG_PORTAL_COOLDOWN, TAG_POS, TAG_ROTATION, TAG_SILENT, TAG_UUID, tickCount, TOTAL_AIR_SUPPLY, uuid, verticalCollision, verticalCollisionBelow, wasEyeInWater, wasInPowderSnow, wasTouchingWater, xo, xOld, xRotO, yo, yOld, yRotO, zo, zOld
Fields inherited from class net.neoforged.neoforge.attachment.AttachmentHolder
ATTACHMENTS_NBT_KEY
Fields inherited from interface net.minecraft.world.entity.npc.InventoryCarrier
TAG_INVENTORY
Fields inherited from interface net.minecraft.world.entity.Leashable
AXIS_SPECIFIC_ELASTICITY, ENTITY_ATTACHMENT_POINT, LEASH_ELASTIC_DIST, LEASH_TAG, LEASH_TOO_FAR_DIST, LEASHER_ATTACHMENT_POINT, MAXIMUM_ALLOWED_LEASHED_DIST, SHARED_QUAD_ATTACHMENT_POINTS, SPRING_DAMPENING, STIFFNESS, TORSIONAL_ELASTICITY
Fields inherited from interface net.minecraft.world.scores.ScoreHolder
WILDCARD, WILDCARD_NAME
Fields inherited from interface net.minecraft.world.waypoints.Waypoint
MAX_RANGE, WAYPOINT_TRANSMIT_RANGE_HIDE_MODIFIER
Fields inherited from interface net.minecraft.world.waypoints.WaypointTransmitter
REALLY_FAR_DISTANCE
-
Constructor Summary
ConstructorsConstructorDescriptionVillager
(EntityType<? extends Villager> pEntityType, Level pLevel) Villager
(EntityType<? extends Villager> pEntityType, Level pLevel, Holder<VillagerType> pVillagerType) Villager
(EntityType<? extends Villager> pEntityType, Level pLevel, ResourceKey<VillagerType> pVillagerType) -
Method Summary
Modifier and TypeMethodDescriptionprotected void
addAdditionalSaveData
(ValueOutput pOutput) protected void
private boolean
protected <T> boolean
applyImplicitComponent
(DataComponentType<T> pComponent, T pValue) protected void
applyImplicitComponents
(DataComponentGetter pComponentGetter) boolean
protected Brain.Provider
<Villager> boolean
canBreed()
boolean
private void
private int
static AttributeSupplier.Builder
static VillagerData
protected void
customServerAiStep
(ServerLevel pLevel) protected void
defineSynchedData
(SynchedEntityData.Builder pBuilder) void
die
(DamageSource pCause) Called when the mob's health reaches 0.private void
digestFood
(int pQty) void
private void
finalizeSpawn
(ServerLevelAccessor pLevel, DifficultyInstance pDifficulty, EntitySpawnReason pSpawnReason, SpawnGroupData pSpawnGroupData) <T> T
get
(DataComponentType<? extends T> pComponent) protected SoundEvent
getBrain()
getBreedOffspring
(ServerLevel pLevel, AgeableMob pOtherParent) protected SoundEvent
protected SoundEvent
getHurtSound
(DamageSource pDamageSource) int
getPlayerReputation
(Player pPlayer) protected Component
int
private boolean
golemSpawnConditionsMet
(long pGameTime) void
gossip
(ServerLevel pServerLevel, Villager pTarget, long pGameTime) void
handleEntityEvent
(byte pId) Handler forinvalid reference
World#setEntityState
boolean
boolean
private boolean
hungry()
private void
protected Brain
<?> makeBrain
(com.mojang.serialization.Dynamic<?> p_35445_) private void
mobInteract
(Player pPlayer, InteractionHand pHand) private boolean
void
onReputationEventFrom
(ReputationEventType pType, Entity pTarget) protected void
pickUpItem
(ServerLevel pLevel, ItemEntity pEntity) void
protected void
readAdditionalSaveData
(ValueInput pInput) void
refreshBrain
(ServerLevel pServerLevel) private void
registerBrainGoals
(Brain<Villager> pVillagerBrain) private void
void
releasePoi
(MemoryModuleType<GlobalPos> pModuleType) boolean
removeWhenFarAway
(double pDistanceToClosestPlayer) private void
private void
private void
void
restock()
protected void
rewardTradeXp
(MerchantOffer pOffer) protected void
void
setGossips
(GossipContainer pGossips) void
setLastHurtByMob
(LivingEntity pLivingBase) Hint to AI tasks that we were attacked by the passed EntityLivingBase and should retaliate.void
setOffers
(MerchantOffers pOffers) void
setTradingPlayer
(Player pPlayer) private void
void
setVillagerData
(VillagerData pData) void
setVillagerXp
(int pVillagerXp) private boolean
boolean
void
spawnGolemIfNeeded
(ServerLevel pServerLevel, long pGameTime, int pMinVillagerAmount) void
startSleeping
(BlockPos pPos) private void
startTrading
(Player pPlayer) void
protected void
private void
tellWitnessesThatIWasMurdered
(Entity pMurderer) void
thunderHit
(ServerLevel pLevel, LightningBolt pLightning) void
tick()
private void
private void
updateSpecialPrices
(Player pPlayer) protected void
boolean
boolean
wantsToPickUp
(ServerLevel pLevel, ItemStack pStack) boolean
wantsToSpawnGolem
(long pGameTime) Methods inherited from class net.minecraft.world.entity.npc.AbstractVillager
addOffersFromItemListings, addParticlesAroundSelf, canBeLeashed, getInventory, getNotifyTradeSound, getOffers, getRopeHoldPosition, getSlot, getTradeUpdatedSound, getTradingPlayer, getUnhappyCounter, isClientSide, isTrading, notifyTrade, notifyTradeUpdated, overrideOffers, overrideXp, playCelebrateSound, setUnhappyCounter, showProgressBar, stillValid, teleport
Methods inherited from class net.minecraft.world.entity.AgeableMob
ageUp, ageUp, aiStep, getAge, getForcedAge, getForcedAgeTimer, getSpeedUpSecondsWhenFeeding, isBaby, onSyncedDataUpdated, setAge, setBaby
Methods inherited from class net.minecraft.world.entity.PathfinderMob
checkSpawnRules, closeRangeLeashBehaviour, followLeashSpeed, getWalkTargetValue, getWalkTargetValue, isPanicking, isPathFinding, shouldStayCloseToLeashHolder, whenLeashedTo
Methods inherited from class net.minecraft.world.entity.Mob
ate, baseTick, canAttackType, canDispenserEquipIntoSlot, canFireProjectileWeapon, canHoldItem, canPickUpLoot, canReplaceCurrentItem, canReplaceEqualItem, canShearEquipment, checkDespawn, checkMobSpawnRules, checkSpawnObstruction, clampHeadRotationToBody, clearHome, convertTo, convertTo, createBodyControl, createEquipmentSlotContainer, createMobAttributes, createNavigation, doHurtTarget, dropCustomDeathLoot, dropFromLootTable, dropPreservedEquipment, dropPreservedEquipment, enchantSpawnedArmor, enchantSpawnedWeapon, equip, equip, equipItemIfPossible, getAmbientSoundInterval, getAttackBoundingBox, getBaseExperienceReward, getBodyArmorItem, getControllingPassenger, getDropChances, getEquipmentForSlot, getHeadRotSpeed, getHomePosition, getHomeRadius, getJumpControl, getLeashData, getLookControl, getLootTable, getLootTableSeed, getMainArm, getMaxFallDistance, getMaxHeadXRot, getMaxHeadYRot, getMaxSpawnClusterSize, getMoveControl, getNavigation, getPathfindingMalus, getPickResult, getPickupReach, getPreferredWeaponType, getSensing, getSpawnType, getTarget, getTargetFromBrain, hasHome, interact, isAggressive, isEffectiveAi, isLeftHanded, isMaxGroupSizeReached, isNoAi, isPersistenceRequired, isSaddled, isSpawnCancelled, isSunBurnTick, isWearingBodyArmor, isWithinHome, isWithinHome, isWithinHome, isWithinMeleeAttackRange, jumpInFluid, jumpInLiquid, leashTooFarBehaviour, lookAt, onAttributeUpdated, onLeashRemoved, onOffspringSpawnedFromEgg, onPathfindingDone, onPathfindingStart, playAmbientSound, playAttackSound, playHurtSound, populateDefaultEquipmentEnchantments, populateDefaultEquipmentSlots, registerGoals, removeAfterChangingDimensions, removeAllGoals, removeFreeWill, requiresCustomPersistence, serverAiStep, setAggressive, setBodyArmorItem, setCanPickUpLoot, setDropChance, setGuaranteedDrop, setHomeTo, setItemSlotAndDropWhenKilled, setLeashData, setLeftHanded, setNoAi, setPathfindingMalus, setPersistenceRequired, setSpawnCancelled, setSpeed, setTarget, setXxa, setYya, setZza, shouldDespawnInPeaceful, shouldPassengersInheritMalus, spawnAnim, startRiding, stopInPlace, tickHeadTurn, updateControlFlags
Methods inherited from class net.minecraft.world.entity.LivingEntity
activeLocationDependentEnchantments, actuallyHurt, addEffect, addEffect, animateHurt, applyInput, applyItemBlocking, areAllEffectsAmbient, attackable, blockedByItem, blockUsingItem, calculateEntityAnimation, calculateFallDamage, canAttack, canBeAffected, canBeSeenAsEnemy, canBeSeenByAnyone, canBreatheUnderwater, canEquipWithDispenser, canFreeze, canGlide, canGlideUsing, canStandOnFluid, canUsePortal, canUseSlot, causeFallDamage, checkAutoSpinAttack, checkFallDamage, clearSleepingPos, completeUsingItem, createEquipment, createLivingAttributes, createWitherRose, decreaseAirSupply, doAutoAttackOnTouch, doesEmitEquipEvent, doHurtEquipment, doPush, drop, dropAllDeathLoot, dropEquipment, dropExperience, dropFromGiftLootTable, dropFromLootTable, dropFromShearingLootTable, equipmentHasChanged, forceAddEffect, getAbsorptionAmount, getActiveEffects, getActiveEffectsMap, getAgeScale, getArmorCoverPercentage, getArmorValue, getArrowCount, getAttackAnim, getAttribute, getAttributeBaseValue, getAttributes, getAttributeValue, getBedOrientation, getBlockSpeedFactor, getCombatTracker, getComfortableFallDistance, getCurrentSwingDuration, getDamageAfterArmorAbsorb, getDamageAfterMagicAbsorb, getDefaultDimensions, getDefaultGravity, getDimensions, getDismountPoses, getEffect, getEffectBlendFactor, getEffectiveGravity, getEquipmentSlotForItem, getEquipSound, getExperienceReward, getFallFlyingTicks, getFallSounds, getFluidFallingAdjustedMovement, getFlyingSpeed, getHealth, getHitbox, getHurtDir, getInterpolation, getItemBlockingWith, getItemBySlot, getItemHeldByArm, getItemInHand, getJumpBoostPower, getJumpPower, getJumpPower, getKillCredit, getKnockback, getLastAttacker, getLastClimbablePos, getLastDamageSource, getLastHurtByMob, getLastHurtByMobTimestamp, getLastHurtByPlayer, getLastHurtByPlayerMemoryTime, getLastHurtMob, getLastHurtMobTimestamp, getLocalBoundsForPose, getLuck, getMainHandItem, getMaxAbsorption, getMaxHeadRotationRelativeToBody, getMaxHealth, getNoActionTime, getOffhandItem, getPassengerRidingPosition, getPreciseBodyRotation, getProjectile, getRelativePortalPosition, getRiddenInput, getRiddenSpeed, getScale, getSecondsToDisableBlocking, getSleepingPos, getSlotForHand, getSoundVolume, getSpeed, getStingerCount, getSwimAmount, getTicksUsingItem, getUsedItemHand, getUseItem, getUseItemRemainingTicks, getViewYRot, getVisibilityPercent, getVisualRotationYInDegrees, getVoicePitch, getWaterSlowDown, getWeaponItem, getYHeadRot, goDownInWater, handleDamageEvent, handleExtraItemsCreatedOnUse, hasEffect, hasInfiniteMaterials, hasItemInSlot, hasLandedInLiquid, hasLineOfSight, hasLineOfSight, heal, hurtArmor, hurtHelmet, hurtServer, igniteForTicks, increaseAirSupply, indicateDamage, internalSetAbsorptionAmount, isAffectedByFluids, isAffectedByPotions, isAlive, isAlwaysExperienceDropper, isAutoSpinAttack, isBlocking, isCurrentlyGlowing, isDeadOrDying, isEquippableInSlot, isFallFlying, isHolding, isHolding, isImmobile, isInvertedHealAndHarm, isInvulnerableTo, isInWall, isJumping, isLookingAtMe, isPickable, isPushable, isSensitiveToWater, isSleeping, isSuppressingSlidingDownLadder, isTransmittingWaypoint, isUsingItem, isVisuallySwimming, jumpFromGround, kill, knockback, lerpHeadRotationStep, lerpHeadTo, lookAt, makePoofParticles, makeSound, makeWaypointConnectionWith, maxUpStep, onBelowWorld, onChangedBlock, onClimbable, onEffectAdded, onEffectsRemoved, onEffectUpdated, onEnterCombat, onEquipItem, onEquippedItemBroken, onItemPickup, onLeaveCombat, onRemoval, playBlockFallSound, push, pushEntities, randomTeleport, recreateFromPacket, releaseUsingItem, remove, removeAllEffects, removeEffect, removeEffectNoUpdate, removeEffectParticles, removeFrost, resetForwardDirectionOfRelativePortalPosition, resolveMobResponsibleForDamage, resolvePlayerResponsibleForDamage, rideTick, sanitizeScale, sendEffectToPassengers, setAbsorptionAmount, setArrowCount, setDiscardFriction, setHealth, setItemInHand, setItemSlot, setJumping, setLastHurtByPlayer, setLastHurtByPlayer, setLastHurtMob, setLivingEntityFlag, setNoActionTime, setRecordPlayingNearby, setSleepingPos, setSprinting, setStingerCount, setYBodyRot, setYHeadRot, shouldDiscardFriction, shouldDropExperience, shouldDropLoot, shouldShowName, skipDropExperience, spawnItemParticles, startUsingItem, stopFallFlying, stopRiding, stopUsingItem, swing, swing, take, tickDeath, tickEffects, tickRidden, travel, travelFlying, travelFlying, triggerOnDeathMobEffects, tryAddFrost, updateEffectVisibility, updateFallFlying, updateInvisibilityStatus, updateSwingTime, updateUsingItem, updateWalkAnimation, wasExperienceConsumed, waypointIcon, wouldNotSuffocateAtTargetPose
Methods inherited from class net.minecraft.world.entity.Entity
absSnapRotationTo, absSnapTo, absSnapTo, addDeltaMovement, addPassenger, addTag, adjustSpawnLocation, applyComponentsFromItemStack, applyEffectsFromBlocks, applyEffectsFromBlocks, applyGravity, applyImplicitComponentIfPresent, awardKillScore, blockPosition, broadcastToPlayer, calculateUpVector, calculateViewVector, canAddPassenger, canBeCollidedWith, canBeHitByProjectile, canCollideWith, canControlVehicle, canRide, canSimulateMovement, canSpawnSprintParticle, canSprint, canTeleport, canTrample, captureDrops, captureDrops, castComponentValue, checkBelowWorld, checkFallDistanceAccumulation, checkSupportingBlock, chunkPosition, clearFire, clearFreeze, clearMovementThisTick, closerThan, closerThan, collideBoundingBox, collidedWithFluid, collidedWithShapeMovingFrom, considersEntityAsAlly, copyPosition, couldAcceptPassenger, countPlayerPassengers, createCommandSourceStackForNameResolution, createHoverEvent, damageSources, dampensVibrations, deflection, discard, dismountsUnderwater, dismountTo, displayFireAnimation, distanceTo, distanceToSqr, distanceToSqr, distanceToSqr, doCheckFallDamage, doWaterSplashEffect, dropAllLeashConnections, ejectPassengers, equals, extinguishFire, fillCrashReportCategory, fireImmune, fixupDimensions, forceSetRotation, fudgePositionAfterSizeChange, gameEvent, gameEvent, getAddEntityPacket, getAirSupply, getAttachments, getBbHeight, getBbWidth, getBlockExplosionResistance, getBlockJumpFactor, getBlockPosBelowThatAffectsMyMovement, getBlockStateOn, getBlockStateOnLegacy, getBlockX, getBlockY, getBlockZ, getBoundingBox, getCapability, getCapability, getCollisionHorizontalEscapeVector, getControlledVehicle, getCustomName, getDefaultPassengerAttachmentPoint, getDeltaMovement, getDimensionChangingDelay, getDirection, getDismountLocationForPassenger, getDisplayName, getEncodeId, getEntityData, getEyeHeight, getEyeHeight, getEyeInFluidType, getEyePosition, getEyePosition, getEyeY, getFireImmuneTicks, getFirstPassenger, getFluidHeight, getFluidJumpThreshold, getFluidTypeHeight, getForward, getGravity, getHandHoldingItemAngle, getId, getInBlockState, getIndirectPassengers, getInputVector, getKnownMovement, getLightLevelDependentMagicValue, getLightProbePosition, getLookAngle, getMaxAirSupply, getMaxHeightFluidType, getMotionDirection, getMovementEmission, getName, getNearestViewDirection, getOnPos, getOnPos, getOnPosLegacy, getPassengerAttachmentPoint, getPassengers, getPassengersAndSelf, getPercentFrozen, getPersistentData, getPickRadius, getPistonPushReaction, getPortalCooldown, getPose, getPosition, getPositionCodec, getPrimaryStepSoundBlockPos, getQuadLeashHolderOffsets, getRandom, getRandomX, getRandomY, getRandomZ, getRemainingFireTicks, getRemovalReason, getRequiresPrecisePosition, getRootVehicle, getRotationVector, getScoreboardName, getSelfAndPassengers, getServer, getSharedFlag, getSoundSource, getStringUUID, getSwimHighSpeedSplashSound, getSwimSound, getSwimSplashSound, getTags, getTeam, getTeamColor, getTicksFrozen, getTicksRequiredToFreeze, getType, getUpVector, getUUID, getVehicle, getVehicleAttachmentPoint, getViewScale, getViewVector, getViewXRot, getX, getX, getXRot, getXRot, getY, getY, getYRot, getYRot, getZ, getZ, handleOnAboveBubbleColumn, handleOnInsideBubbleColumn, handlePortal, hasControllingPassenger, hasCustomName, hasExactlyOnePlayerPassenger, hasGlowingTag, hashCode, hasIndirectPassenger, hasPassenger, hasPassenger, hasPose, hurt, hurtClient, hurtOrSimulate, igniteForSeconds, ignoreExplosion, interactAt, is, isAddedToLevel, isAffectedByBlocks, isAlliedTo, isAlliedTo, isAlwaysTicking, isAttackable, isClientAuthoritative, isColliding, isCrouching, isCustomNameVisible, isDescending, isDiscrete, isEyeInFluid, isFlapping, isFlyingVehicle, isFree, isFreezing, isFullyFrozen, isHorizontalCollisionMinor, isIgnoringBlockTriggers, isInClouds, isInFluidType, isInFluidType, isInLava, isInLiquid, isInterpolating, isInvisible, isInvisibleTo, isInvulnerable, isInvulnerableToBase, isInWater, isInWaterOrRain, isLocalClientAuthoritative, isLocalInstanceAuthoritative, isNoGravity, isOnFire, isOnPortalCooldown, isOnRails, isPassenger, isPassengerOfSameVehicle, isPushedByFluid, isRemoved, isShiftKeyDown, isSilent, isSpectator, isSprinting, isSteppingCarefully, isSupportedBy, isSuppressingBounce, isSwimming, isUnderWater, isVehicle, isVisuallyCrawling, killedEntity, lavaHurt, lavaIgnite, lerpMotion, lerpPositionAndRotationStep, level, limitPistonMovement, load, makeBoundingBox, makeBoundingBox, makeStuckInBlock, markHurt, maybeBackOffFromEdge, mayInteract, mirror, move, moveOrInterpolateTo, moveRelative, moveTowardsClosestSpace, nextStep, notifyLeasheeRemoved, notifyLeashHolder, oldPosition, onAboveBubbleColumn, onAddedToLevel, onClientRemoval, onExplosionHit, onFlap, onGround, onInsideBlock, onInsideBubbleColumn, onPassengerTurned, onRemovedFromLevel, onSyncedDataUpdated, pick, placePortalTicket, playCombinationStepSounds, playEntityOnFireExtinguishedSound, playerTouch, playMuffledStepSound, playSound, playSound, playStepSound, playSwimSound, position, positionRider, positionRider, problemPath, processFlappingMovement, processPortalCooldown, propagateFallToPassengers, push, push, reapplyPosition, refreshDimensions, registryAccess, removeLatestMovementRecording, removePassenger, removeTag, removeVehicle, repositionEntityAfterLoad, resetFallDistance, restoreFrom, revive, rotate, save, saveAsPassenger, saveWithoutId, sendBubbleColumnParticles, setAirSupply, setAsInsidePortal, setBoundingBox, setComponent, setCustomName, setCustomNameVisible, setData, setDeltaMovement, setDeltaMovement, setFluidTypeHeight, setGlowingTag, setId, setInvisible, setInvulnerable, setIsInPowderSnow, setLevel, setLevelCallback, setNoGravity, setOldPos, setOldPosAndRot, setOldPosAndRot, setOldRot, setOnGround, setOnGroundWithMovement, setOnGroundWithMovement, setPortalCooldown, setPortalCooldown, setPos, setPos, setPose, setPosRaw, setRemainingFireTicks, setRemoved, setRequiresPrecisePosition, setRot, setSharedFlag, setSharedFlagOnFire, setShiftKeyDown, setSilent, setSwimming, setTicksFrozen, setUUID, setViewScale, setXRot, setYRot, shearOffAllLeashConnections, shouldBeSaved, shouldBlockExplode, shouldPlayLavaHurtSound, shouldRender, shouldRenderAtSqrDistance, showVehicleHealth, skipAttackInteraction, snapTo, snapTo, snapTo, snapTo, snapTo, spawnAtLocation, spawnAtLocation, spawnAtLocation, spawnAtLocation, spawnAtLocation, spawnSprintParticle, startRiding, startSeenByPlayer, stopSeenByPlayer, supportQuadLeashAsHolder, syncPacketPositionCodec, teleportRelative, teleportSetPosition, teleportSpectators, teleportTo, teleportTo, toString, touchingUnloadedChunk, trackingPosition, turn, unRide, unsetRemoved, updateDynamicGameEventListener, updateFluidHeightAndDoFluidPushing, updateFluidHeightAndDoFluidPushing, updateInWaterStateAndDoFluidPushing, updateSwimming, waterSwimSound
Methods inherited from class net.neoforged.neoforge.attachment.AttachmentHolder
deserializeAttachments, getData, getExistingDataOrNull, hasAttachments, hasData, removeData, serializeAttachments
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
Methods inherited from interface net.minecraft.core.component.DataComponentGetter
get, getOrDefault, getOrDefault, getTyped, has, has
Methods inherited from interface net.minecraft.world.entity.EquipmentUser
equip, equip, equip, getItemBySlot, resolveSlot, setItemSlot
Methods inherited from interface net.neoforged.neoforge.attachment.IAttachmentHolder
getData, getExistingData, getExistingData, getExistingDataOrNull, hasData, removeData, setData
Methods inherited from interface net.neoforged.neoforge.common.extensions.IEntityExtension
canBeRiddenUnderFluidType, canFluidExtinguish, canHydrateInFluidType, canRiderInteract, canStartSwimming, canTrample, captureDrops, captureDrops, copyAttachmentsFrom, getClassification, getEyeInFluidType, getFluidFallDistanceModifier, getFluidMotionScale, getFluidTypeHeight, getMaxHeightFluidType, getParts, getPersistentData, getSoundFromFluidType, hasCustomOutlineRendering, isAddedToLevel, isEyeInFluidType, isInFluidType, isInFluidType, isInFluidType, isInFluidType, isInFluidType, isMultipartEntity, isPushedByFluid, onAddedToLevel, onRemovedFromLevel, revive, sendPairingData, shouldRiderSit
Methods inherited from interface net.neoforged.neoforge.common.extensions.ILivingEntityExtension
canDrownInFluidType, canSwimInFluidType, moveInFluid, onDamageTaken, self, sinkInFluid
Methods inherited from interface net.minecraft.world.entity.npc.InventoryCarrier
readInventoryFromTag, writeInventoryToTag
Methods inherited from interface net.minecraft.world.entity.Leashable
canHaveALeashAttachedTo, checkElasticInteractions, dropLeash, getLeashHolder, getLeashOffset, getLeashOffset, getQuadLeashOffsets, isLeashed, leashDistanceTo, leashElasticDistance, leashSnapDistance, mayBeLeashed, onElasticLeashPull, readLeashData, removeLeash, setDelayedLeashHolderId, setLeashedTo, supportQuadLeash, writeLeashData
Methods inherited from interface net.minecraft.world.item.trading.Merchant
openTradingScreen
Methods inherited from interface net.minecraft.world.scores.ScoreHolder
getFeedbackDisplayName
-
Field Details
-
LOGGER
private static final org.slf4j.Logger LOGGER -
DATA_VILLAGER_DATA
-
BREEDING_FOOD_THRESHOLD
public static final int BREEDING_FOOD_THRESHOLD- See Also:
-
FOOD_POINTS
Mapping between valid food items and their respective efficiency values. -
TRADES_PER_LEVEL
private static final int TRADES_PER_LEVEL- See Also:
-
MAX_GOSSIP_TOPICS
private static final int MAX_GOSSIP_TOPICS- See Also:
-
GOSSIP_COOLDOWN
private static final int GOSSIP_COOLDOWN- See Also:
-
GOSSIP_DECAY_INTERVAL
private static final int GOSSIP_DECAY_INTERVAL- See Also:
-
HOW_FAR_AWAY_TO_TALK_TO_OTHER_VILLAGERS_ABOUT_GOLEMS
private static final int HOW_FAR_AWAY_TO_TALK_TO_OTHER_VILLAGERS_ABOUT_GOLEMS- See Also:
-
HOW_MANY_VILLAGERS_NEED_TO_AGREE_TO_SPAWN_A_GOLEM
private static final int HOW_MANY_VILLAGERS_NEED_TO_AGREE_TO_SPAWN_A_GOLEM- See Also:
-
TIME_SINCE_SLEEPING_FOR_GOLEM_SPAWNING
private static final long TIME_SINCE_SLEEPING_FOR_GOLEM_SPAWNING- See Also:
-
SPEED_MODIFIER
public static final float SPEED_MODIFIER- See Also:
-
DEFAULT_XP
private static final int DEFAULT_XP- See Also:
-
DEFAULT_FOOD_LEVEL
private static final byte DEFAULT_FOOD_LEVEL- See Also:
-
DEFAULT_LAST_RESTOCK
private static final int DEFAULT_LAST_RESTOCK- See Also:
-
DEFAULT_LAST_GOSSIP_DECAY
private static final int DEFAULT_LAST_GOSSIP_DECAY- See Also:
-
DEFAULT_RESTOCKS_TODAY
private static final int DEFAULT_RESTOCKS_TODAY- See Also:
-
DEFAULT_ASSIGN_PROFESSION_WHEN_SPAWNED
private static final boolean DEFAULT_ASSIGN_PROFESSION_WHEN_SPAWNED- See Also:
-
updateMerchantTimer
private int updateMerchantTimer -
increaseProfessionLevelOnUpdate
private boolean increaseProfessionLevelOnUpdate -
lastTradedPlayer
-
chasing
private boolean chasing -
foodLevel
private int foodLevel -
gossips
-
lastGossipTime
private long lastGossipTime -
lastGossipDecayTime
private long lastGossipDecayTime -
villagerXp
private int villagerXp -
lastRestockGameTime
private long lastRestockGameTime -
numberOfRestocksToday
private int numberOfRestocksToday -
lastRestockCheckDayTime
private long lastRestockCheckDayTime -
assignProfessionWhenSpawned
private boolean assignProfessionWhenSpawned -
MEMORY_TYPES
-
SENSOR_TYPES
private static final com.google.common.collect.ImmutableList<SensorType<? extends Sensor<? super Villager>>> SENSOR_TYPES -
POI_MEMORIES
public static final Map<MemoryModuleType<GlobalPos>,BiPredicate<Villager, POI_MEMORIESHolder<PoiType>>>
-
-
Constructor Details
-
Villager
-
Villager
public Villager(EntityType<? extends Villager> pEntityType, Level pLevel, ResourceKey<VillagerType> pVillagerType) -
Villager
public Villager(EntityType<? extends Villager> pEntityType, Level pLevel, Holder<VillagerType> pVillagerType)
-
-
Method Details
-
getBrain
- Overrides:
getBrain
in classLivingEntity
-
brainProvider
- Overrides:
brainProvider
in classLivingEntity
-
makeBrain
- Overrides:
makeBrain
in classLivingEntity
-
refreshBrain
-
registerBrainGoals
-
ageBoundaryReached
protected void ageBoundaryReached()- Overrides:
ageBoundaryReached
in classAgeableMob
-
createAttributes
-
assignProfessionWhenSpawned
public boolean assignProfessionWhenSpawned() -
customServerAiStep
- Overrides:
customServerAiStep
in classMob
-
tick
public void tick() -
mobInteract
- Overrides:
mobInteract
in classMob
-
setUnhappy
private void setUnhappy() -
startTrading
-
setTradingPlayer
- Specified by:
setTradingPlayer
in interfaceMerchant
- Overrides:
setTradingPlayer
in classAbstractVillager
-
stopTrading
protected void stopTrading()- Overrides:
stopTrading
in classAbstractVillager
-
resetSpecialPrices
private void resetSpecialPrices() -
canRestock
public boolean canRestock()- Specified by:
canRestock
in interfaceMerchant
-
restock
public void restock() -
resendOffersToTradingPlayer
private void resendOffersToTradingPlayer() -
needsToRestock
private boolean needsToRestock() -
allowedToRestock
private boolean allowedToRestock() -
shouldRestock
public boolean shouldRestock() -
catchUpDemand
private void catchUpDemand() -
updateDemand
private void updateDemand() -
updateSpecialPrices
-
defineSynchedData
- Overrides:
defineSynchedData
in classAbstractVillager
-
createDefaultVillagerData
-
addAdditionalSaveData
- Overrides:
addAdditionalSaveData
in classAbstractVillager
-
readAdditionalSaveData
- Overrides:
readAdditionalSaveData
in classAbstractVillager
-
removeWhenFarAway
public boolean removeWhenFarAway(double pDistanceToClosestPlayer) - Overrides:
removeWhenFarAway
in classMob
-
getAmbientSound
- Overrides:
getAmbientSound
in classMob
-
getHurtSound
- Overrides:
getHurtSound
in classLivingEntity
-
getDeathSound
- Overrides:
getDeathSound
in classLivingEntity
-
playWorkSound
public void playWorkSound() -
setVillagerData
- Specified by:
setVillagerData
in interfaceVillagerDataHolder
-
getVillagerData
- Specified by:
getVillagerData
in interfaceVillagerDataHolder
-
rewardTradeXp
- Specified by:
rewardTradeXp
in classAbstractVillager
-
setLastHurtByMob
Hint to AI tasks that we were attacked by the passed EntityLivingBase and should retaliate. Is not guaranteed to change our actual active target (for example if we are currently busy attacking someone else)- Overrides:
setLastHurtByMob
in classLivingEntity
-
die
Called when the mob's health reaches 0.- Overrides:
die
in classAbstractVillager
-
releaseAllPois
private void releaseAllPois() -
tellWitnessesThatIWasMurdered
-
releasePoi
-
canBreed
public boolean canBreed()- Overrides:
canBreed
in classAgeableMob
-
hungry
private boolean hungry() -
eatUntilFull
private void eatUntilFull() -
getPlayerReputation
-
digestFood
private void digestFood(int pQty) -
eatAndDigestFood
public void eatAndDigestFood() -
setOffers
-
shouldIncreaseLevel
private boolean shouldIncreaseLevel() -
increaseMerchantCareer
private void increaseMerchantCareer() -
getTypeName
- Overrides:
getTypeName
in classEntity
-
handleEntityEvent
public void handleEntityEvent(byte pId) Handler forinvalid reference
World#setEntityState
- Overrides:
handleEntityEvent
in classMob
-
finalizeSpawn
@Nullable public SpawnGroupData finalizeSpawn(ServerLevelAccessor pLevel, DifficultyInstance pDifficulty, EntitySpawnReason pSpawnReason, @Nullable SpawnGroupData pSpawnGroupData) - Overrides:
finalizeSpawn
in classAbstractVillager
-
getBreedOffspring
- Specified by:
getBreedOffspring
in classAgeableMob
-
thunderHit
- Overrides:
thunderHit
in classEntity
-
pickUpItem
- Overrides:
pickUpItem
in classMob
-
wantsToPickUp
- Overrides:
wantsToPickUp
in classMob
-
hasExcessFood
public boolean hasExcessFood() -
wantsMoreFood
public boolean wantsMoreFood() -
countFoodPointsInInventory
private int countFoodPointsInInventory() -
hasFarmSeeds
public boolean hasFarmSeeds() -
updateTrades
protected void updateTrades()- Specified by:
updateTrades
in classAbstractVillager
-
gossip
-
maybeDecayGossip
private void maybeDecayGossip() -
spawnGolemIfNeeded
-
wantsToSpawnGolem
public boolean wantsToSpawnGolem(long pGameTime) -
onReputationEventFrom
- Specified by:
onReputationEventFrom
in interfaceReputationEventHandler
-
getVillagerXp
public int getVillagerXp()- Specified by:
getVillagerXp
in interfaceMerchant
- Overrides:
getVillagerXp
in classAbstractVillager
-
setVillagerXp
public void setVillagerXp(int pVillagerXp) -
resetNumberOfRestocks
private void resetNumberOfRestocks() -
getGossips
-
setGossips
-
sendDebugPackets
protected void sendDebugPackets()- Overrides:
sendDebugPackets
in classMob
-
startSleeping
- Overrides:
startSleeping
in classLivingEntity
-
stopSleeping
public void stopSleeping()- Overrides:
stopSleeping
in classLivingEntity
-
golemSpawnConditionsMet
private boolean golemSpawnConditionsMet(long pGameTime) -
get
- Specified by:
get
in interfaceDataComponentGetter
- Overrides:
get
in classEntity
-
applyImplicitComponents
- Overrides:
applyImplicitComponents
in classEntity
-
applyImplicitComponent
- Overrides:
applyImplicitComponent
in classEntity
-