指南

如何製作 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