跳到正文

Better Tablist

可自定义的服务端玩家列表,支持动态页眉和页脚、段位前缀、玩家状态及实时服务器统计。

收藏

截图

介绍

介绍由机器翻译自 Modrinth 原页面,仅供参考。

Better TabList

一个可自定义的服务端标签列表,带有动画页眉和页脚、称号前缀、玩家状态以及实时服务器统计数据。

支持 Minecraft 1.21–1.21.11 的 NeoForge 和 Fabric。

安装在服务端。玩家可以使用原版客户端加入。 LuckPerms、FTB Ranks 和 spark 为可选。
Example of Better TabList with FTB Ranks and Gradients
Example of Better TabList with FTB Ranks

灵感来自 Tab List。

功能

  • 动画页眉与页脚 — 多帧自动循环,速度可配置
  • AFK 检测 — 在可配置的超时时间后,名称变灰并显示 #AFK 占位符
  • 玩家排序 — 按字母顺序或基于称号(通过 FTB Ranks 权限值或 LuckPerms 组权重)排列标签列表
  • FTB Ranks 集成 — 可选;使用称号权限来显示名称和排序
  • LuckPerms 集成 — 可选;支持上下文前缀/后缀、主组和称号排序
  • 玩家状态 — 可选在显示名称中显示带颜色的维度符号、生命值(包括伤害吸收)、延迟和游戏模式
  • 性能指标 — 带颜色的 TPS/MSPT/CPU,可选 spark 滚动平均值和 MSPT 百分位数
  • 十六进制颜色支持 — 完整的 &#RRGGBB 十六进制颜色以及标准 & 颜色代码
  • 渐变 — 平滑的颜色过渡,支持两种渐变语法
  • 高效更新 — 页眉/页脚数据包仅在其内容变化时发送;指标样本在玩家之间共享

安装

  1. 下载与你的服务器 Minecraft 版本和加载器匹配的 JAR。
  2. 将其放入服务器的 mods/ 文件夹。Fabric 服务端还需要 Fabric API。
  3. 启动服务器一次以生成 config/tablist.toml。
  4. 修改 server_name,然后自定义页眉、页脚和玩家名称。
  5. 以管理员身份(权限等级 2)运行 /tablist reload,或重启服务器。

快速设置

1. 选择玩家名称的显示方式

编辑 config/tablist.toml 中现有的 [appearance] 部分。替换下方对应的设置;不要添加第二个 [appearance] 部分。

纯名称,无需称号模组:

name_formatting_provider = "NONE"
display_name_format = "{name} &7#AFK"

带维度和生命值的名称:

name_formatting_provider = "NONE"
display_name_format = "{dimension} {name} {health} &7#AFK"

LuckPerms 前缀和后缀:在服务器上安装 LuckPerms,然后使用:

name_formatting_provider = "LP"
display_name_format = "{prefix}{name}{suffix}&r &7#AFK"

如需同时显示状态图标,请使用 "{dimension} {prefix}{name}{suffix}&r {health} &7#AFK"。

FTB Ranks:安装 FTB Ranks 及其必需的前置库,然后使用:

name_formatting_provider = "FTB"
display_name_format = "[{rank}] {name} &7#AFK"

如果玩家拥有 ftbranks.name_format 权限,该格式将优先。若要仅使用你的配置格式,请选择 NONE。默认提供者为 FTB 以保持兼容性;即使未安装任何称号集成,模组仍可正常工作。

2. 设置页眉和页脚

每个引号内的项目是一个动画帧。使用 #N 在帧内换行。

# In the existing [appearance] section:
server_name = "My Server"
header = [
    "#N<gradient:#FF5555:#FFAA55>&l#SERVERNAME</gradient>&r#N&7Welcome, #PLAYERNAME!#N"
]
footer = [
    "#N&fOnline: &e#PLAYERCOUNT&7/&e#MAXPLAYERS#N&7TPS: #CTPS &7| MSPT: #CMSPT &7| Ping: &f#PING ms#N"
]
  • 单个物品: 静态文本。两个或更多物品: 动态文本。[]: 隐藏该页眉/页脚。
  • update_interval = 500 每 500 毫秒刷新一次。
  • animation_interval = 4 每 4 次刷新切换一帧——在默认刷新间隔下约为 2 秒。

