Skip to content

深入 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.use

permissions ​

声明权限节点,方便在 /permissions 或权限插件里管理:

yml
permissions:
  test.use:
    description: 允许使用 test 命令
    default: true

default 可选值: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

下一篇配置序列化与遍历。