更好的玩家列表

更好的玩家列表

在Forge服务器上自定义玩家列表的一种方法。

管理

Better TabList

一款服务端 Minecraft 模组,可通过动画标题/页脚、AFK 检测、玩家排序以及 FTB Ranks 集成,完全自定义游戏内 Tab 列表。

支持 Minecraft 1.21–1.21.11 的 NeoForge、Fabric,以及 1.21-1.21.1 的 Forge。

灵感来源: Tab List on Modrinth

概览

Tab 列表展示

Better TabList 将默认 Tab 列表替换为完全可自定义的版本,具备实时服务器数据、动画帧以及每位玩家的信息。

功能

  • 动画标题与页脚 — 定义多个帧,以可配置的速度自动循环
  • AFK 检测 — 玩家在可配置的超时时间后变灰,并提供 #AFK 占位符
  • 玩家排序 — 按字母顺序或按等级(通过 FTB Ranks)对 Tab 列表排序
  • FTB Ranks 集成 — 可选;使用等级权限来自定义显示名称和排序
  • 十六进制颜色支持 — 完整的 &#RRGGBB 十六进制颜色,与标准 & 颜色代码并存
  • 渐变支持 — 使用 MiniMessage 和 TAB 风格语法实现平滑的颜色过渡
  • 高效更新 — 仅在内容实际变化时发送数据包

安装

  1. 下载适用于你的模组加载器(NeoForge、Fabric 或 Forge)的 JAR。
  2. 将其放入服务器的 mods/ 文件夹。
  3. 启动服务器 — 将生成带有默认值的 config/tablist.toml 文件。
  4. 编辑配置并重启,或执行 /tablist reload 以应用更改。

配置

所有设置均位于 config/tablist.toml 中。

占位符

占位符 描述
#N 换行
#SERVERNAME 服务器名称(在配置中设置)
#TPS 每秒刻数
#CTPS 带自动颜色的 TPS(绿色/黄色/红色)
#MSPT 每刻毫秒数
#PLAYERCOUNT 在线玩家数量
#MAXPLAYERS 最大玩家槽位
#PLAYERNAME 查看玩家的名称
#PING 玩家延迟(毫秒)
#RANK 玩家等级(需要 FTB Ranks)
#AFK 如果玩家处于 AFK 状态则显示“AFK”,否则为空
#WORLD 玩家当前所在维度
#MEMORY 内存使用量(已用 / 最大)
#UPTIME 服务器运行时间
#DATE 真实日期(yyyy-MM-dd)
#TIME 真实时间(HH:mm)

颜色代码

  • 标准:&a(绿色)、&c(红色)、&l(粗体)、&r(重置)等
  • 十六进制:&#FF5555 表示任意 RGB 颜色

渐变

渐变可在两种或更多颜色之间平滑过渡文本。支持两种语法风格:

MiniMessage 风格(支持 2 个或更多颜色停靠点):

<gradient:#FF0000:#0000FF>红色到蓝色</gradient>
<gradient:#FF0000:#00FF00:#0000FF>红色到绿色到蓝色</gradient>

TAB 风格(正好 2 种颜色):

<#FF0000>红色到蓝色</#0000FF>

格式代码放在渐变标签内,并在文本中保持不变:

<gradient:#FFD700:#FF4500>&l粗体金色到红色</gradient>
<#00FFFF>&o斜体青色到紫色</#AA00FF>

显示名称格式

display_name_format 选项控制玩家名称在 Tab 列表中的显示方式。使用 {name} 和 {rank} 作为占位符:

display_name_format = "{name} &7#AFK"

配置示例

[appearance]
server_name = "My Server"
header = [
    "#N        <gradient:#FF5555:#FF9955>&l#SERVERNAME</gradient>        #N&#AAAAAA&m            &r#N",
    "#N        <gradient:#5555FF:#55FFFF>&l#SERVERNAME</gradient>        #N&#AAAAAA&m            &r#N"
]
footer = [
    "&fOnline: &e#PLAYERCOUNT&7/&e#MAXPLAYERS #N&7TPS: #CTPS &7| MSPT: &#55FFFF#MSPT #N&7Memory: &#AA55FF#MEMORY &7| Uptime: &#FFAA00#UPTIME"
]
display_name_format = "{name} &7#AFK"
update_interval = 500
animation_interval = 4

[sorting]
sort_mode = "NONE"

[ftbranks]
enable_ftbranks_formatting = true

[afk]
afk_enabled = true
afk_timeout = 300