3. 可选的排名排序与 spark 指标

要按排名排序,请修改现有 [sorting] 部分中的 sort_mode:

sort_mode = "RANK" # NONE, ALPHABETICAL, or RANK

RANK 使用所选提供者的最高继承 LuckPerms 组权重或 FTB 排名权限值,然后按字母顺序排序。如果没有可用的排名提供者,权重为零。位于其他计分板队伍的玩家仍留在该队伍中。

要启用 spark 统计,请在服务器上安装 spark 并修改现有 [performance] 部分:

metrics_provider = "SPARK" # VANILLA or SPARK

滚动 TPS 和 MSPT 百分位数需要 spark。没有它时,基本 TPS/MSPT/CPU 使用内置测量值,滚动统计显示 N/A。

配置

所有设置都位于 config/tablist.toml 中。文本值请保留引号,开关使用不带引号的 true / false,并保留下面显示的节名称。

| 节 | 要修改的内容 |
|———|—————-|
| [appearance] | 服务器名称、页眉/页脚帧、玩家名称格式、排名提供者、刷新时机 |
| [sorting] | 玩家排序:NONE、ALPHABETICAL 或 RANK |
| [afk] | 启用 AFK 检测并设置超时 (秒);300 表示 5 分钟 |
| [performance] | 指标来源:VANILLA 或 SPARK |

现有配置保持兼容。你的名称和格式会被保留,当 name_formatting_provider 缺失时,会使用旧的 ftbranks.enable_ftbranks_formatting 设置来选择提供者。一旦新选项存在,请使用它来更改提供者。

页眉和页脚占位符

玩家特定值指的是正在查看 Tab 列表的玩家。这些占位符也适用于 display_name_format。

| 占位符 | 说明 |
|—————-|—————————————————-|
| #N | 换行 |
| #SERVERNAME | 服务器名称(在配置中设置) |
| #TPS | 预估 TPS(原版),或 1 分钟 TPS(spark) |
| #CTPS | 自动着色的 TPS(绿/黄/红) |
| #MSPT | 每刻毫秒数 |
| #CMSPT | 自动着色的 MSPT |
| #CPU | 服务器进程 CPU 使用率 |
| #CCPU | 自动着色的 CPU 使用率 |
| #TPS_1M / #CTPS_1M | 1 分钟 TPS,普通 / 彩色(spark) |
| #TPS_5M / #CTPS_5M | 5 分钟 TPS,普通 / 彩色(spark) |
| #MSPT_P95 / #CMSPT_P95 | 1 分钟 MSPT 第 95 百分位数,普通 / 彩色(spark) |
| #PLAYERCOUNT | 在线玩家数量 |
| #MAXPLAYERS | 最大玩家名额 |
| #PLAYERNAME | 查看该信息的玩家名称 |
| #PING | 玩家延迟(毫秒) |
| #RANK | FTB 等级或 LuckPerms 主组,取决于所选提供程序 |
| #AFK | 玩家处于 AFK 状态时显示“AFK”,否则为空 |
| #WORLD | 玩家当前所在维度 |
| #DIMENSION | 彩色维度符号(Ⓦ / Ⓝ / Ⓔ),或自定义维度名称 |
| #HEALTH | 生命值 + 伤害吸收,例如 [20❤](20 点生命值 = 10 颗心) |
| #MEMORY | 内存使用量(已用 / 最大值) |
| #UPTIME | 服务器运行时间 |
| #DATE | 实际日期(yyyy-MM-dd) |
| #TIME | 实际时间(HH:mm) |

颜色代码

  • 标准:&a(绿色)、&c(红色)、&l(粗体)、&r(重置)等。
  • 十六进制:&#FF5555可用于任意 RGB 颜色
  • 渐变:<gradient:#FF0000:#0000FF>text</gradient>或<#FF0000>text</#0000FF>

显示名称格式

在 display_name_format、标题或页脚中使用:

