<divclass="inheritance"title="Inheritance Tree"><ahref="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html"title="class or interface in java.lang"class="external-link">java.lang.Object</a>
<divclass="type-signature"><spanclass="modifiers">public final class </span><spanclass="element-name type-name-label">PluginDescriptionFile</span>
<spanclass="extends-implements">extends <ahref="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html"title="class or interface in java.lang"class="external-link">Object</a></span></div>
<divclass="block">This type is the runtime-container for the information in the plugin.yml.
All plugins must have a respective plugin.yml. For plugins written in java
using the standard plugin loader, this file must be in the root of the jar
file.
<p>
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.
<p>
Every (almost* every) method corresponds with a specific entry in the
plugin.yml. These are the <b>required</b> entries for every plugin.yml:
<divclass="col-constructor-name even-row-color"><code><ahref="#%3Cinit%3E(java.io.InputStream)"class="member-name-link">PluginDescriptionFile</a><wbr>(<ahref="https://javadoc.io/doc/org.jetbrains/annotations/23.0.0/org/jetbrains/annotations/NotNull.html"title="class or interface in org.jetbrains.annotations"class="external-link">@NotNull</a><ahref="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/io/InputStream.html"title="class or interface in java.io"class="external-link">InputStream</a> stream)</code></div>
<divclass="col-last even-row-color"> </div>
<divclass="col-constructor-name odd-row-color"><code><ahref="#%3Cinit%3E(java.io.Reader)"class="member-name-link">PluginDescriptionFile</a><wbr>(<ahref="https://javadoc.io/doc/org.jetbrains/annotations/23.0.0/org/jetbrains/annotations/NotNull.html"title="class or interface in org.jetbrains.annotations"class="external-link">@NotNull</a><ahref="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/io/Reader.html"title="class or interface in java.io"class="external-link">Reader</a> reader)</code></div>
<divclass="col-last odd-row-color">
<divclass="block">Loads a PluginDescriptionFile from the specified reader</div>
</div>
<divclass="col-constructor-name even-row-color"><code><ahref="#%3Cinit%3E(java.lang.String,java.lang.String,java.lang.String)"class="member-name-link">PluginDescriptionFile</a><wbr>(<ahref="https://javadoc.io/doc/org.jetbrains/annotations/23.0.0/org/jetbrains/annotations/NotNull.html"title="class or interface in org.jetbrains.annotations"class="external-link">@NotNull</a><ahref="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html"title="class or interface in java.lang"class="external-link">String</a> pluginName,
<ahref="https://javadoc.io/doc/org.jetbrains/annotations/23.0.0/org/jetbrains/annotations/NotNull.html"title="class or interface in org.jetbrains.annotations"class="external-link">@NotNull</a><ahref="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html"title="class or interface in java.lang"class="external-link">String</a> pluginVersion,
<ahref="https://javadoc.io/doc/org.jetbrains/annotations/23.0.0/org/jetbrains/annotations/NotNull.html"title="class or interface in org.jetbrains.annotations"class="external-link">@NotNull</a><ahref="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html"title="class or interface in java.lang"class="external-link">String</a> mainClass)</code></div>
<divclass="col-last even-row-color">
<divclass="block">Creates a new PluginDescriptionFile with the given detailed</div>
<divclass="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><ahref="https://javadoc.io/doc/org.jetbrains/annotations/23.0.0/org/jetbrains/annotations/Nullable.html"title="class or interface in org.jetbrains.annotations"class="external-link">@Nullable</a><ahref="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html"title="class or interface in java.lang"class="external-link">String</a></code></div>
<divclass="block">Gives the API version which this plugin is designed to support.</div>
</div>
<divclass="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><ahref="https://javadoc.io/doc/org.jetbrains/annotations/23.0.0/org/jetbrains/annotations/NotNull.html"title="class or interface in org.jetbrains.annotations"class="external-link">@NotNull</a><ahref="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/List.html"title="class or interface in java.util"class="external-link">List</a><<ahref="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html"title="class or interface in java.lang"class="external-link">String</a>></code></div>
<divclass="block">Gives the list of authors for the plugin.</div>
</div>
<divclass="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><ahref="https://javadoc.io/doc/org.jetbrains/annotations/23.0.0/org/jetbrains/annotations/NotNull.html"title="class or interface in org.jetbrains.annotations"class="external-link">@NotNull</a><ahref="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/Set.html"title="class or interface in java.util"class="external-link">Set</a><<ahref="PluginAwareness.html"title="interface in org.bukkit.plugin">PluginAwareness</a>></code></div>
<divclass="block">Gives a set of every <ahref="PluginAwareness.html"title="interface in org.bukkit.plugin"><code>PluginAwareness</code></a> for a plugin.</div>
</div>
<divclass="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4 method-summary-table-tab6"><code><ahref="https://javadoc.io/doc/org.jetbrains/annotations/23.0.0/org/jetbrains/annotations/Nullable.html"title="class or interface in org.jetbrains.annotations"class="external-link">@Nullable</a><ahref="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html"title="class or interface in java.lang"class="external-link">String</a></code></div>
<divclass="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><ahref="https://javadoc.io/doc/org.jetbrains/annotations/23.0.0/org/jetbrains/annotations/NotNull.html"title="class or interface in org.jetbrains.annotations"class="external-link">@NotNull</a><ahref="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/Map.html"title="class or interface in java.util"class="external-link">Map</a><<ahref="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html"title="class or interface in java.lang"class="external-link">String</a>,<wbr><ahref="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/Map.html"title="class or interface in java.util"class="external-link">Map</a><<ahref="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html"title="class or interface in java.lang"class="external-link">String</a>,<wbr><ahref="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html"title="class or interface in java.lang"class="external-link">Object</a>>></code></div>
<divclass="block">Gives the map of command-name to command-properties.</div>
</div>
<divclass="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><ahref="https://javadoc.io/doc/org.jetbrains/annotations/23.0.0/org/jetbrains/annotations/NotNull.html"title="class or interface in org.jetbrains.annotations"class="external-link">@NotNull</a><ahref="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/List.html"title="class or interface in java.util"class="external-link">List</a><<ahref="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html"title="class or interface in java.lang"class="external-link">String</a>></code></div>
<divclass="block">Gives the list of contributors for the plugin.</div>
</div>
<divclass="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><ahref="https://javadoc.io/doc/org.jetbrains/annotations/23.0.0/org/jetbrains/annotations/NotNull.html"title="class or interface in org.jetbrains.annotations"class="external-link">@NotNull</a><ahref="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/List.html"title="class or interface in java.util"class="external-link">List</a><<ahref="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html"title="class or interface in java.lang"class="external-link">String</a>></code></div>
<divclass="block">Gives a list of other plugins that the plugin requires.</div>
</div>
<divclass="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><ahref="https://javadoc.io/doc/org.jetbrains/annotations/23.0.0/org/jetbrains/annotations/Nullable.html"title="class or interface in org.jetbrains.annotations"class="external-link">@Nullable</a><ahref="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html"title="class or interface in java.lang"class="external-link">String</a></code></div>
<divclass="block">Gives a human-friendly description of the functionality the plugin
provides.</div>
</div>
<divclass="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><ahref="https://javadoc.io/doc/org.jetbrains/annotations/23.0.0/org/jetbrains/annotations/NotNull.html"title="class or interface in org.jetbrains.annotations"class="external-link">@NotNull</a><ahref="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html"title="class or interface in java.lang"class="external-link">String</a></code></div>
<divclass="block">Returns the name of a plugin, including the version.</div>
</div>
<divclass="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><ahref="https://javadoc.io/doc/org.jetbrains/annotations/23.0.0/org/jetbrains/annotations/NotNull.html"title="class or interface in org.jetbrains.annotations"class="external-link">@NotNull</a><ahref="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/List.html"title="class or interface in java.util"class="external-link">List</a><<ahref="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html"title="class or interface in java.lang"class="external-link">String</a>></code></div>
<divclass="block">Gets the libraries this plugin requires.</div>
</div>
<divclass="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><ahref="https://javadoc.io/doc/org.jetbrains/annotations/23.0.0/org/jetbrains/annotations/NotNull.html"title="class or interface in org.jetbrains.annotations"class="external-link">@NotNull</a><ahref="PluginLoadOrder.html"title="enum class in org.bukkit.plugin">PluginLoadOrder</a></code></div>
<divclass="block">Gives the phase of server startup that the plugin should be loaded.</div>
</div>
<divclass="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><ahref="https://javadoc.io/doc/org.jetbrains/annotations/23.0.0/org/jetbrains/annotations/NotNull.html"title="class or interface in org.jetbrains.annotations"class="external-link">@NotNull</a><ahref="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/List.html"title="class or interface in java.util"class="external-link">List</a><<ahref="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html"title="class or interface in java.lang"class="external-link">String</a>></code></div>
<divclass="block">Gets the list of plugins that should consider this plugin a
soft-dependency.</div>
</div>
<divclass="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><ahref="https://javadoc.io/doc/org.jetbrains/annotations/23.0.0/org/jetbrains/annotations/NotNull.html"title="class or interface in org.jetbrains.annotations"class="external-link">@NotNull</a><ahref="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html"title="class or interface in java.lang"class="external-link">String</a></code></div>
<divclass="block">Gives the fully qualified name of the main class for a plugin.</div>
</div>
<divclass="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><ahref="https://javadoc.io/doc/org.jetbrains/annotations/23.0.0/org/jetbrains/annotations/NotNull.html"title="class or interface in org.jetbrains.annotations"class="external-link">@NotNull</a><ahref="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html"title="class or interface in java.lang"class="external-link">String</a></code></div>
<divclass="block">Gives the name of the plugin.</div>
</div>
<divclass="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><ahref="https://javadoc.io/doc/org.jetbrains/annotations/23.0.0/org/jetbrains/annotations/NotNull.html"title="class or interface in org.jetbrains.annotations"class="external-link">@NotNull</a><ahref="../permissions/PermissionDefault.html"title="enum class in org.bukkit.permissions">PermissionDefault</a></code></div>
<divclass="block">Gives the default <ahref="../permissions/Permission.html#getDefault()"><code>default</code></a> state of
<ahref="#getPermissions()"><code>permissions</code></a> registered for the plugin.</div>
</div>
<divclass="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><ahref="https://javadoc.io/doc/org.jetbrains/annotations/23.0.0/org/jetbrains/annotations/NotNull.html"title="class or interface in org.jetbrains.annotations"class="external-link">@NotNull</a><ahref="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/List.html"title="class or interface in java.util"class="external-link">List</a><<ahref="../permissions/Permission.html"title="class in org.bukkit.permissions">Permission</a>></code></div>
<divclass="block">Gives the list of permissions the plugin will register at runtime,
immediately proceding enabling.</div>
</div>
<divclass="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><ahref="https://javadoc.io/doc/org.jetbrains/annotations/23.0.0/org/jetbrains/annotations/Nullable.html"title="class or interface in org.jetbrains.annotations"class="external-link">@Nullable</a><ahref="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html"title="class or interface in java.lang"class="external-link">String</a></code></div>
<divclass="block">Gives the token to prefix plugin-specific logging messages with.</div>
</div>
<divclass="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><ahref="https://javadoc.io/doc/org.jetbrains/annotations/23.0.0/org/jetbrains/annotations/NotNull.html"title="class or interface in org.jetbrains.annotations"class="external-link">@NotNull</a><ahref="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/List.html"title="class or interface in java.util"class="external-link">List</a><<ahref="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html"title="class or interface in java.lang"class="external-link">String</a>></code></div>
<divclass="block">Gives the list of other plugin APIs which this plugin provides.</div>
</div>
<divclass="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4 method-summary-table-tab6"><code><ahref="https://javadoc.io/doc/org.jetbrains/annotations/23.0.0/org/jetbrains/annotations/NotNull.html"title="class or interface in org.jetbrains.annotations"class="external-link">@NotNull</a><ahref="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html"title="class or interface in java.lang"class="external-link">String</a></code></div>
<divclass="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><ahref="https://javadoc.io/doc/org.jetbrains/annotations/23.0.0/org/jetbrains/annotations/NotNull.html"title="class or interface in org.jetbrains.annotations"class="external-link">@NotNull</a><ahref="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/List.html"title="class or interface in java.util"class="external-link">List</a><<ahref="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html"title="class or interface in java.lang"class="external-link">String</a>></code></div>
<divclass="block">Gives a list of other plugins that the plugin requires for full
functionality.</div>
</div>
<divclass="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><ahref="https://javadoc.io/doc/org.jetbrains/annotations/23.0.0/org/jetbrains/annotations/NotNull.html"title="class or interface in org.jetbrains.annotations"class="external-link">@NotNull</a><ahref="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html"title="class or interface in java.lang"class="external-link">String</a></code></div>
<divclass="block">Gives the version of the plugin.</div>
</div>
<divclass="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><ahref="https://javadoc.io/doc/org.jetbrains/annotations/23.0.0/org/jetbrains/annotations/Nullable.html"title="class or interface in org.jetbrains.annotations"class="external-link">@Nullable</a><ahref="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html"title="class or interface in java.lang"class="external-link">String</a></code></div>
<divclass="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><ahref="#save(java.io.Writer)"class="member-name-link">save</a><wbr>(<ahref="https://javadoc.io/doc/org.jetbrains/annotations/23.0.0/org/jetbrains/annotations/NotNull.html"title="class or interface in org.jetbrains.annotations"class="external-link">@NotNull</a><ahref="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/io/Writer.html"title="class or interface in java.io"class="external-link">Writer</a> writer)</code></div>
<divclass="block">Saves this PluginDescriptionFile to the given writer</div>
</div>
</div>
</div>
</div>
<divclass="inherited-list">
<h3id="methods-inherited-from-class-java.lang.Object">Methods inherited from class java.lang.<ahref="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html"title="class or interface in java.lang"class="external-link">Object</a></h3>
<code><ahref="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#clone()"title="class or interface in java.lang"class="external-link">clone</a>, <ahref="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#equals(java.lang.Object)"title="class or interface in java.lang"class="external-link">equals</a>, <ahref="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#finalize()"title="class or interface in java.lang"class="external-link">finalize</a>, <ahref="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#getClass()"title="class or interface in java.lang"class="external-link">getClass</a>, <ahref="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#hashCode()"title="class or interface in java.lang"class="external-link">hashCode</a>, <ahref="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#notify()"title="class or interface in java.lang"class="external-link">notify</a>, <ahref="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#notifyAll()"title="class or interface in java.lang"class="external-link">notifyAll</a>, <ahref="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#toString()"title="class or interface in java.lang"class="external-link">toString</a>, <ahref="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#wait()"title="class or interface in java.lang"class="external-link">wait</a>, <ahref="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#wait(long)"title="class or interface in java.lang"class="external-link">wait</a>, <ahref="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#wait(long,int)"title="class or interface in java.lang"class="external-link">wait</a></code></div>
<divclass="member-signature"><spanclass="modifiers">public</span> <spanclass="element-name">PluginDescriptionFile</span><wbr><spanclass="parameters">(<ahref="https://javadoc.io/doc/org.jetbrains/annotations/23.0.0/org/jetbrains/annotations/NotNull.html"title="class or interface in org.jetbrains.annotations"class="external-link">@NotNull</a>
<ahref="https://javadoc.io/doc/org.jetbrains/annotations/23.0.0/org/jetbrains/annotations/NotNull.html"title="class or interface in org.jetbrains.annotations"class="external-link">@NotNull</a><ahref="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/io/InputStream.html"title="class or interface in java.io"class="external-link">InputStream</a> stream)</span>
throws <spanclass="exceptions"><ahref="InvalidDescriptionException.html"title="class in org.bukkit.plugin">InvalidDescriptionException</a></span></div>
<dlclass="notes">
<dt>Throws:</dt>
<dd><code><ahref="InvalidDescriptionException.html"title="class in org.bukkit.plugin">InvalidDescriptionException</a></code></dd>
<divclass="member-signature"><spanclass="modifiers">public</span> <spanclass="element-name">PluginDescriptionFile</span><wbr><spanclass="parameters">(<ahref="https://javadoc.io/doc/org.jetbrains/annotations/23.0.0/org/jetbrains/annotations/NotNull.html"title="class or interface in org.jetbrains.annotations"class="external-link">@NotNull</a>
<ahref="https://javadoc.io/doc/org.jetbrains/annotations/23.0.0/org/jetbrains/annotations/NotNull.html"title="class or interface in org.jetbrains.annotations"class="external-link">@NotNull</a><ahref="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/io/Reader.html"title="class or interface in java.io"class="external-link">Reader</a> reader)</span>
throws <spanclass="exceptions"><ahref="InvalidDescriptionException.html"title="class in org.bukkit.plugin">InvalidDescriptionException</a></span></div>
<divclass="block">Loads a PluginDescriptionFile from the specified reader</div>
<dlclass="notes">
<dt>Parameters:</dt>
<dd><code>reader</code> - The reader</dd>
<dt>Throws:</dt>
<dd><code><ahref="InvalidDescriptionException.html"title="class in org.bukkit.plugin">InvalidDescriptionException</a></code> - If the PluginDescriptionFile is
<divclass="member-signature"><spanclass="modifiers">public</span> <spanclass="element-name">PluginDescriptionFile</span><wbr><spanclass="parameters">(<ahref="https://javadoc.io/doc/org.jetbrains/annotations/23.0.0/org/jetbrains/annotations/NotNull.html"title="class or interface in org.jetbrains.annotations"class="external-link">@NotNull</a>
<ahref="https://javadoc.io/doc/org.jetbrains/annotations/23.0.0/org/jetbrains/annotations/NotNull.html"title="class or interface in org.jetbrains.annotations"class="external-link">@NotNull</a><ahref="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html"title="class or interface in java.lang"class="external-link">String</a> pluginName,
<ahref="https://javadoc.io/doc/org.jetbrains/annotations/23.0.0/org/jetbrains/annotations/NotNull.html"title="class or interface in org.jetbrains.annotations"class="external-link">@NotNull</a>
<ahref="https://javadoc.io/doc/org.jetbrains/annotations/23.0.0/org/jetbrains/annotations/NotNull.html"title="class or interface in org.jetbrains.annotations"class="external-link">@NotNull</a><ahref="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html"title="class or interface in java.lang"class="external-link">String</a> pluginVersion,
<ahref="https://javadoc.io/doc/org.jetbrains/annotations/23.0.0/org/jetbrains/annotations/NotNull.html"title="class or interface in org.jetbrains.annotations"class="external-link">@NotNull</a>
<ahref="https://javadoc.io/doc/org.jetbrains/annotations/23.0.0/org/jetbrains/annotations/NotNull.html"title="class or interface in org.jetbrains.annotations"class="external-link">@NotNull</a><ahref="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html"title="class or interface in java.lang"class="external-link">String</a> mainClass)</span></div>
<divclass="block">Creates a new PluginDescriptionFile with the given detailed</div>
<dlclass="notes">
<dt>Parameters:</dt>
<dd><code>pluginName</code> - Name of this plugin</dd>
<dd><code>pluginVersion</code> - Version of this plugin</dd>
<dd><code>mainClass</code> - Full location of the main class of this plugin</dd>
</dl>
</section>
</li>
</ul>
</section>
</li>
<!-- ============ METHOD DETAIL ========== -->
<li>
<sectionclass="method-details"id="method-detail">
<h2>Method Details</h2>
<ulclass="member-list">
<li>
<sectionclass="detail"id="getName()">
<h3>getName</h3>
<divclass="member-signature"><spanclass="annotations"><ahref="https://javadoc.io/doc/org.jetbrains/annotations/23.0.0/org/jetbrains/annotations/NotNull.html"title="class or interface in org.jetbrains.annotations"class="external-link">@NotNull</a>
</span><spanclass="modifiers">public</span> <spanclass="return-type"><ahref="https://javadoc.io/doc/org.jetbrains/annotations/23.0.0/org/jetbrains/annotations/NotNull.html"title="class or interface in org.jetbrains.annotations"class="external-link">@NotNull</a><ahref="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html"title="class or interface in java.lang"class="external-link">String</a></span> <spanclass="element-name">getName</span>()</div>
<divclass="block">Gives the name of the plugin. This name is a unique identifier for
plugins.
<ul>
<li>Must consist of all alphanumeric characters, underscores, hyphon,
and period (a-z,A-Z,0-9, _.-). Any other character will cause the
plugin.yml to fail loading.
<li>Used to determine the name of the plugin's data folder. Data
folders are placed in the ./plugins/ directory by default, but this
behavior should not be relied on. <ahref="Plugin.html#getDataFolder()"><code>Plugin.getDataFolder()</code></a>
should be used to reference the data folder.
<li>It is good practice to name your jar the same as this, for example
'MyPlugin.jar'.
<li>Case sensitive.
<li>The is the token referenced in <ahref="#getDepend()"><code>getDepend()</code></a>, <ahref="#getSoftDepend()"><code>getSoftDepend()</code></a>, and <ahref="#getLoadBefore()"><code>getLoadBefore()</code></a>.
<li>Using spaces in the plugin's name is deprecated.
</ul>
<p>
In the plugin.yml, this entry is named <code>name</code>.
<divclass="member-signature"><spanclass="annotations"><ahref="https://javadoc.io/doc/org.jetbrains/annotations/23.0.0/org/jetbrains/annotations/NotNull.html"title="class or interface in org.jetbrains.annotations"class="external-link">@NotNull</a>
</span><spanclass="modifiers">public</span> <spanclass="return-type"><ahref="https://javadoc.io/doc/org.jetbrains/annotations/23.0.0/org/jetbrains/annotations/NotNull.html"title="class or interface in org.jetbrains.annotations"class="external-link">@NotNull</a><ahref="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/List.html"title="class or interface in java.util"class="external-link">List</a><<ahref="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html"title="class or interface in java.lang"class="external-link">String</a>></span> <spanclass="element-name">getProvides</span>()</div>
<divclass="block">Gives the list of other plugin APIs which this plugin provides.
These are usable for other plugins to depend on.
<ul>
<li>Must consist of all alphanumeric characters, underscores, hyphon,
and period (a-z,A-Z,0-9, _.-). Any other character will cause the
plugin.yml to fail loading.
<li>A different plugin providing the same one or using it as their name
will not result in the plugin to fail loading.
<li>Case sensitive.
<li>An entry of this list can be referenced in <ahref="#getDepend()"><code>getDepend()</code></a>,
<ahref="#getSoftDepend()"><code>getSoftDepend()</code></a>, and <ahref="#getLoadBefore()"><code>getLoadBefore()</code></a>.
<li><code>provides</code> must be in <ahref="http://en.wikipedia.org/wiki/YAML#Lists">YAML list
format</a>.
</ul>
<p>
In the plugin.yml, this entry is named <code>provides</code>.
<p>
Example:
<blockquote><pre>provides:
- OtherPluginName
- OldPluginName</pre></blockquote></div>
<dlclass="notes">
<dt>Returns:</dt>
<dd>immutable list of the plugin APIs which this plugin provides</dd>
</dl>
</section>
</li>
<li>
<sectionclass="detail"id="getVersion()">
<h3>getVersion</h3>
<divclass="member-signature"><spanclass="annotations"><ahref="https://javadoc.io/doc/org.jetbrains/annotations/23.0.0/org/jetbrains/annotations/NotNull.html"title="class or interface in org.jetbrains.annotations"class="external-link">@NotNull</a>
</span><spanclass="modifiers">public</span> <spanclass="return-type"><ahref="https://javadoc.io/doc/org.jetbrains/annotations/23.0.0/org/jetbrains/annotations/NotNull.html"title="class or interface in org.jetbrains.annotations"class="external-link">@NotNull</a><ahref="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html"title="class or interface in java.lang"class="external-link">String</a></span> <spanclass="element-name">getVersion</span>()</div>
<divclass="block">Gives the version of the plugin.
<ul>
<li>Version is an arbitrary string, however the most common format is
MajorRelease.MinorRelease.Build (eg: 1.4.1).
<li>Typically you will increment this every time you release a new
feature or bug fix.
<li>Displayed when a user types <code>/version PluginName</code>
</ul>
<p>
In the plugin.yml, this entry is named <code>version</code>.
<divclass="member-signature"><spanclass="annotations"><ahref="https://javadoc.io/doc/org.jetbrains/annotations/23.0.0/org/jetbrains/annotations/NotNull.html"title="class or interface in org.jetbrains.annotations"class="external-link">@NotNull</a>
</span><spanclass="modifiers">public</span> <spanclass="return-type"><ahref="https://javadoc.io/doc/org.jetbrains/annotations/23.0.0/org/jetbrains/annotations/NotNull.html"title="class or interface in org.jetbrains.annotations"class="external-link">@NotNull</a><ahref="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html"title="class or interface in java.lang"class="external-link">String</a></span> <spanclass="element-name">getMain</span>()</div>
<divclass="block">Gives the fully qualified name of the main class for a plugin. The
format should follow the <ahref="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/ClassLoader.html#loadClass(java.lang.String)"title="class or interface in java.lang"class="external-link"><code>ClassLoader.loadClass(String)</code></a> syntax
to successfully be resolved at runtime. For most plugins, this is the
class that extends <ahref="java/JavaPlugin.html"title="class in org.bukkit.plugin.java"><code>JavaPlugin</code></a>.
<ul>
<li>This must contain the full namespace including the class file
itself.
<li>If your namespace is <code>org.bukkit.plugin</code>, and your class
file is called <code>MyPlugin</code> then this must be
<code>org.bukkit.plugin.MyPlugin</code>
<li>No plugin can use <code>org.bukkit.</code> as a base package for
<b>any class</b>, including the main class.
</ul>
<p>
In the plugin.yml, this entry is named <code>main</code>.
<dd>the fully qualified main class for the plugin</dd>
</dl>
</section>
</li>
<li>
<sectionclass="detail"id="getDescription()">
<h3>getDescription</h3>
<divclass="member-signature"><spanclass="annotations"><ahref="https://javadoc.io/doc/org.jetbrains/annotations/23.0.0/org/jetbrains/annotations/Nullable.html"title="class or interface in org.jetbrains.annotations"class="external-link">@Nullable</a>
</span><spanclass="modifiers">public</span> <spanclass="return-type"><ahref="https://javadoc.io/doc/org.jetbrains/annotations/23.0.0/org/jetbrains/annotations/Nullable.html"title="class or interface in org.jetbrains.annotations"class="external-link">@Nullable</a><ahref="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html"title="class or interface in java.lang"class="external-link">String</a></span> <spanclass="element-name">getDescription</span>()</div>
<divclass="block">Gives a human-friendly description of the functionality the plugin
provides.
<ul>
<li>The description can have multiple lines.
<li>Displayed when a user types <code>/version PluginName</code>
</ul>
<p>
In the plugin.yml, this entry is named <code>description</code>.
<p>
Example:
<blockquote><pre>description: This plugin is so 31337. You can set yourself on fire.</pre></blockquote></div>
<dlclass="notes">
<dt>Returns:</dt>
<dd>description of this plugin, or null if not specified</dd>
</dl>
</section>
</li>
<li>
<sectionclass="detail"id="getLoad()">
<h3>getLoad</h3>
<divclass="member-signature"><spanclass="annotations"><ahref="https://javadoc.io/doc/org.jetbrains/annotations/23.0.0/org/jetbrains/annotations/NotNull.html"title="class or interface in org.jetbrains.annotations"class="external-link">@NotNull</a>
</span><spanclass="modifiers">public</span> <spanclass="return-type"><ahref="https://javadoc.io/doc/org.jetbrains/annotations/23.0.0/org/jetbrains/annotations/NotNull.html"title="class or interface in org.jetbrains.annotations"class="external-link">@NotNull</a><ahref="PluginLoadOrder.html"title="enum class in org.bukkit.plugin">PluginLoadOrder</a></span> <spanclass="element-name">getLoad</span>()</div>
<divclass="block">Gives the phase of server startup that the plugin should be loaded.
<ul>
<li>Possible values are in <ahref="PluginLoadOrder.html"title="enum class in org.bukkit.plugin"><code>PluginLoadOrder</code></a>.
<li>Defaults to <ahref="PluginLoadOrder.html#POSTWORLD"><code>PluginLoadOrder.POSTWORLD</code></a>.
<li>Certain caveats apply to each phase.
<li>When different, <ahref="#getDepend()"><code>getDepend()</code></a>, <ahref="#getSoftDepend()"><code>getSoftDepend()</code></a>, and
<ahref="#getLoadBefore()"><code>getLoadBefore()</code></a> become relative in order loaded per-phase.
If a plugin loads at <code>STARTUP</code>, but a dependency loads
at <code>POSTWORLD</code>, the dependency will not be loaded before
the plugin is loaded.
</ul>
<p>
In the plugin.yml, this entry is named <code>load</code>.
<dd>the phase when the plugin should be loaded</dd>
</dl>
</section>
</li>
<li>
<sectionclass="detail"id="getAuthors()">
<h3>getAuthors</h3>
<divclass="member-signature"><spanclass="annotations"><ahref="https://javadoc.io/doc/org.jetbrains/annotations/23.0.0/org/jetbrains/annotations/NotNull.html"title="class or interface in org.jetbrains.annotations"class="external-link">@NotNull</a>
</span><spanclass="modifiers">public</span> <spanclass="return-type"><ahref="https://javadoc.io/doc/org.jetbrains/annotations/23.0.0/org/jetbrains/annotations/NotNull.html"title="class or interface in org.jetbrains.annotations"class="external-link">@NotNull</a><ahref="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/List.html"title="class or interface in java.util"class="external-link">List</a><<ahref="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html"title="class or interface in java.lang"class="external-link">String</a>></span> <spanclass="element-name">getAuthors</span>()</div>
<divclass="block">Gives the list of authors for the plugin.
<ul>
<li>Gives credit to the developer.
<li>Used in some server error messages to provide helpful feedback on
who to contact when an error occurs.
<li>A SpigotMC forum handle or email address is recommended.
<li>Is displayed when a user types <code>/version PluginName</code>
<li><code>authors</code> must be in <ahref="http://en.wikipedia.org/wiki/YAML#Lists">YAML list
format</a>.
</ul>
<p>
In the plugin.yml, this has two entries, <code>author</code> and
<dd>an immutable list of the plugin's authors</dd>
</dl>
</section>
</li>
<li>
<sectionclass="detail"id="getContributors()">
<h3>getContributors</h3>
<divclass="member-signature"><spanclass="annotations"><ahref="https://javadoc.io/doc/org.jetbrains/annotations/23.0.0/org/jetbrains/annotations/NotNull.html"title="class or interface in org.jetbrains.annotations"class="external-link">@NotNull</a>
</span><spanclass="modifiers">public</span> <spanclass="return-type"><ahref="https://javadoc.io/doc/org.jetbrains/annotations/23.0.0/org/jetbrains/annotations/NotNull.html"title="class or interface in org.jetbrains.annotations"class="external-link">@NotNull</a><ahref="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/List.html"title="class or interface in java.util"class="external-link">List</a><<ahref="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html"title="class or interface in java.lang"class="external-link">String</a>></span> <spanclass="element-name">getContributors</span>()</div>
<divclass="block">Gives the list of contributors for the plugin.
<ul>
<li>Gives credit to those that have contributed to the plugin, though
not enough so to warrant authorship.
<li>Unlike <ahref="#getAuthors()"><code>getAuthors()</code></a>, contributors will not be mentioned in
server error messages as a means of contact.
<li>A SpigotMC forum handle or email address is recommended.
<li>Is displayed when a user types <code>/version PluginName</code>
<li><code>contributors</code> must be in <ahref="http://en.wikipedia.org/wiki/YAML#Lists">YAML list
<dd>an immutable list of the plugin's contributors</dd>
</dl>
</section>
</li>
<li>
<sectionclass="detail"id="getWebsite()">
<h3>getWebsite</h3>
<divclass="member-signature"><spanclass="annotations"><ahref="https://javadoc.io/doc/org.jetbrains/annotations/23.0.0/org/jetbrains/annotations/Nullable.html"title="class or interface in org.jetbrains.annotations"class="external-link">@Nullable</a>
</span><spanclass="modifiers">public</span> <spanclass="return-type"><ahref="https://javadoc.io/doc/org.jetbrains/annotations/23.0.0/org/jetbrains/annotations/Nullable.html"title="class or interface in org.jetbrains.annotations"class="external-link">@Nullable</a><ahref="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html"title="class or interface in java.lang"class="external-link">String</a></span> <spanclass="element-name">getWebsite</span>()</div>
<divclass="block">Gives the plugin's or plugin's author's website.
<ul>
<li>A link to the Curse page that includes documentation and downloads
is highly recommended.
<li>Displayed when a user types <code>/version PluginName</code>
</ul>
<p>
In the plugin.yml, this entry is named <code>website</code>.
<dd>description of this plugin, or null if not specified</dd>
</dl>
</section>
</li>
<li>
<sectionclass="detail"id="getDepend()">
<h3>getDepend</h3>
<divclass="member-signature"><spanclass="annotations"><ahref="https://javadoc.io/doc/org.jetbrains/annotations/23.0.0/org/jetbrains/annotations/NotNull.html"title="class or interface in org.jetbrains.annotations"class="external-link">@NotNull</a>
</span><spanclass="modifiers">public</span> <spanclass="return-type"><ahref="https://javadoc.io/doc/org.jetbrains/annotations/23.0.0/org/jetbrains/annotations/NotNull.html"title="class or interface in org.jetbrains.annotations"class="external-link">@NotNull</a><ahref="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/List.html"title="class or interface in java.util"class="external-link">List</a><<ahref="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html"title="class or interface in java.lang"class="external-link">String</a>></span> <spanclass="element-name">getDepend</span>()</div>
<divclass="block">Gives a list of other plugins that the plugin requires.
<ul>
<li>Use the value in the <ahref="#getName()"><code>getName()</code></a> of the target plugin to
specify the dependency.
<li>If any plugin listed here is not found, your plugin will fail to
load at startup.
<li>If multiple plugins list each other in <code>depend</code>,
creating a network with no individual plugin does not list another
plugin in the <ahref=https://en.wikipedia.org/wiki/Circular_dependency>network</a>,
all plugins in that network will fail.
<li><code>depend</code> must be in <ahref="http://en.wikipedia.org/wiki/YAML#Lists">YAML list
format</a>.
</ul>
<p>
In the plugin.yml, this entry is named <code>depend</code>.
<p>
Example:
<blockquote><pre>depend:
- OnePlugin
- AnotherPlugin</pre></blockquote></div>
<dlclass="notes">
<dt>Returns:</dt>
<dd>immutable list of the plugin's dependencies</dd>
</dl>
</section>
</li>
<li>
<sectionclass="detail"id="getSoftDepend()">
<h3>getSoftDepend</h3>
<divclass="member-signature"><spanclass="annotations"><ahref="https://javadoc.io/doc/org.jetbrains/annotations/23.0.0/org/jetbrains/annotations/NotNull.html"title="class or interface in org.jetbrains.annotations"class="external-link">@NotNull</a>
</span><spanclass="modifiers">public</span> <spanclass="return-type"><ahref="https://javadoc.io/doc/org.jetbrains/annotations/23.0.0/org/jetbrains/annotations/NotNull.html"title="class or interface in org.jetbrains.annotations"class="external-link">@NotNull</a><ahref="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/List.html"title="class or interface in java.util"class="external-link">List</a><<ahref="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html"title="class or interface in java.lang"class="external-link">String</a>></span> <spanclass="element-name">getSoftDepend</span>()</div>
<divclass="block">Gives a list of other plugins that the plugin requires for full
functionality. The <ahref="PluginManager.html"title="interface in org.bukkit.plugin"><code>PluginManager</code></a> will make best effort to treat
all entries here as if they were a <ahref="#getDepend()"><code>dependency</code></a>, but
will never fail because of one of these entries.
<ul>
<li>Use the value in the <ahref="#getName()"><code>getName()</code></a> of the target plugin to
specify the dependency.
<li>When an unresolvable plugin is listed, it will be ignored and does
not affect load order.
<li>When a circular dependency occurs (a network of plugins depending
or soft-dependending each other), it will arbitrarily choose a
plugin that can be resolved when ignoring soft-dependencies.
<li><code>softdepend</code> must be in <ahref="http://en.wikipedia.org/wiki/YAML#Lists">YAML list
format</a>.
</ul>
<p>
In the plugin.yml, this entry is named <code>softdepend</code>.
<dd>immutable list of the plugin's preferred dependencies</dd>
</dl>
</section>
</li>
<li>
<sectionclass="detail"id="getLoadBefore()">
<h3>getLoadBefore</h3>
<divclass="member-signature"><spanclass="annotations"><ahref="https://javadoc.io/doc/org.jetbrains/annotations/23.0.0/org/jetbrains/annotations/NotNull.html"title="class or interface in org.jetbrains.annotations"class="external-link">@NotNull</a>
</span><spanclass="modifiers">public</span> <spanclass="return-type"><ahref="https://javadoc.io/doc/org.jetbrains/annotations/23.0.0/org/jetbrains/annotations/NotNull.html"title="class or interface in org.jetbrains.annotations"class="external-link">@NotNull</a><ahref="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/List.html"title="class or interface in java.util"class="external-link">List</a><<ahref="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html"title="class or interface in java.lang"class="external-link">String</a>></span> <spanclass="element-name">getLoadBefore</span>()</div>
<divclass="block">Gets the list of plugins that should consider this plugin a
soft-dependency.
<ul>
<li>Use the value in the <ahref="#getName()"><code>getName()</code></a> of the target plugin to
specify the dependency.
<li>The plugin should load before any other plugins listed here.
<li>Specifying another plugin here is strictly equivalent to having the
specified plugin's <ahref="#getSoftDepend()"><code>getSoftDepend()</code></a> include <ahref="#getName()"><code>this plugin</code></a>.
<li><code>loadbefore</code> must be in <ahref="http://en.wikipedia.org/wiki/YAML#Lists">YAML list
format</a>.
</ul>
<p>
In the plugin.yml, this entry is named <code>loadbefore</code>.
<p>
Example:
<blockquote><pre>loadbefore:
- OnePlugin
- AnotherPlugin</pre></blockquote></div>
<dlclass="notes">
<dt>Returns:</dt>
<dd>immutable list of plugins that should consider this plugin a
soft-dependency</dd>
</dl>
</section>
</li>
<li>
<sectionclass="detail"id="getPrefix()">
<h3>getPrefix</h3>
<divclass="member-signature"><spanclass="annotations"><ahref="https://javadoc.io/doc/org.jetbrains/annotations/23.0.0/org/jetbrains/annotations/Nullable.html"title="class or interface in org.jetbrains.annotations"class="external-link">@Nullable</a>
</span><spanclass="modifiers">public</span> <spanclass="return-type"><ahref="https://javadoc.io/doc/org.jetbrains/annotations/23.0.0/org/jetbrains/annotations/Nullable.html"title="class or interface in org.jetbrains.annotations"class="external-link">@Nullable</a><ahref="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html"title="class or interface in java.lang"class="external-link">String</a></span> <spanclass="element-name">getPrefix</span>()</div>
<divclass="block">Gives the token to prefix plugin-specific logging messages with.
<ul>
<li>This includes all messages using <ahref="Plugin.html#getLogger()"><code>Plugin.getLogger()</code></a>.
<li>If not specified, the server uses the plugin's <ahref="#getName()"><code>name</code></a>.
<li>This should clearly indicate what plugin is being logged.
</ul>
<p>
In the plugin.yml, this entry is named <code>prefix</code>.
<dd>the prefixed logging token, or null if not specified</dd>
</dl>
</section>
</li>
<li>
<sectionclass="detail"id="getCommands()">
<h3>getCommands</h3>
<divclass="member-signature"><spanclass="annotations"><ahref="https://javadoc.io/doc/org.jetbrains/annotations/23.0.0/org/jetbrains/annotations/NotNull.html"title="class or interface in org.jetbrains.annotations"class="external-link">@NotNull</a>
</span><spanclass="modifiers">public</span> <spanclass="return-type"><ahref="https://javadoc.io/doc/org.jetbrains/annotations/23.0.0/org/jetbrains/annotations/NotNull.html"title="class or interface in org.jetbrains.annotations"class="external-link">@NotNull</a><ahref="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/Map.html"title="class or interface in java.util"class="external-link">Map</a><<ahref="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html"title="class or interface in java.lang"class="external-link">String</a>,<wbr><ahref="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/Map.html"title="class or interface in java.util"class="external-link">Map</a><<ahref="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html"title="class or interface in java.lang"class="external-link">String</a>,<wbr><ahref="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html"title="class or interface in java.lang"class="external-link">Object</a>>></span> <spanclass="element-name">getCommands</span>()</div>
<divclass="block">Gives the map of command-name to command-properties. Each entry in this
map corresponds to a single command and the respective values are the
properties of the command. Each property, <i>with the exception of
aliases</i>, can be defined at runtime using methods in <ahref="../command/PluginCommand.html"title="class in org.bukkit.command"><code>PluginCommand</code></a> and are defined here only as a convenience.
<td>The name of the <ahref="../permissions/Permission.html"title="class in org.bukkit.permissions"><code>Permission</code></a> required to use the command.
A user without the permission will receive the specified
message (see <ahref="../command/Command.html#setPermissionMessage(java.lang.String)">below</a>), or a
standard one if no specific message is defined. Without the
permission node, no <ahref="../command/PluginCommand.html#setExecutor(org.bukkit.command.CommandExecutor)"><code>CommandExecutor</code></a> or
<ahref="../command/PluginCommand.html#setTabCompleter(org.bukkit.command.TabCompleter)"><code>PluginCommand.setTabCompleter(TabCompleter)</code></a> will be called.</td>
<td>This message is displayed to a player when the <ahref="../command/PluginCommand.html#setExecutor(org.bukkit.command.CommandExecutor)"><code>PluginCommand.setExecutor(CommandExecutor)</code></a><ahref="../command/CommandExecutor.html#onCommand(org.bukkit.command.CommandSender,org.bukkit.command.Command,java.lang.String,java.lang.String%5B%5D)">returns false</a>.
<command> is a macro that is replaced the command issued.</td>
<td><blockquote><pre>usage: Syntax error! Perhaps you meant /<command> PlayerName?</pre></blockquote>
It is worth noting that to use a colon in a yaml, like
<code>`usage: Usage: /god [player]'</code>, you need to
The commands are structured as a hiearchy of <ahref="http://yaml.org/spec/current.html#id2502325">nested mappings</a>.
The primary (top-level, no intendentation) node is
`<code>commands</code>', while each individual command name is
indented, indicating it maps to some value (in our case, the
properties of the table above).
<p>
Here is an example bringing together the piecemeal examples above, as
well as few more definitions:<blockquote><pre>
commands:
flagrate:
description: Set yourself on fire.
aliases: [combust_me, combustMe]
permission: inferno.flagrate
permission-message: You do not have /<permission>
usage: Syntax error! Perhaps you meant /<command> PlayerName?
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
# The next command has no description, aliases, etc. defined, but is still valid
# Having an empty declaration is useful for defining the description, permission, and messages from a configuration dynamically
apocalypse:
</pre></blockquote>
Note: Command names may not have a colon in their name.</div>
<dlclass="notes">
<dt>Returns:</dt>
<dd>the commands this plugin will register</dd>
</dl>
</section>
</li>
<li>
<sectionclass="detail"id="getPermissions()">
<h3>getPermissions</h3>
<divclass="member-signature"><spanclass="annotations"><ahref="https://javadoc.io/doc/org.jetbrains/annotations/23.0.0/org/jetbrains/annotations/NotNull.html"title="class or interface in org.jetbrains.annotations"class="external-link">@NotNull</a>
</span><spanclass="modifiers">public</span> <spanclass="return-type"><ahref="https://javadoc.io/doc/org.jetbrains/annotations/23.0.0/org/jetbrains/annotations/NotNull.html"title="class or interface in org.jetbrains.annotations"class="external-link">@NotNull</a><ahref="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/List.html"title="class or interface in java.util"class="external-link">List</a><<ahref="../permissions/Permission.html"title="class in org.bukkit.permissions">Permission</a>></span> <spanclass="element-name">getPermissions</span>()</div>
<divclass="block">Gives the list of permissions the plugin will register at runtime,
immediately proceding enabling. The format for defining permissions is
a map from permission name to properties. To represent a map without
any specific property, empty <ahref="http://yaml.org/spec/current.html#id2502702">curly-braces</a> (
<code>{}</code> ) may be used (as a null value is not
accepted, unlike the <ahref="#getCommands()"><code>commands</code></a> above).
<td>Plaintext (user-friendly) description of what the permission
is for.</td>
<td><blockquote><pre>description: Allows you to set yourself on fire</pre></blockquote></td>
</tr><tr>
<td><code>default</code></td>
<td>The default state for the permission, as defined by <ahref="../permissions/Permission.html#getDefault()"><code>Permission.getDefault()</code></a>. If not defined, it will be set to
the value of <ahref="#getPermissionDefault()"><code>getPermissionDefault()</code></a>.
<p>
For reference:<ul>
<li><code>true</code> - Represents a positive assignment to
<ahref="../permissions/Permissible.html"title="interface in org.bukkit.permissions"><code>permissibles</code></a>.
<li><code>false</code> - Represents no assignment to <ahref="../permissions/Permissible.html"title="interface in org.bukkit.permissions"><code>permissibles</code></a>.
<li><code>op</code> - Represents a positive assignment to
<divclass="member-signature"><spanclass="annotations"><ahref="https://javadoc.io/doc/org.jetbrains/annotations/23.0.0/org/jetbrains/annotations/NotNull.html"title="class or interface in org.jetbrains.annotations"class="external-link">@NotNull</a>
</span><spanclass="modifiers">public</span> <spanclass="return-type"><ahref="https://javadoc.io/doc/org.jetbrains/annotations/23.0.0/org/jetbrains/annotations/NotNull.html"title="class or interface in org.jetbrains.annotations"class="external-link">@NotNull</a><ahref="../permissions/PermissionDefault.html"title="enum class in org.bukkit.permissions">PermissionDefault</a></span> <spanclass="element-name">getPermissionDefault</span>()</div>
<divclass="block">Gives the default <ahref="../permissions/Permission.html#getDefault()"><code>default</code></a> state of
<ahref="#getPermissions()"><code>permissions</code></a> registered for the plugin.
<ul>
<li>If not specified, it will be <ahref="../permissions/PermissionDefault.html#OP"><code>PermissionDefault.OP</code></a>.
<li>It is matched using <ahref="../permissions/PermissionDefault.html#getByName(java.lang.String)"><code>PermissionDefault.getByName(String)</code></a>
<li>It only affects permissions that do not define the
<code>default</code> node.
<li>It may be any value in <ahref="../permissions/PermissionDefault.html"title="enum class in org.bukkit.permissions"><code>PermissionDefault</code></a>.
</ul>
<p>
In the plugin.yml, this entry is named <code>default-permission</code>.
<dd>the default value for the plugin's permissions</dd>
</dl>
</section>
</li>
<li>
<sectionclass="detail"id="getAwareness()">
<h3>getAwareness</h3>
<divclass="member-signature"><spanclass="annotations"><ahref="https://javadoc.io/doc/org.jetbrains/annotations/23.0.0/org/jetbrains/annotations/NotNull.html"title="class or interface in org.jetbrains.annotations"class="external-link">@NotNull</a>
</span><spanclass="modifiers">public</span> <spanclass="return-type"><ahref="https://javadoc.io/doc/org.jetbrains/annotations/23.0.0/org/jetbrains/annotations/NotNull.html"title="class or interface in org.jetbrains.annotations"class="external-link">@NotNull</a><ahref="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/Set.html"title="class or interface in java.util"class="external-link">Set</a><<ahref="PluginAwareness.html"title="interface in org.bukkit.plugin">PluginAwareness</a>></span> <spanclass="element-name">getAwareness</span>()</div>
<divclass="block">Gives a set of every <ahref="PluginAwareness.html"title="interface in org.bukkit.plugin"><code>PluginAwareness</code></a> for a plugin. An awareness
dictates something that a plugin developer acknowledges when the plugin
is compiled. Some implementions may define extra awarenesses that are
not included in the API. Any unrecognized
awareness (one unsupported or in a future version) will cause a dummy
object to be created instead of failing.
<ul>
<li>Currently only supports the enumerated values in <ahref="PluginAwareness.Flags.html"title="enum class in org.bukkit.plugin"><code>PluginAwareness.Flags</code></a>.
<li>Each awareness starts the identifier with bang-at
(<code>!@</code>).
<li>Unrecognized (future / unimplemented) entries are quietly replaced
by a generic object that implements PluginAwareness.
<li>A type of awareness must be defined by the runtime and acknowledged
by the API, effectively discluding any derived type from any
plugin's classpath.
<li><code>awareness</code> must be in <ahref="http://en.wikipedia.org/wiki/YAML#Lists">YAML list
format</a>.
</ul>
<p>
In the plugin.yml, this entry is named <code>awareness</code>.
<p>
Example:<blockquote><pre>awareness:
- !@UTF8</pre></blockquote>
<p>
<b>Note:</b> Although unknown versions of some future awareness are
gracefully substituted, previous versions of Bukkit (ones prior to the
first implementation of awareness) will fail to load a plugin that
defines any awareness.</div>
<dlclass="notes">
<dt>Returns:</dt>
<dd>a set containing every awareness for the plugin</dd>
</dl>
</section>
</li>
<li>
<sectionclass="detail"id="getFullName()">
<h3>getFullName</h3>
<divclass="member-signature"><spanclass="annotations"><ahref="https://javadoc.io/doc/org.jetbrains/annotations/23.0.0/org/jetbrains/annotations/NotNull.html"title="class or interface in org.jetbrains.annotations"class="external-link">@NotNull</a>
</span><spanclass="modifiers">public</span> <spanclass="return-type"><ahref="https://javadoc.io/doc/org.jetbrains/annotations/23.0.0/org/jetbrains/annotations/NotNull.html"title="class or interface in org.jetbrains.annotations"class="external-link">@NotNull</a><ahref="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html"title="class or interface in java.lang"class="external-link">String</a></span> <spanclass="element-name">getFullName</span>()</div>
<divclass="block">Returns the name of a plugin, including the version. This method is
provided for convenience; it uses the <ahref="#getName()"><code>getName()</code></a> and <ahref="#getVersion()"><code>getVersion()</code></a> entries.</div>
<dlclass="notes">
<dt>Returns:</dt>
<dd>a descriptive name of the plugin and respective version</dd>
</dl>
</section>
</li>
<li>
<sectionclass="detail"id="getAPIVersion()">
<h3>getAPIVersion</h3>
<divclass="member-signature"><spanclass="annotations"><ahref="https://javadoc.io/doc/org.jetbrains/annotations/23.0.0/org/jetbrains/annotations/Nullable.html"title="class or interface in org.jetbrains.annotations"class="external-link">@Nullable</a>
</span><spanclass="modifiers">public</span> <spanclass="return-type"><ahref="https://javadoc.io/doc/org.jetbrains/annotations/23.0.0/org/jetbrains/annotations/Nullable.html"title="class or interface in org.jetbrains.annotations"class="external-link">@Nullable</a><ahref="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html"title="class or interface in java.lang"class="external-link">String</a></span> <spanclass="element-name">getAPIVersion</span>()</div>
<divclass="block">Gives the API version which this plugin is designed to support. No
specific format is guaranteed.
<ul>
<li>Refer to release notes for supported API versions.
</ul>
<p>
In the plugin.yml, this entry is named <code>api-version</code>.
<divclass="member-signature"><spanclass="annotations"><ahref="https://javadoc.io/doc/org.jetbrains/annotations/23.0.0/org/jetbrains/annotations/NotNull.html"title="class or interface in org.jetbrains.annotations"class="external-link">@NotNull</a>
</span><spanclass="modifiers">public</span> <spanclass="return-type"><ahref="https://javadoc.io/doc/org.jetbrains/annotations/23.0.0/org/jetbrains/annotations/NotNull.html"title="class or interface in org.jetbrains.annotations"class="external-link">@NotNull</a><ahref="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/List.html"title="class or interface in java.util"class="external-link">List</a><<ahref="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html"title="class or interface in java.lang"class="external-link">String</a>></span> <spanclass="element-name">getLibraries</span>()</div>
<divclass="block">Gets the libraries this plugin requires. This is a preview feature.
<ul>
<li>Libraries must be GAV specifiers and are loaded from Maven Central.
<divclass="member-signature"><spanclass="annotations"><ahref="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Deprecated.html"title="class or interface in java.lang"class="external-link">@Deprecated</a>
<ahref="https://javadoc.io/doc/org.jetbrains/annotations/23.0.0/org/jetbrains/annotations/Nullable.html"title="class or interface in org.jetbrains.annotations"class="external-link">@Nullable</a>
</span><spanclass="modifiers">public</span> <spanclass="return-type"><ahref="https://javadoc.io/doc/org.jetbrains/annotations/23.0.0/org/jetbrains/annotations/Nullable.html"title="class or interface in org.jetbrains.annotations"class="external-link">@Nullable</a><ahref="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html"title="class or interface in java.lang"class="external-link">String</a></span> <spanclass="element-name">getClassLoaderOf</span>()</div>
<divclass="member-signature"><spanclass="modifiers">public</span> <spanclass="return-type">void</span> <spanclass="element-name">save</span><wbr><spanclass="parameters">(<ahref="https://javadoc.io/doc/org.jetbrains/annotations/23.0.0/org/jetbrains/annotations/NotNull.html"title="class or interface in org.jetbrains.annotations"class="external-link">@NotNull</a>
<ahref="https://javadoc.io/doc/org.jetbrains/annotations/23.0.0/org/jetbrains/annotations/NotNull.html"title="class or interface in org.jetbrains.annotations"class="external-link">@NotNull</a><ahref="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/io/Writer.html"title="class or interface in java.io"class="external-link">Writer</a> writer)</span></div>
<divclass="block">Saves this PluginDescriptionFile to the given writer</div>
<dlclass="notes">
<dt>Parameters:</dt>
<dd><code>writer</code> - Writer to output this file to</dd>
</dl>
</section>
</li>
<li>
<sectionclass="detail"id="getRawName()">
<h3>getRawName</h3>
<divclass="member-signature"><spanclass="annotations"><ahref="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Deprecated.html"title="class or interface in java.lang"class="external-link">@Deprecated</a>
<ahref="https://javadoc.io/doc/org.jetbrains/annotations/23.0.0/org/jetbrains/annotations/NotNull.html"title="class or interface in org.jetbrains.annotations"class="external-link">@NotNull</a>
</span><spanclass="modifiers">public</span> <spanclass="return-type"><ahref="https://javadoc.io/doc/org.jetbrains/annotations/23.0.0/org/jetbrains/annotations/NotNull.html"title="class or interface in org.jetbrains.annotations"class="external-link">@NotNull</a><ahref="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html"title="class or interface in java.lang"class="external-link">String</a></span> <spanclass="element-name">getRawName</span>()</div>