跳到主要內容
平台

Spigot 與 Paper 插件

如何用 Codexe 做出最好的 Bukkit、Spigot 或 Paper 插件(Java 或 Kotlin):需求要寫什麼、版本、plugin.yml、相依套件、建置和常見問題。

更新於

本頁內容
  1. 需求要寫什麼
  2. Codexe 會產生什麼
  3. 版本與 Java
  4. 建置與驗證
  5. 安裝
  6. 常見問題

Bukkit/Spigot/Paper 類型會產生一個伺服器插件,可以在 Paper、Spigot 以及它們的分支上執行。你可以選 Java(Maven 專案)或 Kotlin(含 build.gradle.kts 的 Gradle 專案)。

想在遊戲裡玩玩看你的插件,可以用立即試用啟動一台私人測試伺服器。

你送出需求時,Codexe 會問你插件要用在哪個 Minecraft 版本,範圍從 1.8.8 到 26.3。程式碼會依照該版本的 API 和 Java 等級撰寫,測試伺服器也會執行該版本。2026 年 9 月 30 日之前建立的專案會保留建置檔中寫的版本。

#需求要寫什麼

  • 伺服器軟體和版本:「Paper 1.21.4」或「Spigot 1.20.1」。Paper 的 API 比 Spigot 大。為 Spigot 寫的程式碼可以在 Paper 上執行,反過來就不行,所以兩邊都需要的話,請要求 Spigot。
  • 指令:參數、誰可以用,以及 Tab 自動完成。
  • 權限和它們的預設值(true、op、false)。
  • 你希望可以編輯的 config.yml 鍵值。
  • 儲存方式:YAML、SQLite、MySQL,或存在記憶體中。
  • 整合:Vault、PlaceholderAPI、LuckPerms、WorldGuard……請明確寫出名稱,這樣才會被加入為相依套件。
Text
A Paper 1.21.4 plugin (Java) called Bounties.
- /bounty set <player> <amount>: takes money via Vault, adds it to the player's bounty.
- Killing a player with a bounty pays it to the killer.
- /bounty top shows the 10 highest bounties.
- Bounties stored in SQLite. Minimum bounty 100 (config.yml).
- Permission bounties.set (default true).
Text
A Paper 1.21.4 plugin in Kotlin called Bounties, same features as above.
Use Kotlin idioms (data classes, extension functions) but keep the Bukkit API usage standard.

#Codexe 會產生什麼

  • 一個帶有正確 API 相依套件的 Maven 專案(Java)或 Gradle 專案(Kotlin)。
  • 繼承 JavaPlugin 的主類別,以及指令、監聽器和儲存相關的類別。
  • 包含主類別、api-version、指令和權限的 plugin.yml,有設定項目時還會有 config.yml。
YAML
name: Bounties
version: 1.0.0
main: eu.codexe.bounties.Bounties
api-version: '1.21'
depend: [Vault]
commands:
  bounty:
    description: Manage bounties
permissions:
  bounties.set:
    default: true

#版本與 Java

Codexe 會從建置檔讀取 Minecraft 版本,並用 Java 17(1.20.5 之前)、Java 21(1.20.5 及更新版本)或 Java 25(26.x)來建置。如果你沒說版本,就會使用 Paper/Spigot API 1.20.6。

#建置與驗證

Codexe 會先編譯插件才把它標為就緒,並檢查 JAR 裡有類別檔和 plugin.yml(或 paper-plugin.yml)。插件建置通常遠不到一分鐘。請參閱編譯。

#安裝

下載 JAR,放進 plugins/,重新啟動伺服器(不要用 /reload),然後看看主控台在啟動時有沒有錯誤。

#常見問題

症狀可能的原因
插件無法載入,出現「main class not found」plugin.yml 裡的 main: 和類別對不上。請在聊天中要求修正,或在手動重新命名後檢查一下。
在較舊的伺服器上出現「Unsupported API version」插件針對的 API 比你的伺服器還新。請在需求中寫出伺服器的確切版本。
某個指令完全沒反應plugin.yml 裡少了這個指令,或玩家沒有對應的權限。
Vault 之類的插件出現 NoClassDefFoundError伺服器上沒有安裝所需的相依插件。
能建置,但某個功能行為不對在聊天中具體描述遊戲內的實際狀況。驗證檢查的是建置,不是遊戲玩法。
Spigot 與 Paper 插件 | Codexe Docs