指南
如何製作 Minecraft 計分板插件
更新於 2026年10月18日
畫面右側的側邊欄是很多伺服器最顯眼的部分:伺服器名稱、玩家的階級、金錢、擊殺數、線上玩家。插件透過 Bukkit 的 Scoreboard API 來繪製它。難的地方在於讓每位玩家都有自己的內容,並且順暢地更新。
把這些行改成你伺服器的內容。
用 Codexe 產生這個逐步說明
1.寫下每一行
標題和由上到下的每一行,以及它們顯示的數值:「階級:Admin」「金幣:1,250」「線上:34」。側邊欄最多顯示 15 行。
2.替每位玩家建立計分板
每位玩家內容不同的行,需要每位玩家各一個計分板:用
Bukkit.getScoreboardManager().getNewScoreboard()建立,並在玩家加入時用player.setScoreboard(...)套用。3.建立側邊欄目標
註冊一個 dummy 目標,並把它的顯示位置設為
DisplaySlot.SIDEBAR。每一行都是一個帶分數的項目,分數決定它的位置。4.更新數值
用一個重複執行的任務,例如每秒一次,只更新有變動的行。文字放在隊伍的前綴和後綴裡,這樣各行就不會閃爍。
5.加入佔位符
有了 PlaceholderAPI,像
%vault_eco_balance%這樣的行不用額外寫程式就能顯示其他插件的數值。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 產生這個