指南

如何制作 Paper 插件

更新于 2026年10月7日

Paper 是最常用的 Minecraft 插件服务端软件:它能运行 Spigot 插件,并在其上提供更大、更快的 API。Paper 插件是一个针对 paper-api 编译的 Java(或 Kotlin)项目。下面是它需要的东西,无论手动做,还是用 AI 替你构建。

一个可以作为起点的例子。

用 Codexe 生成这个

分步说明

  1. 1.选择 Minecraft 版本

    使用你的服务器运行的版本。它决定 Java 版本:1.20.5 之前用 Java 17,1.20.5 起用 Java 21,26.x 用 Java 25。

  2. 2.创建项目

    一个 Gradle 或 Maven 项目,带有该版本的 paper-api 依赖,来自 PaperMC 仓库,范围为 provided/compileOnly。

  3. 3.编写主类

    一个继承 JavaPlugin 的类,在 onEnable() 中注册命令和监听器。

  4. 4.向服务器描述插件

    plugin.yml(name、version、main、api-version、commands、permissions)。Paper 也支持 paper-plugin.yml,它有自己的加载规则。

  5. 5.构建和测试

    构建 .jar,放进 Paper 测试服务器的 plugins/ 文件夹,启动并检查控制台有没有错误。

Paper 还是 Spigot?

为 Spigot API 写的代码能在 Paper 上运行,反过来则不行:Paper 增加了 Spigot 没有的事件和方法(例如 Adventure 文本组件和许多异步 API)。如果你的服务器运行 Paper,就为 Paper 编写;如果插件还要能在 Spigot 服务器上运行,就为 Spigot 编写。

快捷的方式

在 Codexe 上,选择 Bukkit/Spigot/Paper 插件,在需求中写明“Paper”和版本,并描述它的功能。Codexe 会搭好项目和正确的 Java 版本,编译,修复构建错误,并让你加入装有该插件的 Paper 测试服务器。

常见问题

  • UnsupportedClassVersionError:插件是用比服务器所运行的版本更新的 Java 编译的。
  • NoSuchMethodError / NoClassDefFoundError:插件使用了服务器版本上不存在的 API,或者某个依赖没有被 shade 进 .jar。
  • 插件能加载,但命令没反应:命令没有写进 plugin.yml,或者执行器没有注册。

常见问题

Paper 插件能在 Purpur 或 Folia 上运行吗?

Purpur 是 Paper 的分支,所以 Paper 插件能在那里运行。Folia 改变了线程模型:插件必须针对它的区域调度器来编写,才能在 Folia 上运行。

我能用 Kotlin 写 Paper 插件吗?

能。Codexe 可以为同一个 Paper API 生成带 build.gradle.kts 的 Kotlin Gradle 项目。

现在就制作 Paper 插件

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

“一个名为 Bounties 的 Paper 1.21.4 插件:/bounty set <player> <amount>,使用 Vault 经济,击杀者获得奖励,/bounty list 显示前 10 名,悬赏在重启后保留,消息放在 config.yml 中。”

用 Codexe 生成这个
如何制作 Paper 插件(Minecraft) | Codexe