Skip to content

📡 网络同步与数据负载 (Minecraft 26.2)

📌 代码仓库来源免责声明:本维基文档反映了代码仓库中的当前源码状态,可能包含领先于 CurseForge 和 Modrinth 平台公开发布版本的最新未发布提交或开发中功能。

1. Official Infobox

ParameterTechnical Details
Subsystem NameNetwork Synchronization Protocol
Payload ClassStewLimitSyncPayload.java
Payload Identifierstew-stacker:sync_limit
Protocol PhasePlay (clientbound S2C)
Codec ImplementationStreamCodec<RegistryFriendlyByteBuf, StewLimitSyncPayload>
Client ReceiverStewStackerFabricClient.java
Server Dispatch EventsServerPlayConnectionEvents.JOIN, DynamicGameRuleManager listener
Menu SynchronizationbroadcastFullState() on containerMenu and inventoryMenu

2. Step-by-Step Player Workflow & Synchronization Lifecycle

  1. Initial Player Connection (Handshake): When a player connects to the dedicated server, ServerPlayConnectionEvents.JOIN triggers. The server queries current active limits from StewStackerManager and sends a StewLimitSyncPayload to the connecting client.

  2. Client-Side State Storage: Upon packet receipt on the client, StewStackerFabricClient queues a task on the Minecraft client render thread (context.client().execute(...)) to update StewStackerManager.setClientLimit(stewLimit).

  3. In-Game Administrator Mutation: An administrator executes /gamerule stew-stacker-addon:stew_limit 32. DynamicGameRuleManager detects the change and invokes StewStackerManager.setLimit(...).

  4. Full Multi-Client Broadcast & Menu Refresh: The server loops through all online players (server.getPlayerList().getPlayers()), dispatches StewLimitSyncPayload, and invokes broadcastFullState() on container and inventory menus.


3. Mathematical Formulas & Network Bandwidth

$$B = \text{VarIntBytes}(S_{\text{limit}})$$

For default settings ($S = 16$): $$B = 1\text{ byte}$$

Even at the maximum safe limit ($39{,}768{,}215$): $$B = 4\text{ bytes}$$


4. Visual ASCII Diagrams & Packet Lifecycle

   [ Client ]                                               [ Dedicated Server ]
       |                                                             |
       |----------------- C2S Login / Handshake -------------------->|
       |                                                             |
       |                                              ServerPlayConnectionEvents.JOIN
       |                                                             |
       |                                              Query StewStackerManager
       |                                                sLimit=16
       |                                                             |
       |<--- S2C StewLimitSyncPayload(16) ---------------------------|
       |
   Receive Packet
   context.client().execute()
   StewStackerManager.setClientLimit(16)
       |
   Client GUI & Tooltips Synchronized

5. 全局与外部导航

Official documentation & web portal for Dasik Igaijinn mods.