plugin.yml 参考
每个插件 JAR 的根目录必须包含 plugin.yml,定义插件元信息。
字段一览
| 字段 | 必填 | 类型 | 说明 |
|---|---|---|---|
name | ✅ | string | 插件名称(唯一标识,不可重复) |
version | ✅ | string | 插件版本号 |
main | ✅ | string | 主类全限定名(必须继承 JavaPlugin) |
description | ❌ | string | 插件描述 |
author | ❌ | string | 作者 |
depend | ❌ | string[] | 硬依赖列表(这些插件必须存在,否则加载失败) |
softdepend | ❌ | string[] | 软依赖列表(存在则先加载,不存在则跳过) |
完整示例
yaml
name: MyPlugin
version: "1.0.0"
main: com.example.myplugin.MyPlugin
description: "我的第一个 Bngeuit 插件"
author: "YourName"
depend:
- RequiredLibrary # 硬依赖:必须存在
softdepend:
- OptionalFeature # 软依赖:有则先加载
- NiceToHave依赖解析
硬依赖(depend)
- 必须存在于
plugins/目录中 - 依赖的插件会先于当前插件启用
- 如果依赖的插件不存在,当前插件加载失败并报错
yaml
depend:
- DatabasePlugin
- LoggingPlugin软依赖(softdepend)
- 可选:存在则先于当前插件加载,不存在则静默跳过
- 适用于功能增强型依赖(如:有经济系统就对接,没有也能独立运行)
- 加载顺序:硬依赖 → 软依赖 → 当前插件
yaml
softdepend:
- EconomyPlugin # 有就对接经济系统
- Vault # 有就用 Vault API加载顺序示例
假设有以下插件和依赖关系:
plugins/
├── Database.jar (name: DatabasePlugin)
├── Economy.jar (name: EconomyPlugin)
└── MyPlugin.jar (depend: [DatabasePlugin], softdepend: [EconomyPlugin, MissingPlugin])加载顺序:DatabasePlugin → EconomyPlugin → MyPlugin
DatabasePlugin是硬依赖,必须存在 ✅EconomyPlugin是软依赖,存在所以先加载 ✅MissingPlugin是软依赖但不存在,静默跳过 ✅
循环依赖
当前版本不检测循环依赖,请确保依赖关系是有向无环图(DAG),否则会导致栈溢出。
