Skip to content

plugin.yml 参考

每个插件 JAR 的根目录必须包含 plugin.yml,定义插件元信息。

字段一览

字段必填类型说明
namestring插件名称(唯一标识,不可重复)
versionstring插件版本号
mainstring主类全限定名(必须继承 JavaPlugin
descriptionstring插件描述
authorstring作者
dependstring[]硬依赖列表(这些插件必须存在,否则加载失败)
softdependstring[]软依赖列表(存在则先加载,不存在则跳过)

完整示例

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])

加载顺序:DatabasePluginEconomyPluginMyPlugin

  • DatabasePlugin 是硬依赖,必须存在 ✅
  • EconomyPlugin 是软依赖,存在所以先加载 ✅
  • MissingPlugin 是软依赖但不存在,静默跳过 ✅

循环依赖

当前版本不检测循环依赖,请确保依赖关系是有向无环图(DAG),否则会导致栈溢出。