CLASS net/minecraft/class_3898 net/minecraft/server/world/ThreadedAnvilChunkStorage FIELD field_17212 LOGGER Lorg/apache/logging/log4j/Logger; FIELD field_17213 currentChunkHolders Lit/unimi/dsi/fastutil/longs/Long2ObjectLinkedOpenHashMap; FIELD field_17214 world Lnet/minecraft/class_3218; FIELD field_17215 lightingProvider Lnet/minecraft/class_3227; FIELD field_17216 mainThreadExecutor Lnet/minecraft/class_1255; FIELD field_17218 chunkGenerator Lnet/minecraft/class_2794; FIELD field_17220 chunkHolders Lit/unimi/dsi/fastutil/longs/Long2ObjectLinkedOpenHashMap; FIELD field_17221 unloadedChunks Lit/unimi/dsi/fastutil/longs/LongSet; FIELD field_17222 chunkHolderListDirty Z FIELD field_17223 chunkTaskPrioritySystem Lnet/minecraft/class_3900; FIELD field_17224 worldGenExecutor Lnet/minecraft/class_3906; FIELD field_17226 mainExecutor Lnet/minecraft/class_3906; FIELD field_17228 ticketManager Lnet/minecraft/class_3898$class_3216; FIELD field_17230 totalChunksLoadedCount Ljava/util/concurrent/atomic/AtomicInteger; FIELD field_17442 worldGenerationProgressListener Lnet/minecraft/class_3949; FIELD field_17705 persistentStateManagerFactory Ljava/util/function/Supplier; FIELD field_17706 structureManager Lnet/minecraft/class_3485; FIELD field_17707 saveDir Ljava/lang/String; FIELD field_18239 MAX_LEVEL I COMMENT Specifies the maximum ticket level a chunk can be before a chunk's {@link net.minecraft.server.world.ChunkHolder.LevelType} is {@link net.minecraft.server.world.ChunkHolder.LevelType#BORDER}. FIELD field_18241 playerChunkWatchingManager Lnet/minecraft/class_3210; FIELD field_18242 entityTrackers Lit/unimi/dsi/fastutil/ints/Int2ObjectMap; FIELD field_18243 watchDistance I FIELD field_18307 loadedChunks Lit/unimi/dsi/fastutil/longs/LongSet; FIELD field_18807 chunksToUnload Lit/unimi/dsi/fastutil/longs/Long2ObjectLinkedOpenHashMap; FIELD field_18808 pointOfInterestStorage Lnet/minecraft/class_4153; FIELD field_19343 unloadTaskQueue Ljava/util/Queue; FIELD field_23786 chunkToType Lit/unimi/dsi/fastutil/longs/Long2ByteMap; FIELD field_26931 chunkStatusChangeListener Lnet/minecraft/class_5567; FIELD field_29671 PROTO_CHUNK B FIELD field_29672 UNMARKED_CHUNK B FIELD field_29673 LEVEL_CHUNK B METHOD (Lnet/minecraft/class_3218;Lnet/minecraft/class_32$class_5143;Lcom/mojang/datafixers/DataFixer;Lnet/minecraft/class_3485;Ljava/util/concurrent/Executor;Lnet/minecraft/class_1255;Lnet/minecraft/class_2823;Lnet/minecraft/class_2794;Lnet/minecraft/class_3949;Lnet/minecraft/class_5567;Ljava/util/function/Supplier;IZ)V ARG 1 world ARG 2 session ARG 3 dataFixer ARG 4 structureManager ARG 5 executor ARG 6 mainThreadExecutor ARG 7 chunkProvider ARG 8 chunkGenerator ARG 9 worldGenerationProgressListener ARG 10 chunkStatusChangeListener ARG 11 persistentStateManagerFactory ARG 12 viewDistance ARG 13 dsync METHOD method_17212 getLightingProvider ()Lnet/minecraft/class_3227; METHOD method_17214 setViewDistance (I)V ARG 1 watchDistance METHOD method_17216 getChunkHolder (J)Lnet/minecraft/class_3193; ARG 1 pos METHOD method_17217 setLevel (JILnet/minecraft/class_3193;I)Lnet/minecraft/class_3193; ARG 1 pos ARG 3 level ARG 4 holder METHOD method_17219 (Lnet/minecraft/class_1923;ILorg/apache/commons/lang3/mutable/MutableObject;Lnet/minecraft/class_3222;)V ARG 4 player METHOD method_17220 getRegion (Lnet/minecraft/class_1923;ILjava/util/function/IntFunction;)Ljava/util/concurrent/CompletableFuture; ARG 1 centerChunk ARG 2 margin ARG 3 distanceToStatus METHOD method_17222 (Lcom/mojang/datafixers/util/Either;)Lcom/mojang/datafixers/util/Either; ARG 1 either METHOD method_17224 (Lnet/minecraft/class_1923;Lnet/minecraft/class_3193;Lnet/minecraft/class_2806;Ljava/util/concurrent/Executor;Lcom/mojang/datafixers/util/Either;)Ljava/util/concurrent/CompletionStage; ARG 5 either METHOD method_17225 (Lnet/minecraft/class_1923;Lnet/minecraft/class_3193;Lnet/minecraft/class_2806;Ljava/util/concurrent/Executor;Ljava/util/List;)Ljava/util/concurrent/CompletableFuture; ARG 5 chunks METHOD method_17226 convertToFullChunk (Lnet/minecraft/class_3193;)Ljava/util/concurrent/CompletableFuture; ARG 1 chunkHolder METHOD method_17227 (Lnet/minecraft/class_3193;Lnet/minecraft/class_2791;)Lnet/minecraft/class_2791; ARG 2 protoChunk METHOD method_17228 save (Lnet/minecraft/class_2791;)Z ARG 1 chunk METHOD method_17229 getRequiredStatusForGeneration (Lnet/minecraft/class_2806;I)Lnet/minecraft/class_2806; ARG 1 centerChunkTargetStatus ARG 2 distance METHOD method_17230 (Lcom/mojang/datafixers/util/Either;)Lcom/mojang/datafixers/util/Either; ARG 0 either METHOD method_17232 (Ljava/util/List;)Lnet/minecraft/class_2818; ARG 0 chunks METHOD method_17233 tick (Ljava/util/function/BooleanSupplier;)V ARG 1 shouldKeepTicking METHOD method_17235 makeChunkTickable (Lnet/minecraft/class_3193;)Ljava/util/concurrent/CompletableFuture; ARG 1 holder METHOD method_17236 getChunk (Lnet/minecraft/class_3193;Lnet/minecraft/class_2806;)Ljava/util/concurrent/CompletableFuture; ARG 1 holder ARG 2 requiredStatus METHOD method_17241 sendWatchPackets (Lnet/minecraft/class_3222;Lnet/minecraft/class_1923;Lorg/apache/commons/lang3/mutable/MutableObject;ZZ)V ARG 1 player ARG 2 pos ARG 3 packet ARG 4 oldWithinViewDistance ARG 5 newWithinViewDistance METHOD method_17242 save (Z)V ARG 1 flush METHOD method_17243 (Lorg/apache/commons/lang3/mutable/MutableObject;Lnet/minecraft/class_2818;Lnet/minecraft/class_3222;)V ARG 3 player METHOD method_17244 updateHolderMap ()Z METHOD method_17247 makeChunkEntitiesTickable (Lnet/minecraft/class_1923;)Ljava/util/concurrent/CompletableFuture; ARG 1 pos METHOD method_17252 (Lnet/minecraft/class_3193;Ljava/lang/Runnable;)V ARG 2 task METHOD method_17253 getTotalChunksLoadedCount ()I METHOD method_17254 (I)Lnet/minecraft/class_2806; ARG 0 distance METHOD method_17255 getCurrentChunkHolder (J)Lnet/minecraft/class_3193; ARG 1 pos METHOD method_17259 (Lnet/minecraft/class_3193;Ljava/lang/Runnable;)V ARG 2 task METHOD method_17260 getLoadedChunkCount ()I METHOD method_17263 getTicketManager ()Lnet/minecraft/class_3204; METHOD method_17264 entryIterator ()Ljava/lang/Iterable; METHOD method_17604 getCompletedLevelSupplier (J)Ljava/util/function/IntSupplier; ARG 1 pos METHOD method_17979 getUpdatedChunkNbt (Lnet/minecraft/class_1923;)Lnet/minecraft/class_2487; ARG 1 pos METHOD method_18193 (Lnet/minecraft/class_1923;Lnet/minecraft/class_2818;)V ARG 2 chunk METHOD method_18194 (Lnet/minecraft/class_1923;Lcom/mojang/datafixers/util/Either;)V ARG 2 either METHOD method_18701 loadEntity (Lnet/minecraft/class_1297;)V ARG 1 entity METHOD method_18702 sendToOtherNearbyPlayers (Lnet/minecraft/class_1297;Lnet/minecraft/class_2596;)V ARG 1 entity ARG 2 packet METHOD method_18704 getSquaredDistance (Lnet/minecraft/class_1923;Lnet/minecraft/class_1297;)D ARG 0 pos ARG 1 entity METHOD method_18711 (Ljava/util/List;)Lcom/mojang/datafixers/util/Either; ARG 1 chunks METHOD method_18713 updatePosition (Lnet/minecraft/class_3222;)V COMMENT Updates the chunk section position of the {@code player}. This updates the player COMMENT position for both entity tracking and chunk loading (watching) logic. COMMENT COMMENT @see ServerChunkManager#updatePosition(ServerPlayerEntity) ARG 1 player METHOD method_18714 handlePlayerAddedOrRemoved (Lnet/minecraft/class_3222;Z)V ARG 1 player ARG 2 added METHOD method_18715 sendChunkDataPackets (Lnet/minecraft/class_3222;Lorg/apache/commons/lang3/mutable/MutableObject;Lnet/minecraft/class_2818;)V ARG 1 player ARG 2 cachedDataPacket ARG 3 chunk METHOD method_18716 unloadEntity (Lnet/minecraft/class_1297;)V ARG 1 entity METHOD method_18717 sendToNearbyPlayers (Lnet/minecraft/class_1297;Lnet/minecraft/class_2596;)V ARG 1 entity ARG 2 packet METHOD method_18722 doesNotGenerateChunks (Lnet/minecraft/class_3222;)Z ARG 1 player METHOD method_18727 tickEntityMovement ()V COMMENT Ticks and updates the tracked status of each tracker. COMMENT COMMENT

