[ESN] 特别网络

[ESN] 特别网络

用于Extra Special Studio模组的共享网络结构——包含通道、数据包和扇出机制,自身没有大厅、波次或玩法类型。

杂项

ExtraSpecialNetwork

为 Extra Special Studio 模组提供共享的多人网络功能——数据包通道、定向投递和组播分发,使每个功能模组无需重复实现相同的粘合代码。

ExtraSpecialNetwork(ESN)是一个库模组。它本身不添加玩法、物品、界面、大厅、波次或主要功能。其他 Extra Special Studio 模组(以及选择接入的第三方模组)依赖它来获得一层轻量共享的网络结构,从而使同步和分发在整个技术栈中保持一致。

功能:

ESN 提供一套小巧的 Esn* API:EsnChannels 用于为每个使用方模组注册通道,EsnChannel 用于注册数据包编解码器和处理器,以及 sendToServer / sendTo(player) / sendTo(players) 用于客户端-服务端和组投递。它不包含大厅、波次、空投、HUD 或功能类型——这些保留在 ESL(会话)和使用方模组中。ESN 不包含任何 GUI 或渲染代码。

工作原理:

依赖模组在 ESN 通道上注册自己的数据包,并将其发送给一个或多个玩家。会话成员资格和就绪检查位于 ExtraSpecialLib(ESL)中;ESN 只负责将字节传输给正确的玩家。ESN 不打开菜单、不决定游戏规则,也不掌管遭遇战含义。

使用方法:

玩家:如果某个模组页面标明需要 ExtraSpecialNetwork / ESN(例如多人空投大厅),请添加作者测试时使用的相同 Minecraft + 加载器(Forge / NeoForge)版本。仅安装 ESN 不会为你带来新菜单——它存在是因为另一个模组需要多人同步。 作者(Extra Special Studio / 第三方):当你需要共享数据包或分发时,将 ESN 声明为依赖项。仅使用 EsnChannels / EsnChannel 进行传输。将大厅/会话逻辑放在 ESL(或你自己的领域代码)中;将玩法含义放在你的模组中。加载器和游戏版本需与依赖它的模组匹配(Forge 和 NeoForge 变体为独立文件)。

重要:

ESN 是依赖项,不是独立的内容包。当你需要大厅或波次会话时,请将其与 ExtraSpecialLib 搭配使用。加载器和 Minecraft 版本需与使用方模组匹配。如果加载失败,请先检查依赖 ESN 的模组,然后确认 ESN 版本和加载器与整合包匹配。