(Add prefix) |
ChrisGWard (talk | contribs) m (Remove nowiki tags - already in an escaped area, apparently) |
||
(10 intermediate revisions by 4 users not shown) | |||
Line 1: | Line 1: | ||
+ | {{DocsInclude}} |
||
When Bukkit loads a plugin, it needs to know some basic information about it. It reads this information from a YAML file, 'plugin.yml'. This file consists of a set of attributes, each defined on a new line and with no indentation. |
When Bukkit loads a plugin, it needs to know some basic information about it. It reads this information from a YAML file, 'plugin.yml'. This file consists of a set of attributes, each defined on a new line and with no indentation. |
||
− | {| cellspacing="0" cellpadding="4" border="1" |
+ | {| cellspacing="0" cellpadding="4" border="1" class="wikitable" |
|+ Attributes |
|+ Attributes |
||
|- |
|- |
||
Line 26: | Line 27: | ||
| |
| |
||
*Version is an arbitrary string, however the most common format is MajorRelease.MinorRelease.Build (eg: 1.4.1). |
*Version is an arbitrary string, however the most common format is MajorRelease.MinorRelease.Build (eg: 1.4.1). |
||
− | *Typically you will increment this |
+ | *Typically you will increment this every time you release a new feature or bug fix. |
*Displayed when a user types <code>/version PluginName</code> |
*Displayed when a user types <code>/version PluginName</code> |
||
Line 71: | Line 72: | ||
| <code>website: http://forums.bukkit.org/threads/MyPlugin.31337/</code> |
| <code>website: http://forums.bukkit.org/threads/MyPlugin.31337/</code> |
||
| |
| |
||
− | *If you have no dedicated website, a link to the |
+ | *If you have no dedicated website, a link to the Bukkit forum post where this plugin is listed is highly recommended. |
*Displayed when a user types <code>/version PluginName</code> |
*Displayed when a user types <code>/version PluginName</code> |
||
Line 97: | Line 98: | ||
| <code>depend: [OnePlugin, AnotherPlugin]</code> |
| <code>depend: [OnePlugin, AnotherPlugin]</code> |
||
| |
| |
||
− | *The |
+ | *The value must be in YAML list format (See http://en.wikipedia.org/wiki/YAML#Lists ) |
− | *Use the "name" attribute of the required plugin in order to specify the |
+ | *Use the "name" attribute of the required plugin in order to specify the dependency. |
*If any plugin listed here is not found your plugin will fail to load. |
*If any plugin listed here is not found your plugin will fail to load. |
||
+ | *If multiple plugins list each other as a depend, so that there are no plugins without an unloadable dependency, all will fail to load. |
||
*(See: Wiki: Plugin_Dependencies) |
*(See: Wiki: Plugin_Dependencies) |
||
⚫ | |||
− | |||
⚫ | |||
⚫ | |||
+ | | The name to use when logging to console instead of the plugin's name. |
||
⚫ | |||
⚫ | |||
|- |
|- |
||
| softdepend |
| softdepend |
||
Line 108: | Line 115: | ||
| <code>softdepend: [OnePlugin, AnotherPlugin]</code> |
| <code>softdepend: [OnePlugin, AnotherPlugin]</code> |
||
| |
| |
||
− | *The |
+ | *The value must be in YAML list format (See http://en.wikipedia.org/wiki/YAML#Lists ) |
*Use the "name" atrribute of the desired plugin in order to specify the dependancy. |
*Use the "name" atrribute of the desired plugin in order to specify the dependancy. |
||
− | * |
+ | *Your plugin will load after any plugins listed here. |
+ | *Circular soft dependencies are loaded arbitrarily. |
||
+ | *(See: Wiki: Plugin_Dependencies) |
||
+ | |||
⚫ | |||
+ | | loadbefore |
||
+ | | no |
||
+ | | A list of plugins should be loaded after your plugin. |
||
+ | | <code>loadbefore: [OnePlugin, AnotherPlugin]</code> |
||
+ | | |
||
+ | *The value must be in YAML list format (See http://en.wikipedia.org/wiki/YAML#Lists ) |
||
+ | *Treated as if the listed plugin soft depends on the specifying plugin. |
||
+ | *Use the "name" atrribute of the desired plugin in order to specify the target. |
||
+ | *Your plugin will load before any plugins listed here. |
||
+ | *Circular soft dependencies are loaded arbitrarily. |
||
*(See: Wiki: Plugin_Dependencies) |
*(See: Wiki: Plugin_Dependencies) |
||
Line 118: | Line 139: | ||
| The name of a command the plugin wishes to register, as well as an optional list of command attributes. |
| The name of a command the plugin wishes to register, as well as an optional list of command attributes. |
||
| |
| |
||
− | <code></code> <code></code> <code></code> <code></code> <code></code> <code></code> <code></code> <code></code> <code></code> <code></code> |
||
<code> |
<code> |
||
commands: |
commands: |
||
Line 124: | Line 144: | ||
[optional command attributes] |
[optional command attributes] |
||
</code> |
</code> |
||
− | <code></code> <code></code> <code></code> <code></code> <code></code> <code></code> <code></code> <code></code> <code></code> <code></code> |
||
| |
| |
||
Line 144: | Line 163: | ||
*Permission registration is optional, can also be done from code |
*Permission registration is optional, can also be done from code |
||
*Permission registration allows you to set descriptions, defaults, and child parent relationships |
*Permission registration allows you to set descriptions, defaults, and child parent relationships |
||
− | * |
+ | *Permission names should be kept in the style of <pluginname>.[category].[category].<permission> |
|} |
|} |
||
Line 151: | Line 170: | ||
A command block starts with the command's name, and then has a list of attributes. |
A command block starts with the command's name, and then has a list of attributes. |
||
− | {| cellspacing="0" cellpadding="4" border="1" |
+ | {| cellspacing="0" cellpadding="4" border="1" class="wikitable" |
|- |
|- |
||
! Command Attribute |
! Command Attribute |
||
Line 169: | Line 188: | ||
| aliases |
| aliases |
||
| no |
| no |
||
− | | Alternate command |
+ | | Alternate command names a user may use instead |
| |
| |
||
<code>aliases: combust_me</code> OR |
<code>aliases: combust_me</code> OR |
||
− | <code>aliases: [combust_me, combustMe]</code> |
+ | <code>aliases: [combust_me, combustMe, cm]</code> |
| |
| |
||
Line 187: | Line 206: | ||
| |
| |
||
*This permissions node can be used to determine if a user should be able to see this command |
*This permissions node can be used to determine if a user should be able to see this command |
||
− | *Some plugins will use this node to construct a |
+ | *Some plugins will use this node to construct a personalized /help |
|- |
|- |
||
| permission-message |
| permission-message |
||
Line 194: | Line 213: | ||
| <code>permission-message: You do not have /<permission></code> |
| <code>permission-message: You do not have /<permission></code> |
||
| |
| |
||
+ | *Displayed to a player that attempts to use a command but does not have the associated permission |
||
− | |||
+ | *<permission> is a macro that is replaced with the permission node that is required to use the command. |
||
⚫ | |||
+ | *You may use empty quotes to indicate nothing should be displayed. |
||
⚫ | |||
⚫ | |||
− | | The prefix for the plugin |
||
⚫ | |||
⚫ | |||
|- |
|- |
||
Line 217: | Line 232: | ||
A permission block starts with the permission's name and is followed by nodes of attributes |
A permission block starts with the permission's name and is followed by nodes of attributes |
||
− | {| cellspacing="0" cellpadding="4" border="1" |
+ | {| cellspacing="0" cellpadding="4" border="1" class="wikitable" |
|- |
|- |
||
! Permission Attribute |
! Permission Attribute |
||
Line 238: | Line 253: | ||
| <pre>default: true</pre> |
| <pre>default: true</pre> |
||
| |
| |
||
− | *If node does not exist the permission defaults to |
+ | *If node does not exist the permission defaults to op |
− | *allowed |
+ | *allowed defaults are: true, false, op, not op |
*op default will be true if player is op |
*op default will be true if player is op |
||
*no op default is the opposite behavior (of op) |
*no op default is the opposite behavior (of op) |
||
⚫ | |||
|- |
|- |
||
| children |
| children |
||
Line 262: | Line 276: | ||
Example: |
Example: |
||
+ | <blockquote><source lang="yaml" style="border: 1px #aaa solid;"> |
||
− | <code> |
||
name: Inferno |
name: Inferno |
||
version: 1.4.1 |
version: 1.4.1 |
||
Line 271: | Line 285: | ||
author: CaptainInflamo |
author: CaptainInflamo |
||
authors: [Cogito, verrier, EvilSeph] |
authors: [Cogito, verrier, EvilSeph] |
||
− | + | website: http://forums.bukkit.org/threads/MyPlugin.31337/ |
|
main: com.captaininflamo.bukkit.inferno.Inferno |
main: com.captaininflamo.bukkit.inferno.Inferno |
||
Line 310: | Line 324: | ||
children: |
children: |
||
inferno.burningdeaths: true |
inferno.burningdeaths: true |
||
+ | </source></blockquote> |
||
− | </code> |
||
− | |||
{{Languages|Plugin YAML}} |
{{Languages|Plugin YAML}} |
Latest revision as of 08:21, 6 January 2014
This page has been suggested for inclusion in the Official Documentation
|
When Bukkit loads a plugin, it needs to know some basic information about it. It reads this information from a YAML file, 'plugin.yml'. This file consists of a set of attributes, each defined on a new line and with no indentation.
Attribute | Required | Description | Example | Notes |
---|---|---|---|---|
name | yes | The name of your plugin. | name: MyPlugin
|
|
version | yes | The version of this plugin. | version: 1.4.1
|
|
description | no | A human friendly description of the functionality your plugin provides. | description: This plugin is so 31337. You can set yourself on fire.
|
|
load | no | Explicitly state when the plugin should be loaded. if not supplied will default to postworld | load: STARTUP
|
Has two possible values
|
author | no | Uniquely identifies who developed this plugin. | author: CaptainInflamo
|
|
authors | no | Allows you to list multiple authors, if it is a collaborative project. See author. | authors: [Cogito, verrier, EvilSeph]
|
|
website | no | The plugin's or author's website. | website: http://forums.bukkit.org/threads/MyPlugin.31337/
|
|
main | yes | Points to the class that extends JavaPlugin | main: org.bukkit.plugin.MyPlugin
|
|
database | no | Set to true if this plugin uses a database. | database: false
|
|
depend | no | A list of plugins that your plugin requires to load. | depend: [OnePlugin, AnotherPlugin]
|
|
prefix | no | The name to use when logging to console instead of the plugin's name. | prefix: ex-why-zee
|
|
softdepend | no | A list of plugins that are required for your plugin to have full functionality. | softdepend: [OnePlugin, AnotherPlugin]
|
|
loadbefore | no | A list of plugins should be loaded after your plugin. | loadbefore: [OnePlugin, AnotherPlugin]
|
|
commands | no | The name of a command the plugin wishes to register, as well as an optional list of command attributes. |
|
|
permissions | no | Permissions that the plugin whishes to register. Each node represents a permission to register. Each permission can have additional attributes. | permissions: inferno.*: [optional permission attributes] inferno.flagate: [optional permission attributes] inferno.burningdeaths: [optional permission attributes] |
|
A command block starts with the command's name, and then has a list of attributes.
Command Attribute | Required | Description | Example | Notes |
---|---|---|---|---|
description | no | A short description of what the command does. | description: Set yourself on fire
|
|
aliases | no | Alternate command names a user may use instead |
|
|
permission | no | The most basic permission node required to use the command |
|
|
permission-message | no | A no-permission message | permission-message: You do not have /<permission>
|
|
usage | no | A short description of how to use this command. | usage: Syntax error! Perhaps you meant /<command> PlayerName?
|
|
A permission block starts with the permission's name and is followed by nodes of attributes
Permission Attribute | Required | Description | Example | Notes |
---|---|---|---|---|
description | no | A short description of what this permission allows | description: Allows you to set yourself on fire |
|
default | no | Sets the default value of the permission | default: true |
|
children | no | allows you to set children for the permission. Child nodes are permission names | children: inferno.flagrate: true inferno.burningdeaths: true |
|
Example:
name: Inferno version: 1.4.1 description: This plugin is so 31337. You can set yourself on fire. # We could place every author in the authors list, but chose not to for illustrative purposes # Also, having an author distinguishes that person as the project lead, and ensures their # name is displayed first author: CaptainInflamo authors: [Cogito, verrier, EvilSeph] website: http://forums.bukkit.org/threads/MyPlugin.31337/ main: com.captaininflamo.bukkit.inferno.Inferno database: false depend: [NewFire, FlameWire] commands: flagrate: description: Set yourself on fire. aliases: [combust_me, combustMe] permission: inferno.flagrate usage: Syntax error! Simply type /<command> to ignite yourself. burningdeaths: description: List how many times you have died by fire. aliases: [burning_deaths, burningDeaths] permission: inferno.burningdeaths usage: | /<command> [player] Example: /<command> - see how many times you have burned to death Example: /<command> CaptainIce - see how many times CaptainIce has burned to death permissions: inferno.*: description: Gives access to all Inferno commands children: inferno.flagrate: true inferno.burningdeaths: true inferno.burningdeaths.others: true inferno.flagrate: description: Allows you to ignite yourself default: true inferno.burningdeaths: description: Allows you to see how many times you have burned to death default: true inferno.burningdeaths.others: description: Allows you to see how many times others have burned to death default: op children: inferno.burningdeaths: true
Language | English • беларуская • Deutsch • español • suomi • français • italiano • 한국어 • Nederlands • norsk • polski • português • русский • lietuvių • čeština |
---|