This first checks if entities have changed chunk sections, and updates COMMENT tracking status of those entities to all players. It then checks if any player COMMENT has changed chunk sections, and updates all entities tracking status to those COMMENT players. This ensures all possible updates are accounted for. METHOD method_18843 (Lnet/minecraft/class_3193;Ljava/util/concurrent/CompletableFuture;JLnet/minecraft/class_2791;)V ARG 5 chunk METHOD method_19486 (Lnet/minecraft/class_3193;Ljava/lang/Runnable;)V ARG 2 task METHOD method_19487 (Lnet/minecraft/class_3193;Ljava/lang/Runnable;)V ARG 2 task METHOD method_19488 getPointOfInterestStorage ()Lnet/minecraft/class_4153; METHOD method_20440 (Lnet/minecraft/class_1923;Lnet/minecraft/class_3193$class_3724;)Ljava/util/concurrent/CompletableFuture; ARG 2 unloaded METHOD method_20441 releaseLightTicket (Lnet/minecraft/class_1923;)V ARG 1 pos METHOD method_20458 tryUnloadChunk (JLnet/minecraft/class_3193;)V ARG 1 pos ARG 3 holder METHOD method_20460 (Lnet/minecraft/class_3193;Lcom/mojang/datafixers/util/Either;)Lcom/mojang/datafixers/util/Either; ARG 2 either METHOD method_20577 (Lcom/mojang/datafixers/util/Either;)Lcom/mojang/datafixers/util/Either; ARG 0 either METHOD method_20579 (Lnet/minecraft/class_3193;Ljava/lang/Runnable;)V ARG 2 task METHOD method_20582 (Lnet/minecraft/class_2791;)Z ARG 0 chunk METHOD method_20584 (Lnet/minecraft/class_3193;)Lnet/minecraft/class_2791; ARG 1 chunkHolder METHOD method_20604 (Lnet/minecraft/class_3193;Ljava/lang/Void;Ljava/lang/Throwable;)V ARG 1 void_ ARG 2 throwable METHOD method_20605 unloadChunks (Ljava/util/function/BooleanSupplier;)V ARG 1 shouldKeepTicking METHOD method_20617 upgradeChunk (Lnet/minecraft/class_3193;Lnet/minecraft/class_2806;)Ljava/util/concurrent/CompletableFuture; ARG 1 holder ARG 2 requiredStatus METHOD method_20619 loadChunk (Lnet/minecraft/class_1923;)Ljava/util/concurrent/CompletableFuture; ARG 1 pos METHOD method_20726 updateWatchedSection (Lnet/minecraft/class_3222;)Lnet/minecraft/class_4076; COMMENT Updates the watched chunk section position for the {@code player}, and sends a COMMENT render distance update packet to the client. ARG 1 player METHOD method_21619 dump (Ljava/io/Writer;)V ARG 1 writer METHOD method_21620 (Lnet/minecraft/class_2791;)Ljava/util/Optional; ARG 0 chunk METHOD method_21676 getFutureStatus (Ljava/util/concurrent/CompletableFuture;)Ljava/lang/String; ARG 0 future METHOD method_21677 (Lnet/minecraft/class_2818;)Ljava/lang/String; ARG 0 chunk METHOD method_21678 (Lnet/minecraft/class_3193$class_3724;)Ljava/lang/String; ARG 0 unloaded METHOD method_23272 getChunkLoadingDebugInfo (Lnet/minecraft/class_1923;)Ljava/lang/String; ARG 1 chunkPos METHOD method_27053 mark (Lnet/minecraft/class_1923;Lnet/minecraft/class_2806$class_2808;)B ARG 1 pos ARG 2 type METHOD method_27054 markAsProtoChunk (Lnet/minecraft/class_1923;)V ARG 1 pos METHOD method_27055 isLevelChunk (Lnet/minecraft/class_1923;)Z ARG 1 pos METHOD method_31413 addEntitiesFromNbt (Lnet/minecraft/class_3218;Ljava/util/List;)V ARG 0 world ARG 1 nbt METHOD method_31414 onChunkStatusChange (Lnet/minecraft/class_1923;Lnet/minecraft/class_3193$class_3194;)V ARG 1 chunkPos ARG 2 levelType METHOD method_31415 (Lnet/minecraft/class_2839;Lnet/minecraft/class_2818;)V ARG 2 chunk METHOD method_31416 (Ljava/util/List;)Lnet/minecraft/class_2818; ARG 0 chunks METHOD method_31417 makeChunkAccessible (Lnet/minecraft/class_3193;)Ljava/util/concurrent/CompletableFuture; ARG 1 holder METHOD method_37476 getSaveDir ()Ljava/lang/String; METHOD method_37897 getChunkGenerator ()Lnet/minecraft/class_2794; METHOD method_37902 (Lnet/minecraft/class_2794;)V ARG 1 chunkGenerator METHOD method_37903 (Lcom/google/gson/JsonElement;)Lcom/mojang/serialization/DataResult; ARG 0 json METHOD method_37904 verifyChunkGenerator ()V METHOD method_37907 getPlayersWatchingChunk (Lnet/minecraft/class_1923;)Ljava/util/List; ARG 1 pos METHOD method_38782 canTickChunk (Lnet/minecraft/class_3222;Lnet/minecraft/class_1923;)Z COMMENT {@return whether the {@code player} can tick the chunk at {@code pos}} COMMENT COMMENT @implNote Spectators cannot tick chunks. Additionally, only chunks within 128 COMMENT block radius of that player can be ticked. COMMENT COMMENT @apiNote This controls monster spawning and block random ticks. ARG 1 player ARG 2 pos METHOD method_38783 shouldTick (Lnet/minecraft/class_1923;)Z ARG 1 pos METHOD method_39925 save (Lnet/minecraft/class_3193;)Z ARG 1 chunkHolder METHOD method_39975 isWithinDistance (IIIII)Z ARG 0 x1 ARG 1 z1 ARG 2 x2 ARG 3 z2 ARG 4 distance METHOD method_39976 isOnDistanceEdge (IIIII)Z ARG 0 x1 ARG 1 z1 ARG 2 x2 ARG 3 z2 ARG 4 distance CLASS class_3208 EntityTracker COMMENT An entity tracker governs which players' clients can see an entity. Each COMMENT tracker corresponds to one entity in a server world and is mapped from the COMMENT entity's network ID. COMMENT COMMENT @see ThreadedAnvilChunkStorage#entityTrackers FIELD field_18246 entry Lnet/minecraft/class_3231; FIELD field_18247 entity Lnet/minecraft/class_1297; FIELD field_18248 maxDistance I FIELD field_18249 trackedSection Lnet/minecraft/class_4076; COMMENT The chunk section position of the tracked entity, may be outdated as an entity COMMENT ticks. This is used by {@link ThreadedAnvilChunkStorage#tickEntityMovement() COMMENT tickEntityMovement()} to bypass unnecessary status updates before calling COMMENT {@link #updateTrackedStatus(ServerPlayerEntity) updateTrackedStatus()}. FIELD field_18250 listeners Ljava/util/Set; METHOD (Lnet/minecraft/class_3898;Lnet/minecraft/class_1297;IIZ)V ARG 2 entity ARG 3 maxDistance ARG 4 tickInterval ARG 5 alwaysUpdateVelocity METHOD equals (Ljava/lang/Object;)Z ARG 1 o METHOD method_18728 stopTracking ()V METHOD method_18729 updateTrackedStatus (Ljava/util/List;)V COMMENT Updates the tracked status of this tracker's entity for the given players. COMMENT COMMENT @see updateTrackedStatus(ServerPlayerEntity) ARG 1 players METHOD method_18730 sendToOtherNearbyPlayers (Lnet/minecraft/class_2596;)V ARG 1 packet METHOD method_18733 stopTracking (Lnet/minecraft/class_3222;)V ARG 1 player METHOD method_18734 sendToNearbyPlayers (Lnet/minecraft/class_2596;)V ARG 1 packet METHOD method_18736 updateTrackedStatus (Lnet/minecraft/class_3222;)V COMMENT Updates the tracked status of this tracker's entity for the {@code player}. COMMENT COMMENT

If this tracker should be listened by the player, the player's tracking COMMENT listener is added if it is not in the listeners; if this tracker should not be COMMENT listened by the player, the player's tracking listener is removed if it is in COMMENT the listeners. ARG 1 player METHOD method_22844 getMaxTrackDistance ()I METHOD method_27906 adjustTrackingDistance (I)I ARG 1 initialDistance CLASS class_3216 TicketManager METHOD (Lnet/minecraft/class_3898;Ljava/util/concurrent/Executor;Ljava/util/concurrent/Executor;)V ARG 2 workerExecutor ARG 3 mainThreadExecutor