- 欢迎来到Minecraft插件百科!
- 对百科编辑一脸懵逼?帮助:快速入门带您快速熟悉百科编辑!
- 因近日遭受攻击,百科现已限制编辑,有意编辑请加入插件百科企鹅群:223812289
检查单独更改
本页面允许您检查防滥用过滤器根据某次单独更改所生成的变量,并使用过滤器进行测试。
根据本次更改生成的变量
变量 | 值 |
---|---|
编辑是否被标记为小编辑 (minor_edit) | |
用户账户名称 (user_name) | Poikcue |
用户所在群组(包括隐藏群组) (user_groups) | *
user
|
页面编号 (article_articleid) | 0 |
页面名字空间 (article_namespace) | 0 |
页面标题(不含名字空间) (article_text) | Paper/Paper Plugin YML |
完整页面标题 (article_prefixedtext) | Paper/Paper Plugin YML |
最后十位对该页面贡献的用户 (article_recent_contributors) | |
操作 (action) | edit |
编辑摘要/原因 (summary) | |
旧的内容模型 (old_content_model) | |
新的内容模型 (new_content_model) | wikitext |
编辑前的旧页面,wiki代码格式 (old_wikitext) | |
编辑后的新页面,wiki代码格式 (new_wikitext) | plugin.yml 文件是你的插件最主要的配置文件。 它包含插件最基本的信息,比如插件名、版本和简要描述。它同时包括插件的依赖、权限和命令等。
plugin.yml 文件存放在项目 <code>resources</code> 文件夹中,项目目录结构如下图所示:
<pre>example-plugin
├── build.gradle.kts
├── settings.gradle.kts
└── src
└── main
├── java
└── resources
└── plugin.yml</pre>
== 例子 ==
这是一个 plugin.yml 模板:
<syntaxhighlight lang="yaml">name: ExamplePlugin
version: 1.0.0
main: io.papermc.testplugin.ExamplePlugin
description: An example plugin
author: PaperMC
website: https://papermc.io
api-version: 1.19</syntaxhighlight>
== 字段 ==
<blockquote>'''注意'''<br />
本文所列出的字段并未按任何特定顺序排列。<br />
如字段旁有星号 (*) ,则代表该字段为必填项。
</blockquote>
<span id="name"></span>
=== name* ===
你的插件名。将会在插件列表中(<code>/plugins</code> 指令)列出,并在日志文本中作为输出的默认前缀显示。<br />
如果为日志输出设定了前缀,则将被前缀覆盖。 - <code>name: ExamplePlugin</code>
<span id="version"></span>
=== version* ===
插件当前的版本。会在插件信息文本和服务器日志文本中显示。<br />
- <code>version: 1.0.0</code>
<span id="main"></span>
=== main* ===
插件的主类。主类是一个插件中唯一继承 <code>JavaPlugin</code> 的类,并且是插件执行的入口。<br />
- <code>main: io.papermc.testplugin.ExamplePlugin</code>
需要包含包的路径和主类的名字(不用带 .java 或者 .kt )
=== description ===
简单描述插件的作用。将会在插件信息命令中显示。 - <code>description: An example plugin</code>
<span id="author-authors"></span>
=== author / authors ===
插件的作者(们)。可以填写单个作者或作者列表。<br />
- <code>author: PaperMC</code> - <code>authors: [PaperMC, SpigotMC, Bukkit]</code> 将会在插件信息命令中显示。
=== website ===
插件的网站。连接到GitHub存储库或是插件发布页很有用。 - <code>website: https://papermc.io</code> 将会在插件信息命令中显示。
=== api-version ===
插件正在使用的 Paper API 版本。不包含次要版本(比如使用 <code>1.13.2-R0.1-SNAPSHOT</code> 版本的 Paper API 时,只需写 <code>1.13</code> ,后加 <code>.2</code> 反而无效)<br />
服务器版本低于此处填写的 API 版本将直接拒绝加载插件。<br />
有效的版本是 1.13-1.19<br />
- <code>api-version: 1.19</code>
<div class="warning">
如果没有指定此项,加载插件时会将其认定为过时插件并作特殊处理,同时在服务器后台输出一段警告。
</div>
=== load ===
服务器应当在何时加载插件。应该填写 <code>STARTUP</code> 或 <code>POSTWORLD</code>。 - <code>load: STARTUP</code>
=== prefix ===
插件的前缀。在日志中该前缀将取代插件名。 - <code>prefix: EpicPaperMCHypePlugin</code>
=== libraries ===
::: danger 警告<br />
这个功能目前违反 Maven 中央仓库 ( Maven Central ) 的服务条款 ( ToS ) 。不过很有可能保留此功能。<br />
:::
列出插件的部分依赖项。服务端将会从 Maven 中央仓库下载所列依赖项,并单独加入各个插件的 <code>classpath</code> 中。这样就无需再将依赖通过 <code>shade</code> 的方式打包进插件,也无需使用 <code>relocation</code> 来避免多个插件通过 <code>shade</code> 打包同一类库时由于依赖项版本不同而可能发生的冲突。
<syntaxhighlight lang="yaml">libraries:
- com.google.guava:guava:30.1.1-jre
- com.google.code.gson:gson:2.8.6</syntaxhighlight>
=== permissions ===
列出你的插件所使用的权限。可以用于限制玩家访问插件功能(如指令)。
<syntaxhighlight lang="yaml">permissions :
- permission.node:
description: "This is a permission node"
default: op
children:
- permission.node.child: true
- another.permission.node:
description: "This is another permission node"
default: not op</syntaxhighlight>
description是权限节点的描述。将会在权限列表中显示。default 是权限节点的默认值,可以设为为 <code>op</code> / <code>not op</code>或<code>true</code> / <code>false</code>。此值默认是 <code>op</code>。<br />
每个权限节点都可以有子权限。当设定为 <code>true</code> 时它将继承父权限。
<span id="commands"></span>
== Commands ==
列出插件使用的命令。在需要使用命令来提供某些功能时很有用。
<syntaxhighlight lang="yaml">commands:
- command:
description: "This is a command"
usage: "/command <arg>"
aliases: [cmd, command]
permission: permission.node
permission-message: "You do not have permission to use this command"</syntaxhighlight>
* '''description'''是命令的描述。简要的描述命令的作用。
* '''usage'''是命令的用法。将会在玩家运行 <code>/help <command></code> 命令时显示。
* '''aliases''' 是命令使用的一系列别名。对于缩短命令很有帮助。
* '''permission'''是玩家要使用此命令所需的权限节点。注意:只有在玩家有权使用该命令时它才会在客户端的补全候选项里显示。
* '''permission-message'''在玩家没有权限使用命令时显示的内容。
<span id="dependencies"></span>
== Dependencies ==
<blockquote>'''依赖死循环'''<br />
当插件指定了一个依赖插件时,被依赖的插件会在该插件加载之前先加载。<br />
如果依赖出现循环,那么将给插件加载过程带来严重问题。依赖的死循环可通过如下流程图表示:<br />
插件A -> 插件B -> 插件A -> 插件B…
在上图中,插件 A 将插件 B 作为依赖,而插件 B 又将插件 A 作为依赖。
</blockquote>
=== depend ===
列出插件要'''加载'''所依赖的前置插件。通过前置插件的名称来指定。
::: tip 注意 如果指定的依赖找不到,你的插件也不会加载。<br />
:::
* <code>depend: [Vault, WorldEdit]</code>
=== softdepend ===
插件的软依赖列表(如无所列依赖,插件也能正常加载,但不能提供全部功能)。通过软依赖插件的名称来指定。
* <code>softdepend: [Vault, WorldEdit]</code>
=== loadbefore ===
列出该插件应优先于哪些插件之前加载。通过插件的名称来指定。<br />
当某些插件需要使用你的插件所提供的 API 时,此功能很有用。
* <code>loadbefore: [Vault, FactionsUUID]</code> |
编辑产生的差异 (edit_diff) | @@ -1,1 +1,160 @@
+plugin.yml 文件是你的插件最主要的配置文件。 它包含插件最基本的信息,比如插件名、版本和简要描述。它同时包括插件的依赖、权限和命令等。
+plugin.yml 文件存放在项目 <code>resources</code> 文件夹中,项目目录结构如下图所示:
+
+<pre>example-plugin
+├── build.gradle.kts
+├── settings.gradle.kts
+└── src
+ └── main
+ ├── java
+ └── resources
+ └── plugin.yml</pre>
+== 例子 ==
+
+这是一个 plugin.yml 模板:
+
+<syntaxhighlight lang="yaml">name: ExamplePlugin
+version: 1.0.0
+main: io.papermc.testplugin.ExamplePlugin
+description: An example plugin
+author: PaperMC
+website: https://papermc.io
+api-version: 1.19</syntaxhighlight>
+== 字段 ==
+
+<blockquote>'''注意'''<br />
+本文所列出的字段并未按任何特定顺序排列。<br />
+如字段旁有星号 (*) ,则代表该字段为必填项。
+</blockquote>
+<span id="name"></span>
+=== name* ===
+
+你的插件名。将会在插件列表中(<code>/plugins</code> 指令)列出,并在日志文本中作为输出的默认前缀显示。<br />
+如果为日志输出设定了前缀,则将被前缀覆盖。 - <code>name: ExamplePlugin</code>
+
+<span id="version"></span>
+=== version* ===
+
+插件当前的版本。会在插件信息文本和服务器日志文本中显示。<br />
+- <code>version: 1.0.0</code>
+
+<span id="main"></span>
+=== main* ===
+
+插件的主类。主类是一个插件中唯一继承 <code>JavaPlugin</code> 的类,并且是插件执行的入口。<br />
+- <code>main: io.papermc.testplugin.ExamplePlugin</code>
+
+需要包含包的路径和主类的名字(不用带 .java 或者 .kt )
+
+=== description ===
+
+简单描述插件的作用。将会在插件信息命令中显示。 - <code>description: An example plugin</code>
+
+<span id="author-authors"></span>
+=== author / authors ===
+
+插件的作者(们)。可以填写单个作者或作者列表。<br />
+- <code>author: PaperMC</code> - <code>authors: [PaperMC, SpigotMC, Bukkit]</code> 将会在插件信息命令中显示。
+
+=== website ===
+
+插件的网站。连接到GitHub存储库或是插件发布页很有用。 - <code>website: https://papermc.io</code> 将会在插件信息命令中显示。
+
+=== api-version ===
+
+插件正在使用的 Paper API 版本。不包含次要版本(比如使用 <code>1.13.2-R0.1-SNAPSHOT</code> 版本的 Paper API 时,只需写 <code>1.13</code> ,后加 <code>.2</code> 反而无效)<br />
+服务器版本低于此处填写的 API 版本将直接拒绝加载插件。<br />
+有效的版本是 1.13-1.19<br />
+- <code>api-version: 1.19</code>
+
+<div class="warning">
+
+如果没有指定此项,加载插件时会将其认定为过时插件并作特殊处理,同时在服务器后台输出一段警告。
+
+
+</div>
+=== load ===
+
+服务器应当在何时加载插件。应该填写 <code>STARTUP</code> 或 <code>POSTWORLD</code>。 - <code>load: STARTUP</code>
+
+=== prefix ===
+
+插件的前缀。在日志中该前缀将取代插件名。 - <code>prefix: EpicPaperMCHypePlugin</code>
+
+=== libraries ===
+
+::: danger 警告<br />
+这个功能目前违反 Maven 中央仓库 ( Maven Central ) 的服务条款 ( ToS ) 。不过很有可能保留此功能。<br />
+:::
+
+列出插件的部分依赖项。服务端将会从 Maven 中央仓库下载所列依赖项,并单独加入各个插件的 <code>classpath</code> 中。这样就无需再将依赖通过 <code>shade</code> 的方式打包进插件,也无需使用 <code>relocation</code> 来避免多个插件通过 <code>shade</code> 打包同一类库时由于依赖项版本不同而可能发生的冲突。
+
+<syntaxhighlight lang="yaml">libraries:
+ - com.google.guava:guava:30.1.1-jre
+ - com.google.code.gson:gson:2.8.6</syntaxhighlight>
+=== permissions ===
+
+列出你的插件所使用的权限。可以用于限制玩家访问插件功能(如指令)。
+
+<syntaxhighlight lang="yaml">permissions :
+ - permission.node:
+ description: "This is a permission node"
+ default: op
+ children:
+ - permission.node.child: true
+ - another.permission.node:
+ description: "This is another permission node"
+ default: not op</syntaxhighlight>
+description是权限节点的描述。将会在权限列表中显示。default 是权限节点的默认值,可以设为为 <code>op</code> / <code>not op</code>或<code>true</code> / <code>false</code>。此值默认是 <code>op</code>。<br />
+每个权限节点都可以有子权限。当设定为 <code>true</code> 时它将继承父权限。
+
+<span id="commands"></span>
+== Commands ==
+
+列出插件使用的命令。在需要使用命令来提供某些功能时很有用。
+
+<syntaxhighlight lang="yaml">commands:
+ - command:
+ description: "This is a command"
+ usage: "/command <arg>"
+ aliases: [cmd, command]
+ permission: permission.node
+ permission-message: "You do not have permission to use this command"</syntaxhighlight>
+* '''description'''是命令的描述。简要的描述命令的作用。
+* '''usage'''是命令的用法。将会在玩家运行 <code>/help <command></code> 命令时显示。
+* '''aliases''' 是命令使用的一系列别名。对于缩短命令很有帮助。
+* '''permission'''是玩家要使用此命令所需的权限节点。注意:只有在玩家有权使用该命令时它才会在客户端的补全候选项里显示。
+* '''permission-message'''在玩家没有权限使用命令时显示的内容。
+
+<span id="dependencies"></span>
+== Dependencies ==
+
+<blockquote>'''依赖死循环'''<br />
+当插件指定了一个依赖插件时,被依赖的插件会在该插件加载之前先加载。<br />
+如果依赖出现循环,那么将给插件加载过程带来严重问题。依赖的死循环可通过如下流程图表示:<br />
+插件A -> 插件B -> 插件A -> 插件B…
+
+在上图中,插件 A 将插件 B 作为依赖,而插件 B 又将插件 A 作为依赖。
+</blockquote>
+=== depend ===
+
+列出插件要'''加载'''所依赖的前置插件。通过前置插件的名称来指定。
+
+::: tip 注意 如果指定的依赖找不到,你的插件也不会加载。<br />
+:::
+
+* <code>depend: [Vault, WorldEdit]</code>
+
+=== softdepend ===
+
+插件的软依赖列表(如无所列依赖,插件也能正常加载,但不能提供全部功能)。通过软依赖插件的名称来指定。
+
+* <code>softdepend: [Vault, WorldEdit]</code>
+
+=== loadbefore ===
+
+列出该插件应优先于哪些插件之前加载。通过插件的名称来指定。<br />
+当某些插件需要使用你的插件所提供的 API 时,此功能很有用。
+
+* <code>loadbefore: [Vault, FactionsUUID]</code>
|
新页面大小 (new_size) | 6767 |
编辑增加的行 (added_lines) | plugin.yml 文件是你的插件最主要的配置文件。 它包含插件最基本的信息,比如插件名、版本和简要描述。它同时包括插件的依赖、权限和命令等。
plugin.yml 文件存放在项目 <code>resources</code> 文件夹中,项目目录结构如下图所示:
<pre>example-plugin
├── build.gradle.kts
├── settings.gradle.kts
└── src
└── main
├── java
└── resources
└── plugin.yml</pre>
== 例子 ==
这是一个 plugin.yml 模板:
<syntaxhighlight lang="yaml">name: ExamplePlugin
version: 1.0.0
main: io.papermc.testplugin.ExamplePlugin
description: An example plugin
author: PaperMC
website: https://papermc.io
api-version: 1.19</syntaxhighlight>
== 字段 ==
<blockquote>'''注意'''<br />
本文所列出的字段并未按任何特定顺序排列。<br />
如字段旁有星号 (*) ,则代表该字段为必填项。
</blockquote>
<span id="name"></span>
=== name* ===
你的插件名。将会在插件列表中(<code>/plugins</code> 指令)列出,并在日志文本中作为输出的默认前缀显示。<br />
如果为日志输出设定了前缀,则将被前缀覆盖。 - <code>name: ExamplePlugin</code>
<span id="version"></span>
=== version* ===
插件当前的版本。会在插件信息文本和服务器日志文本中显示。<br />
- <code>version: 1.0.0</code>
<span id="main"></span>
=== main* ===
插件的主类。主类是一个插件中唯一继承 <code>JavaPlugin</code> 的类,并且是插件执行的入口。<br />
- <code>main: io.papermc.testplugin.ExamplePlugin</code>
需要包含包的路径和主类的名字(不用带 .java 或者 .kt )
=== description ===
简单描述插件的作用。将会在插件信息命令中显示。 - <code>description: An example plugin</code>
<span id="author-authors"></span>
=== author / authors ===
插件的作者(们)。可以填写单个作者或作者列表。<br />
- <code>author: PaperMC</code> - <code>authors: [PaperMC, SpigotMC, Bukkit]</code> 将会在插件信息命令中显示。
=== website ===
插件的网站。连接到GitHub存储库或是插件发布页很有用。 - <code>website: https://papermc.io</code> 将会在插件信息命令中显示。
=== api-version ===
插件正在使用的 Paper API 版本。不包含次要版本(比如使用 <code>1.13.2-R0.1-SNAPSHOT</code> 版本的 Paper API 时,只需写 <code>1.13</code> ,后加 <code>.2</code> 反而无效)<br />
服务器版本低于此处填写的 API 版本将直接拒绝加载插件。<br />
有效的版本是 1.13-1.19<br />
- <code>api-version: 1.19</code>
<div class="warning">
如果没有指定此项,加载插件时会将其认定为过时插件并作特殊处理,同时在服务器后台输出一段警告。
</div>
=== load ===
服务器应当在何时加载插件。应该填写 <code>STARTUP</code> 或 <code>POSTWORLD</code>。 - <code>load: STARTUP</code>
=== prefix ===
插件的前缀。在日志中该前缀将取代插件名。 - <code>prefix: EpicPaperMCHypePlugin</code>
=== libraries ===
::: danger 警告<br />
这个功能目前违反 Maven 中央仓库 ( Maven Central ) 的服务条款 ( ToS ) 。不过很有可能保留此功能。<br />
:::
列出插件的部分依赖项。服务端将会从 Maven 中央仓库下载所列依赖项,并单独加入各个插件的 <code>classpath</code> 中。这样就无需再将依赖通过 <code>shade</code> 的方式打包进插件,也无需使用 <code>relocation</code> 来避免多个插件通过 <code>shade</code> 打包同一类库时由于依赖项版本不同而可能发生的冲突。
<syntaxhighlight lang="yaml">libraries:
- com.google.guava:guava:30.1.1-jre
- com.google.code.gson:gson:2.8.6</syntaxhighlight>
=== permissions ===
列出你的插件所使用的权限。可以用于限制玩家访问插件功能(如指令)。
<syntaxhighlight lang="yaml">permissions :
- permission.node:
description: "This is a permission node"
default: op
children:
- permission.node.child: true
- another.permission.node:
description: "This is another permission node"
default: not op</syntaxhighlight>
description是权限节点的描述。将会在权限列表中显示。default 是权限节点的默认值,可以设为为 <code>op</code> / <code>not op</code>或<code>true</code> / <code>false</code>。此值默认是 <code>op</code>。<br />
每个权限节点都可以有子权限。当设定为 <code>true</code> 时它将继承父权限。
<span id="commands"></span>
== Commands ==
列出插件使用的命令。在需要使用命令来提供某些功能时很有用。
<syntaxhighlight lang="yaml">commands:
- command:
description: "This is a command"
usage: "/command <arg>"
aliases: [cmd, command]
permission: permission.node
permission-message: "You do not have permission to use this command"</syntaxhighlight>
* '''description'''是命令的描述。简要的描述命令的作用。
* '''usage'''是命令的用法。将会在玩家运行 <code>/help <command></code> 命令时显示。
* '''aliases''' 是命令使用的一系列别名。对于缩短命令很有帮助。
* '''permission'''是玩家要使用此命令所需的权限节点。注意:只有在玩家有权使用该命令时它才会在客户端的补全候选项里显示。
* '''permission-message'''在玩家没有权限使用命令时显示的内容。
<span id="dependencies"></span>
== Dependencies ==
<blockquote>'''依赖死循环'''<br />
当插件指定了一个依赖插件时,被依赖的插件会在该插件加载之前先加载。<br />
如果依赖出现循环,那么将给插件加载过程带来严重问题。依赖的死循环可通过如下流程图表示:<br />
插件A -> 插件B -> 插件A -> 插件B…
在上图中,插件 A 将插件 B 作为依赖,而插件 B 又将插件 A 作为依赖。
</blockquote>
=== depend ===
列出插件要'''加载'''所依赖的前置插件。通过前置插件的名称来指定。
::: tip 注意 如果指定的依赖找不到,你的插件也不会加载。<br />
:::
* <code>depend: [Vault, WorldEdit]</code>
=== softdepend ===
插件的软依赖列表(如无所列依赖,插件也能正常加载,但不能提供全部功能)。通过软依赖插件的名称来指定。
* <code>softdepend: [Vault, WorldEdit]</code>
=== loadbefore ===
列出该插件应优先于哪些插件之前加载。通过插件的名称来指定。<br />
当某些插件需要使用你的插件所提供的 API 时,此功能很有用。
* <code>loadbefore: [Vault, FactionsUUID]</code>
|
编辑后的新页面,已解析为HTML源码 (new_html) | <div class="mw-parser-output"><p>plugin.yml 文件是你的插件最主要的配置文件。 它包含插件最基本的信息,比如插件名、版本和简要描述。它同时包括插件的依赖、权限和命令等。
</p><p>plugin.yml 文件存放在项目 <code>resources</code> 文件夹中,项目目录结构如下图所示:
</p>
<pre>example-plugin
├── build.gradle.kts
├── settings.gradle.kts
└── src
└── main
├── java
└── resources
└── plugin.yml</pre>
<div id="toc" class="toc"><div class="toctitle" lang="zh-CN" dir="ltr"><h2>目录</h2></div>
<ul>
<li class="toclevel-1 tocsection-1"><a href="#.E4.BE.8B.E5.AD.90"><span class="tocnumber">1</span> <span class="toctext">例子</span></a></li>
<li class="toclevel-1 tocsection-2"><a href="#.E5.AD.97.E6.AE.B5"><span class="tocnumber">2</span> <span class="toctext">字段</span></a>
<ul>
<li class="toclevel-2 tocsection-3"><a href="#name.2A"><span class="tocnumber">2.1</span> <span class="toctext">name*</span></a></li>
<li class="toclevel-2 tocsection-4"><a href="#version.2A"><span class="tocnumber">2.2</span> <span class="toctext">version*</span></a></li>
<li class="toclevel-2 tocsection-5"><a href="#main.2A"><span class="tocnumber">2.3</span> <span class="toctext">main*</span></a></li>
<li class="toclevel-2 tocsection-6"><a href="#description"><span class="tocnumber">2.4</span> <span class="toctext">description</span></a></li>
<li class="toclevel-2 tocsection-7"><a href="#author_.2F_authors"><span class="tocnumber">2.5</span> <span class="toctext">author / authors</span></a></li>
<li class="toclevel-2 tocsection-8"><a href="#website"><span class="tocnumber">2.6</span> <span class="toctext">website</span></a></li>
<li class="toclevel-2 tocsection-9"><a href="#api-version"><span class="tocnumber">2.7</span> <span class="toctext">api-version</span></a></li>
<li class="toclevel-2 tocsection-10"><a href="#load"><span class="tocnumber">2.8</span> <span class="toctext">load</span></a></li>
<li class="toclevel-2 tocsection-11"><a href="#prefix"><span class="tocnumber">2.9</span> <span class="toctext">prefix</span></a></li>
<li class="toclevel-2 tocsection-12"><a href="#libraries"><span class="tocnumber">2.10</span> <span class="toctext">libraries</span></a></li>
<li class="toclevel-2 tocsection-13"><a href="#permissions"><span class="tocnumber">2.11</span> <span class="toctext">permissions</span></a></li>
</ul>
</li>
<li class="toclevel-1 tocsection-14"><a href="#Commands"><span class="tocnumber">3</span> <span class="toctext">Commands</span></a></li>
<li class="toclevel-1 tocsection-15"><a href="#Dependencies"><span class="tocnumber">4</span> <span class="toctext">Dependencies</span></a>
<ul>
<li class="toclevel-2 tocsection-16"><a href="#depend"><span class="tocnumber">4.1</span> <span class="toctext">depend</span></a></li>
<li class="toclevel-2 tocsection-17"><a href="#softdepend"><span class="tocnumber">4.2</span> <span class="toctext">softdepend</span></a></li>
<li class="toclevel-2 tocsection-18"><a href="#loadbefore"><span class="tocnumber">4.3</span> <span class="toctext">loadbefore</span></a></li>
</ul>
</li>
</ul>
</div>
<h2><span id="例子"></span><span class="mw-headline" id=".E4.BE.8B.E5.AD.90">例子</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Paper/Paper_Plugin_YML&action=edit&section=1" title="编辑小节:例子">编辑</a><span class="mw-editsection-bracket">]</span></span></h2>
<p>这是一个 plugin.yml 模板:
</p>
<div class="mw-highlight mw-content-ltr" dir="ltr"><pre><span></span><span class="l l-Scalar l-Scalar-Plain">name</span><span class="p p-Indicator">:</span> <span class="l l-Scalar l-Scalar-Plain">ExamplePlugin</span>
<span class="l l-Scalar l-Scalar-Plain">version</span><span class="p p-Indicator">:</span> <span class="l l-Scalar l-Scalar-Plain">1.0.0</span>
<span class="l l-Scalar l-Scalar-Plain">main</span><span class="p p-Indicator">:</span> <span class="l l-Scalar l-Scalar-Plain">io.papermc.testplugin.ExamplePlugin</span>
<span class="l l-Scalar l-Scalar-Plain">description</span><span class="p p-Indicator">:</span> <span class="l l-Scalar l-Scalar-Plain">An example plugin</span>
<span class="l l-Scalar l-Scalar-Plain">author</span><span class="p p-Indicator">:</span> <span class="l l-Scalar l-Scalar-Plain">PaperMC</span>
<span class="l l-Scalar l-Scalar-Plain">website</span><span class="p p-Indicator">:</span> <span class="l l-Scalar l-Scalar-Plain">https://papermc.io</span>
<span class="l l-Scalar l-Scalar-Plain">api-version</span><span class="p p-Indicator">:</span> <span class="l l-Scalar l-Scalar-Plain">1.19</span>
</pre></div>
<h2><span id="字段"></span><span class="mw-headline" id=".E5.AD.97.E6.AE.B5">字段</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Paper/Paper_Plugin_YML&action=edit&section=2" title="编辑小节:字段">编辑</a><span class="mw-editsection-bracket">]</span></span></h2>
<blockquote><p><b>注意</b><br />
</p><p>本文所列出的字段并未按任何特定顺序排列。<br />
如字段旁有星号 (*) ,则代表该字段为必填项。
</p>
</blockquote>
<p><span id="name"></span>
</p>
<h3><span id="name*"></span><span class="mw-headline" id="name.2A">name*</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Paper/Paper_Plugin_YML&action=edit&section=3" title="编辑小节:name*">编辑</a><span class="mw-editsection-bracket">]</span></span></h3>
<p>你的插件名。将会在插件列表中(<code>/plugins</code> 指令)列出,并在日志文本中作为输出的默认前缀显示。<br />
如果为日志输出设定了前缀,则将被前缀覆盖。 - <code>name: ExamplePlugin</code>
</p><p><span id="version"></span>
</p>
<h3><span id="version*"></span><span class="mw-headline" id="version.2A">version*</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Paper/Paper_Plugin_YML&action=edit&section=4" title="编辑小节:version*">编辑</a><span class="mw-editsection-bracket">]</span></span></h3>
<p>插件当前的版本。会在插件信息文本和服务器日志文本中显示。<br />
- <code>version: 1.0.0</code>
</p><p><span id="main"></span>
</p>
<h3><span id="main*"></span><span class="mw-headline" id="main.2A">main*</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Paper/Paper_Plugin_YML&action=edit&section=5" title="编辑小节:main*">编辑</a><span class="mw-editsection-bracket">]</span></span></h3>
<p>插件的主类。主类是一个插件中唯一继承 <code>JavaPlugin</code> 的类,并且是插件执行的入口。<br />
- <code>main: io.papermc.testplugin.ExamplePlugin</code>
</p><p>需要包含包的路径和主类的名字(不用带 .java 或者 .kt )
</p>
<h3><span class="mw-headline" id="description">description</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Paper/Paper_Plugin_YML&action=edit&section=6" title="编辑小节:description">编辑</a><span class="mw-editsection-bracket">]</span></span></h3>
<p>简单描述插件的作用。将会在插件信息命令中显示。 - <code>description: An example plugin</code>
</p><p><span id="author-authors"></span>
</p>
<h3><span id="author_/_authors"></span><span class="mw-headline" id="author_.2F_authors">author / authors</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Paper/Paper_Plugin_YML&action=edit&section=7" title="编辑小节:author / authors">编辑</a><span class="mw-editsection-bracket">]</span></span></h3>
<p>插件的作者(们)。可以填写单个作者或作者列表。<br />
- <code>author: PaperMC</code> - <code>authors: [PaperMC, SpigotMC, Bukkit]</code> 将会在插件信息命令中显示。
</p>
<h3><span class="mw-headline" id="website">website</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Paper/Paper_Plugin_YML&action=edit&section=8" title="编辑小节:website">编辑</a><span class="mw-editsection-bracket">]</span></span></h3>
<p>插件的网站。连接到GitHub存储库或是插件发布页很有用。 - <code>website: <a class="external free" href="https://papermc.io">https://papermc.io</a></code> 将会在插件信息命令中显示。
</p>
<h3><span class="mw-headline" id="api-version">api-version</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Paper/Paper_Plugin_YML&action=edit&section=9" title="编辑小节:api-version">编辑</a><span class="mw-editsection-bracket">]</span></span></h3>
<p>插件正在使用的 Paper API 版本。不包含次要版本(比如使用 <code>1.13.2-R0.1-SNAPSHOT</code> 版本的 Paper API 时,只需写 <code>1.13</code> ,后加 <code>.2</code> 反而无效)<br />
服务器版本低于此处填写的 API 版本将直接拒绝加载插件。<br />
有效的版本是 1.13-1.19<br />
- <code>api-version: 1.19</code>
</p>
<div class="warning">
<p>如果没有指定此项,加载插件时会将其认定为过时插件并作特殊处理,同时在服务器后台输出一段警告。
</p><p><br />
</p>
</div>
<h3><span class="mw-headline" id="load">load</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Paper/Paper_Plugin_YML&action=edit&section=10" title="编辑小节:load">编辑</a><span class="mw-editsection-bracket">]</span></span></h3>
<p>服务器应当在何时加载插件。应该填写 <code>STARTUP</code> 或 <code>POSTWORLD</code>。 - <code>load: STARTUP</code>
</p>
<h3><span class="mw-headline" id="prefix">prefix</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Paper/Paper_Plugin_YML&action=edit&section=11" title="编辑小节:prefix">编辑</a><span class="mw-editsection-bracket">]</span></span></h3>
<p>插件的前缀。在日志中该前缀将取代插件名。 - <code>prefix: EpicPaperMCHypePlugin</code>
</p>
<h3><span class="mw-headline" id="libraries">libraries</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Paper/Paper_Plugin_YML&action=edit&section=12" title="编辑小节:libraries">编辑</a><span class="mw-editsection-bracket">]</span></span></h3>
<dl><dd><dl><dd><dl><dd>danger 警告<br /></dd></dl></dd></dl></dd></dl>
<p>这个功能目前违反 Maven 中央仓库 ( Maven Central ) 的服务条款 ( ToS ) 。不过很有可能保留此功能。<br />
</p>
<dl><dd><dl><dd><dl><dd></dd></dl></dd></dl></dd></dl>
<p>列出插件的部分依赖项。服务端将会从 Maven 中央仓库下载所列依赖项,并单独加入各个插件的 <code>classpath</code> 中。这样就无需再将依赖通过 <code>shade</code> 的方式打包进插件,也无需使用 <code>relocation</code> 来避免多个插件通过 <code>shade</code> 打包同一类库时由于依赖项版本不同而可能发生的冲突。
</p>
<div class="mw-highlight mw-content-ltr" dir="ltr"><pre><span></span><span class="l l-Scalar l-Scalar-Plain">libraries</span><span class="p p-Indicator">:</span>
<span class="p p-Indicator">-</span> <span class="l l-Scalar l-Scalar-Plain">com.google.guava:guava:30.1.1-jre</span>
<span class="p p-Indicator">-</span> <span class="l l-Scalar l-Scalar-Plain">com.google.code.gson:gson:2.8.6</span>
</pre></div>
<h3><span class="mw-headline" id="permissions">permissions</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Paper/Paper_Plugin_YML&action=edit&section=13" title="编辑小节:permissions">编辑</a><span class="mw-editsection-bracket">]</span></span></h3>
<p>列出你的插件所使用的权限。可以用于限制玩家访问插件功能(如指令)。
</p>
<div class="mw-highlight mw-content-ltr" dir="ltr"><pre><span></span><span class="l l-Scalar l-Scalar-Plain">permissions</span> <span class="p p-Indicator">:</span>
<span class="p p-Indicator">-</span> <span class="l l-Scalar l-Scalar-Plain">permission.node</span><span class="p p-Indicator">:</span>
<span class="l l-Scalar l-Scalar-Plain">description</span><span class="p p-Indicator">:</span> <span class="s">"This</span><span class="nv"> </span><span class="s">is</span><span class="nv"> </span><span class="s">a</span><span class="nv"> </span><span class="s">permission</span><span class="nv"> </span><span class="s">node"</span>
<span class="l l-Scalar l-Scalar-Plain">default</span><span class="p p-Indicator">:</span> <span class="l l-Scalar l-Scalar-Plain">op</span>
<span class="l l-Scalar l-Scalar-Plain">children</span><span class="p p-Indicator">:</span>
<span class="p p-Indicator">-</span> <span class="l l-Scalar l-Scalar-Plain">permission.node.child</span><span class="p p-Indicator">:</span> <span class="l l-Scalar l-Scalar-Plain">true</span>
<span class="p p-Indicator">-</span> <span class="l l-Scalar l-Scalar-Plain">another.permission.node</span><span class="p p-Indicator">:</span>
<span class="l l-Scalar l-Scalar-Plain">description</span><span class="p p-Indicator">:</span> <span class="s">"This</span><span class="nv"> </span><span class="s">is</span><span class="nv"> </span><span class="s">another</span><span class="nv"> </span><span class="s">permission</span><span class="nv"> </span><span class="s">node"</span>
<span class="l l-Scalar l-Scalar-Plain">default</span><span class="p p-Indicator">:</span> <span class="l l-Scalar l-Scalar-Plain">not op</span>
</pre></div>
<p>description是权限节点的描述。将会在权限列表中显示。default 是权限节点的默认值,可以设为为 <code>op</code> / <code>not op</code>或<code>true</code> / <code>false</code>。此值默认是 <code>op</code>。<br />
每个权限节点都可以有子权限。当设定为 <code>true</code> 时它将继承父权限。
</p><p><span id="commands"></span>
</p>
<h2><span class="mw-headline" id="Commands">Commands</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Paper/Paper_Plugin_YML&action=edit&section=14" title="编辑小节:Commands">编辑</a><span class="mw-editsection-bracket">]</span></span></h2>
<p>列出插件使用的命令。在需要使用命令来提供某些功能时很有用。
</p>
<div class="mw-highlight mw-content-ltr" dir="ltr"><pre><span></span><span class="l l-Scalar l-Scalar-Plain">commands</span><span class="p p-Indicator">:</span>
<span class="p p-Indicator">-</span> <span class="l l-Scalar l-Scalar-Plain">command</span><span class="p p-Indicator">:</span>
<span class="l l-Scalar l-Scalar-Plain">description</span><span class="p p-Indicator">:</span> <span class="s">"This</span><span class="nv"> </span><span class="s">is</span><span class="nv"> </span><span class="s">a</span><span class="nv"> </span><span class="s">command"</span>
<span class="l l-Scalar l-Scalar-Plain">usage</span><span class="p p-Indicator">:</span> <span class="s">"/command</span><span class="nv"> </span><span class="s"><arg>"</span>
<span class="l l-Scalar l-Scalar-Plain">aliases</span><span class="p p-Indicator">:</span> <span class="p p-Indicator">[</span><span class="nv">cmd</span><span class="p p-Indicator">,</span> <span class="nv">command</span><span class="p p-Indicator">]</span>
<span class="l l-Scalar l-Scalar-Plain">permission</span><span class="p p-Indicator">:</span> <span class="l l-Scalar l-Scalar-Plain">permission.node</span>
<span class="l l-Scalar l-Scalar-Plain">permission-message</span><span class="p p-Indicator">:</span> <span class="s">"You</span><span class="nv"> </span><span class="s">do</span><span class="nv"> </span><span class="s">not</span><span class="nv"> </span><span class="s">have</span><span class="nv"> </span><span class="s">permission</span><span class="nv"> </span><span class="s">to</span><span class="nv"> </span><span class="s">use</span><span class="nv"> </span><span class="s">this</span><span class="nv"> </span><span class="s">command"</span>
</pre></div>
<ul><li><b>description</b>是命令的描述。简要的描述命令的作用。</li>
<li><b>usage</b>是命令的用法。将会在玩家运行 <code>/help <command></code> 命令时显示。</li>
<li><b>aliases</b> 是命令使用的一系列别名。对于缩短命令很有帮助。</li>
<li><b>permission</b>是玩家要使用此命令所需的权限节点。注意:只有在玩家有权使用该命令时它才会在客户端的补全候选项里显示。</li>
<li><b>permission-message</b>在玩家没有权限使用命令时显示的内容。</li></ul>
<p><span id="dependencies"></span>
</p>
<h2><span class="mw-headline" id="Dependencies">Dependencies</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Paper/Paper_Plugin_YML&action=edit&section=15" title="编辑小节:Dependencies">编辑</a><span class="mw-editsection-bracket">]</span></span></h2>
<blockquote><p><b>依赖死循环</b><br />
</p><p>当插件指定了一个依赖插件时,被依赖的插件会在该插件加载之前先加载。<br />
如果依赖出现循环,那么将给插件加载过程带来严重问题。依赖的死循环可通过如下流程图表示:<br />
插件A -> 插件B -> 插件A -> 插件B…
</p><p>在上图中,插件 A 将插件 B 作为依赖,而插件 B 又将插件 A 作为依赖。
</p>
</blockquote>
<h3><span class="mw-headline" id="depend">depend</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Paper/Paper_Plugin_YML&action=edit&section=16" title="编辑小节:depend">编辑</a><span class="mw-editsection-bracket">]</span></span></h3>
<p>列出插件要<b>加载</b>所依赖的前置插件。通过前置插件的名称来指定。
</p>
<dl><dd><dl><dd><dl><dd>tip 注意 如果指定的依赖找不到,你的插件也不会加载。<br /></dd>
<dd></dd></dl></dd></dl></dd></dl>
<ul><li><code>depend: [Vault, WorldEdit]</code></li></ul>
<h3><span class="mw-headline" id="softdepend">softdepend</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Paper/Paper_Plugin_YML&action=edit&section=17" title="编辑小节:softdepend">编辑</a><span class="mw-editsection-bracket">]</span></span></h3>
<p>插件的软依赖列表(如无所列依赖,插件也能正常加载,但不能提供全部功能)。通过软依赖插件的名称来指定。
</p>
<ul><li><code>softdepend: [Vault, WorldEdit]</code></li></ul>
<h3><span class="mw-headline" id="loadbefore">loadbefore</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Paper/Paper_Plugin_YML&action=edit&section=18" title="编辑小节:loadbefore">编辑</a><span class="mw-editsection-bracket">]</span></span></h3>
<p>列出该插件应优先于哪些插件之前加载。通过插件的名称来指定。<br />
当某些插件需要使用你的插件所提供的 API 时,此功能很有用。
</p>
<ul><li><code>loadbefore: [Vault, FactionsUUID]</code></li></ul>
<!--
NewPP limit report
Cached time: 20221125141612
Cache expiry: 86400
Dynamic content: false
CPU time usage: 0.028 seconds
Real time usage: 0.496 seconds
Preprocessor visited node count: 140/1000000
Preprocessor generated node count: 224/1000000
Post‐expand include size: 0/2097152 bytes
Template argument size: 0/2097152 bytes
Highest expansion depth: 2/40
Expensive parser function count: 0/100
Unstrip recursion depth: 0/20
Unstrip post‐expand size: 5536/5000000 bytes
-->
<!--
Transclusion expansion time report (%,ms,calls,template)
100.00% 0.000 1 -total
-->
</div> |
更改的Unix时间戳 (timestamp) | 1669385771 |