| 占位符 | 说明 |
|————-|————-|
| {name} | 玩家名称 |
| {rank} | FTB 等级或 LuckPerms 主组 |
| {prefix}, {suffix} | LuckPerms 在玩家当前上下文中缓存的前缀/后缀 |
| {primary_group} | LuckPerms 主组 |
| {dimension} | 彩色维度符号,或自定义维度名称 |
| {health} | 彩色生命值 + 伤害吸收指示器 |
| {world}, {ping}, {gamemode} | 维度名称、延迟(毫秒)和游戏模式 |

{prefix}、{suffix} 和 {primary_group} 需要 LP 提供程序。{rank} 使用所选提供程序。不可用的集成值将显示为空。LuckPerms 格式支持上述颜色和渐变语法;聊天插件可能还支持其他语法。

#AFK 在玩家处于活动状态时为空。AFK 检测会监控移动、转向和聊天;它用于指示玩家是否不活跃,并不会检查玩家可能进行的所有操作。

性能指标

请单独安装 spark,以使用滚动 TPS 和 MSPT 百分位数。如果 spark 不可用或尚未就绪,基础 TPS/MSPT/CPU 数据将回退到原版/JVM 测量值;滚动统计会显示 N/A。不受支持的 CPU 测量也会显示 N/A。原版 TPS 根据平均刻执行时间估算,而非测量滚动刻速率。

自动颜色阈值为绿色/黄色/红色:TPS ≥18 / ≥15 / 50,CPU ≤60% / ≤85% / >85%。指标会在每次玩家列表更新时采样一次,并由所有玩家共享。

完整的入门配置

全新设置时,可以使用这个完整且简单的示例。已有设置时,请编辑对应的选项,而不要替换自定义配置。

[appearance]
server_name = "My Server"
header = [
    "#N&a&l#SERVERNAME&r#N&7Welcome, #PLAYERNAME!#N"
]
footer = [
    "#N&fOnline: &e#PLAYERCOUNT&7/&e#MAXPLAYERS#N&7TPS: #CTPS &7| MSPT: #CMSPT#N"
]
name_formatting_provider = "NONE"
display_name_format = "{name} &7#AFK"
update_interval = 500
animation_interval = 4

[sorting]
sort_mode = "NONE"

[afk]
afk_enabled = true
afk_timeout = 300

[performance]
metrics_provider = "VANILLA"

常见问题

  • 我的 LuckPerms 前缀不见了。选择 LP,在格式中加入 {prefix},并确认玩家在当前 LuckPerms 上下文中拥有前缀。
  • 使用 FTB Ranks 时,我的配置名称格式没有生效。请检查 ftbranks.name_format 权限;存在此权限时,它会优先生效。
  • 额外的页眉项目没有显示为额外行。这些项目是动画帧。使用 #N 可在同一帧内添加多行。
  • 我在 spark 统计中看到 N/A。选择 SPARK,并确认已安装 spark 且其已就绪。不受支持的统计数据会显示 N/A。
  • 如何应用更改?以管理员身份运行 /tablist reload,或重启。无效的 TOML(例如缺少引号或存在重复区段)必须先修复,然后才能重新加载。

需要帮助?报告问题时,请提供 Minecraft 版本、加载器和相关配置选项。

贡献者

  • sennecools 和 NeofastFTL — Better TabList
  • MihailDenisov — 原始 LuckPerms 集成、维度/生命值显示、等级权重缓存,以及来自 LPintegration 分支的性能指标创意与代码;已适配所有受支持的目标版本。参见 问题 #13。

常见问题

Better Tablist 支持哪些 Minecraft 版本?

Better Tablist 支持 Minecraft Java 版 1.21–1.21.11,共 12 个版本,可用的加载器:Fabric / NeoForge。下载时注意选择和你游戏版本一致的文件。

Better Tablist 怎么安装?

先用 PCL2 或 HMCL 启动器安装对应版本的 Fabric / NeoForge,再把下载的 .jar 文件放进游戏目录的 mods 文件夹,重新启动游戏即可。开启了版本隔离的,mods 文件夹在 versions/版本名 下面。运行环境:仅服务端。

评论

登录后评论和评分

SenNerd 的其他作品

查看全部 →