平台
Spigot 和 Paper 插件
如何从 Codexe 获得最好的 Bukkit、Spigot 或 Paper 插件(Java 或 Kotlin)。需求中该写什么、版本、plugin.yml、依赖、构建和常见问题。
更新于
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……请明确写出名字,这样它们才会被添加为依赖。
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).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。
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 | 服务器上没有安装所依赖的插件。 |
| 能构建,但某个功能表现不对 | 在聊天中准确描述游戏内的表现。验证检查的是构建,而不是游戏玩法。 |