
Better Ping Display [Fabric] — Minecraft Java Edition 1.15.2 - 1.21.11+
依赖项: · 加载器:Fabric、Quilt · Minecraft 版本:1.15.2 - 1.21.11+ · 模组版本:1.2.0 · 必需依赖项:Fabric API Minecraft 的标准界面会在玩家列表菜单( TAB…
依赖项: · 加载器:Fabric、Quilt · Minecraft 版本:1.15.2 - 1.21.11+ · 模组版本:1.2.0 · 必需依赖项:Fabric API Minecraft 的标准界面会在玩家列表菜单( TAB 键)中以五根垂直条形组成的图形图标来显示玩家的连接延迟。这种方式无法提供有关连接稳定性的精确信息,因为同一个图标既可能对应 80 毫秒的延迟,也可能对应 140 毫秒的延迟。在竞技玩法、PvP 战斗或管
依赖项:
· 加载器:Fabric、Quilt
· Minecraft 版本:1.15.2 - 1.21.11+
· 模组版本:1.2.0
· 必需依赖项:Fabric API
Minecraft 的标准界面会在玩家列表菜单(TAB 键)中以五根垂直条形组成的图形图标来显示玩家的连接延迟。这种方式无法提供有关连接稳定性的精确信息,因为同一个图标既可能对应 80 毫秒的延迟,也可能对应 140 毫秒的延迟。在竞技玩法、PvP 战斗或管理大型游戏服务器时,精确的 ping 数值至关重要。Better Ping Display [Fabric] 模组通过用以毫秒表示的精确数值延迟直接取代玩家列表中抽象的图形条形来解决这一问题。
技术工作原理及标准延迟渲染的局限性
为了传递 ping 信息,Minecraft 服务器会发送玩家列表更新数据包(在现代版本的游戏中,这由 ClientboundPlayerInfoUpdatePacket 数据包负责)。数据包中的每条记录都包含一个以毫秒表示的整数延迟参数(latency)。游戏的客户端部分接收这些数据,并将其作为 PlayerInfo 对象(在早期版本中称为 NetworkPlayerInfo)的属性保存在内存中。
在屏幕上渲染玩家列表时,原版界面类 PlayerListHud(在 Yarn 映射中为 PlayerTabOverlay)会遍历所有已连接的用户并确定其延迟级别。图标的显示由内部方法 renderLatencyIcon(或 renderPingIcon)负责。该方法将毫秒整数与固定阈值进行比较:
· 小于 0 的值会显示无连接图标(红色叉号)。
· 小于 150 毫秒的值对应最多五根条形。
· 150 至 299 毫秒的范围显示四根条形。
· 300 至 599 毫秒的范围显示三根条形。
· 600 至 999 毫秒的范围显示两根条形。
· 从 1000 毫秒起的延迟显示一根条形。
因此,精确的数值在显示到屏幕上之前就被丢弃了,取而代之的是从纹理文件 icons.png 中绘制相应的精灵图。
Better Ping Display 借助 Mixin 系统对这一过程进行更改。注入类会在绘制每位玩家行的时刻修改 PlayerListHud 的行为。该模组会拦截绘制图形条形的调用并阻止其执行(或根据配置并行执行)。取而代之的是,通过 PlayerInfo 对象执行获取精确 latency 值的调用。然后,模组将该数值传递给客户端的文本渲染器 Font,后者会根据所配置的样式和界面元素的定位动态地在屏幕上绘制字符。
主要功能:数字显示、颜色刻度与图形条形
该模组通过以下功能扩展了网络统计界面的信息量:
· 实时数字指标:显示以毫秒为单位的精确延迟值。玩家无需将光标悬停或在聊天中输入诊断命令,即可看到每位参与者的实际连接状态。
· 自动颜色标记:该模组默认会根据连接质量为 ping 文本上色。低延迟(小于 100 毫秒)以绿色高亮显示,中等延迟(100 至 299 毫秒)呈现黄色或橙色,高延迟(300 毫秒及以上)则显示为红色。这有助于即时发现连接不稳定的玩家。
· 组合显示模式:用户可以启用同时显示数值与原版 ping 条形。在这种情况下,文本绘制在图形图标的左侧,从而保留 Minecraft 惯有的视觉风格。
· 客户端架构:该模组完全在客户端运行。它无需安装到服务器上,也不会向服务器发送额外的请求。模组仅读取 Minecraft 服务器默认向所有已连接客户端传输的流量信息。得益于此,Better Ping Display 可在任何服务器上运行,包括官方 Realms 服务器和不支持模组的公共服务器。
设置、兼容性与生态系统
显示参数的配置通过编辑 betterpingdisplay.json 文件来完成,该文件会在游戏首次启动后自动在 config 目录中创建。该文件包含以下设置:
· autoColorPingText – 一个布尔标志(true/false)。当值为 true 时,ping 颜色会根据连接速度自动从绿色变为红色。如果指定为 false,则颜色变为静态,由下一个参数决定。
· pingTextColor – 一个用于设置十六进制颜色代码的文本字段(例如,#A0A0A0 表示浅灰色)。仅当自动颜色标记被关闭时才会使用此颜色。
· renderPingBars – 一个布尔标志,用于控制是否在数字指标旁边渲染标准的原版延迟条形。
· pingTextFormatString – 一个文本格式化字符串。默认值设置为 %dms,其中 %d 符号是一个必需的技术标记,在渲染时会被替换为当前的毫秒延迟数值。
在模组 1.2.0 及更新版本中,新增了直接在游戏菜单中进行图形化设置的支持。要在模组列表中访问可视化配置菜单,需要安装两个额外的辅助组件:YetAnotherConfigLib (YACL) 库和 Mod Menu 模组。当它们存在时,游戏中会出现一个便捷的窗口,带有用于更改 Better Ping Display 参数的开关和滑块。
该模组与大多数客户端优化模组(如 Sodium、Lithium、FerriteCore)以及图形增强模组(Iris Shaders)兼容。在使用了自定义玩家列表插件的服务器上游戏时,它不会引起冲突,因为它仅更改客户端上的本地渲染阶段,而不会影响网络数据包的结构。
参数 | 值 | 说明 |
| TRUE | 自动文本颜色。如果启用(true),数字的颜色将根据连接质量自动变化(例如,低 ping 为绿色,高 ping 为红色)。 |
| FALSE | 显示 ping 条形。决定是否显示标准的原版连接质量条形(小棒)。此处将其关闭(false),以便为文本腾出空间。 |
| "#A0A0A0" | 文本颜色。静态显示颜色(采用 HEX 代码格式,此处为浅灰色)。当自动着色(autoColorPingText)被关闭时应用此颜色。 |
| "%dms" | 显示格式。在屏幕上显示文本的模板。变量 %d 会自动替换为您当前的 ping 数值,而 ms 则添加"毫秒"的标注(结果显示为"45ms")。 |
结论
Better Ping Display [Fabric] 是一款小巧而高效的客户端模组,修正了 Minecraft 标准玩家列表的一个重大缺陷。与诸如 Numeral Ping 或 Ping Display 之类的同类方案不同,该模组与 YACL 库具有简单的集成,可直接在游戏中调整参数,并允许保留原版的延迟图标。其主要局限在于数字的刷新频率取决于服务器自身的设置(默认情况下,Minecraft 服务器每隔几秒才发送一次 ping 统计更新,因此延迟的瞬时波动不会立即显示)。该模组非常适合网络模式的玩家以及需要清晰掌控网络参数而又不给系统带来额外负担的服务器管理员。
安装
一次典型安装大约 5 分钟。流程相同,只是 Loader 和对应构建不同。
- 1Install a mod loader (Forge, Fabric or NeoForge) that matches your Minecraft version.
- 2Download the mod file (.jar) built for that same version.
- 3Place the .jar into your .minecraft/mods folder.
- 4Launch Minecraft with the modded profile and check the mod loads in-game.











