深入 plugin.yml
plugin.yml 是服务端识别插件的依据。加载插件时,服务端读完 jar 后第一件事就是读 plugin.yml——删掉它会直接报错:
Could not load 'plugins\[YOUR_PLUGIN].jar'
org.bukkit.plugin.InvalidDescriptionException: Invalid plugin.yml完整文档见 SpigotMC 的 plugin.yml 说明。
必要设置项
name、main、version 三项必须存在(author 可省)。
name
插件名。官方要求只能由英文字母、数字、下划线构成,禁止中文、空格。这个名字会成为 plugins/ 下插件配置文件夹的名字。起名尽量独特,避免与其他插件重名。
version
版本号。理论可填任意字符串,但建议用 X.X.X 格式(如 2.3.3),参考语义化版本。
main
主类完整名(含包名)。主类有且只有一个,必须继承 JavaPlugin。如 tdiant.helloworld.HelloWorld。
可选设置项
依赖(depend / softdepend)
你的插件要调用别的插件(如用 Vault 查余额),得声明依赖,保证被依赖的插件先于你加载:
yml
depend: [Vault, WorldEdit]
softdepend: [Essentials]| 键 | 含义 |
|---|---|
depend | 强制依赖。被依赖的插件不存在,你的插件无法加载 |
softdepend | 软依赖。不存在也能工作,存在则先于你加载 |
数组里填的是被依赖插件的 name(即它的 plugin.yml 里的 name 值)。
loadbefore
depend/softdepend 让你在某插件之后加载。若需要你在某插件之前加载,用 loadbefore:
yml
loadbefore: [Essentials, WorldEdit]commands
定义命令(详见命令执行器):
yml
commands:
test:
description: "Hello World!"
aliases: [t]
permission: test.usepermissions
声明权限节点,方便在 /permissions 或权限插件里管理:
yml
permissions:
test.use:
description: 允许使用 test 命令
default: truedefault 可选值:true(所有人)、false(无人)、op(仅 OP)、not op(非 OP)。
author / authors
yml
author: tdiant
# 多作者用 authors
authors: [tdiant, Seraph_JACK]TIP
同时存在 author 和 authors 时,author 被忽略。
api-version
1.13+ 插件必填,告诉 Bukkit 你基于新版 API:
yml
api-version: 1.13其他
还有 website(插件主页)、prefix(日志前缀)、load(加载时机 STARTUP/POSTWORLD)等,按需查阅官方文档。
完整示例
yml
name: MyPlugin
main: com.example.myplugin.MyPlugin
version: 1.0.0
api-version: 1.13
author: ExampleTeam
website: https://example.com
depend: [Vault]
softdepend: [PlaceholderAPI]
loadbefore: [OtherPlugin]
commands:
mycmd:
description: 我的主命令
aliases: [mc]
permission: myplugin.use
permissions:
myplugin.use:
description: 使用主命令
default: true
myplugin.admin:
description: 管理权限
default: op下一篇配置序列化与遍历。
