指南

如何制作 Minecraft 计分板插件

更新于 2026年10月18日

屏幕右侧的侧边栏是很多服务器最显眼的部分:服务器名称、玩家的等级、金钱、击杀数、在线玩家。插件通过 Bukkit 的 Scoreboard API 来绘制它。难点在于让每个玩家都有自己的行,并平滑地更新它们。

把这些行改成你服务器的内容。

用 Codexe 生成这个

分步说明

  1. 1.写下每一行

    标题和从上到下的每一行,以及它们显示的数值:“等级:Admin”“金币:1,250”“在线:34”。侧边栏最多显示 15 行。

  2. 2.为每个玩家创建一个计分板

    每个玩家内容不同的行,需要每个玩家一个计分板:用 Bukkit.getScoreboardManager().getNewScoreboard() 创建,在玩家加入时用 player.setScoreboard(...) 设置。

  3. 3.创建侧边栏目标

    注册一个 dummy 目标,并把它的显示位置设为 DisplaySlot.SIDEBAR。每一行是一个条目,分数决定它的位置。

  4. 4.更新数值

    用一个重复任务,比如每秒一次,只更新有变化的行。文本放在队伍的前缀和后缀里,这样行就不会闪烁。

  5. 5.加入占位符

    有了 PlaceholderAPI,像 %vault_eco_balance% 这样的行无需额外代码就能显示其他插件的数值。

  6. 6.构建并在游戏中查看

    让 Codexe 编译,加入测试服务器,检查每一行,然后改变一个数值,看它是否更新。

侧边栏的工作原理

  • 每个计分板同一时间只在侧边栏显示一个目标。它的显示名称就是标题。
  • 行按分数从高到低排序,所以分数其实就是倒过来的行号。
  • 每一行都必须是不同的条目:两行相同的内容需要一点看不见的差别,比如不同的颜色代码。
  • 从 Minecraft 1.20.3 起可以隐藏右侧的红色数字,这个版本为分数加入了数字格式。更早的版本总是会显示它们。
  • 玩家只能看到一个计分板:如果另一个插件设置了自己的,最后设置的那个生效。侧边栏只用一个插件,或者写明还有哪些插件共用计分板。

无闪烁更新

先删掉一行再加一行新的,会让它闪一下。常见的做法是给每一行一个固定的、看不见的条目,把可见文本放进包含该条目的队伍的前缀和后缀里;更新队伍就能原地改变文本。在需求中写上“无闪烁”,插件就会这样编写。

插件、Skript 还是数据包?

方案能做到限制
插件每个玩家不同的行、任意数值、动画、占位符需要 Spigot、Paper 或其分支
Skript 加 SkBee用脚本为每个玩家生成侧边栏需要 Skript 和该附加组件
数据包在侧边栏显示一个目标,比如死亡数或击杀数所有人看到的数字相同,不能为每个玩家显示自由文本

描述示例

“一个名为 Board 的 Paper 1.21.4 插件。每个玩家一个侧边栏,标题为金色,下面依次是等级(来自 LuckPerms)、金币(来自 Vault)、击杀数、死亡数、在线玩家数和服务器地址。每秒更新且无闪烁,隐藏红色数字。行、标题和更新间隔在 config.yml 中,任何一行都可以使用 PlaceholderAPI 占位符。/board toggle 可为每个玩家单独隐藏它,并保存这个选择。”

常见问题

侧边栏最多能有几行?

最多显示 15 行。更多内容需要放到别处,比如 Tab 列表、动作栏或 Boss 血条。

1.8 上能用吗?

能,1.8 上就有 Scoreboard API,但每行的文本长度限制更多。写明版本,插件就会按它来编写。

为什么我的计分板会消失?

通常是另一个插件在你的插件之后为玩家设置了自己的计分板。移除另一个侧边栏,或者让一个插件显示所有内容。

制作你的侧边栏

这条提示词打开后即可直接发送:

“一个名为 Board 的 Paper 1.21.4 侧边栏计分板插件:每个玩家一个侧边栏,金色标题,显示来自 LuckPerms 的等级、来自 Vault 的金币、击杀数、死亡数、在线玩家数和服务器地址,每秒无闪烁更新,隐藏红色数字,行和间隔在 config.yml 中并支持 PlaceholderAPI,/board toggle 按玩家保存。”

用 Codexe 生成这个
如何制作 Minecraft 计分板插件(侧边栏) | Codexe