Be Quiet Negotiator
Be Quiet Negotiator 是一个客户端 NeoForge 模组,它允许你通过静默跳过 NeoForge 握手协商来连接到原版或非 NeoForge 服务器,阻止常见的握手错误,并实现更流畅的连接。
Be Quiet Negotiator
Be Quiet Negotiator 是一个轻量级、仅客户端侧的 NeoForge 模组,它允许安装了模组的客户端连接到原版或模组极少的服务器(例如只有服务端模组的 Fabric 服务器),而不会触发 NeoForge 严格的网络协商流程。
工作原理
通常,NeoForge 会强制执行一个握手协议,以确保客户端和服务器在模组负载和能力方面达成一致。当连接到不支持 NeoForge 的服务器时,此模组会悄悄抑制该协商过程,使连接能够顺利进行而不会断开或报错——也就是说,它通过保持沉默来“协商”。
此外,连接过程中可能出现的其他错误(例如数据包解码错误或意外数据包大小)也会被忽略,从而让客户端能够顺利连接。
具体来说,Be Quiet Negotiator 使用 Mixin 修补 NeoForge 客户端代码,专门针对那些在连接到不支持 NeoForge 的服务器时会产生错误或断开的恼人方法。
此外,所有修补都是可配置的,用户可以根据需要启用或禁用特定修补。
使用场景
此模组适用于:
- 希望加入原版服务器的 NeoForge 客户端玩家,防止因缺少网络协商响应而导致的断开连接。
- 通过混合或代理网络连接的玩家,其入口点是原版或非 NeoForge 服务器,避免客户端期望 NeoForge 时握手失败。
- 在客户端使用全栈 NeoForge 模组的整合包开发者或测试人员,希望连接到未安装模组或使用不同模组的服务器,而无需每次都禁用模组。
- 尝试加入未安装 NeoForge 的服务器,但已安装预期服务端有模组(例如,带有网络功能的世生、物品或 GUI 模组)的玩家。
- 局域网或休闲多人游戏设置,其中只有客户端运行 NeoForge 并安装了功能完整的模组,服务器端则未安装模组或运行着不同的模组加载器。
要搭建生产级代理网络?
不要使用此模组!你很可能会遇到模组兼容性问题,因为 Be Quiet Negotiator 只是抑制错误,并不能神奇地让不兼容的模组正常工作。
与其使用传统的代理将连接路由到后端服务器,我建议为每台 NeoForge 服务器分配一个独立的公共 IP 地址/域名。
如果你的 IP 地址不够用,可以使用反向代理,例如 Gate Lite Mode 或我自己的 mc-router,根据握手数据包中的服务器地址字段来路由连接。
要在服务器之间传送玩家,请使用 Minecraft 1.20.5 中引入的原版 /transfer 命令,或安装 Server Redirect 模组。
包含的修补(自 v1.0.1 起)
bypassNegotiationErrors- 通过忽略协商错误,允许客户端连接到不支持 NeoForge 的服务器。bypassCustomFeatureFlags- 连接服务器时忽略自定义特性标志,使客户端能够顺利连接。ignorePacketDecodingErrors- 连接服务器时忽略数据包解码错误,使客户端能够顺利连接。ignorePacketHandlerErrors- 连接服务器时忽略客户端侧数据包处理错误,使客户端能够顺利连接。
重要说明
连接安全性
Be Quiet Negotiator 在设计上是安全的:它仅在服务器被识别为非 NeoForge 时激活,完全不影响正常的模组对模组连接。配置简单且可切换,让用户能精细控制何时允许静默协商。
模组兼容性
某些模组可能依赖于成功的协商,或期望服务端支持特定功能。在这些情况下,功能可能会静默失效或导致令人困惑的行为。
请谨慎使用,并在未运行 NeoForge 的服务器上,避免放置或交互使用模组方块、物品或 GUI。 此模组能实现连接兼容,但无法让不兼容的模组神奇地正常工作。
我们有一个已知不兼容模组的列表,请参阅 docs/incompatibility.md。
正在加载版本记录…
正在加载评论…
评论在新手盒子客户端中发表,这里同步展示。