Class Villager
- All Implemented Interfaces:
DataComponentGetter, TypedInstance<EntityType<?>>, SyncedDataHolder, DebugValueSource, Attackable, EquipmentUser, ItemOwner, Leashable, InventoryCarrier, Npc, VillagerDataHolder, ReputationEventHandler, SlotProvider, Targeting, Merchant, EntityAccess, UniquelyIdentifyable, Nameable, ScoreHolder, Waypoint, WaypointTransmitter, IAttachmentHolder, IEntityExtension, ILivingEntityExtension
public class Villager
extends AbstractVillager
implements VillagerDataHolder, ReputationEventHandler
-
Nested Class Summary
Nested classes/interfaces inherited from class AgeableMob
AgeableMob.AgeableMobGroupDataNested classes/interfaces inherited from class LivingEntity
LivingEntity.FallsoundsNested classes/interfaces inherited from class Entity
Entity.Flags, Entity.MoveFunction, Entity.MovementEmission, Entity.RemovalReasonNested classes/interfaces inherited from class AttachmentHolder
AttachmentHolder.AsFieldNested classes/interfaces inherited from interface DebugValueSource
DebugValueSource.Registration, DebugValueSource.ValueGetter<T>Nested classes/interfaces inherited from interface ItemOwner
ItemOwner.OffsetFromOwnerNested classes/interfaces inherited from interface Leashable
Leashable.LeashData, Leashable.WrenchNested classes/interfaces inherited from interface Waypoint
Waypoint.IconNested classes/interfaces inherited from interface WaypointTransmitter
WaypointTransmitter.BlockConnection, WaypointTransmitter.ChunkConnection, WaypointTransmitter.Connection, WaypointTransmitter.EntityAzimuthConnection, WaypointTransmitter.EntityBlockConnection, WaypointTransmitter.EntityChunkConnection -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate booleanprivate static final EntityDimensionsprivate static final Brain.Provider<Villager> static final intprivate booleanprivate static final EntityDataAccessor<VillagerData> private static final EntityDataAccessor<Boolean> private static final booleanprivate static final byteprivate static final intprivate static final intprivate static final intprivate static final intprivate intprivate static final intprivate static final intprivate final GossipContainerprivate static final intprivate static final intprivate booleanprivate longprivate longprivate longprivate longprivate @Nullable Playerprivate static final org.slf4j.Loggerprivate static final intprivate intstatic final Map<MemoryModuleType<GlobalPos>, BiPredicate<Villager, Holder<PoiType>>> static final floatprivate static final longprivate intprivate intFields inherited from class AbstractVillager
offersFields inherited from class AgeableMob
age, AGE_LOCK_COOLDOWN_TICKS, AGE_LOCK_DOWNWARDS_MOVING_PARTICLE_Y_OFFSET, ageLockParticleTimer, BABY_START_AGE, DEFAULT_AGE, DEFAULT_FORCED_AGE, forcedAge, forcedAgeTimerFields inherited from class PathfinderMob
DEFAULT_WALK_TARGET_VALUEFields inherited from class 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, WEARING_ARMOR_UPGRADE_MATERIAL_ATTEMPTS, WEARING_ARMOR_UPGRADE_MATERIAL_CHANCE, xpRewardFields inherited from class LivingEntity
ARMOR_SLOT_OFFSET, attackAnim, attackStrengthTicker, autoSpinAttackDmg, autoSpinAttackItemStack, autoSpinAttackTicks, BASE_JUMP_POWER, BODY_ARMOR_OFFSET, brain, currentExplosionCause, currentImpulseImpactPos, damageContainers, DATA_LIVING_ENTITY_FLAGS, dead, DEATH_DURATION, deathTime, DEFAULT_BABY_SCALE, DEFAULT_BASE_GRAVITY, DEFAULT_KNOCKBACK, elytraAnimationState, equipment, EQUIPMENT_SLOT_OFFSET, EXTRA_RENDER_CULLING_SIZE_WITH_BIG_HAT, fallFlyTicks, hurtDuration, hurtTime, INPUT_FRICTION, interpolation, INVULNERABLE_DURATION, itemSwapTicker, 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, recentKineticEnemies, removeArrowTime, removeStingerTime, SADDLE_OFFSET, SLEEPING_DIMENSIONS, 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, zzaFields inherited from class 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, flyDist, FREEZE_HURT_FREQUENCY, horizontalCollision, hurtMarked, invulnerableTime, isInPowderSnow, mainSupportingBlockPos, MAX_ENTITY_TAG_COUNT, MAX_MOVEMENTS_HANDELED_PER_TICK, minorHorizontalCollision, moveDist, needsSync, noPhysics, portalProcess, random, stringUUID, stuckSpeedMultiplier, TAG_AIR, TAG_CUSTOM_NAME, 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, zOldFields inherited from class AttachmentHolder
ATTACHMENTS_NBT_KEYFields inherited from interface InventoryCarrier
TAG_INVENTORYFields inherited from interface 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_ELASTICITYFields inherited from interface ScoreHolder
WILDCARD, WILDCARD_NAMEFields inherited from interface Waypoint
MAX_RANGE, WAYPOINT_TRANSMIT_RANGE_HIDE_MODIFIERFields inherited from interface WaypointTransmitter
REALLY_FAR_DISTANCE -
Constructor Summary
ConstructorsConstructorDescriptionVillager(EntityType<? extends Villager> type, Level level) Villager(EntityType<? extends Villager> entityType, Level level, Holder<VillagerType> type) Villager(EntityType<? extends Villager> entityType, Level level, ResourceKey<VillagerType> type) -
Method Summary
Modifier and TypeMethodDescriptionprotected voidaddAdditionalSaveData(ValueOutput output) protected voidprivate booleanprotected <T> booleanapplyImplicitComponent(DataComponentType<T> type, T value) protected voidapplyImplicitComponents(DataComponentGetter components) booleanbooleancanBreed()booleanprivate voidprivate intstatic AttributeSupplier.Builderstatic VillagerDataprotected voidcustomServerAiStep(ServerLevel level) protected voiddefineSynchedData(SynchedEntityData.Builder entityData) voiddie(DamageSource source) private voiddigestFood(int amount) voidprivate void@Nullable SpawnGroupDatafinalizeSpawn(ServerLevelAccessor level, DifficultyInstance difficulty, EntitySpawnReason spawnReason, @Nullable SpawnGroupData groupData) <T> @Nullable Tget(DataComponentType<? extends T> type) protected @Nullable SoundEventgetBrain()@Nullable VillagergetBreedOffspring(ServerLevel level, AgeableMob partner) protected SoundEventgetDefaultDimensions(Pose pose) protected SoundEventgetHurtSound(DamageSource source) intgetPlayerReputation(Player player) protected Componentintprivate booleangolemSpawnConditionsMet(long gameTime) voidgossip(ServerLevel level, Villager target, long timestamp) voidhandleEntityEvent(byte id) booleanbooleanprivate booleanhungry()private voidmakeBrain(Brain.Packed packedBrain) private voidmobInteract(Player player, InteractionHand hand) private booleanvoidonReputationEventFrom(ReputationEventType type, Entity source) protected voidpickUpItem(ServerLevel level, ItemEntity entity) voidprotected voidreadAdditionalSaveData(ValueInput input) voidrefreshBrain(ServerLevel level) private voidregisterBrainGoals(Brain<Villager> brain) private voidvoidreleasePoi(MemoryModuleType<GlobalPos> memoryType) booleanremoveWhenFarAway(double distSqr) private voidprivate voidprivate voidvoidrestock()protected voidrewardTradeXp(MerchantOffer offer) voidsetGossips(GossipContainer gossips) voidsetLastHurtByMob(@Nullable LivingEntity hurtBy) voidsetOffers(MerchantOffers offers) voidsetTradingPlayer(@Nullable Player player) private voidvoidsetVillagerData(VillagerData data) voidsetVillagerXp(int value) private booleanbooleanshouldRestock(ServerLevel level) voidspawnGolemIfNeeded(ServerLevel level, long timestamp, int villagersNeededToAgree) private voidstartTrading(Player player) voidprotected voidprivate voidtellWitnessesThatIWasMurdered(Entity murderer) voidthunderHit(ServerLevel level, LightningBolt lightningBolt) voidtick()private voidprivate voidupdateSpecialPrices(Player player) protected voidupdateTrades(ServerLevel level) booleanbooleanwantsToPickUp(ServerLevel level, ItemStack itemStack) booleanwantsToSpawnGolem(long timestamp) Methods inherited from class AbstractVillager
addOffersFromTradeSet, addParticlesAroundSelf, canBeLeashed, getInventory, getNotifyTradeSound, getOffers, getRopeHoldPosition, getSlot, getTradeUpdatedSound, getTradingPlayer, getUnhappyCounter, isClientSide, isTrading, notifyTrade, notifyTradeUpdated, overrideOffers, overrideXp, playCelebrateSound, setUnhappyCounter, showProgressBar, stillValid, teleportMethods inherited from class AgeableMob
ageUp, ageUp, aiStep, canAgeUp, canUseGoldenDandelion, getAge, getBabyStartAge, getForcedAge, getForcedAgeTimer, getSpeedUpSecondsWhenFeeding, isAgeLocked, isBaby, makeAgeLockedParticle, onSyncedDataUpdated, setAge, setAgeLocked, setAgeLocked, setBabyMethods inherited from class PathfinderMob
checkSpawnRules, closeRangeLeashBehaviour, followLeashSpeed, getWalkTargetValue, getWalkTargetValue, isPanicking, isPathFinding, shouldStayCloseToLeashHolder, whenLeashedToMethods inherited from class Mob
asValidTarget, ate, baseTick, canAttack, canDispenserEquipIntoSlot, canHoldItem, canPickUpLoot, canReplaceCurrentItem, canReplaceEqualItem, canShearEquipment, canUseNonMeleeWeapon, chargeSpeedModifier, 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, getTargetUnchecked, hasHome, interact, isAggressive, isEffectiveAi, isLeftHanded, isMaxGroupSizeReached, isNoAi, isPersistenceRequired, isSaddled, isSpawnCancelled, isWearingBodyArmor, isWithinHome, isWithinHome, isWithinHome, isWithinMeleeAttackRange, jumpInFluid, jumpInLiquid, leashTooFarBehaviour, lookAt, onAttributeUpdated, onLeashRemoved, onOffspringSpawnedFromEgg, onPathfindingDone, onPathfindingStart, playAmbientSound, playHurtSound, populateDefaultEquipmentEnchantments, populateDefaultEquipmentSlots, registerDebugValues, registerGoals, removeAfterChangingDimensions, removeAllGoals, removeFreeWill, requiresCustomPersistence, serverAiStep, setAggressive, setBodyArmorItem, setCanPickUpLoot, setDropChance, setGuaranteedDrop, setHomeTo, setItemSlotAndDropWhenKilled, setLeashData, setLeftHanded, setNoAi, setPathfindingMalus, setPersistenceRequired, setSpawnCancelled, setSpeed, setTarget, setXxa, setYya, setZza, shouldPassengersInheritMalus, spawnAnim, startRiding, stopInPlace, sunProtectionSlot, tickHeadTurn, updateControlFlags, usePlayerItemMethods inherited from class LivingEntity
activeLocationDependentEnchantments, actuallyHurt, addEffect, addEffect, animateHurt, applyInput, applyItemBlocking, applyPostImpulseGraceTime, areAllEffectsAmbient, asLivingEntity, attackable, blockedByItem, blockUsingItem, calculateEntityAnimation, calculateFallDamage, canBeAffected, canBeSeenAsEnemy, canBeSeenByAnyone, canBreatheUnderwater, canEquipWithDispenser, canFreeze, canGlide, canGlideUsing, canStandOnFluid, canUsePortal, canUseSlot, causeExtraKnockback, causeFallDamage, checkAutoSpinAttack, checkFallDamage, clearSleepingPos, completeUsingItem, createEquipment, createLivingAttributes, createWitherRose, decreaseAirSupply, doAutoAttackOnTouch, doesEmitEquipEvent, doHurtEquipment, doPush, drop, dropAllDeathLoot, dropEquipment, dropExperience, dropFromEntityInteractLootTable, dropFromGiftLootTable, dropFromLootTable, dropFromLootTable, dropFromLootTable, dropFromShearingLootTable, equipmentHasChanged, forceAddEffect, getAbsorptionAmount, getActiveEffects, getActiveEffectsMap, getActiveItem, getAgeScale, getArmorCoverPercentage, getArmorValue, getArrowCount, getAttackAnim, getAttackRangeWith, getAttribute, getAttributeBaseValue, getAttributes, getAttributeValue, getBedOrientation, getBlockSpeedFactor, getCombatTracker, getComfortableFallDistance, getCurrentSwingDuration, getDamageAfterArmorAbsorb, getDamageAfterMagicAbsorb, 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, getLiquidCollisionShape, getLocalBoundsForPose, getLuck, getMainHandItem, getMaxAbsorption, getMaxHeadRotationRelativeToBody, getMaxHealth, getNoActionTime, getOffhandItem, getPassengerRidingPosition, getPreciseBodyRotation, getProjectile, getRelativePortalPosition, getRiddenInput, getRiddenSpeed, getScale, getSecondsToDisableBlocking, getSleepingPos, getSoundVolume, getSpeed, getStingerCount, getSwimAmount, getTicksSinceLastKineticHitFeedback, getTicksUsingItem, 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, isIgnoringFallDamageFromCurrentImpulse, isImmobile, isInPostImpulseGraceTime, isInvertedHealAndHarm, isInvulnerableTo, isInWall, isJumping, isLookingAtMe, isPickable, isPushable, isSensitiveToWater, isSleeping, isSuppressingSlidingDownLadder, isTransmittingWaypoint, isUsingItem, isVisuallySwimming, jumpFromGround, kill, knockback, lerpHeadRotationStep, lerpHeadTo, lookAt, makePoofParticles, makeSound, makeWaypointConnectionWith, maxUpStep, onAttack, onBelowWorld, onChangedBlock, onClimbable, onEffectAdded, onEffectsRemoved, onEffectUpdated, onEnterCombat, onEquipItem, onEquippedItemBroken, onItemPickup, onLeaveCombat, onRemoval, playAttackSound, playBlockFallSound, postPiercingAttack, push, pushEntities, randomTeleport, recreateFromPacket, releaseUsingItem, rememberStabbedEntity, remove, removeAllEffects, removeEffect, removeEffectNoUpdate, removeEffectParticles, removeFrost, resetCurrentImpulseContext, resetForwardDirectionOfRelativePortalPosition, resolveMobResponsibleForDamage, resolvePlayerResponsibleForDamage, rideTick, sanitizeScale, sendEffectToPassengers, setAbsorptionAmount, setArrowCount, setDiscardFriction, setHealth, setIgnoreFallDamageFromCurrentImpulse, setItemInHand, setItemSlot, setItemSlot, setJumping, setLastHurtByPlayer, setLastHurtByPlayer, setLastHurtMob, setLivingEntityFlag, setNoActionTime, setRecordPlayingNearby, setSleepingPos, setSprinting, setStingerCount, setYBodyRot, setYHeadRot, shouldDiscardFriction, shouldDropExperience, shouldDropLoot, shouldShowName, shouldTakeDrowningDamage, shouldTravelInFluid, skipDropExperience, spawnItemParticles, stabAttack, stabbedEntities, startSleeping, startUsingItem, stopFallFlying, stopRiding, stopUsingItem, swing, swing, take, tickDeath, tickEffects, tickRidden, travel, travelFlying, travelFlying, travelInWater, triggerOnDeathMobEffects, tryAddFrost, tryResetCurrentImpulseContext, updateDataBeforeSync, updateEffectVisibility, updateFallFlying, updateInvisibilityStatus, updateSwingTime, updateUsingItem, updateWalkAnimation, wasExperienceConsumed, wasRecentlyStabbed, waypointIcon, wouldNotSuffocateAtTargetPoseMethods inherited from class Entity
absSnapRotationTo, absSnapTo, absSnapTo, addDeltaMovement, addPassenger, addTag, adjustSpawnLocation, applyComponentsFromItemStack, applyEffectsFromBlocks, applyEffectsFromBlocks, applyEffectsFromBlocksForLastMovements, applyGravity, applyImplicitComponentIfPresent, awardKillScore, belowNameDisplay, blockPosition, broadcastToPlayer, calculateUpVector, calculateViewVector, canAddPassenger, canBeCollidedWith, canBeHitByProjectile, canCollideWith, canControlVehicle, canInteractWithLevel, canRide, canSimulateMovement, canSpawnSprintParticle, canSprint, canTeleport, canTrample, captureDrops, captureDrops, castComponentValue, checkBelowWorld, checkFallDistanceAccumulation, checkSupportingBlock, chunkPosition, clearFire, clearFreeze, clearMovementThisTick, closerThan, closerThan, collectAllColliders, collideBoundingBox, collidedWithFluid, collidedWithShapeMovingFrom, computeSpeed, considersEntityAsAlly, copyPosition, couldAcceptPassenger, countPlayerPassengers, createCommandSourceStackForNameResolution, createHoverEvent, damageSources, dampensVibrations, deflection, discard, dismountsUnderwater, dismountTo, displayFireAnimation, distanceTo, distanceToSqr, distanceToSqr, distanceToSqr, doCheckFallDamage, doWaterSplashEffect, dropAllLeashConnections, ejectPassengers, entityTags, equals, extinguishFire, fillCrashReportCategory, fireImmune, fixupDimensions, forceSetRotation, fudgePositionAfterSizeChange, gameEvent, gameEvent, getAddEntityPacket, getAirSupply, getAttachments, getAvailableSpaceBelow, 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, getEyePosition, getEyePosition, getEyeY, getFireImmuneTicks, getFirstPassenger, getFluidHeight, getFluidInteractionBox, getFluidJumpThreshold, getForward, getGravity, getHandHoldingItemAngle, getHeadLookAngle, getId, getInBlockState, getIndirectPassengers, getInputVector, getKnownMovement, getKnownSpeed, getLightLevelDependentMagicValue, getLightProbePosition, getLookAngle, getMaxAirSupply, getMotionDirection, getMovementEmission, getName, getNearestViewDirection, getOnPos, getOnPos, getOnPosLegacy, getPassengerAttachmentPoint, getPassengers, getPassengersAndSelf, getPercentFrozen, getPersistentData, getPickRadius, getPistonPushReaction, getPortalCooldown, getPose, getPosition, getPositionCodec, getPrimaryStepSoundBlockPos, getQuadLeashHolderOffsets, getRandom, getRandomX, getRandomY, getRandomY, getRandomZ, getRemainingFireTicks, getRemovalReason, getRequiresPrecisePosition, getRootVehicle, getRotationVector, getScoreboardName, getSelfAndPassengers, getSharedFlag, getSoundSource, getStringUUID, getSwimHighSpeedSplashSound, getSwimSound, getSwimSplashSound, 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, hasMovedHorizontallyRecently, hasPassenger, hasPassenger, hasPose, hurt, hurtClient, hurtOrSimulate, igniteForSeconds, ignoreExplosion, is, isAddedToLevel, isAffectedByBlocks, isAlliedTo, isAlliedTo, isAlwaysTicking, isAttackable, isClientAuthoritative, isColliding, isCrouching, isCustomNameVisible, isDescending, isDiscrete, isEyeInFluid, isFlapping, isFlyingVehicle, isFree, isFreezing, isFullyFrozen, isHorizontalCollisionMinor, isIgnoringBlockTriggers, isInClouds, isInLava, isInLiquid, isInShallowWater, 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, modifyPassengerFluidInteractionBox, move, moveOrInterpolateTo, moveOrInterpolateTo, moveOrInterpolateTo, 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, 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, spawnSprintParticle, startRiding, startSeenByPlayer, stopSeenByPlayer, supportQuadLeashAsHolder, syncData, syncPacketPositionCodec, teleportRelative, teleportSetPosition, teleportSetPosition, teleportSpectators, teleportTo, teleportTo, toString, touchingUnloadedChunk, trackingPosition, turn, typeHolder, unRide, unsetRemoved, updateDynamicGameEventListener, updateFluidInteraction, updateSwimming, waterSwimSoundMethods inherited from class AttachmentHolder
deserializeAttachments, getData, getExistingDataOrNull, hasAttachments, hasData, removeData, serializeAttachmentsMethods inherited from interface DataComponentGetter
get, getOrDefault, getOrDefault, getTyped, has, hasMethods inherited from interface EquipmentUser
equip, equip, equip, getItemBySlot, resolveSlot, setItemSlotMethods inherited from interface IAttachmentHolder
getData, getExistingData, getExistingData, getExistingDataOrNull, hasData, removeData, setData, syncDataMethods inherited from interface IEntityExtension
canBeRiddenUnderFluidType, canFluidExtinguish, canHydrateInFluidType, canRiderInteract, canTrample, captureDrops, captureDrops, copyAttachmentsFrom, getClassification, getFluidFallDistanceModifier, getFluidMotionScale, getParts, getPersistentData, getSoundFromFluidType, hasCustomOutlineRendering, isAddedToLevel, isMultipartEntity, isPushedByFluid, onAddedToLevel, onRemovedFromLevel, revive, sendPairingData, shouldRiderSitMethods inherited from interface ILivingEntityExtension
canDrownInFluidType, canSwimInFluidType, moveInFluid, onDamageTaken, self, sinkInFluidMethods inherited from interface InventoryCarrier
readInventoryFromTag, writeInventoryToTagMethods inherited from interface Leashable
canHaveALeashAttachedTo, checkElasticInteractions, dropLeash, getLeashHolder, getLeashOffset, getLeashOffset, getQuadLeashOffsets, isLeashed, leashDistanceTo, leashElasticDistance, leashSnapDistance, mayBeLeashed, onElasticLeashPull, readLeashData, removeLeash, setDelayedLeashHolderId, setLeashedTo, supportQuadLeash, writeLeashDataMethods inherited from interface Merchant
openTradingScreenMethods inherited from interface Nameable
getPlainTextNameMethods inherited from interface ScoreHolder
getFeedbackDisplayNameMethods inherited from interface SlotProvider
getSlotsFromRange
-
Field Details
-
LOGGER
private static final org.slf4j.Logger LOGGER -
DATA_VILLAGER_DATA
-
DATA_VILLAGER_DATA_FINALIZED
-
BREEDING_FOOD_THRESHOLD
public static final int BREEDING_FOOD_THRESHOLD- See Also:
-
FOOD_POINTS
-
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:
-
BABY_DIMENSIONS
-
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 -
lastRestockCheckDay
private long lastRestockCheckDay -
assignProfessionWhenSpawned
private boolean assignProfessionWhenSpawned -
BRAIN_PROVIDER
-
POI_MEMORIES
public static final Map<MemoryModuleType<GlobalPos>, BiPredicate<Villager, Holder<PoiType>>> POI_MEMORIES
-
-
Constructor Details
-
Villager
-
Villager
public Villager(EntityType<? extends Villager> entityType, Level level, ResourceKey<VillagerType> type) -
Villager
-
-
Method Details
-
getBrain
- Overrides:
getBrainin classLivingEntity
-
makeBrain
- Overrides:
makeBrainin classLivingEntity
-
refreshBrain
-
registerBrainGoals
-
ageBoundaryReached
protected void ageBoundaryReached()- Overrides:
ageBoundaryReachedin classAgeableMob
-
createAttributes
-
assignProfessionWhenSpawned
public boolean assignProfessionWhenSpawned() -
customServerAiStep
- Overrides:
customServerAiStepin classMob
-
tick
-
mobInteract
- Overrides:
mobInteractin classAgeableMob
-
setUnhappy
private void setUnhappy() -
startTrading
-
setTradingPlayer
- Specified by:
setTradingPlayerin interfaceMerchant- Overrides:
setTradingPlayerin classAbstractVillager
-
stopTrading
protected void stopTrading()- Overrides:
stopTradingin classAbstractVillager
-
resetSpecialPrices
private void resetSpecialPrices() -
getDefaultDimensions
- Overrides:
getDefaultDimensionsin classLivingEntity
-
canRestock
public boolean canRestock()- Specified by:
canRestockin interfaceMerchant
-
restock
public void restock() -
resendOffersToTradingPlayer
private void resendOffersToTradingPlayer() -
needsToRestock
private boolean needsToRestock() -
allowedToRestock
private boolean allowedToRestock() -
shouldRestock
-
catchUpDemand
private void catchUpDemand() -
updateDemand
private void updateDemand() -
updateSpecialPrices
-
defineSynchedData
- Overrides:
defineSynchedDatain classAbstractVillager
-
createDefaultVillagerData
-
addAdditionalSaveData
- Overrides:
addAdditionalSaveDatain classAbstractVillager
-
readAdditionalSaveData
- Overrides:
readAdditionalSaveDatain classAbstractVillager
-
removeWhenFarAway
public boolean removeWhenFarAway(double distSqr) - Overrides:
removeWhenFarAwayin classMob
-
getAmbientSound
- Overrides:
getAmbientSoundin classMob
-
getHurtSound
- Overrides:
getHurtSoundin classLivingEntity
-
getDeathSound
- Overrides:
getDeathSoundin classLivingEntity
-
playWorkSound
public void playWorkSound() -
setVillagerData
- Specified by:
setVillagerDatain interfaceVillagerDataHolder
-
getVillagerData
- Specified by:
getVillagerDatain interfaceVillagerDataHolder
-
rewardTradeXp
- Specified by:
rewardTradeXpin classAbstractVillager
-
setLastHurtByMob
- Overrides:
setLastHurtByMobin classLivingEntity
-
die
- Overrides:
diein classAbstractVillager
-
releaseAllPois
private void releaseAllPois() -
tellWitnessesThatIWasMurdered
-
releasePoi
-
canBreed
public boolean canBreed()- Overrides:
canBreedin classAgeableMob
-
hungry
private boolean hungry() -
eatUntilFull
private void eatUntilFull() -
getPlayerReputation
-
digestFood
private void digestFood(int amount) -
eatAndDigestFood
public void eatAndDigestFood() -
setOffers
-
shouldIncreaseLevel
private boolean shouldIncreaseLevel() -
increaseMerchantCareer
-
getTypeName
- Overrides:
getTypeNamein classEntity
-
handleEntityEvent
public void handleEntityEvent(byte id) - Overrides:
handleEntityEventin classMob
-
finalizeSpawn
public @Nullable SpawnGroupData finalizeSpawn(ServerLevelAccessor level, DifficultyInstance difficulty, EntitySpawnReason spawnReason, @Nullable SpawnGroupData groupData) - Overrides:
finalizeSpawnin classAbstractVillager
-
getBreedOffspring
- Specified by:
getBreedOffspringin classAgeableMob
-
thunderHit
- Overrides:
thunderHitin classEntity
-
pickUpItem
- Overrides:
pickUpItemin classMob
-
wantsToPickUp
- Overrides:
wantsToPickUpin classMob
-
hasExcessFood
public boolean hasExcessFood() -
wantsMoreFood
public boolean wantsMoreFood() -
countFoodPointsInInventory
private int countFoodPointsInInventory() -
hasFarmSeeds
public boolean hasFarmSeeds() -
updateTrades
- Specified by:
updateTradesin classAbstractVillager
-
gossip
-
maybeDecayGossip
private void maybeDecayGossip() -
spawnGolemIfNeeded
-
wantsToSpawnGolem
public boolean wantsToSpawnGolem(long timestamp) -
onReputationEventFrom
- Specified by:
onReputationEventFromin interfaceReputationEventHandler
-
getVillagerXp
public int getVillagerXp()- Specified by:
getVillagerXpin interfaceMerchant- Overrides:
getVillagerXpin classAbstractVillager
-
setVillagerXp
public void setVillagerXp(int value) -
resetNumberOfRestocks
private void resetNumberOfRestocks() -
getGossips
-
setGossips
-
stopSleeping
public void stopSleeping()- Overrides:
stopSleepingin classLivingEntity
-
golemSpawnConditionsMet
private boolean golemSpawnConditionsMet(long gameTime) -
get
- Specified by:
getin interfaceDataComponentGetter- Overrides:
getin classEntity
-
applyImplicitComponents
- Overrides:
applyImplicitComponentsin classEntity
-
applyImplicitComponent
- Overrides:
applyImplicitComponentin classEntity
-