快速开始
项目定位
BetterPlugin 是面向 Paper 服务器的插件开发框架,按能力拆成几个模块:
| 模块 | 包路径 | 说明 | 文档 |
|---|---|---|---|
| 插件基础 | org.coffeepop.betterPlugin.api.plugin | 插件入口基类(PluginBase) | 插件基础 |
| 命令 API | org.coffeepop.betterPlugin.api.command | 命令注册与执行 | 命令 API |
| 异常 | org.coffeepop.betterPlugin.api.exception | 框架公共异常类型 | 异常 |
选择入口类
你有两条等价的路:
- 直接继承
JavaPlugin。命令模块只要求传入JavaPlugin实例,这条路完全可行。 - 继承
PluginBase。它在JavaPlugin之上提供常用助手:带默认值的配置读取、日志短别名、自动清理的任务调度、runWhenReady和command()快捷方式。详见 插件入口。
两条路都能正常使用 CommandBuilder,详见 插件基础。
添加依赖
第三方插件通过 JitPack 使用已发布的 tag,不用本地构建。在使用方项目的 build.gradle.kts 中添加:
kotlin
repositories {
maven("https://jitpack.io")
}
dependencies {
compileOnly("com.github.CoffeePopStudio:BetterPlugin:26.13.0-mc26.1.2")
}某个版本第一次被请求时,JitPack 会在云端构建,可能需要等一会儿;构建状态与版本列表见 JitPack。
声明运行期依赖
在 plugin.yml 中声明依赖,并把 BetterPlugin 的 jar 放到服务端的 plugins/ 目录:
yml
name: MyPlugin
version: 1.0.0
main: com.example.MyPlugin
api-version: '26.1.2'
depend: [BetterPlugin]完整接入说明见 集成接入。
注册第一条命令
java
import org.bukkit.plugin.java.JavaPlugin;
import org.coffeepop.betterPlugin.api.command.CommandBuilder;
public class MyPlugin extends JavaPlugin {
@Override
public void onEnable() {
CommandBuilder.create(this)
.name("ping")
.executes((sender, command, label, args) -> {
sender.sendPlainMessage("pong");
return true;
})
.register();
}
}无需在 plugin.yml 中维护 commands: 段,命令由框架统一注册。
register()必须在onEnable()阶段调用,也就是 Paper 的COMMANDS启动事件之前;放在命令执行器、定时任务或服务器启动完成后调用,命令不会生效,并会记录警告。