Files
horizon/tools/port_map/client-002.tsv
T
rdbtCVSandClaude Opus 5.5 23f8bd4fed Remove the deprecated in-frame single-player path
Single player only runs on its server thread now. --in-frame and
--no-server-thread print a notice, and HORIZON_SERVER_THREAD is ignored.
This deletes the code that only the in-frame path reached: the window's
world loader and local player tick, its portal travel, the loading screen
and ring-by-ring streaming, and the in-frame LAN host (the host player in
the hub, its models of the guests, the reserved uuid). The world-upgrade
progress screen with its Cancel button moves to the server-thread start.
Tools, the harnesses and the docs no longer use the in-frame path.

Closes #6473

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-02 09:30:14 +00:00

23 KiB

1ClientPacketListener.<init>portcrates/horizon-client/src/game/remote.rs::Game::join_servergap: minor: clears the chat on join; vanilla restores chat state kept across a reconfiguration
2ClientPacketListener.clearCacheSlotsskip:javaweak-reference cache slots; Horizon has no such cache
3ClientPacketListener.handleAddEntityinlinecrates/horizon-client/src/game/remote.rs::Game::handle_packetAddEntity arm: spawn_entity, then object or projectile spawn, then motion
4ClientPacketListener.createEntityFromPacketinlinecrates/horizon-client/src/game/remote.rs::Game::handle_packetgap: minor: the player spawns without checking that its profile is known
5ClientPacketListener.handleSetEntityDataportcrates/horizon-client/src/game/remote.rs::Game::handle_packetgap: minor: only the data indexes Horizon reads are applied (flags, names, sleep, crouch, mob fields)
6ClientPacketListener.handleEntityPositionSyncportcrates/horizon-client/src/game/remote.rs::Game::move_entityabsolute move with the packet rotation and on-ground flag
7ClientPacketListener.handleTeleportEntityinlinecrates/horizon-client/src/game/remote.rs::Game::handle_packetTeleportEntity arm works out the relative position, then move_entity; gap: minor: a teleport of the player's former vehicle is not applied to the player
8ClientPacketListener.handleTickingStateportcrates/horizon-client/src/game/remote.rs::Game::handle_packetTickingState arm: clock rate and frozen flag
9ClientPacketListener.handleTickingStepportcrates/horizon-client/src/game/remote.rs::Game::handle_packetTickingStep arm: frozen ticks to run
10ClientPacketListener.handleMoveEntityportcrates/horizon-client/src/game/remote.rs::Game::move_entityrelative move and rotation from the Pos, PosRot and Rot packets
11ClientPacketListener.handleMinecartAlongTrackmissingplayer: the server's rail steps for a minecart are dropped, so a cart on a dedicated server follows the client's own rail physics and can drift from where the server has it
12ClientPacketListener.handleRemoveEntitiesportcrates/horizon-client/src/game/remote.rs::Game::remove_entitygap: minor: a removed vehicle carrying the player is not remembered for a later teleport
13ClientPacketListener.setValuesFromPositionPacketportcrates/horizon-client/src/game/remote.rs::Game::remote_teleportgap: minor: the entity case (TeleportEntity) is in the handle_packet arm, not here
14ClientPacketListener.handleRotatePlayerportcrates/horizon-client/src/game/remote.rs::Game::handle_packetPlayerRotation arm; gap: minor: no ServerboundMovePlayerPacket.Rot reply is sent
15ClientPacketListener.handleChunkBlocksUpdateportcrates/horizon-client/src/game/remote.rs::Game::handle_packetSectionBlocksUpdate arm: each change through the block update
16ClientPacketListener.handleChunksBiomesmissingplayer: biome updates for loaded chunks are dropped, so grass, leaves and water keep the old biome colour
17ClientPacketListener.enableChunkLightinlinecrates/horizon-client-render/src/streaming.rs::Streaming::insert_remotegap: minor: the air-only section status is not set; every section of the 3x3 columns is marked dirty
18ClientPacketListener.handleForgetLevelChunkportcrates/horizon-client/src/game/remote.rs::Game::handle_packetForgetLevelChunk arm: Streaming::forget, block entities and renderer columns dropped
19ClientPacketListener.queueLightRemovalinlinecrates/horizon-client-render/src/streaming.rs::Streaming::forgetgap: minor: the column's light state is dropped with the column; no per-section light clearing
20ClientPacketListener.handleBlockUpdateportcrates/horizon-client/src/game/remote.rs::Game::server_block
21ClientPacketListener.handleConfigurationStartportcrates/horizon-client/src/net.rs::receive_playgap: player: no reconfiguring screen is shown and the chat state is not stored
22ClientPacketListener.handleSystemChatportcrates/horizon-client/src/game/remote.rs::Game::handle_packetSystemChat arm: overlay to the action bar, otherwise the chat
23ClientPacketListener.handlePlayerChatportcrates/horizon-client/src/game/remote.rs::Game::handle_packetPlayerChat arm: the global index (a mismatch disconnects), an unknown sender and the sender's validator; gap: minor: markMessageAsProcessed (no last-seen tracker is kept)
24ClientPacketListener.handleDisguisedChatportcrates/horizon-client/src/game/remote.rs::Game::handle_packetDisguisedChat arm
25ClientPacketListener.handleDeleteChatportcrates/horizon-client/src/game/remote.rs::Game::handle_delete_chat
26ClientPacketListener.handleAnimateportcrates/horizon-client/src/game/remote.rs::Game::remote_animateaction 0 stops sleeping, 1 and 2 emit crit and enchanted hit particles
27ClientPacketListener.handleHurtAnimationportcrates/horizon-client/src/game/remote.rs::Game::handle_packetHurtAnimation arm: own player's hurt tilt, or a mob's hurt time
28ClientPacketListener.handleSetSpawnportcrates/horizon-client/src/game/remote.rs::Game::handle_packetSetDefaultSpawnPosition arm; gap: minor: only an overworld spawn is kept, other dimensions are dropped
29ClientPacketListener.handleAddTransientBlockPacketmissingminor: the transient block shown while a falling block lands is not drawn; the block update still arrives
30ClientPacketListener.findTotemmissingplayer: the totem of undying pop-up over the screen is not shown when death protection triggers; Horizon has no item activation
31ClientPacketListener.handleSetExperienceportcrates/horizon-client/src/game/remote.rs::Game::handle_packetSetExperience arm
32ClientPacketListener.determineLevelLoadingReasonportcrates/horizon-client-render/src/level_loading.rs::reason_for_respawnthe reason of a Respawn packet: death, a Nether or an End crossing
33ClientPacketListener.handleOpenScreenportcrates/horizon-client/src/game/remote.rs::Game::remote_open_screen
34ClientPacketListener.handleSetCursorItemportcrates/horizon-client/src/game/remote.rs::Game::handle_packetSetCursorItem arm; gap: minor: sets the carried stack even while the creative screen is open
35ClientPacketListener.handleSetPlayerInventoryportcrates/horizon-client/src/game/remote.rs::Game::handle_packetSetPlayerInventory arm: slots 0-35, armour 36-39, off hand 40
36ClientPacketListener.handleContainerContentportcrates/horizon-client/src/game/remote.rs::Game::handle_packetContainerSetContent arm: each slot, then the carried stack
37ClientPacketListener.handleBlockEntityDataportcrates/horizon-client/src/game/remote.rs::Game::remote_block_entity_data
38ClientPacketListener.handleContainerSetDataportcrates/horizon-client/src/game/remote.rs::Game::handle_packetContainerSetData arms (lectern, furnace, crafter, brewing); station containers go to remote_stations.rs::Game::remote_station_data
39ClientPacketListener.handleContainerCloseportcrates/horizon-client/src/game/remote.rs::Game::handle_packetContainerClose arm: closes the inventory screen; gap: minor: a server close while the creative screen is open is ignored
40ClientPacketListener.handleBlockEventportcrates/horizon-client/src/game/remote.rs::Game::handle_packetBlockEvent arm: client block event, then the block entity event
41ClientPacketListener.handleGameEventportcrates/horizon-client/src/game/remote.rs::Game::handle_packetGameEvent arm (weather, mode, credits, respawn, arrow hit, sting, limited crafting, chunks load start); gap: minor: demo mode (5) is not shown
42ClientPacketListener.openDemoIntroScreenskip:otherdemo mode only (GameEvent 5); Horizon has no demo mode
43ClientPacketListener.startWaitingForNewLevelmissingplayer: no level loading screen after a dimension change or respawn on a dedicated server; a join shows only the 'Loading terrain' status text
44ClientPacketListener.handleMapItemDataportcrates/horizon-client/src/game/maps.rs::Game::remote_map_item_data
45ClientPacketListener.handleUpdateAdvancementsPacketportcrates/horizon-client/src/game/advancements.rs::Game::remote_advancementsUpdateAdvancements arm passes the added icons
46ClientPacketListener.handleSelectAdvancementsTabmissingminor: the server's advancement tab choice is ignored
47ClientPacketListener.handleCommandsportcrates/horizon-client/src/game/remote.rs::Game::handle_packetCommands arm: command tree from the packet, merged with Horizon's own
48ClientPacketListener.handleStopSoundEventportcrates/horizon-client/src/game/remote.rs::Game::handle_packetStopSound arm: audio stop_sounds
49ClientPacketListener.handleUpdateRecipesskip:dataHorizon reads recipes from its own tables; the server's list is not read
50ClientPacketListener.handleLookAtmissingplayer: a server command that turns the camera (/faceplayer, /tp with facing) does not turn this player's view
51ClientPacketListener.handleTagQueryPacketportcrates/horizon-client/src/game/debug_keys.rs::Game::answer_tag_queryreached from the TagQuery arm of remote.rs handle_packet
52ClientPacketListener.handleAwardStatsportcrates/horizon-client/src/game/remote.rs::Game::handle_packetAwardStats arm: known stat keys into the stats values
53ClientPacketListener.handleRecipeBookAddportcrates/horizon-client/src/game/recipe_book.rs::Game::remote_recipe_book_add
54ClientPacketListener.handleRecipeBookRemoveportcrates/horizon-client/src/game/recipe_book.rs::Game::remote_recipe_book_remove
55ClientPacketListener.handleRecipeBookSettingsportcrates/horizon-client/src/game/recipe_book.rs::Game::remote_recipe_book_settings
56ClientPacketListener.refreshRecipeBookinlinecrates/horizon-client/src/game/recipe_book.rs::Game::remote_recipe_book_addthe collections rebuild lazily through the client version bump
57ClientPacketListener.updateTagsskip:datathe server's tag payload is not read; tags come from Horizon's own data (net.rs configure ignores UpdateTags)
58ClientPacketListener.handleUpdateTagsskip:datathe server's tag payload is not read; tags come from Horizon's own data (net.rs configure ignores UpdateTags)
59ClientPacketListener.handleChangeDifficultyportcrates/horizon-client/src/game/remote.rs::Game::handle_packetChangeDifficulty arm
60ClientPacketListener.handleSetCameramissingplayer: a spectator's view does not attach to the entity it spectates (for example /spectate)
61ClientPacketListener.handleInitializeBorderportcrates/horizon-client/src/game/remote.rs::Game::handle_packetInitializeBorder arm: centre, size or lerp, absolute max, warnings
62ClientPacketListener.handleSetBorderCenterportcrates/horizon-client/src/game/remote.rs::Game::handle_packetSetBorderCenter arm
63ClientPacketListener.handleSetBorderLerpSizeportcrates/horizon-client/src/game/remote.rs::Game::handle_packetSetBorderLerpSize arm
64ClientPacketListener.handleSetBorderSizeportcrates/horizon-client/src/game/remote.rs::Game::handle_packetSetBorderSize arm
65ClientPacketListener.handleSetBorderWarningDistanceportcrates/horizon-client/src/game/remote.rs::Game::handle_packetSetBorderWarningDistance arm
66ClientPacketListener.handleSetBorderWarningDelayportcrates/horizon-client/src/game/remote.rs::Game::handle_packetSetBorderWarningDelay arm
67ClientPacketListener.handleTitlesClearportcrates/horizon-client/src/game/remote.rs::Game::handle_packetClearTitles arm: clear, optionally reset the times
68ClientPacketListener.handleCustomChatCompletionsportcrates/horizon-client/src/game/remote.rs::Game::handle_packetCustomChatCompletions arm: modify_custom_completions on the connection's set
69ClientPacketListener.setTitleTextportcrates/horizon-client/src/game/remote.rs::Game::handle_packetSetTitleText arm
70ClientPacketListener.setSubtitleTextportcrates/horizon-client/src/game/remote.rs::Game::handle_packetSetSubtitleText arm
71ClientPacketListener.setTitlesAnimationportcrates/horizon-client/src/game/remote.rs::Game::handle_packetSetTitlesAnimation arm
72ClientPacketListener.handleTabListCustomisationportcrates/horizon-client/src/game/remote.rs::Game::handle_packetTabList arm: empty text clears the header or footer
73ClientPacketListener.handleRemoveMobEffectportcrates/horizon-client/src/game/remote.rs::Game::handle_packetRemoveMobEffect arm; gap: minor: only the player's own effects are removed
74ClientPacketListener.handlePlayerInfoRemoveportcrates/horizon-client/src/game/remote.rs::Game::handle_packetPlayerInfoRemove arm
75ClientPacketListener.handlePlayerInfoUpdateportcrates/horizon-client/src/game/remote.rs::Game::handle_packetPlayerInfoUpdate arm: new entries, then listing, latency, name, hat, list order and game mode for tab players
76ClientPacketListener.applyPlayerInfoUpdateinlinecrates/horizon-client/src/game/remote.rs::Game::handle_packetgap: minor: the own player's game-mode update does not change the local mode; INITIALIZE_CHAT is ignored
77ClientPacketListener.initializeChatSessionportcrates/horizon-client/src/game/remote.rs::Remote::new_chat_validatorthe session each INITIALIZE_CHAT entry carries is kept and checked against the services' profile-key keys when the player's chat is first read
78ClientPacketListener.enforcesSecureChatmissingminor: the Login flag enforces_secure_chat is not read
79ClientPacketListener.handleGameRuleValuesportcrates/horizon-client/src/game/lan_screen.rs::Game::remote_world_options_rules
80ClientPacketListener.handleSoundEntityEventportcrates/horizon-client/src/game/remote.rs::Game::handle_packetSoundEntity arm: the sound plays where the tracked entity is
81ClientPacketListener.handleAddObjectiveportcrates/horizon-client/src/game/remote.rs::Game::remote_objectiveadd, remove and update of an objective
82ClientPacketListener.handleSetScoreportcrates/horizon-client/src/game/remote.rs::Game::handle_packetSetScore arm
83ClientPacketListener.handleResetScoreportcrates/horizon-client/src/game/remote.rs::Game::handle_packetResetScore arm
84ClientPacketListener.handleSetDisplayObjectiveportcrates/horizon-client/src/game/remote.rs::Game::handle_packetSetDisplayObjective arm: display slot names
85ClientPacketListener.handleSetPlayerTeamPacketportcrates/horizon-client/src/game/remote.rs::Game::remote_team
86ClientPacketListener.tryAddParticleskip:otherthe try/catch that drops one particle that fails to add; Horizon's particle ids are typed, so nothing is caught
87ClientPacketListener.handlePlaceRecipeportcrates/horizon-client/src/game/recipe_book.rs::Game::remote_ghost_recipe
88ClientPacketListener.handleLightUpdatePacketportcrates/horizon-client/src/game/remote_chunks.rs::Game::remote_light_update
89ClientPacketListener.handleMerchantOffersportcrates/horizon-client/src/game/remote.rs::Game::remote_merchant_offers
90ClientPacketListener.handleSetChunkCacheRadiusportcrates/horizon-client/src/game/remote.rs::Game::handle_packetSetChunkCacheRadius arm: streaming radius, columns out of range dropped
91ClientPacketListener.handleSetSimulationDistancemissingminor: the server's simulation distance is not read
92ClientPacketListener.handleSetChunkCacheCenterportcrates/horizon-client/src/game/remote.rs::Game::handle_packetSetChunkCacheCenter arm
93ClientPacketListener.handleBlockChangedAckportcrates/horizon-client/src/game/remote.rs::Game::end_predictions
94ClientPacketListener.handleBundlePacketinlinecrates/horizon-client/src/net.rs::receive_playbundle delimiters are dropped; the packets inside arrive as a stream and are handled one by one, in order
95ClientPacketListener.handleProjectilePowerPacketportcrates/horizon-client/src/game/remote.rs::Game::handle_packetProjectilePower arm: a hurting projectile's acceleration power, by id
96ClientPacketListener.handleChunkBatchFinishedportcrates/horizon-client/src/game/remote.rs::Game::handle_packetChunkBatchFinished arm; gap: minor: answers with a fixed 64 chunks per tick, not a measured rate
97ClientPacketListener.handleTestInstanceBlockStatusskip:debugstatus for the test instance block editor (developer blocks); Horizon has no editor
98ClientPacketListener.handleDebugChunkValueskip:debugdebug overlay values from the server
99ClientPacketListener.handleDebugBlockValueskip:debugdebug overlay values from the server
100ClientPacketListener.handleDebugEntityValueskip:debugdebug overlay values from the server
101ClientPacketListener.handleDebugEventskip:debugdebug overlay events from the server
102ClientPacketListener.handleGameTestHighlightPosskip:debuggame test block highlight (developer tool)
103ClientPacketListener.isAcceptingMessagesinlinecrates/horizon-client/src/game/remote.rs::Game::send_chatgap: minor: only the chat abilities are checked; no connection-open check
104ClientPacketListener.getPlayerInfoskip:javaa map lookup by UUID; Horizon keeps the player list in remote.tab_players and remote.players
105ClientPacketListener.getPlayerInfoIgnoreCasemissingunsure: a case-insensitive name lookup for profiles (LocalPlayerResolver); Horizon has none
106ClientPacketListener.markMessageAsProcessedportcrates/horizon-client/src/game/remote_chat.rs::Game::mark_message_processedwhen the chat takes the message, past any Chat Delay
107ClientPacketListener.sendChatAcknowledgementportcrates/horizon-client/src/game/remote_chat.rs::Game::mark_message_processeda ChatAck once more than 64 wait
108ClientPacketListener.sendCommandportcrates/horizon-client/src/game/remote_chat.rs::Game::send_commandmessage arguments signed with a chat session; the unsigned packet otherwise
109ClientPacketListener.verifyCommandportcrates/horizon-client/src/game/remote_chat.rs::verify_commandover the tree the server sent
110ClientPacketListener.isValidCommandportcrates/horizon-command/src/lib.rs::ParseResults::is_valid
111ClientPacketListener.openSendConfirmationWindowportcrates/horizon-client/src/game/remote_chat.rs::Game::send_unattended_commanda clicked book or dialog is already closed: no answer returns to it
112ClientPacketListener.openCommandSendConfirmationWindowportcrates/horizon-client/src/game/remote_chat.rs::Game::answer_command_promptRun Command sends it
113ClientPacketListener.openSignedCommandSendConfirmationWindowportcrates/horizon-client/src/game/remote_chat.rs::Game::answer_command_promptinto the chat box, or the clipboard over a screen; a kept chat draft is not put before it
114ClientPacketListener.broadcastClientInformationportcrates/horizon-client/src/game/remote.rs::Game::tick_remote_levelgap: minor: only view distance and chat visibility are sent, and only when they change
115ClientPacketListener.notifyPlayerLoadedportcrates/horizon-client/src/game/remote.rs::Game::tick_remote_levelgap: minor: gated on the player's column being lit, not on its sections being compiled
116ClientPacketListener.setKeyPairportcrates/horizon-client/src/game/remote_chat.rs::Game::update_chat_sessiononly for the account's own profile id; a new session when the pair changes
117ClientRegistryLayer.createRegistryAccessskip:dataregistry layers come from Horizon's own tables
118ClientSuggestionProvider.getOnlinePlayerNamesportcrates/horizon-client/src/game/remote.rs::Game::remote_online_namessorted names of the server's player list
119ClientSuggestionProvider.getCustomTabSuggestionsportcrates/horizon-client-core/src/registries.rs::Registries::custom_tab_suggestionsthe player names and the server's custom completions, each once
120ClientSuggestionProvider.getSelectedEntitiesmissingminor: no suggestion for the entity under the crosshair
121ClientSuggestionProvider.suggestRegistryElementsportcrates/horizon-command/src/args.rs::suggest_resourcesregistry ids come from Horizon's registry tables
122ClientSuggestionProvider.getRelevantCoordinatesportcrates/horizon-command/src/args.rs::suggest_coordinatesthe block under the crosshair for block positions
123ClientSuggestionProvider.getAbsoluteCoordinatesportcrates/horizon-command/src/args.rs::suggest_coordinatesgap: minor: the exact hit point is not offered; Vec3 arguments only get ~
124ClientSuggestionProvider.modifyCustomCompletionsportcrates/horizon-client-core/src/registries.rs::modify_custom_completionsADD, REMOVE or SET on the set the connection keeps
125KnownPacksManager.trySelectingPacksskip:dataHorizon answers SelectKnownPacks with no packs, so the server sends full registries (net.rs configure)
126LegacyServerPinger.channelActiveskip:otherlegacy pre-1.7 server-list ping, not used by this client
127LegacyServerPinger.channelRead0skip:otherlegacy pre-1.7 server-list ping, not used by this client
128LevelLoadTracker.startClientLoadinlinecrates/horizon-client/src/game/remote.rs::Game::tick_remote_levelgap: player: no loading screen state; the wait is only for the player's column to be lit
129LevelLoadTracker.isLevelReadyinlinecrates/horizon-client/src/game/remote.rs::Game::tick_remote_levelgap: minor: readiness is the player's column being lit; vanilla's close delay is not kept
130LevelLoadTracker.getPlayerCompiledSectionCallbackinlinecrates/horizon-client/src/game/remote.rs::Game::tick_remote_levelgap: minor: the gate is the column being lit, not the section being compiled
131LevelLoadTracker.WaitingForPlayerChunk.isReadyinlinecrates/horizon-client/src/game/remote.rs::Game::tick_remote_levelgap: minor: no timeout and no spectator or dead exemption
132LevelLoadTracker.WaitingForServer.loadingPacketsReceivedmissingminor: the server's level-chunks-start event (GameEvent 13) is ignored
133MultiPlayerGameMode.startPredictionportcrates/horizon-client/src/game/remote.rs::Game::next_sequencegap: minor: only the sequence number; each caller builds and sends its own packet
134MultiPlayerGameMode.ensureHasSentCarriedIteminlinecrates/horizon-client/src/game/remote.rs::Game::remote_send_statethe SetCarriedItem check, made on every send
135MultiPlayerGameMode.performUseItemOnportcrates/horizon-client/src/game/remote.rs::Game::remote_use_blockgap: minor: no world-border check, and UseItemOn always sends world_border false
136MultiPlayerGameMode.createPlayerportcrates/horizon-client/src/game/remote.rs::Game::remote_teleportgap: minor: the player is created on the first position packet, not at login
137MultiPlayerGameMode.handleCreativeModeItemAddinlinecrates/horizon-client/src/game/remote.rs::Game::remote_send_stategap: minor: the creative inventory is sent as a per-tick diff, with no feature-flag check
138MultiPlayerGameMode.handleCreativeModeItemDropportcrates/horizon-client/src/game/remote.rs::Game::remote_creative_dropgap: minor: no check that another container screen is open
139MultiPlayerGameMode.getDestroyStageportcrates/horizon-client/src/first_person.rs::Destroying::stage
140RegistryDataCollector.appendContentsskip:dataregistry data for the configuration handshake; Horizon reads its own tables
141RegistryDataCollector.appendTagsskip:dataregistry tags for the configuration handshake; Horizon reads its own tables
142RegistryDataCollector.loadNewElementsAndTagsskip:dataregistry loading for the configuration handshake; Horizon reads its own tables
143RegistryDataCollector.addCrashDetailsskip:debugcrash report details
144RegistryDataCollector.loadOnlyTagsskip:dataregistry tags for the configuration handshake; Horizon reads its own tables
145RegistryDataCollector.updateComponentsskip:datadata component registry; Horizon reads its own tables
146RegistryDataCollector.collectGameRegistriesskip:dataregistry collection for the configuration handshake; Horizon reads its own tables
147RegistryDataCollector.ContentsCollector.appendskip:dataregistry contents collector; Horizon reads its own tables