<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh-Hans-CN">
	<id>https://mineplugin.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Minedx</id>
	<title>Minecraft插件百科 - 用户贡献 [zh-cn]</title>
	<link rel="self" type="application/atom+xml" href="https://mineplugin.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Minedx"/>
	<link rel="alternate" type="text/html" href="https://mineplugin.org/%E7%89%B9%E6%AE%8A:%E7%94%A8%E6%88%B7%E8%B4%A1%E7%8C%AE/Minedx"/>
	<updated>2026-04-22T01:11:56Z</updated>
	<subtitle>用户贡献</subtitle>
	<generator>MediaWiki 1.41.1</generator>
	<entry>
		<id>https://mineplugin.org/index.php?title=EssentialsX/%E5%8F%91%E5%B8%83%E9%A1%B5&amp;diff=12896</id>
		<title>EssentialsX/发布页</title>
		<link rel="alternate" type="text/html" href="https://mineplugin.org/index.php?title=EssentialsX/%E5%8F%91%E5%B8%83%E9%A1%B5&amp;diff=12896"/>
		<updated>2020-09-14T09:55:42Z</updated>

		<summary type="html">&lt;p&gt;Minedx：​&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{待翻译}}&lt;br /&gt;
=== 关于 EssentialsX ===&lt;br /&gt;
EssentialsX 是一个用于 Spigot 服务端的基础整合插件, 全方位覆盖服务端所需的超过 130 个指令与其他特性!&lt;br /&gt;
&lt;br /&gt;
EssentialsX is a fork of the original Essentials 2 plugin for Bukkit servers, adding support for the latest Minecraft versions. EssentialsX also includes several performance enhancements and fixes on top of the original Essentials, as well as plenty of new useful features for servers.&lt;br /&gt;
&lt;br /&gt;
You can view major differences and learn how to set EssentialsX up over at the EssentialsX [https://essentialsx.net/wiki/Improvements.html wiki].&lt;br /&gt;
&lt;br /&gt;
=== Requirements ===&lt;br /&gt;
* EssentialsX is designed to use modern permissions plugins - we strongly recommend [https://luckperms.net/ LuckPerms]. You also need [https://www.spigotmc.org/resources/vault.34315/ Vault] for prefix/suffix support.&lt;br /&gt;
* EssentialsX currently supports &#039;&#039;&#039;CraftBukkit&#039;&#039;&#039;, &#039;&#039;&#039;Spigot&#039;&#039;&#039; and [https://papermc.io/ Paper] &#039;&#039;&#039;(recommended)&#039;&#039;&#039;. Other server implementations may work, but we don&#039;t recommend them as they may cause compatibility issues.&lt;br /&gt;
&lt;br /&gt;
=== Support ===&lt;br /&gt;
Looking for help with EssentialsX? You can join the MOSS Discord Server for support:&lt;br /&gt;
&lt;br /&gt;
https://discord.gg/casfFyh&lt;br /&gt;
&lt;br /&gt;
You can also report bugs on the GitHub issue tracker: https://github.com/EssentialsX/Essentials/issues/new/choose&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note: please use MOSS or GitHub for support, not Spigot private messages or the review section. You&#039;ll get a much faster answer on Discord or GitHub than on SpigotMC.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Donate ===&lt;br /&gt;
EssentialsX is provided completely free-of-charge. If you&#039;d like to support the EssentialsX project, you can make a recurring donation on Patreon:&lt;br /&gt;
&lt;br /&gt;
https://patreon.com/essentialsx&lt;br /&gt;
&lt;br /&gt;
If you&#039;d prefer to make a one-off donation, you can support us on Ko-fi:&lt;br /&gt;
&lt;br /&gt;
https://ko-fi.com/essentialsx&lt;br /&gt;
&lt;br /&gt;
If you&#039;re not able to donate, we&#039;d really appreciate if you could take the time to write a review below, or give us a star on [https://github.com/EssentialsX/Essentials GitHub]. Every little helps!&lt;br /&gt;
&lt;br /&gt;
=== Metrics collection ===&lt;br /&gt;
EssentialsX collects anonymous server statistics through bStats, an open-source Minecraft statistics service.&lt;br /&gt;
&lt;br /&gt;
https://bstats.org/plugin/bukkit/EssentialsX&lt;br /&gt;
&lt;br /&gt;
If you&#039;d like to disable metrics collection via bStats, you can edit the &#039;&#039;&#039;plugins/bStats/config.yml&#039;&#039;&#039; file.&lt;br /&gt;
&lt;br /&gt;
=== Contributing ===&lt;br /&gt;
EssentialsX is an open source project released under the &#039;&#039;&#039;GPLv3&#039;&#039;&#039; license, and we welcome code contributions on our [https://github.com/EssentialsX/Essentials GitHub]. Our translations are also crowd sourced, so if you&#039;d like to help bring EssentialsX to your language, you can do so on [https://crowdin.com/project/essentialsx-official Crowdin].&lt;/div&gt;</summary>
		<author><name>Minedx</name></author>
	</entry>
	<entry>
		<id>https://mineplugin.org/index.php?title=EssentialsX/%E5%8F%91%E5%B8%83%E9%A1%B5&amp;diff=12895</id>
		<title>EssentialsX/发布页</title>
		<link rel="alternate" type="text/html" href="https://mineplugin.org/index.php?title=EssentialsX/%E5%8F%91%E5%B8%83%E9%A1%B5&amp;diff=12895"/>
		<updated>2020-09-14T09:54:13Z</updated>

		<summary type="html">&lt;p&gt;Minedx：​发布页完整搬运&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{待翻译}}&lt;br /&gt;
=== About EssentialsX ===&lt;br /&gt;
EssentialsX is the essential plugin suite for Spigot servers, including over 130 commands and many features for servers of all size and scale!&lt;br /&gt;
&lt;br /&gt;
EssentialsX is a fork of the original Essentials 2 plugin for Bukkit servers, adding support for the latest Minecraft versions. EssentialsX also includes several performance enhancements and fixes on top of the original Essentials, as well as plenty of new useful features for servers.&lt;br /&gt;
&lt;br /&gt;
You can view major differences and learn how to set EssentialsX up over at the EssentialsX [https://essentialsx.net/wiki/Improvements.html wiki].&lt;br /&gt;
&lt;br /&gt;
=== Requirements ===&lt;br /&gt;
* EssentialsX is designed to use modern permissions plugins - we strongly recommend [https://luckperms.net/ LuckPerms]. You also need [https://www.spigotmc.org/resources/vault.34315/ Vault] for prefix/suffix support.&lt;br /&gt;
* EssentialsX currently supports &#039;&#039;&#039;CraftBukkit&#039;&#039;&#039;, &#039;&#039;&#039;Spigot&#039;&#039;&#039; and [https://papermc.io/ Paper] &#039;&#039;&#039;(recommended)&#039;&#039;&#039;. Other server implementations may work, but we don&#039;t recommend them as they may cause compatibility issues.&lt;br /&gt;
&lt;br /&gt;
=== Support ===&lt;br /&gt;
Looking for help with EssentialsX? You can join the MOSS Discord Server for support:&lt;br /&gt;
&lt;br /&gt;
https://discord.gg/casfFyh&lt;br /&gt;
&lt;br /&gt;
You can also report bugs on the GitHub issue tracker: https://github.com/EssentialsX/Essentials/issues/new/choose&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note: please use MOSS or GitHub for support, not Spigot private messages or the review section. You&#039;ll get a much faster answer on Discord or GitHub than on SpigotMC.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Donate ===&lt;br /&gt;
EssentialsX is provided completely free-of-charge. If you&#039;d like to support the EssentialsX project, you can make a recurring donation on Patreon:&lt;br /&gt;
&lt;br /&gt;
https://patreon.com/essentialsx&lt;br /&gt;
&lt;br /&gt;
If you&#039;d prefer to make a one-off donation, you can support us on Ko-fi:&lt;br /&gt;
&lt;br /&gt;
https://ko-fi.com/essentialsx&lt;br /&gt;
&lt;br /&gt;
If you&#039;re not able to donate, we&#039;d really appreciate if you could take the time to write a review below, or give us a star on [https://github.com/EssentialsX/Essentials GitHub]. Every little helps!&lt;br /&gt;
&lt;br /&gt;
=== Metrics collection ===&lt;br /&gt;
EssentialsX collects anonymous server statistics through bStats, an open-source Minecraft statistics service.&lt;br /&gt;
&lt;br /&gt;
https://bstats.org/plugin/bukkit/EssentialsX&lt;br /&gt;
&lt;br /&gt;
If you&#039;d like to disable metrics collection via bStats, you can edit the &#039;&#039;&#039;plugins/bStats/config.yml&#039;&#039;&#039; file.&lt;br /&gt;
&lt;br /&gt;
=== Contributing ===&lt;br /&gt;
EssentialsX is an open source project released under the &#039;&#039;&#039;GPLv3&#039;&#039;&#039; license, and we welcome code contributions on our [https://github.com/EssentialsX/Essentials GitHub]. Our translations are also crowd sourced, so if you&#039;d like to help bring EssentialsX to your language, you can do so on [https://crowdin.com/project/essentialsx-official Crowdin].&lt;/div&gt;</summary>
		<author><name>Minedx</name></author>
	</entry>
	<entry>
		<id>https://mineplugin.org/index.php?title=EssentialsX/%E5%8F%91%E5%B8%83%E9%A1%B5&amp;diff=12894</id>
		<title>EssentialsX/发布页</title>
		<link rel="alternate" type="text/html" href="https://mineplugin.org/index.php?title=EssentialsX/%E5%8F%91%E5%B8%83%E9%A1%B5&amp;diff=12894"/>
		<updated>2020-09-14T09:49:09Z</updated>

		<summary type="html">&lt;p&gt;Minedx：​添加模板&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{待搬运}}&lt;br /&gt;
=== About EssentialsX ===&lt;br /&gt;
EssentialsX is the essential plugin suite for Spigot servers, including over 130 commands and many features for servers of all size and scale!&lt;br /&gt;
&lt;br /&gt;
EssentialsX is a fork of the original Essentials 2 plugin for Bukkit servers, adding support for the latest Minecraft versions. EssentialsX also includes several performance enhancements and fixes on top of the original Essentials, as well as plenty of new useful features for servers.&lt;br /&gt;
&lt;br /&gt;
You can view major differences and learn how to set EssentialsX up over at the EssentialsX [https://essentialsx.net/wiki/Improvements.html wiki].&lt;br /&gt;
&lt;br /&gt;
=== Requirements ===&lt;br /&gt;
EssentialsX is designed to use modern permissions plugins - we strongly recommend [https://luckperms.net/ LuckPerms]. You also need [https://www.spigotmc.org/resources/vault.34315/ Vault] for prefix/suffix support.&lt;br /&gt;
EssentialsX currently supports &#039;&#039;&#039;CraftBukkit&#039;&#039;&#039;, &#039;&#039;&#039;Spigot&#039;&#039;&#039; and [https://papermc.io/ Paper] &#039;&#039;&#039;(recommended)&#039;&#039;&#039;. Other server implementations may work, but we don&#039;t recommend them as they may cause compatibility issues.&lt;br /&gt;
&lt;br /&gt;
=== Support ===&lt;br /&gt;
Looking for help with EssentialsX? You can join the MOSS Discord Server for support:&lt;br /&gt;
https://discord.gg/casfFyh&lt;/div&gt;</summary>
		<author><name>Minedx</name></author>
	</entry>
	<entry>
		<id>https://mineplugin.org/index.php?title=EssentialsX&amp;diff=12893</id>
		<title>EssentialsX</title>
		<link rel="alternate" type="text/html" href="https://mineplugin.org/index.php?title=EssentialsX&amp;diff=12893"/>
		<updated>2020-09-14T09:48:37Z</updated>

		<summary type="html">&lt;p&gt;Minedx：​&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Bukkit Plugin Infobox&lt;br /&gt;
|插件名=EssentialsX&lt;br /&gt;
|版本=2.18.1&lt;br /&gt;
|前置插件=Vault&lt;br /&gt;
|兼容服务端版本=1.8 - 1.16&lt;br /&gt;
|網址=https://www.spigotmc.org/resources/essentialsx.9089/&lt;br /&gt;
}}&lt;br /&gt;
{{待搬运}}&lt;br /&gt;
[[Category:管理]]&lt;br /&gt;
&lt;br /&gt;
参见 [[EssentialsX/发布页]]&lt;/div&gt;</summary>
		<author><name>Minedx</name></author>
	</entry>
	<entry>
		<id>https://mineplugin.org/index.php?title=EssentialsX/%E5%8F%91%E5%B8%83%E9%A1%B5&amp;diff=12892</id>
		<title>EssentialsX/发布页</title>
		<link rel="alternate" type="text/html" href="https://mineplugin.org/index.php?title=EssentialsX/%E5%8F%91%E5%B8%83%E9%A1%B5&amp;diff=12892"/>
		<updated>2020-09-14T09:48:08Z</updated>

		<summary type="html">&lt;p&gt;Minedx：​创建页面，内容为“=== About EssentialsX === EssentialsX is the essential plugin suite for Spigot servers, including over 130 commands and many features for servers of all size and sca…”&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== About EssentialsX ===&lt;br /&gt;
EssentialsX is the essential plugin suite for Spigot servers, including over 130 commands and many features for servers of all size and scale!&lt;br /&gt;
&lt;br /&gt;
EssentialsX is a fork of the original Essentials 2 plugin for Bukkit servers, adding support for the latest Minecraft versions. EssentialsX also includes several performance enhancements and fixes on top of the original Essentials, as well as plenty of new useful features for servers.&lt;br /&gt;
&lt;br /&gt;
You can view major differences and learn how to set EssentialsX up over at the EssentialsX [https://essentialsx.net/wiki/Improvements.html wiki].&lt;br /&gt;
&lt;br /&gt;
=== Requirements ===&lt;br /&gt;
EssentialsX is designed to use modern permissions plugins - we strongly recommend [https://luckperms.net/ LuckPerms]. You also need [https://www.spigotmc.org/resources/vault.34315/ Vault] for prefix/suffix support.&lt;br /&gt;
EssentialsX currently supports &#039;&#039;&#039;CraftBukkit&#039;&#039;&#039;, &#039;&#039;&#039;Spigot&#039;&#039;&#039; and [https://papermc.io/ Paper] &#039;&#039;&#039;(recommended)&#039;&#039;&#039;. Other server implementations may work, but we don&#039;t recommend them as they may cause compatibility issues.&lt;br /&gt;
&lt;br /&gt;
=== Support ===&lt;br /&gt;
Looking for help with EssentialsX? You can join the MOSS Discord Server for support:&lt;br /&gt;
https://discord.gg/casfFyh&lt;/div&gt;</summary>
		<author><name>Minedx</name></author>
	</entry>
	<entry>
		<id>https://mineplugin.org/index.php?title=EssentialsX&amp;diff=12891</id>
		<title>EssentialsX</title>
		<link rel="alternate" type="text/html" href="https://mineplugin.org/index.php?title=EssentialsX&amp;diff=12891"/>
		<updated>2020-09-14T09:47:57Z</updated>

		<summary type="html">&lt;p&gt;Minedx：​切换到子页面&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Bukkit Plugin Infobox&lt;br /&gt;
|插件名=EssentialsX&lt;br /&gt;
|版本=2.18.1&lt;br /&gt;
|前置插件=Vault&lt;br /&gt;
|兼容服务端版本=1.8 - 1.16&lt;br /&gt;
|網址=https://www.spigotmc.org/resources/essentialsx.9089/&lt;br /&gt;
}}&lt;br /&gt;
{{待搬运}}&lt;br /&gt;
[[Category:管理]]&lt;/div&gt;</summary>
		<author><name>Minedx</name></author>
	</entry>
	<entry>
		<id>https://mineplugin.org/index.php?title=EssentialsX&amp;diff=12890</id>
		<title>EssentialsX</title>
		<link rel="alternate" type="text/html" href="https://mineplugin.org/index.php?title=EssentialsX&amp;diff=12890"/>
		<updated>2020-09-14T09:46:43Z</updated>

		<summary type="html">&lt;p&gt;Minedx：​&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Bukkit Plugin Infobox&lt;br /&gt;
|插件名=EssentialsX&lt;br /&gt;
|版本=2.18.1&lt;br /&gt;
|前置插件=Vault&lt;br /&gt;
|兼容服务端版本=1.8 - 1.16&lt;br /&gt;
|網址=https://www.spigotmc.org/resources/essentialsx.9089/&lt;br /&gt;
}}&lt;br /&gt;
{{待搬运}}&lt;br /&gt;
[[Category:管理]]&lt;br /&gt;
=== About EssentialsX ===&lt;br /&gt;
EssentialsX is the essential plugin suite for Spigot servers, including over 130 commands and many features for servers of all size and scale!&lt;br /&gt;
&lt;br /&gt;
EssentialsX is a fork of the original Essentials 2 plugin for Bukkit servers, adding support for the latest Minecraft versions. EssentialsX also includes several performance enhancements and fixes on top of the original Essentials, as well as plenty of new useful features for servers.&lt;br /&gt;
&lt;br /&gt;
You can view major differences and learn how to set EssentialsX up over at the EssentialsX [https://essentialsx.net/wiki/Improvements.html wiki].&lt;br /&gt;
&lt;br /&gt;
=== Requirements ===&lt;br /&gt;
EssentialsX is designed to use modern permissions plugins - we strongly recommend [https://luckperms.net/ LuckPerms]. You also need [https://www.spigotmc.org/resources/vault.34315/ Vault] for prefix/suffix support.&lt;br /&gt;
EssentialsX currently supports &#039;&#039;&#039;CraftBukkit&#039;&#039;&#039;, &#039;&#039;&#039;Spigot&#039;&#039;&#039; and [https://papermc.io/ Paper] &#039;&#039;&#039;(recommended)&#039;&#039;&#039;. Other server implementations may work, but we don&#039;t recommend them as they may cause compatibility issues.&lt;br /&gt;
&lt;br /&gt;
=== Support ===&lt;br /&gt;
Looking for help with EssentialsX? You can join the MOSS Discord Server for support:&lt;br /&gt;
https://discord.gg/casfFyh&lt;/div&gt;</summary>
		<author><name>Minedx</name></author>
	</entry>
	<entry>
		<id>https://mineplugin.org/index.php?title=EssentialsX&amp;diff=12889</id>
		<title>EssentialsX</title>
		<link rel="alternate" type="text/html" href="https://mineplugin.org/index.php?title=EssentialsX&amp;diff=12889"/>
		<updated>2020-09-14T09:43:06Z</updated>

		<summary type="html">&lt;p&gt;Minedx：​&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Bukkit Plugin Infobox&lt;br /&gt;
|插件名=EssentialsX&lt;br /&gt;
|版本=2.18.1&lt;br /&gt;
|前置插件=Vault&lt;br /&gt;
|兼容服务端版本=1.8 - 1.16&lt;br /&gt;
|網址=https://www.spigotmc.org/resources/essentialsx.9089/&lt;br /&gt;
}}&lt;br /&gt;
{{待搬运}}&lt;br /&gt;
[[Category:管理]]&lt;br /&gt;
https://www.spigotmc.org/resources/essentialsx.9089/&lt;/div&gt;</summary>
		<author><name>Minedx</name></author>
	</entry>
	<entry>
		<id>https://mineplugin.org/index.php?title=EssentialsX&amp;diff=12888</id>
		<title>EssentialsX</title>
		<link rel="alternate" type="text/html" href="https://mineplugin.org/index.php?title=EssentialsX&amp;diff=12888"/>
		<updated>2020-09-14T09:41:00Z</updated>

		<summary type="html">&lt;p&gt;Minedx：​创建页面，内容为“{{Bukkit Plugin Infobox |插件名=EssentialsX |版本=2.18.1 |前置插件=Vault |兼容服务端版本=1.8 - 1.16 |網址=https://www.spigotmc.org/resources/essent…”&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Bukkit Plugin Infobox&lt;br /&gt;
|插件名=EssentialsX&lt;br /&gt;
|版本=2.18.1&lt;br /&gt;
|前置插件=Vault&lt;br /&gt;
|兼容服务端版本=1.8 - 1.16&lt;br /&gt;
|網址=https://www.spigotmc.org/resources/essentialsx.9089/&lt;br /&gt;
}}&lt;br /&gt;
{{待搬运}}&lt;br /&gt;
[[Category:管理]]&lt;/div&gt;</summary>
		<author><name>Minedx</name></author>
	</entry>
	<entry>
		<id>https://mineplugin.org/index.php?title=Towny&amp;diff=3287</id>
		<title>Towny</title>
		<link rel="alternate" type="text/html" href="https://mineplugin.org/index.php?title=Towny&amp;diff=3287"/>
		<updated>2016-08-12T09:11:18Z</updated>

		<summary type="html">&lt;p&gt;Minedx：​&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{待翻译}}&lt;br /&gt;
&lt;br /&gt;
== 介绍 ==&lt;br /&gt;
Towny Advanced is a versatile, player-controlled land management plugin for use with Bukkit/Tekkit/Spigot/Libigot. Towny offers solutions for pvp, griefing, chat, inflated economies and monsters to minecraft server admins. Towny allows players to work together and against each other as they see fit.&lt;br /&gt;
&lt;br /&gt;
== 特性 ==&lt;br /&gt;
&lt;br /&gt;
Towny includes a wide variety of features to offer instant enhancements to your traditional Minecraft server.&lt;br /&gt;
&lt;br /&gt;
*Allows players to own and manage land based on a pre-set grid layout.&lt;br /&gt;
**Players join towns and purchase plots of land.&lt;br /&gt;
**Players decide who can build, destroy, use “switchs” and use items on every plot they control.&lt;br /&gt;
**Towns can join together into nations, further structuring a server into teams.&lt;br /&gt;
**Towns grant protection from monsters, pvp, fire, explosions and greifing.&lt;br /&gt;
*Wilderness Rules (Optional)&lt;br /&gt;
**Area between towns is wilderness, with its own build permissions.&lt;br /&gt;
**Limit players’ interaction with the wild to just harvest-able blocks, keeping the wild pristine.&lt;br /&gt;
**Roll-back tnt, creeper, wither explosions, dragon damage and endermen block-moving.&lt;br /&gt;
**Block explosions and fire.&lt;br /&gt;
*PVP Enhancements&lt;br /&gt;
**Server with a strong PVP aspect will find Towny’s grouping of players to be invaluable.&lt;br /&gt;
**Prevent friendly-fire. (Optional)&lt;br /&gt;
**Nations split players into larger teams.&lt;br /&gt;
**Nations can declare other nations to be allies or enemies, further splitting players into even larger teams.&lt;br /&gt;
**PVP can be turned on/off in wilderness, towns and worlds. (Optional)&lt;br /&gt;
*Teleporting/Warping and Spawning (Optional)&lt;br /&gt;
**Players can spawn to their town upon death.&lt;br /&gt;
**Players can spawn to their town or a town that is within their nation/allied with their nation.&lt;br /&gt;
**Use of beds can be limited to personally-owned land and players can spawn there.&lt;br /&gt;
*Customized modified chat. (Optional)&lt;br /&gt;
**Colours, group prefixes and suffixes, nation, town, towny titles.&lt;br /&gt;
**Channels for general, local, town, nation, moderator, admin and custom channels.&lt;br /&gt;
**Anti-spam feature.&lt;br /&gt;
*Shop plugin support. (Optional)&lt;br /&gt;
**Limit shops to special Shop Plots, enhancing realism.&lt;br /&gt;
*Economy plugin interaction. (Optional)&lt;br /&gt;
**Supports all economy plugins.&lt;br /&gt;
**Charge money for plots, towns, nations.&lt;br /&gt;
**Flexible tax system.&lt;br /&gt;
**Upkeep to remove money from the economy, stopping rampant inflation.&lt;br /&gt;
*All Permissions Plugins supported. (Optional)&lt;br /&gt;
**Perms 2/3, GroupManager, BukkitPermissions, bPermissions, PermissionsEx, etc.&lt;br /&gt;
*Multiworld Support&lt;br /&gt;
**Flexible settings for every world.&lt;br /&gt;
**Enable/disable Towny in as many worlds as you like.&lt;br /&gt;
&lt;br /&gt;
== 重要信息 ==&lt;br /&gt;
&lt;br /&gt;
=== Towny 安装指南 ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:Here are instructions to install Towny for the first time. There are a few steps so follow them all carefully.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Step One – Preparing your server.&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:#Stop your server completely.&lt;br /&gt;
:#Download the following and copy to your Plugins folder (Place .jar files in the plugins folder, not the actual .zip):&lt;br /&gt;
:::*Download Towny Advanced.zip (Includes Towny, TownyChat and Questioner.)&lt;br /&gt;
:::**Towny.jar is required at all times,&lt;br /&gt;
:::**TownyChat.jar is required if you want to have Towny modify chatting in any way. (Adding prefixes and suffixes from your permissions plugin to chat, adding town/nation/world to chat, adding chat channels.)&lt;br /&gt;
:::**Questioner.jar is required if you want players to receive invites to towns, instead of being added automatically.&lt;br /&gt;
:::*If you use any economy plugin other than iConomy 5.01 you will be required to download Register.jar or Vault and put it in your plugins folder.&lt;br /&gt;
:::**If your economy plugin is supported by Vault, do not use Register.jar, instead use only Vault.&lt;br /&gt;
:#Start your server.&lt;br /&gt;
:#Stop your server.&lt;br /&gt;
&lt;br /&gt;
=== Towny 升级向导 ===&lt;br /&gt;
&lt;br /&gt;
:Here are instructions for performing a Towny Upgrade from a previous version:&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Towny Upgrade Instructions&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:*Stop your server completely.&lt;br /&gt;
:*Backup your entire server!&lt;br /&gt;
:*Download Towny_Advanced.zip and extract the 4 .jar files into your plugins folder (Register is not required if your server already uses Vault.jar).&lt;br /&gt;
:*Start your server.&lt;br /&gt;
:*Stop your server.&lt;br /&gt;
:*Upgrade from pre-0.79.0.0&lt;br /&gt;
:**The chat section of config.yml has been move to a new file, channels.yml. Edit the new channels.yml to your liking.&lt;br /&gt;
:*Upgrade from pre-0.82.0.0&lt;br /&gt;
:::*Towny has had TownyPerms added. This new file located at townysettingstownyperms.yml will be generated when you first start your server using Towny 0.82.0.0 or higher.&lt;br /&gt;
:::*TownyPerms adds town/nation ranks so server admins can specify what each rank can do (nomads, residents, mayors, kings, etc) Admins can also create custom ranks with custom permission sets. Any existing players set as assistants will lose their rank and need to have it re-assigned.&lt;br /&gt;
:*Start your server.&lt;br /&gt;
&lt;br /&gt;
=== Towny 的工作方式 ===&lt;br /&gt;
&lt;br /&gt;
Use this page to learn how Towny works, how various settings affect the gameplay, what you can do to customize Towny to your liking.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
==== &amp;lt;big&amp;gt;The Hierarchy&amp;lt;/big&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
===== Nomads =====&lt;br /&gt;
&lt;br /&gt;
:Nomads are simply players who are not part of any town. They are landless and their permission nodes are configurable via TownyPerms.yml. Nomads can purchase Embassy plots if they have been given towny.command.plot.claim in the Townyperms.yml&lt;br /&gt;
&lt;br /&gt;
===== Residents =====&lt;br /&gt;
&lt;br /&gt;
:Every person who joins your server can become a resident (the are given the towny.town.resident permission node in townyperms.yml’s nomad section.) Residents have their own command /resident which used by itself outputs a Resident Screen, displaying Money, Town, Plots owned and Friends.&lt;br /&gt;
&lt;br /&gt;
:Residents can join towns or choose to start a town of their own. Residents can also be put into one town automatically when they join the server for the first time by setting default_town_name: &#039;&#039; in config.yml.&lt;br /&gt;
&lt;br /&gt;
:Residents who join towns can claim plots that the Mayor of the town has set for sale. When a resident owns 1 or more plots, they will see a new line on their Resident Screen, showing plots owned and a perm line showing the plot perms given on all plots that resident owns.&lt;br /&gt;
&lt;br /&gt;
:Residents have their permission nodes configurable via TownyPerms.yml.&lt;br /&gt;
&lt;br /&gt;
===== Towns =====&lt;br /&gt;
&lt;br /&gt;
:A town is a collection of residents (or just one resident) with one resident as the mayor. A town also has a bank which the mayor can withdraw from. A mayor can also have assistants who have the same powers as him/herself. Towns can have taxes that will be taken at the end of each day interval.&lt;br /&gt;
&lt;br /&gt;
:Towns usually grow outwards from their home block, the townblock the mayor stood in during town creation. Townblocks need to be claimed beside other townblocks, unless the mayor claims an outpost in the wilderness.&lt;br /&gt;
&lt;br /&gt;
===== Mayors =====&lt;br /&gt;
&lt;br /&gt;
:Mayors run towns and with the help of their assistants, manage a town and its residents. Mayors have their permission nodes configurable via TownyPerms.yml.&lt;br /&gt;
&lt;br /&gt;
:Mayors can decide which ranks their residents fall into, in their town. This can be a Town Assistant or any other custom ranks created by the server admin in the townyperms.yml file. Mayors can see the available ranks using ‘/town ranklist’ command. Players are ranked using ‘/town rank {add|remove} {playername} {rankname}’. A player can have more than one rank assigned, allowing admins to create diverse town-roles such as bankers, builders, inviters for the mayor to choose for their trusted residents.&lt;br /&gt;
&lt;br /&gt;
:It is not possible to run two towns unless you are also an admin. An admin can do the following to manage two or more towns:&lt;br /&gt;
&lt;br /&gt;
  Example: Admin Bob&lt;br /&gt;
  Admin Bob wants to have a server-town, and his own town. Bob would start by creating his Server Town and setting up taxes, plotprices, permissions. This sort of town should not give residents, allies or outsiders permissions in the     &lt;br /&gt;
  Server Town.&lt;br /&gt;
  When Bob finished making his town the way he wants he uses /townyadmin set mayor {townname} npc to place a fake &#039;npc&#039; resident as mayor of the Server Town.&lt;br /&gt;
  Then Bob leaves Server Town and creates his own town. Using the /townyadmin set mayor {townname} npc command Bob can flip back and forth between towns.&lt;br /&gt;
  Bob doesn&#039;t have to leave his town to add players to the Server Town though! He can use /townyadmin town {townname} add {playername}  to add players to the Server Town or set default_town_name: &#039;Server_Town&#039; in config.yml.&lt;br /&gt;
  Bob can also add the NPC town into a nation using /ta nation {nation} add {town}.&lt;br /&gt;
&lt;br /&gt;
===== Nations =====&lt;br /&gt;
&lt;br /&gt;
:A nation is a collection of towns (or just one town) with one town as the capital. The mayor of that capital is the king. A nation can join the war event, as well as ally other nations. A nation also has it’s own bank. It can also tax the towns that belong to it.&lt;br /&gt;
&lt;br /&gt;
:Two nations can decide to join in an alliance, which allows them to be protected from friendly fire, help on each others plots (if the plot’s perm line allows allies,) and to help each other in war.&lt;br /&gt;
&lt;br /&gt;
:As of 0.91.0.0, you may restrict nation alliances to be 2-way only. So that Nation A cannot consider Nation B an ally unless the Nation B also considers Nation A an ally. You may turn this setting on in the config: war.disallow_one_way_alliance, which defaults to false.&lt;br /&gt;
&lt;br /&gt;
:Also, as of 0.91.0.0, you may restrict who can create, join and maintain a nation by requiring a minimum number of residents. See the Global Town Settings section of the config.yml.&lt;br /&gt;
&lt;br /&gt;
===== Kings =====&lt;br /&gt;
&lt;br /&gt;
:Kings lead Nations and are the mayor of the capital city. Kings have their permission nodes configurable via TownyPerms.yml.&lt;br /&gt;
&lt;br /&gt;
:Kings can decide which ranks their residents fall into, in their nation. This can be a Nation Assistant or any other custom ranks created by the server admin in the townyperms.yml file. Kings can see the available ranks using ‘/nation ranklist’ command. Players are ranked using ‘/nation rank {add|remove} {playername} {rankname}’. A player can have more than one rank assigned, allowing admins to create diverse nation-roles such as bankers, inviters for the king to choose for their trusted residents.&lt;br /&gt;
&lt;br /&gt;
:Kings have the ability to set titles (prefixes) and surnames (postfixes) to the residents of the towns they have in their nation. This is done with:&lt;br /&gt;
&lt;br /&gt;
:*/nation set title {name} titlegoeshere&lt;br /&gt;
:*/nation set surname {name} surnamegoeshere&lt;br /&gt;
:Typing the commands with nothing after the player’s name resets the title or surname to blank.&lt;br /&gt;
&lt;br /&gt;
===== Configuring Townyperms.yml and the Roles of the Ranks Within =====&lt;br /&gt;
&lt;br /&gt;
:New to Towny 0.82.0.0 and onwards towny has a new configuration file, TownyPerms.yml, located in the towny\settings\ folder.&lt;br /&gt;
&lt;br /&gt;
:This system pushes permissions directly to Bukkit and works along side all other perms plugins. It allows you to define sets of permissions based upon a players status (nomad/resident/mayor/king). You can also assign additional permissions based upon any assigned town/nation ranks (assistant/vip etc). This system is not limited to Towny permission nodes. You can assign any permissions for any plugins in it’s groups.&lt;br /&gt;
&lt;br /&gt;
:This file allows admins to decide what each player-rank can do. Some ranks are assigned automatically:&lt;br /&gt;
&lt;br /&gt;
::*Players without towns are Nomads.&lt;br /&gt;
::*Players in towns are Residents.&lt;br /&gt;
::*Owners of towns are Mayors.&lt;br /&gt;
::*Owners of nations are Kings.&lt;br /&gt;
&lt;br /&gt;
:Some ranks are assigned by Mayors or Kings, and supplement the ranks the players already have:&lt;br /&gt;
&lt;br /&gt;
::*Mayors can make a resident a Town Assistant.&lt;br /&gt;
::*Kings can make a resident a Nation Assistant.&lt;br /&gt;
::*Mayors and kings can grant admin-created ranks, allowing for diverse customization.&lt;br /&gt;
:::*A player can attain many Supplemental ranks from their mayor or king, allowing for diverse nation/town-roles.&lt;br /&gt;
:::*Examples of this would be town-builders, town-bankers, nation-bankers, town-inviters, etc.&lt;br /&gt;
&lt;br /&gt;
:A resident of a town can see the ranks within their town using ‘/town ranklist’. A mayor can use ‘/town rank {add|remove} {playername} {rankname}’ to give a player a new rank within their town. A king can use ‘/nation rank {add|remove} {playername} {rankname}’ to give a player a new rank within their nation.&lt;br /&gt;
&lt;br /&gt;
===== Configuring Mayor and King Titles, Town and Nation Names =====&lt;br /&gt;
&lt;br /&gt;
:Towny gives you the ability to customize the naming scheme applied to Mayors, Kings, Towns, Capital Cities and Nations.&lt;br /&gt;
&lt;br /&gt;
:This is done with two sections in the config.yml&lt;br /&gt;
&lt;br /&gt;
::*town_level:&lt;br /&gt;
::**The basic layout of the townLevel lines are as follows:&lt;br /&gt;
&lt;br /&gt;
     -   upkeepModifier: 1.0&lt;br /&gt;
         namePostfix: &#039; (Settlement)&#039;&lt;br /&gt;
         mayorPrefix: &#039;Hermit &#039;&lt;br /&gt;
         mayorPostfix: &#039;&#039;&lt;br /&gt;
         townBlockLimit: 16&lt;br /&gt;
         namePrefix: &#039;&#039;&lt;br /&gt;
         numresidents: 1&lt;br /&gt;
     -   upkeepModifier: 1.0&lt;br /&gt;
         namePostfix: &#039; (Hamlet)&#039;&lt;br /&gt;
         mayorPrefix: &#039;Chief &#039;&lt;br /&gt;
         mayorPostfix: &#039;&#039;&lt;br /&gt;
         townBlockLimit: 32&lt;br /&gt;
         namePrefix: &#039;&#039;&lt;br /&gt;
         numResidents: 2&lt;br /&gt;
&lt;br /&gt;
:*These are read as follows:&lt;br /&gt;
:*upkeepModifier: 1.0 – Use a higher multiplier to increase the upkeep as towns get more residents (unless you use town_plotbased_upkeep:true in which case it is based off of plot-count rather than resident-count.)&lt;br /&gt;
:*namePostfix: ‘ (Settlement)’ – This is added to the end of the town name.&lt;br /&gt;
:*mayorPrefix: ‘Hermit ‘ – This is added to the front of the mayor’s name.&lt;br /&gt;
:*mayorPostfix: ” – This is added to the end of the mayor’s name.&lt;br /&gt;
:*townBlockLimit: 16 – This decides how many townblocks a town gets, it is only used if town_block_ratio: ‘0’ is set in the config.yml.&lt;br /&gt;
:*namePrefix: ” – This is added to the front of the town name.&lt;br /&gt;
:*numresidents: 1 – This is how many residents a town needs to have in order to attain the prefixes/postfixes of the townlevel.&lt;br /&gt;
:*The two levels above are for towns of 1 and 2 residents. When a town is created the mayor’s new town has (Settlement) added to the end of his townname and he is given the prefix of Hermit. When the mayor gets a second resident his town becomes Townname (Hamlet) and he receives the prefix of Chief.&lt;br /&gt;
:*nation_level:&lt;br /&gt;
:**The basic layout of the nationLevel lines are as follows:&lt;br /&gt;
&lt;br /&gt;
         -   capitalPostfix: &#039;&#039;&lt;br /&gt;
             upkeepModifier: 1.0&lt;br /&gt;
             namePostfix: &#039; (Nation)&#039;&lt;br /&gt;
             kingPrefix: &#039;Count &#039;&lt;br /&gt;
             townBlockLimitBonus: 10&lt;br /&gt;
             namePrefix: &#039;Federation of &#039;&lt;br /&gt;
             numResidents: 10&lt;br /&gt;
             capitalPrefix: &#039;&#039;&lt;br /&gt;
             kingPostfix: &#039;&#039;&lt;br /&gt;
             nationTownUpkeepModifier: 1.0&lt;br /&gt;
         -   capitalPostfix: &#039;&#039;&lt;br /&gt;
             upkeepModifier: 1.0&lt;br /&gt;
             namePostfix: &#039; (Nation)&#039;&lt;br /&gt;
             kingPrefix: &#039;Duke &#039;&lt;br /&gt;
             townBlockLimitBonus: 20&lt;br /&gt;
             namePrefix: &#039;Dominion of &#039;&lt;br /&gt;
             numResidents: 20&lt;br /&gt;
             capitalPrefix: &#039;&#039;&lt;br /&gt;
             kingPostfix: &#039;&#039;&lt;br /&gt;
             nationTownUpkeepModifier: 1.0&lt;br /&gt;
&lt;br /&gt;
:*These are read as follows:&lt;br /&gt;
:*capitolPostfix: ” – This is added to the end of the capital city of the nation.&lt;br /&gt;
:*upkeepModifier: 1.0 – Use a higher multiplier to increase the upkeep as nations get more residents (unless you use town_plotbased_upkeep:true in which case it is based off of plot-count rather than resident-count.)&lt;br /&gt;
:*namePostfix: ‘ (Nation)’ – This is added to the end of the nation name.&lt;br /&gt;
:*kingPrefix: ‘Count ‘ – This is added to the front of the nation-leader.&lt;br /&gt;
:*townBlockLimitBonus: 10 – This is the number of bonus townblocks given to a town when they join a nation.&lt;br /&gt;
:*namePrefix: ‘Federation of ‘ – This is added to the front of the nation name.&lt;br /&gt;
:*numResidents: 10 – This is how many residents a nation must have to receive the prefixes and postfixes of the nation level.&lt;br /&gt;
:*capitalPrefix: ” – This is added to the front of the capital city of the nation.&lt;br /&gt;
:*kingPostfix: ” – This is added to the end of the nation-leader’s name.&lt;br /&gt;
:*nationTownUpkeepModifier: 1.0 – Joining a nation will lower/raise how much town upkeep your town pays. This multiplier is calculated after all other multipliers have their effect on the town upkeep cost. When set at 1.0, there is no :*change to upkeep.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
==== &amp;lt;big&amp;gt;How Towns Grow&amp;lt;/big&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
===== Starting a Town =====&lt;br /&gt;
&lt;br /&gt;
:Mayors start towns using the command /town new {townname}. The townblock they are standing in will be the home block for the town, the exact spot/position will be the spawn point for the town.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:More townblocks can be claimed using /town claim. These townblocks need to be directly adjacent to already claimed townblocks.&lt;br /&gt;
&lt;br /&gt;
===== Joining Towns =====&lt;br /&gt;
&lt;br /&gt;
:There are two ways to join towns, the first is by being invited by a Mayor or a Town assistant. The second it by joining an open town.&lt;br /&gt;
&lt;br /&gt;
:Mayors and assistants can add players to their town with the command /town add {playername}. If the server has Questioner.jar and using_questioner: true in the Towny config.yml then the player will receive a prompt to either /accept or /deny the invitation.&lt;br /&gt;
&lt;br /&gt;
:Mayors can set their towns to open using /town toggle open. A player who isn’t in a town already can use the command /town join {townname} to join open towns.&lt;br /&gt;
&lt;br /&gt;
:When residents join towns they increase the number of townblocks accessible to the mayor for claiming.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
==== &amp;lt;big&amp;gt;Plot System of Land Ownership&amp;lt;/big&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
===== Town Blocks =====&lt;br /&gt;
&lt;br /&gt;
:Towny provides a server admin a hands-off approach to block-protection. Block protection is broken down into plots of land, called townblocks, which by default are 16x16x128 (the full height of the world.)&lt;br /&gt;
:Townblocks are claimed by town mayors who can then sell/give individual plots to their town’s residents.&lt;br /&gt;
&lt;br /&gt;
====== Town Block Size ======&lt;br /&gt;
&lt;br /&gt;
:You change the townblock size in config.yml at &#039;&#039;town_block_size: 16.&#039;&#039; &#039;&#039;&#039;Changing this value is suggested only when you first install Towny.&#039;&#039;&#039;a&lt;br /&gt;
:Doing so after entering data will shift things unwantedly. Using smaller value will allow higher precision,at the cost of more work setting up. Also, extremely small values will render the caching done useless.&lt;br /&gt;
:Each cell is (town_block_size x town_block_size x 128) in size, with 128 being from bedrock to clouds.&lt;br /&gt;
&lt;br /&gt;
====== Setting How Many Towny Blocks A Town Receives ======&lt;br /&gt;
&lt;br /&gt;
:You can change how many town blocks a town gets to claim. This is done in two places.&lt;br /&gt;
:Towny checks first in the config.yml at &#039;&#039;town_block_ratio: 8&#039;&#039; and by default gives a town 8 townblocks per resident.&lt;br /&gt;
:You can override this by setting &#039;&#039;town_block_ratio: 0&#039;&#039; and using the townLevel section of the config.yml&lt;br /&gt;
:More information on the townLevel line and how to configure it is here.&lt;br /&gt;
&lt;br /&gt;
====== Buying Townblocks ======&lt;br /&gt;
&lt;br /&gt;
:Mayors can buy townblocks using /town buy bonus {amount}. An admin can set a maximum limit on how many townblocks a town can buy in the config.yml at max_purchased_blocks: &#039;0&#039;. The price of a bought townblock is also set in the config.yml at price_purchased_bonus_townblock: &#039;25.0&#039;.&lt;br /&gt;
:Using this feature, mayors can grow their town without needing new residents.&lt;br /&gt;
&lt;br /&gt;
===== Plot Types =====&lt;br /&gt;
&lt;br /&gt;
:Towny post-0.75 has added plot types besides the default. This is to give mayors more control over their towns.&lt;br /&gt;
&lt;br /&gt;
:As of now there are:&lt;br /&gt;
&lt;br /&gt;
====== Default Plots ======&lt;br /&gt;
&lt;br /&gt;
:These plots do not need any specific command to be designated.&lt;br /&gt;
:They are put up for sale with /plot forsale {$$}.&lt;br /&gt;
:A plot which is not of default type can be reset to a default plot with /plot set reset.&lt;br /&gt;
&lt;br /&gt;
====== Shop Plots ======&lt;br /&gt;
&lt;br /&gt;
:Shop plots are designated with /plot set shop&lt;br /&gt;
:A mayor can use /town set shopprice {$$} to set how much shop plots are sold at by default. This can be overriden when a mayor puts the actual plot up for sale with /plot forsale {$$}.&lt;br /&gt;
:A mayor can also charge an additional shoptax with /town set shoptax {$$}. This tax is charged in addition to the normal plottax.&lt;br /&gt;
&lt;br /&gt;
====== Arena Plots ======&lt;br /&gt;
&lt;br /&gt;
:Arena plots are designated with /plot set arena.&lt;br /&gt;
:PVP is on all the time in arena plots as well as friendly-fire damage. Town health regen is also disabled in arena plots.&lt;br /&gt;
&lt;br /&gt;
====== Embassy Plots ======&lt;br /&gt;
&lt;br /&gt;
:Embassy plots are designated with /plot set embassy&lt;br /&gt;
:A mayor can use /town set embassyprice {$$} to set how much embassy plots are sold at by default. This can be overriden when a mayor puts the actual plot up for sale with /plot forsale {$$}.&lt;br /&gt;
:A mayor can also charge an additional embassytax with /town set embassytax {$$}. This tax is charged in addition to the normal plottax.&lt;br /&gt;
:An embassy plot can be bought by any player, whether they are in a town or not. The townblock remains owned by the host-town and a mayor from the host-town can take the plot from the owner at any time.&lt;br /&gt;
:Embassy plots can also be changed into shop plots, allowing for larger shop towns, where many different towns’ players can set up shops.&lt;br /&gt;
:When a player leaves a town they do not lose ownership of their plots if those plots are set to be Embassy plots.&lt;br /&gt;
&lt;br /&gt;
====== Wilds Plots ======&lt;br /&gt;
&lt;br /&gt;
:Wilds plots are designated with /plot set wilds&lt;br /&gt;
:A wilds plot allows residents to destroy the blocks found on the wild ignore ID list. This includes ores, trees, flowers, mushrooms and other harvestable blocks by default. It does not include stone, dirt, grass and other terrain blocks.&lt;br /&gt;
:It is useful for creating tree farms, and protecting the terrain around a town, while still allowing residents to cut trees and explore caves.&lt;br /&gt;
:Setting up wilds plots can be slightly complex, here are instructions.&lt;br /&gt;
&lt;br /&gt;
# Navigate to your towny\data\worlds\WORLDNAME.txt file&lt;br /&gt;
# Set:&lt;br /&gt;
#*  unclaimedZoneBuild=false&lt;br /&gt;
#*  unclaimedZoneDestroy=false&lt;br /&gt;
#Configure the unclaimedZoneIgnoreIds line to include the blocks you would like players to break/build.&lt;br /&gt;
#Go to the Wilds plots you can set using /plot set wilds&lt;br /&gt;
#Use ‘/plot set perm resident build on’ and ‘/plot set perm resident destroy on’ to enable residents to break/build using only the blocks in the ignoreIDs list.&lt;br /&gt;
&lt;br /&gt;
====== Inn Plots ======&lt;br /&gt;
&lt;br /&gt;
:Inn plots are designated with /plot set inn&lt;br /&gt;
:An Inn plot allows anyone to use a bed to set their ‘/res spawn’ and spawn on death. The Inn plot will still deny a player who is in a nation declared as an enemy by your nation.&lt;br /&gt;
:For them to function deny_bed_use: ‘true’ must be set in the config.yml&lt;br /&gt;
&lt;br /&gt;
====== Jail Plots ======&lt;br /&gt;
&lt;br /&gt;
:Jail plots are designated with /plot set jail&lt;br /&gt;
&lt;br /&gt;
:* Players can become jailed if&lt;br /&gt;
::*The player’s mayor/sheriffs send them to jail.&lt;br /&gt;
::*An attacker who attacks a town which considers him an Enemy (Nation-relationship) dies in that Town. He is sent to the first available Jail plot of the defending town.&lt;br /&gt;
&lt;br /&gt;
:*Jailed players become unjailed if:&lt;br /&gt;
::*they leave their town and become a nomad,&lt;br /&gt;
::*the mayor/sheriff unjails them,&lt;br /&gt;
::*the player pays a bail amount to the town which jailed them, (using: /resident jail paybail)&lt;br /&gt;
::*they manage to escape the jail plot and the town and get into Wilderness.&lt;br /&gt;
&lt;br /&gt;
:*Jailed players cannot teleport.&lt;br /&gt;
:*Jailed players cannot use Ender Pearls unless enabled in the config.&lt;br /&gt;
:*Jailed players who die are sent back to their prescribed jail plot.&lt;br /&gt;
:*Jailed players do not give monetary payouts when they are killed.&lt;br /&gt;
:*Jailed players show their jailed status in the /res [playername] screen, along with the town they are jailed in.&lt;br /&gt;
:*It is suggested you make a new town rank in the townyperms.yml called Sheriff, and give that rank the towny.command.town.toggle.jail node. Newly generated townyperms.yml files will contain this rank by default.&lt;br /&gt;
&lt;br /&gt;
====== Farm Plots ======&lt;br /&gt;
&lt;br /&gt;
:Farm plots are designated with /plot set farm&lt;br /&gt;
&lt;br /&gt;
:A Farm plot players to only build/destroy blocks designated in the Towny Config.yml at global_town_settings.farm_plot_allow_blocks. By default this list includes “LONG_GRASS, DOUBLE_PLANT, YELLOW_FLOWER, RED_ROSE, PUMPKIN_STEM, MELON_STEM, BEETROOT_BLOCK, CARROT, POTATO, CROPS, MELON_BLOCK, PUMPKIN”.&lt;br /&gt;
&lt;br /&gt;
::Who can build/destroy these blocks is still determined by the plot’s perm line seen in the /plot perm screen. This means that if B=rao, anyone can plant/place the allowed blocks in the plot. If the B=r– then only town residents can plant/place the allowed blocks.&lt;br /&gt;
&lt;br /&gt;
:If admins want, they can add SOIL to the allowed blocks list, which will allow anyone allowed via the perm line to also make soil with a hoe. By default SOIL is not included and only admins/mayors/assistants will be able to create soil with a hoe. Towny already protects soil from being stomped into grass, so soil will only return to dirt if it is not irrigated.&lt;br /&gt;
&lt;br /&gt;
:Farm plots also allow town residents to kill animals in the plot. The list of animals is set in the config at global_town_settings.farm_animals. By default this list includes “PIG,COW,CHICKEN,SHEEP,MOOSHROOM”.&lt;br /&gt;
&lt;br /&gt;
===== Outposts =====&lt;br /&gt;
&lt;br /&gt;
:Normally townblocks are claimed around the home block, always connected to the town. To claim a townblock out in the wilderness, a mayor or assistant must claim an outpost.&lt;br /&gt;
&lt;br /&gt;
:In order for players to claim outposts, the config must be set to &#039;&#039;allow_outposts:&#039;&#039; true and players require towny.town.claim.outpost in their permission node group.&lt;br /&gt;
&lt;br /&gt;
:An admin can configure how many outposts a player can claim, this is set in your permissions plugin’s info/option/meta node section using the towny_maxoutposts: {number} info node. [http://towny.palmergames.com/towny/towny-permission-nodes/ See here.]&lt;br /&gt;
&lt;br /&gt;
:Outposts cannot be claimed too close to other home blocks, just like when a mayor starts a town they cannot be too close. The exact number is set in the [http://towny.palmergames.com/towny/towny-config-yml/ config.yml] at &#039;&#039;min_distance_from_town_homeblock: 5&#039;&#039;. In the default setting an outpost cannot be claimed within 5 townblocks of any other homeblock.&lt;br /&gt;
&lt;br /&gt;
:Outposts have two settings in [http://towny.palmergames.com/towny/towny-config-yml/ config.yml]&lt;br /&gt;
&lt;br /&gt;
:*By setting &#039;&#039;allow_outposts: false&#039;&#039; you can disable outposts completely.&lt;br /&gt;
:*You can also set the cost of claiming an outpost with &#039;&#039;price_outpost: 500.0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:Outposts can be teleported to, mayors set the spawn point of the outpost when they claim it or using ‘/town set outpost’. Players teleport to the outpost using ‘/town outpost x’ (with x being a number 1 – however many outposts the town has.)&lt;br /&gt;
&lt;br /&gt;
===== Selling Land =====&lt;br /&gt;
&lt;br /&gt;
Land is sold by Mayors to Residents that are a part of their town. using_iconomy: true must be set in [http://towny.palmergames.com/towny/towny-config-yml/ config.yml] in order for costs to be applied. Mayors have a command used in game to set the cost of all the plots that are set for sale hence-forth.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;/town set plotprice {$}&#039;&#039;&lt;br /&gt;
:*This sets the cost of newly-set-for-sale plots, already set-for-sale plots keep their costs. If it is not set, the plots will cost $0 by default.&lt;br /&gt;
&lt;br /&gt;
:To put a plot up for sale a mayor, while standing in the plot, type /plot forsale {optional cost} The resident would then type /plot claim while standing in the plot to buy it.&lt;br /&gt;
&lt;br /&gt;
===== Using the Maps =====&lt;br /&gt;
&lt;br /&gt;
:The map in towny displays the grid system of plots. The map can be viewed once using /towny map one time or you can set the map to show every time you move from one block to another:&lt;br /&gt;
&lt;br /&gt;
*Use &#039;&#039;/resident set mode map&#039;&#039; to turn it on.&lt;br /&gt;
*And use &#039;&#039;/resident set mode reset&#039;&#039; to turn it off.&lt;br /&gt;
&lt;br /&gt;
:A large version of the map can be seen using /towny map big.&lt;br /&gt;
&lt;br /&gt;
===== Plot Regeneration &amp;amp; Unclaimed Plots =====&lt;br /&gt;
&lt;br /&gt;
There are 4 options for affecting townblocks/plots.&lt;br /&gt;
&lt;br /&gt;
====== Reverting unclaimed townblocks to their original state on unclaim ======&lt;br /&gt;
&lt;br /&gt;
:When a town plot is unclaimed (by a player or through upkeep) it will slowly begin to revert to a pre town state. Blocks will slowly change back to whatever blocks we’re present at the moment the town block was claimed. A townblock must revert completely before the snapshot of the townblock is removed. If townblock is reclaimed mid-revert, a new snapshot is not taken and if the townblock is unclaimed again it will revert to the original snapshot.&lt;br /&gt;
&lt;br /&gt;
*Disabling this feature is done in the towny\data\worlds\worldname.txt @ &#039;usingPlotManagementRevert=false&#039;&lt;br /&gt;
*or by using ‘/tw toggle revertunclaim’ while standing in the world you want to toggle it in.&lt;br /&gt;
*Disabling this feature for new worlds is done in the config at new_world_settings.plot_management.revert_on_unclaim.enabled&lt;br /&gt;
&lt;br /&gt;
:You can configure certain block types you don’t want restored to prevent players exploiting regen for diamond ores.&lt;br /&gt;
&lt;br /&gt;
*Block types to not restore are configured in block_ignore in the worlds txt file data/worlds/worldname.txt&lt;br /&gt;
*Defaults for new worlds are set in the config at new_world_settings.plot_management.revert_on_unclaim.block_ignore:&lt;br /&gt;
&lt;br /&gt;
====== Deleting pre-defined blockIDs on unclaim ======&lt;br /&gt;
&lt;br /&gt;
:When a town plot is unclaimed (by a player or through upkeep) block IDs matching a list will be deleted within that townblock. This can be useful for deleting all signs within a townblock, ensuring any chests locked with Lockette or Deadbolt signs are unlocked.&lt;br /&gt;
&lt;br /&gt;
*Disabling this feature is done in the towny\data\worlds\worldname.txt @ &#039;&#039;usingPlotManagementdelete=false&#039;&#039;&lt;br /&gt;
*Disabling this feature for new worlds is done in the config at new_world_settings.plot_management.block_delete.enabled&lt;br /&gt;
&lt;br /&gt;
:You can configure the list of blockIDs to be removed on a per-world basis.&lt;br /&gt;
&lt;br /&gt;
*The blockIDs listed in the towny\data\worlds\worldname.txt @ &#039;plotManagementDeleteIds=&#039; will be removed from the townblock.&lt;br /&gt;
*Defaults for new worlds are set in the config at new_world_settings.plot_management.block_delete.unclaim_delete&lt;br /&gt;
&lt;br /&gt;
====== Plot-Owners’ and Mayors’ /plot clear command ======&lt;br /&gt;
&lt;br /&gt;
:A feature available only to Town Mayors on public town land: /plot clear. This command is meant to be used after a plot was personally owned by a resident, who either moved to another plot or left town. By default this list includes only signs, useful for mayors to remove sign-protection on doors, chests, furnaces, dispensers and trapdoors given via Lockette or Deadbolt.&lt;br /&gt;
&lt;br /&gt;
*Disabling this feature is done in the in the towny\data\worlds\worldname.txt @ &#039;&#039;usingPlotManagementMayorDelete=false&#039;&#039;&lt;br /&gt;
*Disabling this feature for new worlds is done in the config at new_world_settings.plot_management.mayor_plotblock_delete.enabled&lt;br /&gt;
&lt;br /&gt;
:You configure the list of blockIDs to be removed when this command is used.&lt;br /&gt;
&lt;br /&gt;
*The list of blockIDs is listed in the towny\data\worlds\worldname.txt @ &#039;&#039;plotManagementMayorDelete=WALL_SIGN,SIGN_POST&#039;&#039;&lt;br /&gt;
*Defaults for new worlds are set in the config.yml at new_world_settings.plot_management.mayor_plotblock_delete.mayor_plot_delete&lt;br /&gt;
&lt;br /&gt;
As of Towny 0.79.1.0, players can use this command within plots they personally own.&lt;br /&gt;
&lt;br /&gt;
====== Wilderness Regeneration ======&lt;br /&gt;
&lt;br /&gt;
:A simple wild_revert_on_mob_explosion option. Will regenerate explosions on a timer.&lt;br /&gt;
As of Towny 0.79.1.0 You can now add any entities here you want explosions to revent for in the wilderness (includes Creeper,EnderCrystal,EnderDragon,Fireball,SmallFireball,TNTPrimed).&lt;br /&gt;
These settings are copied to the individual world files, so you must make changes per world.&lt;br /&gt;
&lt;br /&gt;
*Disabling this feature is done in the in the towny\data\worlds\worldname.txt @ &#039;&#039;usingPlotManagementWildRegen=true&#039;&#039;&lt;br /&gt;
*or by using ‘/tw toggle revertexpl’ while standing in the world you want to toggle it in.&lt;br /&gt;
*Disabling this feature for new worlds is done in the config at new_world_settings.plot_management.wild_revert_on_mob_explosion.enabled&lt;br /&gt;
&lt;br /&gt;
:You can configure how quickly the blocks will regenerate, specifically how much time in between each block being reverted.&lt;br /&gt;
&lt;br /&gt;
*The timer is changed in the towny\data\worlds\worldname.txt @ &#039;&#039;usingPlotManagementWildRegenDelay=5&#039;&#039;&lt;br /&gt;
*The default for new worlds is set in the config.yml at new_world_settings.plot_management.wild_revert_on_mob_explosion.delay&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
==== &amp;lt;big&amp;gt; How Towny Lets Players Protect Their Blocks &amp;lt;/big&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
:Towny’s genius is the way it lets players protect themselves. An admin doesn’t need to go around protecting land for players, and players can’t run rampant claiming massive amounts of land without working for it and building their towns.&lt;br /&gt;
&lt;br /&gt;
:The first concept you need to digest are the 4 perm-types and 3 groups.&lt;br /&gt;
&lt;br /&gt;
===== Towny Plot Perms =====&lt;br /&gt;
&lt;br /&gt;
:There are 4 permission-type values, which can be set for personal plots and for town plots as well (town permissions can be set by the mayor and affect plots who are not owned by any player.) The basic command for this is either &#039;&#039;/resident set perm&#039;&#039; or &#039;&#039;/town set perm&#039;&#039; followed by the proper flags for each permission.&lt;br /&gt;
&lt;br /&gt;
:Available in Towny 0.77.0.0 and onward are per-plot permissions. Plots start with the default settings for plot perms (be it a resident-owned or town-owned plot,) but the owner of the plots can set different perms to different plots. To view a plots perm type &#039;&#039;/plot perm&#039;&#039; and to set a plots’ perms use &#039;&#039;/plot set perm&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
:Default permissions are viewable by typing either &#039;&#039;/resident&#039;&#039; for personal plot perms or by typing &#039;&#039;/town&#039;&#039; for town permissions.&lt;/div&gt;</summary>
		<author><name>Minedx</name></author>
	</entry>
	<entry>
		<id>https://mineplugin.org/index.php?title=Towny&amp;diff=3264</id>
		<title>Towny</title>
		<link rel="alternate" type="text/html" href="https://mineplugin.org/index.php?title=Towny&amp;diff=3264"/>
		<updated>2016-08-09T07:25:31Z</updated>

		<summary type="html">&lt;p&gt;Minedx：​搬运自 http://palmergames.com/towny/&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{待翻译}}&lt;br /&gt;
&lt;br /&gt;
== 介绍 ==&lt;br /&gt;
Towny Advanced is a versatile, player-controlled land management plugin for use with Bukkit/Tekkit/Spigot/Libigot. Towny offers solutions for pvp, griefing, chat, inflated economies and monsters to minecraft server admins. Towny allows players to work together and against each other as they see fit.&lt;br /&gt;
&lt;br /&gt;
== 特性 ==&lt;br /&gt;
&lt;br /&gt;
Towny includes a wide variety of features to offer instant enhancements to your traditional Minecraft server.&lt;br /&gt;
&lt;br /&gt;
*Allows players to own and manage land based on a pre-set grid layout.&lt;br /&gt;
**Players join towns and purchase plots of land.&lt;br /&gt;
**Players decide who can build, destroy, use “switchs” and use items on every plot they control.&lt;br /&gt;
**Towns can join together into nations, further structuring a server into teams.&lt;br /&gt;
**Towns grant protection from monsters, pvp, fire, explosions and greifing.&lt;br /&gt;
*Wilderness Rules (Optional)&lt;br /&gt;
**Area between towns is wilderness, with its own build permissions.&lt;br /&gt;
**Limit players’ interaction with the wild to just harvest-able blocks, keeping the wild pristine.&lt;br /&gt;
**Roll-back tnt, creeper, wither explosions, dragon damage and endermen block-moving.&lt;br /&gt;
**Block explosions and fire.&lt;br /&gt;
*PVP Enhancements&lt;br /&gt;
**Server with a strong PVP aspect will find Towny’s grouping of players to be invaluable.&lt;br /&gt;
**Prevent friendly-fire. (Optional)&lt;br /&gt;
**Nations split players into larger teams.&lt;br /&gt;
**Nations can declare other nations to be allies or enemies, further splitting players into even larger teams.&lt;br /&gt;
**PVP can be turned on/off in wilderness, towns and worlds. (Optional)&lt;br /&gt;
*Teleporting/Warping and Spawning (Optional)&lt;br /&gt;
**Players can spawn to their town upon death.&lt;br /&gt;
**Players can spawn to their town or a town that is within their nation/allied with their nation.&lt;br /&gt;
**Use of beds can be limited to personally-owned land and players can spawn there.&lt;br /&gt;
*Customized modified chat. (Optional)&lt;br /&gt;
**Colours, group prefixes and suffixes, nation, town, towny titles.&lt;br /&gt;
**Channels for general, local, town, nation, moderator, admin and custom channels.&lt;br /&gt;
**Anti-spam feature.&lt;br /&gt;
*Shop plugin support. (Optional)&lt;br /&gt;
**Limit shops to special Shop Plots, enhancing realism.&lt;br /&gt;
*Economy plugin interaction. (Optional)&lt;br /&gt;
**Supports all economy plugins.&lt;br /&gt;
**Charge money for plots, towns, nations.&lt;br /&gt;
**Flexible tax system.&lt;br /&gt;
**Upkeep to remove money from the economy, stopping rampant inflation.&lt;br /&gt;
*All Permissions Plugins supported. (Optional)&lt;br /&gt;
**Perms 2/3, GroupManager, BukkitPermissions, bPermissions, PermissionsEx, etc.&lt;br /&gt;
*Multiworld Support&lt;br /&gt;
**Flexible settings for every world.&lt;br /&gt;
**Enable/disable Towny in as many worlds as you like.&lt;br /&gt;
&lt;br /&gt;
== 重要信息 ==&lt;br /&gt;
&lt;br /&gt;
=== Towny 安装指南 ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:Here are instructions to install Towny for the first time. There are a few steps so follow them all carefully.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Step One – Preparing your server.&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:#Stop your server completely.&lt;br /&gt;
:#Download the following and copy to your Plugins folder (Place .jar files in the plugins folder, not the actual .zip):&lt;br /&gt;
:::*Download Towny Advanced.zip (Includes Towny, TownyChat and Questioner.)&lt;br /&gt;
:::**Towny.jar is required at all times,&lt;br /&gt;
:::**TownyChat.jar is required if you want to have Towny modify chatting in any way. (Adding prefixes and suffixes from your permissions plugin to chat, adding town/nation/world to chat, adding chat channels.)&lt;br /&gt;
:::**Questioner.jar is required if you want players to receive invites to towns, instead of being added automatically.&lt;br /&gt;
:::*If you use any economy plugin other than iConomy 5.01 you will be required to download Register.jar or Vault and put it in your plugins folder.&lt;br /&gt;
:::**If your economy plugin is supported by Vault, do not use Register.jar, instead use only Vault.&lt;br /&gt;
:#Start your server.&lt;br /&gt;
:#Stop your server.&lt;br /&gt;
&lt;br /&gt;
=== Towny 升级向导 ===&lt;br /&gt;
&lt;br /&gt;
:Here are instructions for performing a Towny Upgrade from a previous version:&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Towny Upgrade Instructions&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:*Stop your server completely.&lt;br /&gt;
:*Backup your entire server!&lt;br /&gt;
:*Download Towny_Advanced.zip and extract the 4 .jar files into your plugins folder (Register is not required if your server already uses Vault.jar).&lt;br /&gt;
:*Start your server.&lt;br /&gt;
:*Stop your server.&lt;br /&gt;
:*Upgrade from pre-0.79.0.0&lt;br /&gt;
:**The chat section of config.yml has been move to a new file, channels.yml. Edit the new channels.yml to your liking.&lt;br /&gt;
:*Upgrade from pre-0.82.0.0&lt;br /&gt;
:::*Towny has had TownyPerms added. This new file located at townysettingstownyperms.yml will be generated when you first start your server using Towny 0.82.0.0 or higher.&lt;br /&gt;
:::*TownyPerms adds town/nation ranks so server admins can specify what each rank can do (nomads, residents, mayors, kings, etc) Admins can also create custom ranks with custom permission sets. Any existing players set as assistants will lose their rank and need to have it re-assigned.&lt;br /&gt;
:*Start your server.&lt;br /&gt;
&lt;br /&gt;
=== Towny 的工作方式 ===&lt;br /&gt;
&lt;br /&gt;
Use this page to learn how Towny works, how various settings affect the gameplay, what you can do to customize Towny to your liking.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
==== &amp;lt;big&amp;gt;The Hierarchy&amp;lt;/big&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
===== Nomads =====&lt;br /&gt;
&lt;br /&gt;
:Nomads are simply players who are not part of any town. They are landless and their permission nodes are configurable via TownyPerms.yml. Nomads can purchase Embassy plots if they have been given towny.command.plot.claim in the Townyperms.yml&lt;br /&gt;
&lt;br /&gt;
===== Residents =====&lt;br /&gt;
&lt;br /&gt;
:Every person who joins your server can become a resident (the are given the towny.town.resident permission node in townyperms.yml’s nomad section.) Residents have their own command /resident which used by itself outputs a Resident Screen, displaying Money, Town, Plots owned and Friends.&lt;br /&gt;
&lt;br /&gt;
:Residents can join towns or choose to start a town of their own. Residents can also be put into one town automatically when they join the server for the first time by setting default_town_name: &#039;&#039; in config.yml.&lt;br /&gt;
&lt;br /&gt;
:Residents who join towns can claim plots that the Mayor of the town has set for sale. When a resident owns 1 or more plots, they will see a new line on their Resident Screen, showing plots owned and a perm line showing the plot perms given on all plots that resident owns.&lt;br /&gt;
&lt;br /&gt;
:Residents have their permission nodes configurable via TownyPerms.yml.&lt;br /&gt;
&lt;br /&gt;
===== Towns =====&lt;br /&gt;
&lt;br /&gt;
:A town is a collection of residents (or just one resident) with one resident as the mayor. A town also has a bank which the mayor can withdraw from. A mayor can also have assistants who have the same powers as him/herself. Towns can have taxes that will be taken at the end of each day interval.&lt;br /&gt;
&lt;br /&gt;
:Towns usually grow outwards from their home block, the townblock the mayor stood in during town creation. Townblocks need to be claimed beside other townblocks, unless the mayor claims an outpost in the wilderness.&lt;br /&gt;
&lt;br /&gt;
===== Mayors =====&lt;br /&gt;
&lt;br /&gt;
:Mayors run towns and with the help of their assistants, manage a town and its residents. Mayors have their permission nodes configurable via TownyPerms.yml.&lt;br /&gt;
&lt;br /&gt;
:Mayors can decide which ranks their residents fall into, in their town. This can be a Town Assistant or any other custom ranks created by the server admin in the townyperms.yml file. Mayors can see the available ranks using ‘/town ranklist’ command. Players are ranked using ‘/town rank {add|remove} {playername} {rankname}’. A player can have more than one rank assigned, allowing admins to create diverse town-roles such as bankers, builders, inviters for the mayor to choose for their trusted residents.&lt;br /&gt;
&lt;br /&gt;
:It is not possible to run two towns unless you are also an admin. An admin can do the following to manage two or more towns:&lt;br /&gt;
&lt;br /&gt;
  Example: Admin Bob&lt;br /&gt;
  Admin Bob wants to have a server-town, and his own town. Bob would start by creating his Server Town and setting up taxes, plotprices, permissions. This sort of town should not give residents, allies or outsiders permissions in the     &lt;br /&gt;
  Server Town.&lt;br /&gt;
  When Bob finished making his town the way he wants he uses /townyadmin set mayor {townname} npc to place a fake &#039;npc&#039; resident as mayor of the Server Town.&lt;br /&gt;
  Then Bob leaves Server Town and creates his own town. Using the /townyadmin set mayor {townname} npc command Bob can flip back and forth between towns.&lt;br /&gt;
  Bob doesn&#039;t have to leave his town to add players to the Server Town though! He can use /townyadmin town {townname} add {playername}  to add players to the Server Town or set default_town_name: &#039;Server_Town&#039; in config.yml.&lt;br /&gt;
  Bob can also add the NPC town into a nation using /ta nation {nation} add {town}.&lt;br /&gt;
&lt;br /&gt;
===== Nations =====&lt;br /&gt;
&lt;br /&gt;
:A nation is a collection of towns (or just one town) with one town as the capital. The mayor of that capital is the king. A nation can join the war event, as well as ally other nations. A nation also has it’s own bank. It can also tax the towns that belong to it.&lt;br /&gt;
&lt;br /&gt;
:Two nations can decide to join in an alliance, which allows them to be protected from friendly fire, help on each others plots (if the plot’s perm line allows allies,) and to help each other in war.&lt;br /&gt;
&lt;br /&gt;
:As of 0.91.0.0, you may restrict nation alliances to be 2-way only. So that Nation A cannot consider Nation B an ally unless the Nation B also considers Nation A an ally. You may turn this setting on in the config: war.disallow_one_way_alliance, which defaults to false.&lt;br /&gt;
&lt;br /&gt;
:Also, as of 0.91.0.0, you may restrict who can create, join and maintain a nation by requiring a minimum number of residents. See the Global Town Settings section of the config.yml.&lt;br /&gt;
&lt;br /&gt;
===== Kings =====&lt;br /&gt;
&lt;br /&gt;
:Kings lead Nations and are the mayor of the capital city. Kings have their permission nodes configurable via TownyPerms.yml.&lt;br /&gt;
&lt;br /&gt;
:Kings can decide which ranks their residents fall into, in their nation. This can be a Nation Assistant or any other custom ranks created by the server admin in the townyperms.yml file. Kings can see the available ranks using ‘/nation ranklist’ command. Players are ranked using ‘/nation rank {add|remove} {playername} {rankname}’. A player can have more than one rank assigned, allowing admins to create diverse nation-roles such as bankers, inviters for the king to choose for their trusted residents.&lt;br /&gt;
&lt;br /&gt;
:Kings have the ability to set titles (prefixes) and surnames (postfixes) to the residents of the towns they have in their nation. This is done with:&lt;br /&gt;
&lt;br /&gt;
:*/nation set title {name} titlegoeshere&lt;br /&gt;
:*/nation set surname {name} surnamegoeshere&lt;br /&gt;
:Typing the commands with nothing after the player’s name resets the title or surname to blank.&lt;br /&gt;
&lt;br /&gt;
===== Configuring Townyperms.yml and the Roles of the Ranks Within =====&lt;br /&gt;
&lt;br /&gt;
:New to Towny 0.82.0.0 and onwards towny has a new configuration file, TownyPerms.yml, located in the towny\settings\ folder.&lt;br /&gt;
&lt;br /&gt;
:This system pushes permissions directly to Bukkit and works along side all other perms plugins. It allows you to define sets of permissions based upon a players status (nomad/resident/mayor/king). You can also assign additional permissions based upon any assigned town/nation ranks (assistant/vip etc). This system is not limited to Towny permission nodes. You can assign any permissions for any plugins in it’s groups.&lt;br /&gt;
&lt;br /&gt;
:This file allows admins to decide what each player-rank can do. Some ranks are assigned automatically:&lt;br /&gt;
&lt;br /&gt;
::*Players without towns are Nomads.&lt;br /&gt;
::*Players in towns are Residents.&lt;br /&gt;
::*Owners of towns are Mayors.&lt;br /&gt;
::*Owners of nations are Kings.&lt;br /&gt;
&lt;br /&gt;
:Some ranks are assigned by Mayors or Kings, and supplement the ranks the players already have:&lt;br /&gt;
&lt;br /&gt;
::*Mayors can make a resident a Town Assistant.&lt;br /&gt;
::*Kings can make a resident a Nation Assistant.&lt;br /&gt;
::*Mayors and kings can grant admin-created ranks, allowing for diverse customization.&lt;br /&gt;
:::*A player can attain many Supplemental ranks from their mayor or king, allowing for diverse nation/town-roles.&lt;br /&gt;
:::*Examples of this would be town-builders, town-bankers, nation-bankers, town-inviters, etc.&lt;br /&gt;
&lt;br /&gt;
:A resident of a town can see the ranks within their town using ‘/town ranklist’. A mayor can use ‘/town rank {add|remove} {playername} {rankname}’ to give a player a new rank within their town. A king can use ‘/nation rank {add|remove} {playername} {rankname}’ to give a player a new rank within their nation.&lt;br /&gt;
&lt;br /&gt;
===== Configuring Mayor and King Titles, Town and Nation Names =====&lt;br /&gt;
&lt;br /&gt;
:Towny gives you the ability to customize the naming scheme applied to Mayors, Kings, Towns, Capital Cities and Nations.&lt;br /&gt;
&lt;br /&gt;
:This is done with two sections in the config.yml&lt;br /&gt;
&lt;br /&gt;
::*town_level:&lt;br /&gt;
::**The basic layout of the townLevel lines are as follows:&lt;br /&gt;
&lt;br /&gt;
     -   upkeepModifier: 1.0&lt;br /&gt;
         namePostfix: &#039; (Settlement)&#039;&lt;br /&gt;
         mayorPrefix: &#039;Hermit &#039;&lt;br /&gt;
         mayorPostfix: &#039;&#039;&lt;br /&gt;
         townBlockLimit: 16&lt;br /&gt;
         namePrefix: &#039;&#039;&lt;br /&gt;
         numresidents: 1&lt;br /&gt;
     -   upkeepModifier: 1.0&lt;br /&gt;
         namePostfix: &#039; (Hamlet)&#039;&lt;br /&gt;
         mayorPrefix: &#039;Chief &#039;&lt;br /&gt;
         mayorPostfix: &#039;&#039;&lt;br /&gt;
         townBlockLimit: 32&lt;br /&gt;
         namePrefix: &#039;&#039;&lt;br /&gt;
         numResidents: 2&lt;br /&gt;
&lt;br /&gt;
:*These are read as follows:&lt;br /&gt;
:*upkeepModifier: 1.0 – Use a higher multiplier to increase the upkeep as towns get more residents (unless you use town_plotbased_upkeep:true in which case it is based off of plot-count rather than resident-count.)&lt;br /&gt;
:*namePostfix: ‘ (Settlement)’ – This is added to the end of the town name.&lt;br /&gt;
:*mayorPrefix: ‘Hermit ‘ – This is added to the front of the mayor’s name.&lt;br /&gt;
:*mayorPostfix: ” – This is added to the end of the mayor’s name.&lt;br /&gt;
:*townBlockLimit: 16 – This decides how many townblocks a town gets, it is only used if town_block_ratio: ‘0’ is set in the config.yml.&lt;br /&gt;
:*namePrefix: ” – This is added to the front of the town name.&lt;br /&gt;
:*numresidents: 1 – This is how many residents a town needs to have in order to attain the prefixes/postfixes of the townlevel.&lt;br /&gt;
:*The two levels above are for towns of 1 and 2 residents. When a town is created the mayor’s new town has (Settlement) added to the end of his townname and he is given the prefix of Hermit. When the mayor gets a second resident his town becomes Townname (Hamlet) and he receives the prefix of Chief.&lt;br /&gt;
:*nation_level:&lt;br /&gt;
:**The basic layout of the nationLevel lines are as follows:&lt;br /&gt;
&lt;br /&gt;
         -   capitalPostfix: &#039;&#039;&lt;br /&gt;
             upkeepModifier: 1.0&lt;br /&gt;
             namePostfix: &#039; (Nation)&#039;&lt;br /&gt;
             kingPrefix: &#039;Count &#039;&lt;br /&gt;
             townBlockLimitBonus: 10&lt;br /&gt;
             namePrefix: &#039;Federation of &#039;&lt;br /&gt;
             numResidents: 10&lt;br /&gt;
             capitalPrefix: &#039;&#039;&lt;br /&gt;
             kingPostfix: &#039;&#039;&lt;br /&gt;
             nationTownUpkeepModifier: 1.0&lt;br /&gt;
         -   capitalPostfix: &#039;&#039;&lt;br /&gt;
             upkeepModifier: 1.0&lt;br /&gt;
             namePostfix: &#039; (Nation)&#039;&lt;br /&gt;
             kingPrefix: &#039;Duke &#039;&lt;br /&gt;
             townBlockLimitBonus: 20&lt;br /&gt;
             namePrefix: &#039;Dominion of &#039;&lt;br /&gt;
             numResidents: 20&lt;br /&gt;
             capitalPrefix: &#039;&#039;&lt;br /&gt;
             kingPostfix: &#039;&#039;&lt;br /&gt;
             nationTownUpkeepModifier: 1.0&lt;br /&gt;
&lt;br /&gt;
:*These are read as follows:&lt;br /&gt;
:*capitolPostfix: ” – This is added to the end of the capital city of the nation.&lt;br /&gt;
:*upkeepModifier: 1.0 – Use a higher multiplier to increase the upkeep as nations get more residents (unless you use town_plotbased_upkeep:true in which case it is based off of plot-count rather than resident-count.)&lt;br /&gt;
:*namePostfix: ‘ (Nation)’ – This is added to the end of the nation name.&lt;br /&gt;
:*kingPrefix: ‘Count ‘ – This is added to the front of the nation-leader.&lt;br /&gt;
:*townBlockLimitBonus: 10 – This is the number of bonus townblocks given to a town when they join a nation.&lt;br /&gt;
:*namePrefix: ‘Federation of ‘ – This is added to the front of the nation name.&lt;br /&gt;
:*numResidents: 10 – This is how many residents a nation must have to receive the prefixes and postfixes of the nation level.&lt;br /&gt;
:*capitalPrefix: ” – This is added to the front of the capital city of the nation.&lt;br /&gt;
:*kingPostfix: ” – This is added to the end of the nation-leader’s name.&lt;br /&gt;
:*nationTownUpkeepModifier: 1.0 – Joining a nation will lower/raise how much town upkeep your town pays. This multiplier is calculated after all other multipliers have their effect on the town upkeep cost. When set at 1.0, there is no :*change to upkeep.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
==== &amp;lt;big&amp;gt;How Towns Grow&amp;lt;/big&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
===== Starting a Town =====&lt;br /&gt;
&lt;br /&gt;
:Mayors start towns using the command /town new {townname}. The townblock they are standing in will be the home block for the town, the exact spot/position will be the spawn point for the town.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:More townblocks can be claimed using /town claim. These townblocks need to be directly adjacent to already claimed townblocks.&lt;br /&gt;
&lt;br /&gt;
===== Joining Towns =====&lt;br /&gt;
&lt;br /&gt;
:There are two ways to join towns, the first is by being invited by a Mayor or a Town assistant. The second it by joining an open town.&lt;br /&gt;
&lt;br /&gt;
:Mayors and assistants can add players to their town with the command /town add {playername}. If the server has Questioner.jar and using_questioner: true in the Towny config.yml then the player will receive a prompt to either /accept or /deny the invitation.&lt;br /&gt;
&lt;br /&gt;
:Mayors can set their towns to open using /town toggle open. A player who isn’t in a town already can use the command /town join {townname} to join open towns.&lt;br /&gt;
&lt;br /&gt;
:When residents join towns they increase the number of townblocks accessible to the mayor for claiming.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
==== Plot System of Land Ownership ====&lt;br /&gt;
&lt;br /&gt;
===== Town Blocks =====&lt;br /&gt;
&lt;br /&gt;
:Towny provides a server admin a hands-off approach to block-protection. Block protection is broken down into plots of land, called townblocks, which by default are 16x16x128 (the full height of the world.)&lt;br /&gt;
:Townblocks are claimed by town mayors who can then sell/give individual plots to their town’s residents.&lt;br /&gt;
&lt;br /&gt;
===== Town Block Size =====&lt;br /&gt;
&lt;br /&gt;
:You change the townblock size in config.yml at town_block_size: 16. Changing this value is suggested only when you first install Towny.&lt;br /&gt;
:Doing so after entering data will shift things unwantedly. Using smaller value will allow higher precision,at the cost of more work setting up. Also, extremely small values will render the caching done useless.&lt;br /&gt;
:Each cell is (town_block_size x town_block_size x 128) in size, with 128 being from bedrock to clouds.&lt;/div&gt;</summary>
		<author><name>Minedx</name></author>
	</entry>
	<entry>
		<id>https://mineplugin.org/index.php?title=Towny&amp;diff=3263</id>
		<title>Towny</title>
		<link rel="alternate" type="text/html" href="https://mineplugin.org/index.php?title=Towny&amp;diff=3263"/>
		<updated>2016-08-09T06:42:20Z</updated>

		<summary type="html">&lt;p&gt;Minedx：​&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{待翻译}}&lt;br /&gt;
== 介绍 ==&lt;br /&gt;
Towny Advanced is a versatile, player-controlled land management plugin for use with Bukkit/Tekkit/Spigot/Libigot. Towny offers solutions for pvp, griefing, chat, inflated economies and monsters to minecraft server admins. Towny allows players to work together and against each other as they see fit.&lt;br /&gt;
&lt;br /&gt;
== 特性 ==&lt;br /&gt;
&lt;br /&gt;
Towny includes a wide variety of features to offer instant enhancements to your traditional Minecraft server.&lt;br /&gt;
&lt;br /&gt;
*Allows players to own and manage land based on a pre-set grid layout.&lt;br /&gt;
**Players join towns and purchase plots of land.&lt;br /&gt;
**Players decide who can build, destroy, use “switchs” and use items on every plot they control.&lt;br /&gt;
**Towns can join together into nations, further structuring a server into teams.&lt;br /&gt;
**Towns grant protection from monsters, pvp, fire, explosions and greifing.&lt;br /&gt;
*Wilderness Rules (Optional)&lt;br /&gt;
**Area between towns is wilderness, with its own build permissions.&lt;br /&gt;
**Limit players’ interaction with the wild to just harvest-able blocks, keeping the wild pristine.&lt;br /&gt;
**Roll-back tnt, creeper, wither explosions, dragon damage and endermen block-moving.&lt;br /&gt;
**Block explosions and fire.&lt;br /&gt;
*PVP Enhancements&lt;br /&gt;
**Server with a strong PVP aspect will find Towny’s grouping of players to be invaluable.&lt;br /&gt;
**Prevent friendly-fire. (Optional)&lt;br /&gt;
**Nations split players into larger teams.&lt;br /&gt;
**Nations can declare other nations to be allies or enemies, further splitting players into even larger teams.&lt;br /&gt;
**PVP can be turned on/off in wilderness, towns and worlds. (Optional)&lt;br /&gt;
*Teleporting/Warping and Spawning (Optional)&lt;br /&gt;
**Players can spawn to their town upon death.&lt;br /&gt;
**Players can spawn to their town or a town that is within their nation/allied with their nation.&lt;br /&gt;
**Use of beds can be limited to personally-owned land and players can spawn there.&lt;br /&gt;
*Customized modified chat. (Optional)&lt;br /&gt;
**Colours, group prefixes and suffixes, nation, town, towny titles.&lt;br /&gt;
**Channels for general, local, town, nation, moderator, admin and custom channels.&lt;br /&gt;
**Anti-spam feature.&lt;br /&gt;
*Shop plugin support. (Optional)&lt;br /&gt;
**Limit shops to special Shop Plots, enhancing realism.&lt;br /&gt;
*Economy plugin interaction. (Optional)&lt;br /&gt;
**Supports all economy plugins.&lt;br /&gt;
**Charge money for plots, towns, nations.&lt;br /&gt;
**Flexible tax system.&lt;br /&gt;
**Upkeep to remove money from the economy, stopping rampant inflation.&lt;br /&gt;
*All Permissions Plugins supported. (Optional)&lt;br /&gt;
**Perms 2/3, GroupManager, BukkitPermissions, bPermissions, PermissionsEx, etc.&lt;br /&gt;
*Multiworld Support&lt;br /&gt;
**Flexible settings for every world.&lt;br /&gt;
**Enable/disable Towny in as many worlds as you like.&lt;br /&gt;
&lt;br /&gt;
== 重要信息 ==&lt;br /&gt;
&lt;br /&gt;
=== Towny 安装指南 ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here are instructions to install Towny for the first time. There are a few steps so follow them all carefully.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Step One – Preparing your server.&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#Stop your server completely.&lt;br /&gt;
#Download the following and copy to your Plugins folder (Place .jar files in the plugins folder, not the actual .zip):&lt;br /&gt;
::*Download Towny Advanced.zip (Includes Towny, TownyChat and Questioner.)&lt;br /&gt;
::**Towny.jar is required at all times,&lt;br /&gt;
::**TownyChat.jar is required if you want to have Towny modify chatting in any way. (Adding prefixes and suffixes from your permissions plugin to chat, adding town/nation/world to chat, adding chat channels.)&lt;br /&gt;
::**Questioner.jar is required if you want players to receive invites to towns, instead of being added automatically.&lt;br /&gt;
::*If you use any economy plugin other than iConomy 5.01 you will be required to download Register.jar or Vault and put it in your plugins folder.&lt;br /&gt;
::**If your economy plugin is supported by Vault, do not use Register.jar, instead use only Vault.&lt;br /&gt;
#Start your server.&lt;br /&gt;
#Stop your server.&lt;br /&gt;
&lt;br /&gt;
=== Towny 升级向导 ===&lt;br /&gt;
&lt;br /&gt;
Here are instructions for performing a Towny Upgrade from a previous version:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Towny Upgrade Instructions&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Stop your server completely.&lt;br /&gt;
Backup your entire server!&lt;br /&gt;
Download Towny_Advanced.zip and extract the 4 .jar files into your plugins folder (Register is not required if your server already uses Vault.jar).&lt;br /&gt;
Start your server.&lt;br /&gt;
Stop your server.&lt;br /&gt;
Upgrade from pre-0.79.0.0&lt;br /&gt;
The chat section of config.yml has been move to a new file, channels.yml. Edit the new channels.yml to your liking.&lt;br /&gt;
Upgrade from pre-0.82.0.0&lt;br /&gt;
Towny has had TownyPerms added. This new file located at townysettingstownyperms.yml will be generated when you first start your server using Towny 0.82.0.0 or higher.&lt;br /&gt;
TownyPerms adds town/nation ranks so server admins can specify what each rank can do (nomads, residents, mayors, kings, etc) Admins can also create custom ranks with custom permission sets. Any existing players set as assistants will lose their rank and need to have it re-assigned.&lt;br /&gt;
Start your server.&lt;/div&gt;</summary>
		<author><name>Minedx</name></author>
	</entry>
	<entry>
		<id>https://mineplugin.org/index.php?title=Towny&amp;diff=3262</id>
		<title>Towny</title>
		<link rel="alternate" type="text/html" href="https://mineplugin.org/index.php?title=Towny&amp;diff=3262"/>
		<updated>2016-08-09T06:40:37Z</updated>

		<summary type="html">&lt;p&gt;Minedx：​创建页面，内容为“== 介绍 == Towny Advanced is a versatile, player-controlled land management plugin for use with Bukkit/Tekkit/Spigot/Libigot. Towny offers solutions for pvp, grief...”&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 介绍 ==&lt;br /&gt;
Towny Advanced is a versatile, player-controlled land management plugin for use with Bukkit/Tekkit/Spigot/Libigot. Towny offers solutions for pvp, griefing, chat, inflated economies and monsters to minecraft server admins. Towny allows players to work together and against each other as they see fit.&lt;br /&gt;
&lt;br /&gt;
== 特性 ==&lt;br /&gt;
&lt;br /&gt;
Towny includes a wide variety of features to offer instant enhancements to your traditional Minecraft server.&lt;br /&gt;
&lt;br /&gt;
*Allows players to own and manage land based on a pre-set grid layout.&lt;br /&gt;
**Players join towns and purchase plots of land.&lt;br /&gt;
**Players decide who can build, destroy, use “switchs” and use items on every plot they control.&lt;br /&gt;
**Towns can join together into nations, further structuring a server into teams.&lt;br /&gt;
**Towns grant protection from monsters, pvp, fire, explosions and greifing.&lt;br /&gt;
*Wilderness Rules (Optional)&lt;br /&gt;
**Area between towns is wilderness, with its own build permissions.&lt;br /&gt;
**Limit players’ interaction with the wild to just harvest-able blocks, keeping the wild pristine.&lt;br /&gt;
**Roll-back tnt, creeper, wither explosions, dragon damage and endermen block-moving.&lt;br /&gt;
**Block explosions and fire.&lt;br /&gt;
*PVP Enhancements&lt;br /&gt;
**Server with a strong PVP aspect will find Towny’s grouping of players to be invaluable.&lt;br /&gt;
**Prevent friendly-fire. (Optional)&lt;br /&gt;
**Nations split players into larger teams.&lt;br /&gt;
**Nations can declare other nations to be allies or enemies, further splitting players into even larger teams.&lt;br /&gt;
**PVP can be turned on/off in wilderness, towns and worlds. (Optional)&lt;br /&gt;
*Teleporting/Warping and Spawning (Optional)&lt;br /&gt;
**Players can spawn to their town upon death.&lt;br /&gt;
**Players can spawn to their town or a town that is within their nation/allied with their nation.&lt;br /&gt;
**Use of beds can be limited to personally-owned land and players can spawn there.&lt;br /&gt;
*Customized modified chat. (Optional)&lt;br /&gt;
**Colours, group prefixes and suffixes, nation, town, towny titles.&lt;br /&gt;
**Channels for general, local, town, nation, moderator, admin and custom channels.&lt;br /&gt;
**Anti-spam feature.&lt;br /&gt;
*Shop plugin support. (Optional)&lt;br /&gt;
**Limit shops to special Shop Plots, enhancing realism.&lt;br /&gt;
*Economy plugin interaction. (Optional)&lt;br /&gt;
**Supports all economy plugins.&lt;br /&gt;
**Charge money for plots, towns, nations.&lt;br /&gt;
**Flexible tax system.&lt;br /&gt;
**Upkeep to remove money from the economy, stopping rampant inflation.&lt;br /&gt;
*All Permissions Plugins supported. (Optional)&lt;br /&gt;
**Perms 2/3, GroupManager, BukkitPermissions, bPermissions, PermissionsEx, etc.&lt;br /&gt;
*Multiworld Support&lt;br /&gt;
**Flexible settings for every world.&lt;br /&gt;
**Enable/disable Towny in as many worlds as you like.&lt;br /&gt;
&lt;br /&gt;
== 重要信息 ==&lt;br /&gt;
&lt;br /&gt;
=== Towny 安装指南 ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here are instructions to install Towny for the first time. There are a few steps so follow them all carefully.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Step One – Preparing your server.&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#Stop your server completely.&lt;br /&gt;
#Download the following and copy to your Plugins folder (Place .jar files in the plugins folder, not the actual .zip):&lt;br /&gt;
::*Download Towny Advanced.zip (Includes Towny, TownyChat and Questioner.)&lt;br /&gt;
::**Towny.jar is required at all times,&lt;br /&gt;
::**TownyChat.jar is required if you want to have Towny modify chatting in any way. (Adding prefixes and suffixes from your permissions plugin to chat, adding town/nation/world to chat, adding chat channels.)&lt;br /&gt;
::**Questioner.jar is required if you want players to receive invites to towns, instead of being added automatically.&lt;br /&gt;
::*If you use any economy plugin other than iConomy 5.01 you will be required to download Register.jar or Vault and put it in your plugins folder.&lt;br /&gt;
::**If your economy plugin is supported by Vault, do not use Register.jar, instead use only Vault.&lt;br /&gt;
#Start your server.&lt;br /&gt;
#Stop your server.&lt;br /&gt;
&lt;br /&gt;
=== Towny 升级向导 ===&lt;br /&gt;
&lt;br /&gt;
Here are instructions for performing a Towny Upgrade from a previous version:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Towny Upgrade Instructions&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Stop your server completely.&lt;br /&gt;
Backup your entire server!&lt;br /&gt;
Download Towny_Advanced.zip and extract the 4 .jar files into your plugins folder (Register is not required if your server already uses Vault.jar).&lt;br /&gt;
Start your server.&lt;br /&gt;
Stop your server.&lt;br /&gt;
Upgrade from pre-0.79.0.0&lt;br /&gt;
The chat section of config.yml has been move to a new file, channels.yml. Edit the new channels.yml to your liking.&lt;br /&gt;
Upgrade from pre-0.82.0.0&lt;br /&gt;
Towny has had TownyPerms added. This new file located at townysettingstownyperms.yml will be generated when you first start your server using Towny 0.82.0.0 or higher.&lt;br /&gt;
TownyPerms adds town/nation ranks so server admins can specify what each rank can do (nomads, residents, mayors, kings, etc) Admins can also create custom ranks with custom permission sets. Any existing players set as assistants will lose their rank and need to have it re-assigned.&lt;br /&gt;
Start your server.&lt;/div&gt;</summary>
		<author><name>Minedx</name></author>
	</entry>
	<entry>
		<id>https://mineplugin.org/index.php?title=Bukkit/%E6%8F%92%E4%BB%B6%E5%BC%80%E5%8F%91%E6%95%99%E7%A8%8B&amp;diff=1313</id>
		<title>Bukkit/插件开发教程</title>
		<link rel="alternate" type="text/html" href="https://mineplugin.org/index.php?title=Bukkit/%E6%8F%92%E4%BB%B6%E5%BC%80%E5%8F%91%E6%95%99%E7%A8%8B&amp;diff=1313"/>
		<updated>2015-08-27T10:57:11Z</updated>

		<summary type="html">&lt;p&gt;Minedx：​/* Bukkit Java文档 */ 更正API位置&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{模板:待翻译}}&lt;br /&gt;
本页面英文原文内容来源 [http://wiki.bukkit.org/Plugin_Tutorial]&lt;br /&gt;
== 介绍  ==&lt;br /&gt;
&lt;br /&gt;
这篇内容丰富的教程旨在帮助你学会如何开发Bukkit插件.这一篇教程不可能完全涉及到Bukkit中所有的可能性,而是最基本的一般概述. 前提是你懂得Java这门语言,并在IDE中设置好你的工作区,此教程介绍了大多数Bukkit插件所必需的语法结构.&lt;br /&gt;
&lt;br /&gt;
== 学习Java  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;理解这些教程需要具备Java这门编程语言的基本知识.&#039;&#039;&#039;如果你刚开始学习Java或者需要重温一下相关知识，下面有一个并不完整的网站列表可供参考.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;[http://docs.oracle.com/javase/tutorial/ Oracle&#039;s Java Tutorials]&amp;lt;/big&amp;gt; - 官方教程&lt;br /&gt;
*[http://www.java2s.com/Tutorial/Java/CatalogJava.htm Java2s.com] - 教程&lt;br /&gt;
*[http://www.javacoffeebreak.com/java101/java101.html Java 101] - 教程&lt;br /&gt;
*[http://math.hws.edu/javanotes/ JavaNotes] - 免费的在线教科书&lt;br /&gt;
*[http://thenewboston.org/list.php?cat=31 TheNewBoston] - 视频教程.&lt;br /&gt;
&lt;br /&gt;
== 开发环境  ==&lt;br /&gt;
&lt;br /&gt;
在编写一个插件前 (或学习Java前) 你需要配置一个开发者环境，这个包括但不限于安装IDE (Integrated Development Environment，集成开发环境)。接下来的教程中有关于Eclipse上IDE的操作指南。&lt;br /&gt;
&lt;br /&gt;
:: &#039;&#039;更多信息，请参见 [[Bukkit/插件开发教程-建立工作区|建立工作区]]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
你&#039;&#039;&#039;必须&#039;&#039;&#039;下载&#039;&#039;&#039;Java&#039;&#039;&#039;开发者使用的Eclipse构建版本, &#039;&#039;&#039;不是&#039;&#039;&#039; &#039;&#039;&#039;Java EE&#039;&#039;&#039;开发者的版本。 Java EE 开发者的版本不包含此教程需要的Maven支持。&lt;br /&gt;
&lt;br /&gt;
== 新建插件开发项目  ==&lt;br /&gt;
=== 创建一个新的项目 ===&lt;br /&gt;
&lt;br /&gt;
在开始工作之前，你需要先在Eclipse中配置好工作区和文件. 打开Eclipse,然后依次点击&#039;&#039;File -&amp;gt; New -&amp;gt; Project:&#039;&#039;来创建一个新的项目.&lt;br /&gt;
&lt;br /&gt;
[[Image:Newproject.png]] &lt;br /&gt;
&lt;br /&gt;
现在,打开&#039;&#039;Maven&#039;&#039;文件夹, 然后选择&#039;&#039;Maven Project&#039;&#039;.点击next,之后在下一个菜单中选择&#039;&#039;Create a simple project&#039;&#039;, 再次点击&#039;&#039;Next&#039;&#039;:&lt;br /&gt;
如果你看不到&#039;&#039;Maven&#039;&#039;文件夹, 那么你需要[http://eclipse.org/m2e/download/ 下载m2eclipse]&lt;br /&gt;
&lt;br /&gt;
[[Image:Newproject2.png]] &lt;br /&gt;
&lt;br /&gt;
现在，你需要给你的组用户命名，就像下面这样:&lt;br /&gt;
* 如果你拥有一个域名，package则填写逆转的域名地址. &lt;br /&gt;
** 例如: i-am-a-bukkit-developer.com 你的package地址即是com.i_am_a_bukkit_developer [http://docs.oracle.com/javase/tutorial/java/package/namingpkgs.html source]&lt;br /&gt;
** 避免使用一个不属于你自己的域名.&lt;br /&gt;
* 没有域名? 这里有几种方法可供选择。&lt;br /&gt;
*# 在资源管理站点创建一个用户，比如GitHub或是sourceforge&lt;br /&gt;
*#* 对于使用GitHub的用户, 请参照[http://pages.github.com/ 这里的说明] 之后你将获得一个子域名,所以你的package地址是io.github.&amp;lt;username&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
*# 使用你的邮箱.  例如: &amp;lt;username&amp;gt;@gmail.com格式的邮箱应输入com.gmail.&amp;lt;username&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
*# 最不济的方法.：  使用独特的组名命名方式，这应当是你最后的解决方法。&lt;br /&gt;
&lt;br /&gt;
以下几个地址不能作为package中的地址前缀:&lt;br /&gt;
* org.bukkit&lt;br /&gt;
* net.bukkit&lt;br /&gt;
* com.bukkit&lt;br /&gt;
* net.minecraft&lt;br /&gt;
&lt;br /&gt;
完成基础的组名以后，你需要在最后加上插件的名称. 在这里用 GitHub页面作为讲解的实例.  如果你创建了一个名为 &#039;&#039;TestPlugin&#039;&#039;的插件，那么完整的组名是&#039;&#039;io.github.&amp;lt;username&amp;gt;&#039;&#039;, 你的工程名也是 &#039;&#039;TestPlugin&#039;&#039;. 至于版本，默认即可，稍后可以修改。&lt;br /&gt;
完成向导:&lt;br /&gt;
&lt;br /&gt;
[[Image:Newproject3.png]] &lt;br /&gt;
&lt;br /&gt;
如果这是你首次使用Eclipse, 点击右上角的&amp;quot;X&amp;quot; 来关闭Welcome提示页面. 现在，你的窗口视图看起来就像下面的图片这样:&lt;br /&gt;
&lt;br /&gt;
[[Image:Eclipsemain.png]] &lt;br /&gt;
&lt;br /&gt;
点击工程名称右边的箭头来进行下一步，现在我们正式开始。&lt;br /&gt;
=== 添加Bukkit API ===&lt;br /&gt;
&lt;br /&gt;
在开发插件之前，你需要添加 Bukkit API库文件到你的项目，作为一个dependency, 你也可以添加其他你想实用的API.&lt;br /&gt;
&lt;br /&gt;
找到项目文件夹中部的&#039;&#039;pom.xml&#039;&#039;并双击进行编辑. 点击&#039;&#039;pom.xml&#039;&#039;中部的 tab,你将会看到下图所示内容:&lt;br /&gt;
&lt;br /&gt;
[[Image:Pomeditor.png]]&lt;br /&gt;
&lt;br /&gt;
如果你想使用Java 6以上版本的语言特性,你需要指定搭建项目的Java版本.复制并粘贴以下内容(设定项目只能使用Java 7及以下的版本)到 &#039;&#039;&amp;lt;/project&amp;gt;&#039;&#039;之前: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    &amp;lt;build&amp;gt;&lt;br /&gt;
       &amp;lt;plugins&amp;gt;&lt;br /&gt;
           &amp;lt;plugin&amp;gt;&lt;br /&gt;
               &amp;lt;groupId&amp;gt;org.apache.maven.plugins&amp;lt;/groupId&amp;gt;&lt;br /&gt;
               &amp;lt;artifactId&amp;gt;maven-compiler-plugin&amp;lt;/artifactId&amp;gt;&lt;br /&gt;
               &amp;lt;configuration&amp;gt;&lt;br /&gt;
                   &amp;lt;nowiki&amp;gt;&amp;amp;lt;&amp;lt;/nowiki&amp;gt;source&amp;gt;1.7&amp;lt;/source&amp;gt;&lt;br /&gt;
                   &amp;lt;target&amp;gt;1.7&amp;lt;/target&amp;gt;&lt;br /&gt;
               &amp;lt;/configuration&amp;gt;&lt;br /&gt;
           &amp;lt;/plugin&amp;gt;&lt;br /&gt;
       &amp;lt;/plugins&amp;gt;&lt;br /&gt;
    &amp;lt;/build&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
你或许想使用其他版本,例如 &amp;lt;code&amp;gt;1.8&amp;lt;/code&amp;gt; 使用Java 8. 请注意 [http://mcstats.org/global/ 根据MCStats数据统计], 大多数服主选择了Java 7, 所以使用Java 8会使许多服务器无法运行你的插件. 如果你使用Java 1.7的特性, Eclipse将会在报错代码&amp;quot;error&amp;quot;中建议你更改语言版本.同意即可.&lt;br /&gt;
&lt;br /&gt;
在位于代码中段的&#039;&#039;&amp;lt;/project&amp;gt;&#039;&#039;之前粘贴以下内容(这段代码告诉Eclipse关于Bukkit&#039;s repository的地址): &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    &amp;lt;repositories&amp;gt;&lt;br /&gt;
        &amp;lt;repository&amp;gt;&lt;br /&gt;
            &amp;lt;id&amp;gt;bukkit-repo&amp;lt;/id&amp;gt;&lt;br /&gt;
            &amp;lt;url&amp;gt;http://repo.bukkit.org/content/groups/public/&amp;lt;/url&amp;gt;&lt;br /&gt;
        &amp;lt;/repository&amp;gt;&lt;br /&gt;
    &amp;lt;/repositories&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
然后继续在 &#039;&#039;&amp;lt;/project&amp;gt;&#039;&#039;前粘贴以下内容 (这段代码告诉Eclipse搭建插件的Bukkit版本): &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    &amp;lt;dependencies&amp;gt;&lt;br /&gt;
        &amp;lt;dependency&amp;gt;&lt;br /&gt;
            &amp;lt;groupId&amp;gt;org.bukkit&amp;lt;/groupId&amp;gt;&lt;br /&gt;
            &amp;lt;artifactId&amp;gt;bukkit&amp;lt;/artifactId&amp;gt;&lt;br /&gt;
            &amp;lt;version&amp;gt;1.7.2-R0.3&amp;lt;/version&amp;gt;&lt;br /&gt;
            &amp;lt;type&amp;gt;jar&amp;lt;/type&amp;gt;&lt;br /&gt;
            &amp;lt;scope&amp;gt;provided&amp;lt;/scope&amp;gt;&lt;br /&gt;
        &amp;lt;/dependency&amp;gt;&lt;br /&gt;
    &amp;lt;/dependencies&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
你也可以修改这里的Bukkit版本.你可以在[http://repo.bukkit.org/content/groups/public/org/bukkit/bukkit/ here]这里通过查看 maven-metadata.xml文件下的版本列表来获取可用的服务端版本号.&lt;br /&gt;
&lt;br /&gt;
当你完成上述步骤后,&#039;&#039;pom.xml&#039;&#039;中的内容应该是这样:&lt;br /&gt;
&lt;br /&gt;
[[Image:Finishedpom.png]]&lt;br /&gt;
&lt;br /&gt;
通过菜单 &#039;&#039;File -&amp;gt; Save&#039;&#039;或者按住 &amp;lt;code&amp;gt;Ctrl + S&amp;lt;/code&amp;gt; 来保存&#039;&#039;pom.xml&#039;&#039;文件 .  之后, 右键项目标题，然后依次选择 &#039;&#039;Maven -&amp;gt; Update Project&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== Bukkit Java文档 ===&lt;br /&gt;
&lt;br /&gt;
 如果你曾经使用过Eclipse和Java，你会知道当你将鼠标准心移至class或者 method中的代码部分时，一个含有相关文档内容的黄色小框会弹出来. 这就是（Java的）Java文档。&lt;br /&gt;
 &lt;br /&gt;
 你可以[http://download.oracle.com/javase/6/docs/api/ Oracle website 在线获取]它.。Bukkit同样拥有文档，这些文档内容包含了关于API中method和class的有用描述。&lt;br /&gt;
 &lt;br /&gt;
 你可以在[http://jd.bukkit.org/ 这]找到它 (Beta版的Java文档在[http://jd.bukkit.org/ 这]找, 新开发出来的Java文档在  &lt;br /&gt;
 &lt;br /&gt;
 [http://jd.bukkit.org/ 这]) 。为了在Eclipse里使用Java文档,这样的话当你的鼠标停留在Bukkit的class和method上时，&lt;br /&gt;
 &lt;br /&gt;
 （Bukkit的）Java文档就会冒出来。  &lt;br /&gt;
JavaDoc in spigot [https://hub.spigotmc.org/javadocs/bukkit/ Click Here]&lt;br /&gt;
&lt;br /&gt;
 首先右键在侧边栏里的&amp;quot;Maven Dependencies&amp;quot;下面的Bukkit jar,选择&amp;quot;Properties&amp;quot;.选中窗口左边的&#039;&#039;Javadoc Location&#039;&#039;, 并粘贴如下网址 &lt;br /&gt;
 &lt;br /&gt;
 &#039;&#039;&#039;http://jd.bukkit.org/&#039;&#039;&#039; (或者上面的测试版/最新版 Java文档链接也好) 到&amp;quot;Javadoc URL&amp;quot;下面的输入框内. 就像这样: &lt;br /&gt;
&lt;br /&gt;
[[Image:Bukkitjavadocs.png]] &lt;br /&gt;
&lt;br /&gt;
 点击 &amp;quot;Validate&amp;quot;,然后再点击&amp;quot;OK&amp;quot;就完成了.现在Bukkit Javadocs已经连接到Bukkit提供的资源,同时你也可以通过Eclipse来获得帮助类文档信息了.&lt;br /&gt;
&lt;br /&gt;
=== 创建一个包 ===&lt;br /&gt;
&lt;br /&gt;
 现在你需要创建一个包，它将储存所有我们需要使用的Java类文件. 右键展开&#039;&#039;src/main/java&#039;&#039;折叠并选择 &#039;&#039;New &amp;amp;gt; Package&#039;&#039;: &lt;br /&gt;
&lt;br /&gt;
[[Image:Newpackage.png]] &lt;br /&gt;
&lt;br /&gt;
 包名的话，先写上你的组名，然后加个点，再写上你的小写Artifact ID。举例, 如果你的组名是&#039;&#039;io.github.name&#039;&#039;，你的artifact名是 &#039;&#039;TestPlugin&#039;&#039;。&lt;br /&gt;
 &lt;br /&gt;
 你的包名就应该是&#039;&#039;io.github.name.testplugin&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== 创建插件的类文件 ===&lt;br /&gt;
&lt;br /&gt;
既然我们已经建立好了我们的项目，我们接下来可以开始添加类文件以及制作插件了. 插件的主类指的是拓展(extends)JavaPlugin的类文件. 在你的插件中只能有一个类文件拓展JavaPlugin，无论直接还是间接. 先创建你的主类文件并保持名称与插件名一致是个很好的习惯.右键你之前新建的包,并选择&amp;amp;nbsp; &#039;&#039;New &amp;amp;gt; Class&#039;&#039;.你将会创建一个新的类文件，就像下面这样&lt;br /&gt;
&lt;br /&gt;
 package {$GroupName}.{$ArtifactName};&lt;br /&gt;
 &lt;br /&gt;
 import org.bukkit.plugin.java.JavaPlugin;&lt;br /&gt;
 &lt;br /&gt;
 public final class {$ArtifactName} extends JavaPlugin {&lt;br /&gt;
    &lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
警告： 插件绝对不应该调用自己的构造函数并实例化&lt;br /&gt;
&lt;br /&gt;
=== 创建plugin.yml ===&lt;br /&gt;
&lt;br /&gt;
你已经创建了项目和主类，如果你想要Bukkit能够加载你的插件，你还必须创建 &#039;&#039;&#039;[[Plugin YAML|plugin.yml]]&#039;&#039;&#039; 文件. 这个文件包含有基础的插件信息，如果缺失这个文件，你的插件也将会失效. 此时你需要右键&#039;&#039;src/main/resources&#039;&#039;. 选择&#039;&#039;New &amp;amp;gt; File&#039;&#039;. 命名为&amp;quot;&#039;&#039;&#039;plugin.yml&#039;&#039;&#039;&amp;quot; 并右键完成新文件的创建.Eclipse会打开默认的文本编辑窗口来显示&#039;&#039;&#039;plugin.yml&#039;&#039;&#039;文件中空白的内容并提供编辑. &#039;&#039;(Hint:&amp;amp;nbsp;如果你想要使得你的工作空间更加规整，关闭文本编辑器并将&#039;&#039;&#039;plugin.yml&#039;&#039;&#039; 文件拖到主工作空间(拖到文件目录的右边) 之后你就可以在eclipse中编辑文件了.)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
有三个基础的内容需要在plugin.yml写明. &lt;br /&gt;
: name:  插件名称. &lt;br /&gt;
: main: [http://docs.oracle.com/javase/specs/jls/se7/html/jls-6.html#jls-6.7 插件主类的完整，合法名称] . &lt;br /&gt;
: version: 插件当前版本号. &lt;br /&gt;
&lt;br /&gt;
最简单的 &#039;&#039;&#039;plugin.yml&#039;&#039;&#039; 文件内就像这样&amp;amp;nbsp;: &lt;br /&gt;
&lt;br /&gt;
 name: {插件名称}&lt;br /&gt;
 main: {包名}.{主类}&lt;br /&gt;
 version: {版本号}&lt;br /&gt;
&lt;br /&gt;
 PS:插件的包名经常会包括插件的名称，所以看到这个的时候不要感到惊讶。&lt;br /&gt;
    你的主类是否是你的插件名取决于你之前的命名方式，时刻记住这一点很重要。&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;更多例子&#039;&#039;&#039;, 请看[[#Example_Files_and_Templates]]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
此时你的插件已经可以被Bukkit加载了,同时服务端日志也会开始记录你的插件. 不过它现在什么用都没有!&lt;br /&gt;
&lt;br /&gt;
== onEnable()和onDisable()方法  ==&lt;br /&gt;
&lt;br /&gt;
这些方法将在插件启用与卸载时生效. 默认情况下，你的插件在被加载时会调用这些方法，所以你可以在这里注册你需要用到的事件和提供一些调试信息. &amp;lt;code&amp;gt;onEnable()&amp;lt;/code&amp;gt; 方法会在插件启用时被调用, 需要包含初始化插件的逻辑语句. &amp;lt;code&amp;gt;onDisable()&amp;lt;/code&amp;gt; 方法会在插件卸载时被调用，需要包含清理(clean up)插件的逻辑语句和连接声明(associated state)。此外，插件可以重写 &amp;lt;code&amp;gt;onLoad()&amp;lt;/code&amp;gt; 方法来在插件载入时执行附加的逻辑语句。&lt;br /&gt;
&lt;br /&gt;
=== onEnable()和onDisable()方法介绍  ===&lt;br /&gt;
&lt;br /&gt;
在前面的章节中，我们在主类创建了&amp;lt;code&amp;gt;onEnable()&amp;lt;/code&amp;gt; 和 &amp;lt;code&amp;gt;onDisable()&amp;lt;/code&amp;gt; 方法. 此时，这些代码看起来就像下面这样&lt;br /&gt;
&lt;br /&gt;
 package {$TopLevelDomain}.{$Domain}.{$PluginName};&lt;br /&gt;
 &lt;br /&gt;
 import org.bukkit.plugin.java.JavaPlugin;&lt;br /&gt;
 &lt;br /&gt;
 public final class {$PluginName} extends JavaPlugin {&lt;br /&gt;
     @Override&lt;br /&gt;
     public void onEnable() {&lt;br /&gt;
         // 插件载入时要执行的代码（略）&lt;br /&gt;
     }&lt;br /&gt;
     &lt;br /&gt;
     @Override&lt;br /&gt;
     public void onDisable() {&lt;br /&gt;
         // 插件卸载时要执行的代码（略）&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
这些方法已经创建，但目前它们还没有任何作用.&lt;br /&gt;
注意: 不需要添加代码来实现输出信息&amp;quot;{$PluginName} has been enabled!&amp;quot; ，因为bukkit会自动输出此类信息&lt;br /&gt;
有关更多事件的信息请查看 [[Event_API_Reference|这里]].&lt;br /&gt;
&lt;br /&gt;
=== 发送提示信息 ===&lt;br /&gt;
&lt;br /&gt;
 插件能够输出信息至控制台与服务器日志。这是通过调用插件记录器里正确的方法来实现的。首先我们必须调用 &amp;lt;code&amp;gt;getLogger()&amp;lt;/code&amp;gt; 方法来检索该插件的记录器，&lt;br /&gt;
 &lt;br /&gt;
 然后我们就可以开始记录信息了。&lt;br /&gt;
&lt;br /&gt;
我们通过调用&amp;lt;code&amp;gt;onEnable()&amp;lt;/code&amp;gt;方法可以实现输出信息。 我们需要在&amp;lt;code&amp;gt;onEnable()&amp;lt;/code&amp;gt;方法下面插入如下代码：&lt;br /&gt;
&lt;br /&gt;
 getLogger().info(&amp;quot;onEnable has been invoked!&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
在 &amp;lt;code&amp;gt;&#039;&#039;&#039;onDisable()&#039;&#039;&#039;&amp;lt;/code&amp;gt;方法里面，你也可以做类似的事情，不过要改改输出信息。&lt;br /&gt;
&lt;br /&gt;
此时你的主类文件就像这样: &lt;br /&gt;
&lt;br /&gt;
 package {$TopLevelDomain}.{$Domain}.{$PluginName};&lt;br /&gt;
 &lt;br /&gt;
 import org.bukkit.plugin.java.JavaPlugin;&lt;br /&gt;
 &lt;br /&gt;
 public final class {$PluginName} extends JavaPlugin {&lt;br /&gt;
         @Override&lt;br /&gt;
         public void onEnable() {&lt;br /&gt;
             getLogger().info(&amp;quot;onEnable has been invoked!&amp;quot;);&lt;br /&gt;
         }&lt;br /&gt;
 &lt;br /&gt;
         @Override&lt;br /&gt;
         public void onDisable() {&lt;br /&gt;
         getLogger().info(&amp;quot;onDisable has been invoked!&amp;quot;);&lt;br /&gt;
         }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== 防止重载后插件失效 ===&lt;br /&gt;
&lt;br /&gt;
你需要知道的是，插件并不只会伴随服务器关闭、启动而重载，你的插件也可能会被其他插件启用、关闭，或是在服务器运行时使用/reload命令. &lt;br /&gt;
假设服务器启动之后一会儿后，你的插件才被启用，这时便是危险的,因为服务器中可能已经有玩家在线、额外的世界被加载以及很多预想不到的不同之处(与&amp;quot;插件同服务器同时加载&amp;quot;的情况相比较). &lt;br /&gt;
&lt;br /&gt;
举个例子来说:&lt;br /&gt;
* 你有一个用来储存HashMap中的玩家登入信息的插件&lt;br /&gt;
* 你希望该信息对所有玩家都可见&lt;br /&gt;
* 一名管理员使用/reload命令&lt;br /&gt;
* 你的插件被卸载，所有储存的数据都丢失了&lt;br /&gt;
* 你的插件被再次启用时，一些玩家已经在线&lt;br /&gt;
* 这些玩家在HashMap并没有储存的信息&lt;br /&gt;
* 你试图重新获得他们的信息，但是失败了!&lt;br /&gt;
&lt;br /&gt;
为了插件重载以后能够正常工作, 你需要在插件启用时加载所有已经在线的玩家的信息并将之储存在HashMap中.&lt;br /&gt;
&lt;br /&gt;
 for (Player player : Bukkit.getServer().getOnlinePlayers()) {&lt;br /&gt;
     playerList.put(player.getName(), playerData(player));&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
== 监听器  ==&lt;br /&gt;
监听器是一种方法被调用来对事件作出反应的类.所有的监听器使用 org.bukkit.event.Listener接口.更多有关监听器创建的细节,&lt;br /&gt;
:: &#039;&#039; 请查看: [[Event API Reference]]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== 指令  ==&lt;br /&gt;
&lt;br /&gt;
=== onCommand() 方法  ===&lt;br /&gt;
&lt;br /&gt;
 现在你已经知道如何注册一个事件并做出响应,但是如果你只是想要在命令输入之后做出响应呢? 你可以使用 &amp;lt;code&amp;gt;&#039;&#039;&#039;onCommand&#039;&#039;&#039;&amp;lt;/code&amp;gt;方法.&lt;br /&gt;
 &lt;br /&gt;
 这个代码的作用是当玩家输入“/”时，监听该操作并执行相关语句&amp;quot;/&amp;quot; . 举个例子来说.输入 &amp;quot;/do something&amp;quot; 将会执行 &amp;lt;code&amp;gt;&#039;&#039;&#039;onCommand&#039;&#039;&#039;&amp;lt;/code&amp;gt;方法.&lt;br /&gt;
 &lt;br /&gt;
 此种情况下，因为没有特定的行为被编程，所以并不会发生任何事情。&lt;br /&gt;
&lt;br /&gt;
 请避免使用和bukkit所提供的指令重名的指令, 然后深思你的指令名的唯一性。 &lt;br /&gt;
 &lt;br /&gt;
 例如.指令&amp;quot;give&amp;quot;已经被好几个插件使用了, 如果你执行了另外一个&amp;quot;give&amp;quot;指令, 你的插件将会和这些插件冲突。&lt;br /&gt;
&lt;br /&gt;
 你必须在插件的&amp;quot;plugins.yml&amp;quot;注册你的指令 否则这个方法将不会被触发。&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;&#039;&#039;&#039;onCommand&#039;&#039;&#039;&amp;lt;/code&amp;gt;方法必须返回一个布尔值（true或false）。 &lt;br /&gt;
 &lt;br /&gt;
 如果返回值是true，你不会看到什么明显的事情发生。 &lt;br /&gt;
 &lt;br /&gt;
 但如果返回值是false，则会返回你的plugin.yml里的&#039;usage:property&#039;然后发送给命令使用者. &lt;br /&gt;
&lt;br /&gt;
当使用 &amp;lt;code&amp;gt;&#039;&#039;&#039;onCommand&#039;&#039;&#039;&amp;lt;/code&amp;gt;方法时, 你需要填写4个参数. &lt;br /&gt;
&lt;br /&gt;
 *&amp;lt;code&amp;gt;&#039;&#039;&#039;CommandSender sender&#039;&#039;&#039;&amp;lt;/code&amp;gt; - 发送命令的对象&lt;br /&gt;
 &lt;br /&gt;
 *&amp;lt;code&amp;gt;&#039;&#039;&#039;Command cmd&#039;&#039;&#039;&amp;lt;/code&amp;gt; - 被执行的指令&lt;br /&gt;
 &lt;br /&gt;
 *&amp;lt;code&amp;gt;&#039;&#039;&#039;String commandLabel&#039;&#039;&#039;&amp;lt;/code&amp;gt; - 被执行指令的别名&lt;br /&gt;
 &lt;br /&gt;
 *&amp;lt;code&amp;gt;&#039;&#039;&#039;String[] args&#039;&#039;&#039;&amp;lt;/code&amp;gt; - 该指令的自变量数组。&lt;br /&gt;
 &lt;br /&gt;
例如.指令 &#039;&#039;/hello abc def&#039;&#039; 中， &#039;&#039;abc&#039;&#039; 会被存放进args[0]中, &#039;&#039;def&#039;&#039; 被存放进args[1]中。&lt;br /&gt;
&lt;br /&gt;
==== 设置命令  ====&lt;br /&gt;
 @Override&lt;br /&gt;
 public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {&lt;br /&gt;
     if (cmd.getName().equalsIgnoreCase(&amp;quot;basic&amp;quot;)) { // 如果玩家输入了/basic则执行如下内容...&lt;br /&gt;
     // 所需要执行的事（此处略）&lt;br /&gt;
         return true;&lt;br /&gt;
     } //如果以上内容成功执行，则返回true &lt;br /&gt;
     // 如果执行失败，则返回false.&lt;br /&gt;
     return false;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 每当使用&amp;lt;code&amp;gt;&#039;&#039;&#039;onCommand&#039;&#039;&#039;&amp;lt;/code&amp;gt;方法时， 在每个方法后面都加上一个 return false; 是一个惯例。 &lt;br /&gt;
 &lt;br /&gt;
 返回false会显示在plugin.yml里设置的usage信息 (看下面). 用这种方法的话，一旦执行出错便会显示usage信息。&lt;br /&gt;
&lt;br /&gt;
 每当方法return一个值的时候，这个方法就会退出，所以return true的时候，在它下面的代码就会被跳过, &lt;br /&gt;
 &lt;br /&gt;
 除非return语句在一个if的嵌套中，或者类似的嵌套情况。 &lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;&#039;&#039;&#039;.equalsIgnoreCase(&amp;quot;basic&amp;quot;)&#039;&#039;&#039;&amp;lt;/code&amp;gt;代表忽略英文大小写. 在这种情况下,字符串&amp;quot;BAsIc&amp;quot; 和 &amp;quot;BasiC&amp;quot;和 basic相同，代码会被照常执行。&lt;br /&gt;
&lt;br /&gt;
和以前一样，加两行import在你的java文件头&lt;br /&gt;
&lt;br /&gt;
 import org.bukkit.command.Command;&lt;br /&gt;
 &lt;br /&gt;
 import org.bukkit.command.CommandSender;&lt;br /&gt;
&lt;br /&gt;
=== 在Plugin.yml中添加你的指令  ===&lt;br /&gt;
&lt;br /&gt;
你需要添加你的指令到 &#039;&#039;&#039;plugin.yml&#039;&#039;&#039; 文件里. 如下是指令/basic添加到 &#039;&#039;&#039;plugin.yml&#039;&#039;&#039;的例子（请在plugins.yml的末尾添加如下代码）: &lt;br /&gt;
&lt;br /&gt;
commands:&lt;br /&gt;
   basic:&lt;br /&gt;
      description: This is a demo command.&lt;br /&gt;
      usage: /&amp;lt;command&amp;gt; [player]&lt;br /&gt;
      permission: &amp;lt;plugin name&amp;gt;.basic&lt;br /&gt;
      permission-message: You don&#039;t have &amp;lt;permission&amp;gt;&amp;lt;/source&amp;gt; &amp;lt;/code&amp;gt; &amp;lt;/blockquote&amp;gt; &lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;&#039;&#039;&#039;basic&#039;&#039;&#039;&amp;lt;/code&amp;gt; - 指令名称&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;&#039;&#039;&#039;description&#039;&#039;&#039;&amp;lt;/code&amp;gt; - 指令描述&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;&#039;&#039;&#039;usage&#039;&#039;&#039;&amp;lt;/code&amp;gt; - 在oncommand方法return false后显示的用法提示。尽量简洁, 使别人能够理解指令是什么以及如何使用它。&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;&#039;&#039;&#039;permission&#039;&#039;&#039;&amp;lt;/code&amp;gt; - 被一些显示帮助信息的插件使用，用来决定向玩家显示哪个指令（完全不对劲吧！）。&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;&#039;&#039;&#039;permission-message&#039;&#039;&#039;&amp;lt;/code&amp;gt; - 当玩家使用了这个指令而没有权限时输出的信息。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 PS:yml文件使用两个空格作为制表符,使用tab键输入制表符会导致错误。&lt;br /&gt;
&lt;br /&gt;
===控制台指令vs玩家指令===&lt;br /&gt;
&lt;br /&gt;
 你可能注意到了上文的&amp;lt;code&amp;gt;&#039;&#039;&#039;CommandSender sender&#039;&#039;&#039;&amp;lt;/code&amp;gt;参数. &amp;lt;code&amp;gt;&#039;&#039;&#039;CommandSender&#039;&#039;&#039;&amp;lt;/code&amp;gt; 是个Bukkit接口，&lt;br /&gt;
 &lt;br /&gt;
 它有两个（对插件编写者）有用的子类：&amp;lt;code&amp;gt;&#039;&#039;&#039;Player&#039;&#039;&#039;&amp;lt;/code&amp;gt; 和 &amp;lt;code&amp;gt;&#039;&#039;&#039;ConsoleCommandSender&#039;&#039;&#039;&amp;lt;/code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
 所以当你编写插件的时候, 确定这个指令从控制台发出后能完全正常工作是十分必要的,&lt;br /&gt;
 &lt;br /&gt;
 那些只能由在线玩家执行的指令 &#039;&#039;只能&#039;&#039; 由一个在线玩家执行。&lt;br /&gt;
 &lt;br /&gt;
 有的插件在判断命令执 行对象不是玩家时仅仅用return进行处理 (比如当有人从控制台发出指令), &lt;br /&gt;
 &lt;br /&gt;
 即便这些指令能够在控制台完美运行（比如改变天气的指令）。&lt;br /&gt;
&lt;br /&gt;
一个判断sender的方法: &lt;br /&gt;
 @Override&lt;br /&gt;
 public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {&lt;br /&gt;
         if (cmd.getName().equalsIgnoreCase(&amp;quot;basic&amp;quot;)) { //如果玩家输入了/basic则执行如下内容...&lt;br /&gt;
             // 所需要执行的事（此处略）&lt;br /&gt;
             return true;&lt;br /&gt;
         } else if (cmd.getName().equalsIgnoreCase(&amp;quot;basic2&amp;quot;)) {&lt;br /&gt;
             if (!(sender instanceof Player)) { //如果sender与Player类不匹配&lt;br /&gt;
                 sender.sendMessage(&amp;quot;This command can only be run by a player.&amp;quot;);&lt;br /&gt;
             } else {&lt;br /&gt;
                 Player player = (Player) sender;&lt;br /&gt;
                    // 所需要执行的事（此处略）&lt;br /&gt;
             }&lt;br /&gt;
                 return true;&lt;br /&gt;
         }&lt;br /&gt;
         return false;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 在这个例子里，指令&#039;&#039;&#039;basic&#039;&#039;&#039;能由任何人发出 - 一个在线的玩家, 或者服务器后台的op. &lt;br /&gt;
 &lt;br /&gt;
 但是指令&#039;&#039;&#039;basic2&#039;&#039;&#039;只能由一个在线的玩家发出. &lt;br /&gt;
&lt;br /&gt;
 大体上说,你应该允许尽可能多的指令在控制台和玩家聊天框里都正常执行. &lt;br /&gt;
 &lt;br /&gt;
 需要在线玩家执行的指令可以使用以上例子中的机制来检测&amp;lt;code&amp;gt;&#039;&#039;&#039;CommandSender&#039;&#039;&#039;&amp;lt;/code&amp;gt;是一个玩家. &lt;br /&gt;
 &lt;br /&gt;
 很多指令广泛依靠于一些玩家的属性（例如可以被tp或被给予物品等等）。&lt;br /&gt;
&lt;br /&gt;
 如果你想更进一步, 你可以对你的指令的自变量做一些额外的检测， 例如传送指令在提供玩家ID的情况下（也只有在这种情况下）可以在控制台被执行。&lt;br /&gt;
&lt;br /&gt;
=== 使用独立的 CommandExecutor class  ===&lt;br /&gt;
&lt;br /&gt;
 以上的例子必须把 &amp;lt;code&amp;gt;&#039;&#039;&#039;onCommand()&#039;&#039;&#039;&amp;lt;/code&amp;gt; 方法放在插件的主类里。&lt;br /&gt;
 &lt;br /&gt;
 对于小插件来说，这是极好的,但如果你要写一个大点的插件,把你的 &amp;lt;code&amp;gt;&#039;&#039;&#039;onCommand()&#039;&#039;&#039;&amp;lt;/code&amp;gt;方法放在独立的类里将会很有意义。&lt;br /&gt;
 &lt;br /&gt;
 幸运的是，这并不难: &lt;br /&gt;
&lt;br /&gt;
*在你的包里创建一个新类. 命名为&#039;&#039;&#039;MyPluginCommandExecutor&#039;&#039;&#039;之类的 (当然，要把&#039;&#039;&#039;MyPlugin&#039;&#039;&#039;替换成你制作的插件的名字)。 这个类 &#039;&#039;&#039;必须&#039;&#039;&#039; 继承Bukkit 的&#039;&#039;&#039;CommandExecutor&#039;&#039;&#039;接口。&lt;br /&gt;
&lt;br /&gt;
*在你的插件的&amp;lt;code&amp;gt;&#039;&#039;&#039;onEnable()&#039;&#039;&#039;&amp;lt;/code&amp;gt;方法中,你需要实例化你创建的命令执行类(CommandExecutor class), 然后做一个像下面一样的调用：&amp;lt;code&amp;gt;getCommand(&amp;quot;basic&amp;quot;).setExecutor(myExecutor);&amp;lt;/code&amp;gt;&lt;br /&gt;
 其中&amp;quot;basic&amp;quot;是我们需要操控的指令, &amp;lt;code&amp;gt;myExecutor&amp;lt;/code&amp;gt; 是我们创建的实例.&lt;br /&gt;
&lt;br /&gt;
废话少说直接吔我例子: &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MyPlugin.java&#039;&#039;&#039; (插件的主类): &lt;br /&gt;
 @Override&lt;br /&gt;
 public void onEnable() {&lt;br /&gt;
         // 如果你没有在plugins.yml注册过指令的话，此处会抛出空指针异常！&lt;br /&gt;
         this.getCommand(&amp;quot;basic&amp;quot;).setExecutor(new MyPluginCommandExecutor(this));&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;MyPluginCommandExecutor.java&#039;&#039;&#039;（独立CommandExecutor类）: &lt;br /&gt;
 public class MyPluginCommandExecutor implements CommandExecutor {&lt;br /&gt;
         private final MyPlugin plugin;&lt;br /&gt;
 &lt;br /&gt;
         public MyPluginCommandExecutor(MyPlugin plugin) {&lt;br /&gt;
             this.plugin = plugin; // Store the plugin in situations where you need it.&lt;br /&gt;
         }&lt;br /&gt;
 &lt;br /&gt;
         @Override&lt;br /&gt;
         public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {&lt;br /&gt;
             // 和以前一样执行就好…&lt;br /&gt;
         }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 请注意我们是如何把主类里的对象指向&#039;&#039;&#039;MyPluginCommandExecutor&#039;&#039;&#039;的. 这允许我们轻易的使用主类对象的方法（如果我们需要的话）。&lt;br /&gt;
&lt;br /&gt;
 这么做的话, 我们便能更好的组织代码 - 如果 &amp;lt;code&amp;gt;&#039;&#039;&#039;onCommand()&#039;&#039;&#039;&amp;lt;/code&amp;gt; 方法又大又复杂, 它就能被划分为子类，从而不使插件的主类显得凌乱。&lt;br /&gt;
&lt;br /&gt;
 PS：如果你的插件含有多个指令的话, 你需要为每一个指令单独设立一个commandexecutor.&lt;br /&gt;
&lt;br /&gt;
=== 写一个安全的指令 ===&lt;br /&gt;
 当写一个指令的时候,别进行任何假设（很重要）, 例如假设执行者一定是个玩家. 请牢记以下原则:&lt;br /&gt;
&lt;br /&gt;
==== 在命令执行前确定发出者是玩家 ====&lt;br /&gt;
&lt;br /&gt;
使用简单的例子来进行检测:&lt;br /&gt;
&lt;br /&gt;
 @Override&lt;br /&gt;
 public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {&lt;br /&gt;
         if (sender instanceof Player) {&lt;br /&gt;
             Player player = (Player) sender;&lt;br /&gt;
             // do something&lt;br /&gt;
         } else {&lt;br /&gt;
             sender.sendMessage(&amp;quot;You must be a player!&amp;quot;);&lt;br /&gt;
             return false;&lt;br /&gt;
         }&lt;br /&gt;
             // do something&lt;br /&gt;
         return false;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== 检测自变量个数 ====&lt;br /&gt;
&lt;br /&gt;
 别老是认为玩家都能打对正确数量的自变量. &lt;br /&gt;
&lt;br /&gt;
 @Override&lt;br /&gt;
 public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {&lt;br /&gt;
         if (args.length &amp;gt; 4) {&lt;br /&gt;
             sender.sendMessage(&amp;quot;Too many arguments!&amp;quot;);&lt;br /&gt;
             return false;&lt;br /&gt;
         } &lt;br /&gt;
         if (args.length &amp;lt; 2) {&lt;br /&gt;
             sender.sendMessage(&amp;quot;Not enough arguments!&amp;quot;);&lt;br /&gt;
             return false;&lt;br /&gt;
         }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== 在获取玩家之前先检测他们是否在线 ====&lt;br /&gt;
&lt;br /&gt;
 有时你想通过命令发出者打出的ID来获取其他玩家，请确保他们在线再说！&lt;br /&gt;
&lt;br /&gt;
 @Override&lt;br /&gt;
 public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {&lt;br /&gt;
         Player target = (Bukkit.getServer().getPlayer(args[0]));&lt;br /&gt;
         if (target == null) {&lt;br /&gt;
             sender.sendMessage(args[0] + &amp;quot; is not online!&amp;quot;);&lt;br /&gt;
             return false;&lt;br /&gt;
         }&lt;br /&gt;
         return false;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 如果你想对离线玩家进行操作，&amp;lt;code&amp;gt;&#039;&#039;&#039;OfflinePlayer&#039;&#039;&#039;&amp;lt;/code&amp;gt;类提供了基础操作的方法.&lt;br /&gt;
&lt;br /&gt;
== 插件的配置/设置  ==&lt;br /&gt;
Bukkit API 为插件提供了一种简便的方法，用来管理用户自定义的设置。同时，通过这种方法也可以储存数据。&lt;br /&gt;
:: &#039;&#039;详情请查看: [[Configuration API Reference]]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== 权限  ==&lt;br /&gt;
&lt;br /&gt;
利用新的Bukkit API来设置权限是再容易不过的事情. 检测玩家是否拥有权限，可以使用以下代码: &lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;if (player.hasPermission(&amp;quot;some.pointless.permission&amp;quot;)) {&lt;br /&gt;
   //执行此段代码(有权限)&lt;br /&gt;
} else {&lt;br /&gt;
   //执行此段代码(无权限)&lt;br /&gt;
}&amp;lt;/source&amp;gt; &amp;lt;/blockquote&amp;gt; &lt;br /&gt;
你也可以检测一个权限节点是否被定义过，(等效于 Java 语言中的&#039;&#039;&#039;null&#039;&#039;&#039;)，使用下面的方法: &lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;boolean isPermissionSet(String name)&amp;lt;/source&amp;gt;&amp;lt;/blockquote&amp;gt; &lt;br /&gt;
你或许对此抱有疑惑:为什么这段代码中没有任何用户群的信息？因为它们并不是必需的. 之前这段代码想要实现的主要功能之一就是根据用户群格式化聊天信息. 但其实使用权限就可以很容易地完成这项工作.你可以在聊天插件的配置文件中定义权限与前缀的对应关系. 举例来说，&amp;quot;someChat.prefix.admin&amp;quot; 权限可以对应前缀[Admin].当拥有此权限的玩家发出聊天信息时 ，聊天前缀便是[Admin]. &lt;br /&gt;
&lt;br /&gt;
另一个想要实现的主要功能则是给所有拥有权限的在线用户发一条信息.你可以这样做: &lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;for (Player player: Bukkit.getServer().getOnlinePlayers()) {&lt;br /&gt;
    if (player.hasPermission(&amp;quot;send.receive.message&amp;quot;)) {&lt;br /&gt;
        player.sendMessage(&amp;quot;You were sent a message&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
}&amp;lt;/source&amp;gt; &amp;lt;/blockquote&amp;gt; &lt;br /&gt;
看到这里你可能会问，若是没有权限组我该如何配置玩家的 [[权限]] ？既然 [[Bukkit]] API 本身并没有提供用户组的预设, 你必须通过安装一款权限组插件，像 [[permissionsBukkit]]  这样的插件来帮助你配置用户群. &#039;&#039;&#039;API 只是提供接口而不是提供implementation.&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
=== 配置权限 ===&lt;br /&gt;
&lt;br /&gt;
如果你想要更多地控制你的权限，例如设置权限的默认值或是子权限节点，不如将权限节点加入你的 &#039;&#039;[[plugin.yml]]&#039;&#039;文件.这并不是必须的，但我们推荐你这样做. 下面是一个实例，显示了当你将权限添加在&#039;&#039;plugin.yml&#039;&#039;文件末尾时的样子: &lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;code&amp;gt;&amp;lt;source lang=&amp;quot;yaml&amp;quot;&amp;gt;permissions:&lt;br /&gt;
    doorman.*:&lt;br /&gt;
        description: Gives access to all doorman commands&lt;br /&gt;
        children:&lt;br /&gt;
            doorman.kick: true&lt;br /&gt;
            doorman.ban: true&lt;br /&gt;
            doorman.knock: true&lt;br /&gt;
            doorman.denied: false&lt;br /&gt;
    doorman.kick:&lt;br /&gt;
        description: Allows you to kick a user&lt;br /&gt;
        default: op&lt;br /&gt;
    doorman.ban:&lt;br /&gt;
        description: Allows you to ban a user&lt;br /&gt;
        default: op&lt;br /&gt;
    doorman.knock:&lt;br /&gt;
        description: Knocks on the door!&lt;br /&gt;
        default: true&lt;br /&gt;
    doorman.denied:&lt;br /&gt;
        description: Prevents this user from entering the door&amp;lt;/source&amp;gt; &amp;lt;/code&amp;gt; &amp;lt;/blockquote&amp;gt; &lt;br /&gt;
Firstly, each permission your plugin uses is defined as a child node of the &#039;&#039;permissions&#039;&#039; node. Each permission can then optionally have a description, a default value, and children. &lt;br /&gt;
&lt;br /&gt;
==== Defaults  ====&lt;br /&gt;
&lt;br /&gt;
By default when a permission isn&#039;t defined for a player&amp;amp;nbsp;&#039;&#039;hasPermission&#039;&#039;&amp;amp;nbsp;will return false. Inside your plugin.yml you can change this by setting the default node to be one of four values: &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;true&#039;&#039;&#039; - The permission will be true by default. &lt;br /&gt;
*&#039;&#039;&#039;false&#039;&#039;&#039; - The permission will by false by default. &lt;br /&gt;
*&#039;&#039;&#039;op&#039;&#039;&#039; - If the player is an op then this will be true. &lt;br /&gt;
*&#039;&#039;&#039;not op&#039;&#039;&#039; - If the player is not an op then this will be true.&lt;br /&gt;
&lt;br /&gt;
==== Children  ====&lt;br /&gt;
&lt;br /&gt;
Before now you will probably be used to the * permission to automatically assign all sub permissions. This has changed with the bukkit API and you can now define the child permissions. This allows for a lot more flexibility. Below is an example of how you do this: &lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;source lang=&amp;quot;yaml&amp;quot;&amp;gt;permissions:&lt;br /&gt;
    doorman.*:&lt;br /&gt;
        description: Gives access to all doorman commands&lt;br /&gt;
        children:&lt;br /&gt;
            doorman.kick: true&lt;br /&gt;
            doorman.ban: true&lt;br /&gt;
            doorman.knock: true&lt;br /&gt;
            doorman.denied: false&amp;lt;/source&amp;gt; &amp;lt;/blockquote&amp;gt; &lt;br /&gt;
Here the &#039;&#039;doorman.*&#039;&#039; permission has several child permissions assigned to it. The way child permissions work is when &#039;&#039;doorman.*&#039;&#039; is set to true, the child permissions are set to their values defined in the &#039;&#039;plugin.yml&#039;&#039;. If however &#039;&#039;doorman.*&#039;&#039; was set to false then all child permissions would be inverted.&lt;br /&gt;
&lt;br /&gt;
=== Setting your own permissions  ===&lt;br /&gt;
&lt;br /&gt;
If you wish to know about developing your own permissions plugins (Ones that actually set permissions) then check out the tutorial on&amp;amp;nbsp;[[Developing a permissions plugin]].&lt;br /&gt;
&lt;br /&gt;
== Scheduling Tasks and Background Tasks  ==&lt;br /&gt;
&lt;br /&gt;
Currently, Minecraft servers operate nearly all of the game logic in one thread, so each individual task that happens in the game needs to be kept very short. A complicated piece of code in your plugin has the potential to cause huge delays and lag spikes to the game logic, if not handled properly. &lt;br /&gt;
&lt;br /&gt;
Luckily, Bukkit has support for scheduling code in your plugin. You can submit a Runnable task to occur once in the future, or on a recurring basis, or you can spin off a whole new independent thread that can perform lengthy tasks in parallel with the game logic. &lt;br /&gt;
&lt;br /&gt;
There is a separate [[Scheduler Programming]] tutorial which introduces the Scheduler, and gives more information on using it to schedule synchronous tasks, and on kicking off asynchronous tasks in Bukkit. &lt;br /&gt;
&lt;br /&gt;
== 方块操控&amp;lt;br&amp;gt;  ==&lt;br /&gt;
&lt;br /&gt;
这是一个很容易的方法创建、获取或修改一个方块, 例如当你想要修改往你头上数第五格的方块时, 首先你需要做的是获取你当前的坐标点, 然后往你当前的坐标点的Y轴加上五, 获取目标方块后我们便能够很容易地修改它了, 例子如下:&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
@EventHandler&lt;br /&gt;
public void onPlayerMove(PlayerMoveEvent event) {&lt;br /&gt;
    // 得到玩家当前的坐标.&lt;br /&gt;
    Location loc = event.getPlayer().getLocation();&lt;br /&gt;
    // 设置目标坐标为玩家头顶 5 格处.&lt;br /&gt;
    loc.setY(loc.getY() + 5);&lt;br /&gt;
    // 得到目标坐标的方块&lt;br /&gt;
    Block b = loc.getBlock();&lt;br /&gt;
    // 将目标坐标的方块更改为岩石 (stone).&lt;br /&gt;
    b.setType(Material.STONE);&lt;br /&gt;
}&amp;lt;/source&amp;gt; &amp;lt;/blockquote&amp;gt; &lt;br /&gt;
The above code gets the player&#039;s location, gets the block five above it, and sets it to stone. Note that once you have a &amp;lt;code&amp;gt;Block&amp;lt;/code&amp;gt;, there are other things you can do besides set its type. Consult the JavaDocs for more information.&lt;br /&gt;
&lt;br /&gt;
You can use a similar concept to generate buildings and individual blocks programmatically through the use of algorithms. For example, to generate a solid cube, you could use nested &amp;lt;code&amp;gt;for&amp;lt;/code&amp;gt; loops to loop over an entire cube and fill it in. &lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public void generateCube(Location loc, int length) {&lt;br /&gt;
    // Set one corner of the cube to the given location.&lt;br /&gt;
    // Uses getBlockN() instead of getN() to avoid casting to an int later.&lt;br /&gt;
    int x1 = loc.getBlockX(); &lt;br /&gt;
    int y1 = loc.getBlockY();&lt;br /&gt;
    int z1 = loc.getBlockZ();&lt;br /&gt;
&lt;br /&gt;
    // Figure out the opposite corner of the cube by taking the corner and adding length to all coordinates.&lt;br /&gt;
    int x2 = x1 + length;&lt;br /&gt;
    int y2 = y1 + length;&lt;br /&gt;
    int z2 = z1 + length;&lt;br /&gt;
&lt;br /&gt;
    World world = loc.getWorld();&lt;br /&gt;
&lt;br /&gt;
    // Loop over the cube in the x dimension.&lt;br /&gt;
    for (int xPoint = x1; xPoint &amp;lt;= x2; xPoint++) { &lt;br /&gt;
        // Loop over the cube in the y dimension.&lt;br /&gt;
        for (int yPoint = y1; yPoint &amp;lt;= y2; yPoint++) {&lt;br /&gt;
            // Loop over the cube in the z dimension.&lt;br /&gt;
            for (int zPoint = z1; zPoint &amp;lt;= z2; zPoint++) {&lt;br /&gt;
                // Get the block that we are currently looping over.&lt;br /&gt;
                Block currentBlock = world.getBlockAt(xPoint, yPoint, zPoint);&lt;br /&gt;
                // Set the block to type 57 (Diamond block!)&lt;br /&gt;
                currentBlock.setType(Material.DIAMOND_BLOCK);&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&amp;lt;/blockquote&amp;gt; &lt;br /&gt;
This method will construct a 3D cube or cuboid with the given length and starting point. As for deleting blocks simply follow the same method for creating them but set the ID to 0 (air).&amp;lt;br&amp;gt; &lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== (Player) Inventory Manipulation  ==&lt;br /&gt;
&lt;br /&gt;
This section mostly covers player inventory manipulation, but the same applies to chest inventory manipulation as well if you find out how to get a chest&#039;s inventory&amp;amp;nbsp;:P. Here is a simple example of inventory manipulation: &lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;public void onPlayerJoin(PlayerJoinEvent evt) {&lt;br /&gt;
    Player player = evt.getPlayer(); // 当玩家加入游戏&lt;br /&gt;
    PlayerInventory inventory = player.getInventory(); // 获取玩家背包列表&lt;br /&gt;
    ItemStack itemstack = new ItemStack(Material.DIAMOND, 64); // 生成一组钻石&lt;br /&gt;
        &lt;br /&gt;
    if (inventory.contains(itemstack)) {&lt;br /&gt;
        inventory.addItem(itemstack); // 将一组钻石放到玩家的背包里&lt;br /&gt;
        player.sendMessage(&amp;quot;Welcome! You seem to be reeeally rich, so we gave you some more diamonds!&amp;quot;); //向玩家发送消息(&amp;quot;你看起来很有钱的样子....balabala&amp;quot;)&lt;br /&gt;
    }&lt;br /&gt;
}&amp;lt;/source&amp;gt; &amp;lt;/blockquote&amp;gt; &lt;br /&gt;
So inside onPlayerJoin we first make a few variables to make our job easier: player, inventory and itemstack. Inventory is the player&#039;s inventory and itemstack is a ItemStack that has 64 diamonds. After that we check if the player&#039;s inventory contains a stack of diamonds. If the player has a stack of diamonds, we give him/her another stack with inventory.addItem(itemstack) and send a message. So inventory manipulation isn&#039;t actually that hard, if we wanted we could remove the stack of diamonds by simply replacing inventory.addItem(itemstack) with inventory.remove(itemstack) and change the message a little bit. Hopefully this helped!&lt;br /&gt;
&lt;br /&gt;
== Item Manipulation ==&lt;br /&gt;
&lt;br /&gt;
When dealing with items in the code, you use the ItemStack class for looking up and setting all information on that stack.&lt;br /&gt;
&lt;br /&gt;
=== Enchantments ===&lt;br /&gt;
&lt;br /&gt;
To enchant an item you must first know the [http://www.minecraftwiki.net/wiki/Data_values Item Code] and the [http://www.minecraftwiki.net/wiki/Talk:Enchanting#Effect_IDs Effect ID].  Enchantments themselves cannot be instantiated (new Enchantment() won&#039;t work) because they&#039;re abstract, so you must use an EnchantmentWrapper. If you want to enchant items that can&#039;t be enchanted inside normal SMP, use addUnsafeEnchantment() instead of addEnchantment()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
int itemCode = 280;  //use the item code you want here&lt;br /&gt;
int effectId = 20;  //use the enchantment code you want here&lt;br /&gt;
int enchantmentLevel = 100;&lt;br /&gt;
&lt;br /&gt;
ItemStack myItem = new ItemStack(itemCode);  //new item of item code&lt;br /&gt;
Enchantment myEnchantment = new EnchantmentWrapper(effectId);  //new enchantment of effect id&lt;br /&gt;
myItem.addEnchantment(myEnchantment, enchantmentLevel);  //enchant the item&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== ItemMeta ===&lt;br /&gt;
You can set the display name of an item by doing this.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
String myDisplayName = &amp;quot;Awesome Sword&amp;quot;; //这里是保存了你想要显示的名字&lt;br /&gt;
 &lt;br /&gt;
ItemStack myItem = new ItemStack(Material.DIAMOND_SWORD);  //你要更改的方块&lt;br /&gt;
ItemMeta im = myItem.getItemMeta(); //得到方块的元数据&lt;br /&gt;
im.setDisplayName(myDisplayName); //设置它显示的名字&lt;br /&gt;
myItem.setItemMeta(im); //保存更改&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
You can also set the lores of an item. The lores are the small annotations on an item, like &amp;quot;+5 attack damage&amp;quot; on a stone sword.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
List&amp;lt;String&amp;gt; lores = new ArrayList&amp;lt;String&amp;gt;();&lt;br /&gt;
lores.add(&amp;quot;Example lore&amp;quot;, &amp;quot;this one comes on line 2&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
ItemStack myItem = new ItemStack(Material.DIAMOND_SWORD);  //your item&lt;br /&gt;
ItemMeta im = myItem.getItemMeta(); //get the itemmeta of the item again&lt;br /&gt;
im.setLore(lores); //add the lores of course&lt;br /&gt;
myItem.setItemMeta(im); //give the item the new itemmeta&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Maps, and Sets, and Lists, Oh My! &amp;lt;ref&amp;gt;标题中Map,Set,List均为Java类集中的接口，故不翻译&amp;lt;/ref&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
除了Map类和HashMap类，Java中还提供了其它的数据结构类集。 &lt;br /&gt;
&lt;br /&gt;
他们提供这些不同的类，是因为有些时候，使用Map类并不合适。&amp;lt;nowiki&amp;gt;[[Java data structure classes]]&amp;lt;/nowiki&amp;gt;在这个条目中，有对Java数据框架类集更深入的讲述。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;=== HashMaps概览以及如何使用此接口  ===&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&amp;lt;big&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&#039;&#039;&#039;&amp;lt;/nowiki&amp;gt;Keep in mind to never use a player in a hashmap!&amp;lt;nowiki&amp;gt;&#039;&#039;&#039;&amp;lt;/nowiki&amp;gt;&amp;lt;ref&amp;gt;下面有讲解。&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
应在HashMap中使用字符串.，使用 &amp;quot;p.getName()&amp;quot; 来添加，移除或是检查列表中是否含有某个玩家.&lt;br /&gt;
&lt;br /&gt;
将玩家当作object储存在HashMap中会造成大量内存泄漏.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&amp;lt;/big&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When making a plugin you will get to a point where just using single variables to state an event has happened or a condition has been met will be insufficient, due to more than one player performing that action/event. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This was the problem I had with one of my old plugins, Zones, now improved and re-named to Regions. I was getting most of these errors because I didn&#039;t consider how the plugin would behave on an actual server with more than one on at any given time. I was using a single boolean variable to check whether players were in the region or not and obviously this wouldn&#039;t work as the values for each individual player need to be separate. So if one player was in a region and one was out the variable would constantly be changing which could/would/did cause numerous errors. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A HashMap is an excellent way of doing this. A HashMap is a way of mapping/assigning a value to a key. You could set up the HashMap so that the key is a player and the value could be anything you want, however the useful things with HashMaps is that one key can only contain one value and there can be no duplicate keys. So say for example I put &amp;quot;adam&amp;quot; as the key and assigned a value of &amp;quot;a&amp;quot; to it. That would work as intended, but then say afterwards I wanted to assign the value of &amp;quot;b&amp;quot; to key &amp;quot;adam&amp;quot; I would be able to and would get no errors but the value of &amp;quot;a&amp;quot; assigned to key &amp;quot;adam&amp;quot; in the HashMap would be overwritten because HashMaps cannot contain duplicate values. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;==== Defining a HashMap  ====&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&amp;lt;blockquote&amp;gt;&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;public Map&amp;lt;KeyType, DataType&amp;gt; HashMapName = new HashMap&amp;lt;&amp;gt;(); //Example syntax&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// Example Declaration&lt;br /&gt;
&lt;br /&gt;
public Map&amp;lt;String, Boolean&amp;gt; pluginEnabled = new HashMap&amp;lt;&amp;gt;();&lt;br /&gt;
&lt;br /&gt;
public Map&amp;lt;String, Boolean&amp;gt; isGodMode = new HashMap&amp;lt;&amp;gt;();&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&amp;lt;/source&amp;gt;&amp;lt;/nowiki&amp;gt; &amp;lt;nowiki&amp;gt;&amp;lt;/blockquote&amp;gt;&amp;lt;/nowiki&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Keep that code in mind because we will be using it for the rest of the tutorial on HashMaps. So, for example lets create a simple function which will toggle whether the plugin has been enabled or not. Firstly, inside your on command function which I explained earlier you will need to create a function to send the player name to the function and adjust the players state accordingly. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
So inside on command you&#039;ll need this, the function name can be different but for the sake of simplicity it&#039;s best if you keep it the same. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&amp;lt;blockquote&amp;gt;&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;Player player = (Player) sender;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
togglePluginState(player);&amp;lt;nowiki&amp;gt;&amp;lt;/source&amp;gt;&amp;lt;/nowiki&amp;gt; &amp;lt;nowiki&amp;gt;&amp;lt;/blockquote&amp;gt;&amp;lt;/nowiki&amp;gt; &lt;br /&gt;
&lt;br /&gt;
This code above will cast the value of sender to player and pass that argument to the function togglePluginState(). But now we need to create our togglePluginState() function. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&amp;lt;blockquote&amp;gt;&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;public void togglePluginState(Player player) {&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    // Notice how we use the player name as the key here,&lt;br /&gt;
&lt;br /&gt;
    // not the player object&lt;br /&gt;
&lt;br /&gt;
    String playerName = player.getName();&lt;br /&gt;
&lt;br /&gt;
    if (pluginEnabled.containsKey(playerName)) {&lt;br /&gt;
&lt;br /&gt;
        if (pluginEnabled.get(playerName)) {&lt;br /&gt;
&lt;br /&gt;
            pluginEnabled.put(playerName, false);&lt;br /&gt;
&lt;br /&gt;
            player.sendMessage(&amp;quot;Plugin disabled&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
        } else {&lt;br /&gt;
&lt;br /&gt;
            pluginEnabled.put(playerName, true);&lt;br /&gt;
&lt;br /&gt;
            player.sendMessage(&amp;quot;Plugin enabled&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
    } else {&lt;br /&gt;
&lt;br /&gt;
        pluginEnabled.put(playerName, true); //If you want plugin disabled by default change this value to false.&lt;br /&gt;
&lt;br /&gt;
        player.sendMessage(&amp;quot;Plugin enabled&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
}&amp;lt;nowiki&amp;gt;&amp;lt;/source&amp;gt;&amp;lt;/nowiki&amp;gt; &amp;lt;nowiki&amp;gt;&amp;lt;/blockquote&amp;gt;&amp;lt;/nowiki&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Now, what this code is doing is checking if the HashMap first contains the key player, so if it has been put into the HashMap, if it is then we check the value of the HashMap key by get(player); if this is true then set value to false and send the player a message, else if the value is false then do the opposite, set the value to true and send a message again. But if the HashMap does not contain the key player then we can assume that this is their first run/use so we change the default value and add the player to the HashMap.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;==== More Ideas for HashMaps  ====&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A HashMap (or really any kind of Map in Java) is an association. It allows quick and efficient lookup of some sort of &amp;lt;nowiki&amp;gt;&#039;&#039;&#039;value&#039;&#039;&#039;, given a unique &#039;&#039;&#039;key&#039;&#039;&#039;&amp;lt;/nowiki&amp;gt;. Anywhere this happens in your code, a Map may be your solution. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here are a few other ideas which are ideally suited to using Maps. As you will see, it doesn&#039;t have to be data that you store per player, but can be any kind of data that needs to be &amp;quot;translated&amp;quot; from one form to another. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;===== Data Value Lookups  =====&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&amp;lt;blockquote&amp;gt;&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
public Map&amp;lt;String, Integer&amp;gt; wool_colors = new HashMap&amp;lt;&amp;gt;();&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// Run this on plugin startup (ideally reading from a file instead of copied out row by row):&lt;br /&gt;
&lt;br /&gt;
wool_colors.put(&amp;quot;orange&amp;quot;, 1);&lt;br /&gt;
&lt;br /&gt;
wool_colors.put(&amp;quot;magenta&amp;quot;, 2);&lt;br /&gt;
&lt;br /&gt;
wool_colors.put(&amp;quot;light blue&amp;quot;, 3);&lt;br /&gt;
&lt;br /&gt;
   ..&lt;br /&gt;
&lt;br /&gt;
wool_colors.put(&amp;quot;black&amp;quot;, 15);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// Run this in response to user commands - turn &amp;quot;green&amp;quot; into 13&lt;br /&gt;
&lt;br /&gt;
int datavalue = 0;&lt;br /&gt;
&lt;br /&gt;
if (wool_colors.containsKey(argument)) {&lt;br /&gt;
&lt;br /&gt;
    datavalue = wool_colors.get(argument);&lt;br /&gt;
&lt;br /&gt;
} else {&lt;br /&gt;
&lt;br /&gt;
    try { datavalue = Integer.parseInt(argument); }&lt;br /&gt;
&lt;br /&gt;
    catch (Exception e) {}&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&amp;lt;/source&amp;gt;&amp;lt;/nowiki&amp;gt; &amp;lt;nowiki&amp;gt;&amp;lt;/blockquote&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;==== Saving/Loading a HashMap  ====&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Once you know how to work with HashMaps, you probably want to know how to save and load the HashMap data. Saving and loading HashMap data is appropriate if &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;you don&#039;t want an administrator to edit the data manually&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;you need to save data in binary format (too complex to organize for YAML)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;you want to avoid parsing block names and/or other objects from freeform text&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This is very simple way how to save any HashMap. You can replace HashMap&amp;amp;amp;lt;String, Integer&amp;amp;amp;gt; with any type of HashMap you want. Let&#039;s take an example HashMap with code to save it:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&amp;lt;blockquote&amp;gt;&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        HashMap&amp;lt;String, Integer&amp;gt; mapToSave = new HashMap&amp;lt;String,Integer&amp;gt;();&lt;br /&gt;
&lt;br /&gt;
        public void save(HashMap&amp;lt;String, Integer&amp;gt; map, String path) {&lt;br /&gt;
&lt;br /&gt;
try {&lt;br /&gt;
&lt;br /&gt;
ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(path));&lt;br /&gt;
&lt;br /&gt;
oos.writeObject(map);&lt;br /&gt;
&lt;br /&gt;
oos.flush();&lt;br /&gt;
&lt;br /&gt;
oos.close();&lt;br /&gt;
&lt;br /&gt;
//Handle I/O exceptions&lt;br /&gt;
&lt;br /&gt;
} catch(Exception e) {&lt;br /&gt;
&lt;br /&gt;
e.printStackTrace();&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// ...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
save(mapToSave, getDataFolder() + File.separator + &amp;quot;example.bin&amp;quot;);&amp;lt;nowiki&amp;gt;&amp;lt;/source&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;/blockquote&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can see it&#039;s really easy. Loading works very very similar but we use ObjectInputStream instead of ObjectOutputStream ,FileInputStream instead of FileOutputStream,readObject() instead of writeObject() and we return the HashMap. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&amp;lt;blockquote&amp;gt;&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;public HashMap&amp;lt;String, Integer&amp;gt; load(String path) {&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
try {&lt;br /&gt;
&lt;br /&gt;
ObjectInputStream ois = new ObjectInputStream(new FileInputStream(path));&lt;br /&gt;
&lt;br /&gt;
Object result = ois.readObject();&lt;br /&gt;
&lt;br /&gt;
//you can feel free to cast result to HashMap&amp;lt;String, Integer&amp;gt; if you know there&#039;s that HashMap in the file&lt;br /&gt;
&lt;br /&gt;
return (HashMap&amp;lt;String, Integer&amp;gt;)result;&lt;br /&gt;
&lt;br /&gt;
} catch(Exception e) {&lt;br /&gt;
&lt;br /&gt;
e.printStackTrace();&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// ...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
HashMap&amp;lt;Integer, String&amp;gt; loadedMap;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
String path = getDataFolder() + File.separator + &amp;quot;example.bin&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
File file = new File(path);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if (file.exists()) { // check if file exists before loading to avoid errors!&lt;br /&gt;
&lt;br /&gt;
loadedMap  = load(path);&lt;br /&gt;
&lt;br /&gt;
}&amp;lt;nowiki&amp;gt;&amp;lt;/source&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;/blockquote&amp;gt;&amp;lt;/nowiki&amp;gt; &lt;br /&gt;
&lt;br /&gt;
You can use this &amp;quot;API&amp;quot; for saving/loading HashMaps, ArrayLists, and all Objects which implement Serializable or Externalizable interface.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&amp;lt;blockquote&amp;gt;&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;/** SLAPI = Saving/Loading API&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 * API for Saving and Loading Objects.&lt;br /&gt;
&lt;br /&gt;
 * Everyone has permission to include this code in their plugins as they wish :)&lt;br /&gt;
&lt;br /&gt;
 * @author Tomsik68&amp;lt;tomsik68@gmail.com&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
public class SLAPI&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
public static &amp;lt;T extends Object&amp;gt; void save(T obj,String path) throws Exception&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(path));&lt;br /&gt;
&lt;br /&gt;
oos.writeObject(obj);&lt;br /&gt;
&lt;br /&gt;
oos.flush();&lt;br /&gt;
&lt;br /&gt;
oos.close();&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
public static &amp;lt;T extends Object&amp;gt; T load(String path) throws Exception&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
ObjectInputStream ois = new ObjectInputStream(new FileInputStream(path));&lt;br /&gt;
&lt;br /&gt;
T result = (T)ois.readObject();&lt;br /&gt;
&lt;br /&gt;
ois.close();&lt;br /&gt;
&lt;br /&gt;
return result;&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
}&amp;lt;nowiki&amp;gt;&amp;lt;/source&amp;gt;&amp;lt;/nowiki&amp;gt; &amp;lt;nowiki&amp;gt;&amp;lt;/blockquote&amp;gt;&amp;lt;/nowiki&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Example implementation of this API: &amp;lt;nowiki&amp;gt;&#039;&#039;&#039;&amp;lt;/nowiki&amp;gt;I&#039;m skipping some part of code in this source&amp;lt;nowiki&amp;gt;&#039;&#039;&#039;&amp;lt;/nowiki&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&amp;lt;blockquote&amp;gt;&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;public class Example extends JavaPlugin {&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
private ArrayList&amp;lt;Object&amp;gt; list = new ArrayList&amp;lt;&amp;gt;();&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
@Override&lt;br /&gt;
&lt;br /&gt;
public void onEnable() {&lt;br /&gt;
&lt;br /&gt;
            try {&lt;br /&gt;
&lt;br /&gt;
list = SLAPI.load(&amp;quot;example.bin&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
            } catch(Exception e) {&lt;br /&gt;
&lt;br /&gt;
                //handle the exception&lt;br /&gt;
&lt;br /&gt;
                e.printStackTrace();&lt;br /&gt;
&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
@Override&lt;br /&gt;
&lt;br /&gt;
public void onDisable()	{&lt;br /&gt;
&lt;br /&gt;
            try {&lt;br /&gt;
&lt;br /&gt;
SLAPI.save(list,&amp;quot;example.bin&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
            } catch(Exception e) {&lt;br /&gt;
&lt;br /&gt;
                 e.printStackTrace();&lt;br /&gt;
&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
}&amp;lt;nowiki&amp;gt;&amp;lt;/source&amp;gt;&amp;lt;/nowiki&amp;gt; &amp;lt;nowiki&amp;gt;&amp;lt;/blockquote&amp;gt;&amp;lt;/nowiki&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Note #1: This will work un-modified with almost all well-known Java types like Integer, String, HashMap. It will also work for some Bukkit types as well. If you&#039;re writing your own data object classes, and you may want to save their state using this technique, you should read about Java&#039;s Serializable or Externalizable interface. The only difference between Externalizable and Serializable is, that Serializable automatically takes all of class&#039;s fields and tries to serialize them, while Externalizable allows you to define method for reading and writing the Object. It&#039;s easy to add to your code, and it will make your data persistent with very little work required. No more parsing!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note #2: This API doesn&#039;t support changes. Once you change something in the class, data files saved with older version of your plugin won&#039;t load correctly. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;===== Tips &amp;amp; Examples =====&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1.) Simplify your save structure&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Try to use as much simple types as possible. E.g. if you want to save player, save their UUID instead. If you want to save world, save its UUID. If you want to save location, save x,y,z world UUID. DO NOT DIRECTLY SAVE BUKKIT TYPES!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2.) Save version number along with data&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You should always remember, that you don&#039;t know what you&#039;ll be saving in the same file tomorrow. Will you ever migrate this file because of newer version of your plugin, bukkit, or minecraft? You don&#039;t know!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3.) Migrate older files&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If your plugin finds older version of some file, it should update the file accordingly and change version number.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Metadata  ==&lt;br /&gt;
&lt;br /&gt;
Bukkit is trying to make plugin development as easy as possible, so HashMaps with key of type Player, Entity, World or even a Block were replaced by Metadata. Metadata is some kind of alternative to HashMap. It allows you to add custom &amp;quot;fields&amp;quot; to Players, Entities, Worlds and Blocks. These things are all members of Metadatable class(check [http://jd.bukkit.org/doxygen/de/d59/interfaceorg_1_1bukkit_1_1metadata_1_1MetadataValue.html#ab49975fe013a0626dd29d3b85c63a82f])It works very simply. Everything that is Metadatable holds its own HashMap of Metadata which you have access to. That means, for example, if you&#039;re creating an economy plugin, you would need a HashMap of Player and Float or Double. With Metadata, you don&#039;t have to! You just attach to player new metadata value, and that&#039;s it!&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
=== Why to use Metadata  ===&lt;br /&gt;
&lt;br /&gt;
* Metadata is all handled by Bukkit, which makes it a very good alternative to HashMaps. &lt;br /&gt;
* Metadata can be used to share information between plugins.&lt;br /&gt;
&lt;br /&gt;
=== Why not use Metadata&amp;lt;br&amp;gt;  ===&lt;br /&gt;
&lt;br /&gt;
* Slightly more difficult to get the value.&lt;br /&gt;
* It is not saved on shutdown (but then again, neither are any Maps that you create).&lt;br /&gt;
&lt;br /&gt;
=== Getting &amp;amp;amp; Setting Metadata  ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public void setMetadata(Metadatable object, String key, Object value, Plugin plugin) {&lt;br /&gt;
  object.setMetadata(key, new FixedMetadataValue(plugin,value));&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
public Object getMetadata(Metadatable object, String key, Plugin plugin) {&lt;br /&gt;
  List&amp;lt;MetadataValue&amp;gt; values = object.getMetadata(key);  &lt;br /&gt;
  for (MetadataValue value : values) {&lt;br /&gt;
     // Plugins are singleton objects, so using == is safe here&lt;br /&gt;
     if (value.getOwningPlugin() == plugin) {&lt;br /&gt;
        return value.value();&lt;br /&gt;
     }&lt;br /&gt;
  }&lt;br /&gt;
  return null;&lt;br /&gt;
}&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Note: If you&#039;re manipulating with numbers, booleans or strings, use convenient method to get the result. For example, you can use asInt(), asString() or asBoolean() instead of value to find out the value.&lt;br /&gt;
&lt;br /&gt;
== Databases  ==&lt;br /&gt;
&lt;br /&gt;
Sometimes flat files aren&#039;t enough for what your looking to do, this is where databases come in. The most common database engines available on Linux/Mac/Windows machines typically run on some flavor of SQL (Structured Query Language).&lt;br /&gt;
&lt;br /&gt;
Software offering SQL allow you to create databases with columns and header to identify to contents of each cell. Think of it as a spreadsheet on steroids, where every column you set up in your database can enforce rules to ensure integrity. Apart from being more organised than a simple custom data file, SQL provides faster access and better searching than flat files. &lt;br /&gt;
&lt;br /&gt;
The SQL standard helps applications like Bukkit implement database storage for their data in a consistent way. Unfortunately, there&#039;s more than one SQL-ready database engine, and each has minor differences in how to configure and use it. Which one you choose may depend on your particular needs. (Some plugins even offer configurable options to connect to multiple database engines!) &lt;br /&gt;
&lt;br /&gt;
=== SQLite  ===&lt;br /&gt;
&lt;br /&gt;
Alta189 has written a [http://forums.bukkit.org/threads/lib-tut-mysql-sqlite-bukkit-drivers.33849/ fantastic SQLite tutorial] which I suggest you watch if you&#039;re interested in using SQL in your plugins, included with the tutorials is a handy library you can download and import to make using SQL easier. Once you have watched these video tutorials I would suggest you go and learn some SQL syntax, it&#039;s very straightforward and shouldn&#039;t take you long to pick up. SQL Tutorials [http://www.w3schools.com/sql/default.asp @W3Schools] and [http://www.1keydata.com/sql/sql.html @1Keydata]. &lt;br /&gt;
&lt;br /&gt;
SQLite is great for very simple databases, because there&#039;s no server concerns to set up. Just make a few calls to create a new database and table. It&#039;s easy to back up: just copy the whole database file in one go. SQLite is a little bit weaker at data integrity, flexibility in data types, and it may not be something you would want to trust for huge databases of millions of rows. But for a new plugin in development, it&#039;s often easiest and fastest to get the SQL basics squared away with SQLite, even if you &amp;quot;graduate&amp;quot; to a more server-class database engine later.&lt;br /&gt;
&lt;br /&gt;
=== MySQL  ===&lt;br /&gt;
&lt;br /&gt;
Another popular SQL database engine is called MySQL. It is closer to server-grade than SQLite, where many popular companies or websites depend on it for millions of webpage hits every day. With that security comes a little bit steeper learning-curve, because MySQL has more tunable parameters and capabilities. &lt;br /&gt;
&lt;br /&gt;
The coding for plugins accessing MySQL is mostly the same as tiny SQLite or mega-sized Oracle, with only small differences in syntax here or there. But the administration has room to grow. You may want to set up accounts and privileges inside your MySQL setup. You may want to set up SQL scripts that organize your backups and rollback to previous states. &lt;br /&gt;
&lt;br /&gt;
== 部署你的插件  ==&lt;br /&gt;
&lt;br /&gt;
 总之你写好的你的插件,如何把它变成一个可安装在服务端的jar文件呢?&lt;br /&gt;
 &lt;br /&gt;
 首先我们需要建立一个水桶服务器。 [http://wiki.bukkit.org/Setting_up_a_server 在这里] 能找到开服相关信息.接下来你需要把插件导出为一个.jar文件，&lt;br /&gt;
 &lt;br /&gt;
 这样你就能在你的服务器里运行它。 在Eclipse里, 右键工程，点击&#039;&#039;Run as &amp;gt; Maven install&#039;&#039;即可:&lt;br /&gt;
&lt;br /&gt;
[[Image:Maveninstall.png]]&lt;br /&gt;
&lt;br /&gt;
 将来呢, 当你对插件进行了改动后,在做上述操作之前，如果你想删除之前的.jar文件，你可以右键工程，点击 &#039;&#039;Run as &amp;gt; Maven clean&#039;&#039; 。 &lt;br /&gt;
 &lt;br /&gt;
 如果你在编译插件时遇到了问题,  请检查你的JDK是否正确安装， 并浏览[[建立工作区]]条目。&lt;br /&gt;
 &lt;br /&gt;
 如果你在Eclipse控制台看到了和JDK有关的错误，你可能需要手动调整JDK,因为Eclipse的检测可能发生了错误。 &lt;br /&gt;
 &lt;br /&gt;
 点击&#039;&#039;Window -&amp;gt; Preferences&#039;&#039;, 然后是&#039;&#039;Java -&amp;gt; Installed JREs&#039;&#039;。选中你最近安装的JDK作为Java运行环境（JRE）并添加, 并取消掉原来那个报错的JDK:&lt;br /&gt;
&lt;br /&gt;
[[Image:Jrelocation.png]]&lt;br /&gt;
&lt;br /&gt;
 如果你的工程成功被编译,JAR文件会生产在 &#039;&#039;target&#039;&#039; 目录下，具体在Eclipse的工作空间里名字为工程名的文件夹中。&lt;br /&gt;
 &lt;br /&gt;
 这个JAR文件就是一个能正常工作的Bukkit插件了。当然前提是你的plugin.yml里没出差错。&lt;br /&gt;
 &lt;br /&gt;
 你可以把这个jar文件丢到服务器的plugins文件夹里,重载或重启服务器,就可以测试你的新插件啦。&lt;br /&gt;
 &lt;br /&gt;
 为了连接上使用你自己的电脑开的服务器 ,在多人游戏的ip里填上你的本地ip即可。&lt;br /&gt;
 &lt;br /&gt;
 如果出现了错误而你又不能解决的话, 试试这里[http://forums.bukkit.org/forums/plugin-development.5/ plugin development forum], &lt;br /&gt;
 &lt;br /&gt;
 在这里提问[http://wiki.bukkit.org/IRC bukkitdev IRC channel],或者重新阅读wiki。&lt;br /&gt;
 &lt;br /&gt;
 当你做完了一个实用的插件,可以考虑把它发表在这里[http://dev.bukkit.org/ dev.bukkit]（为了Bukkit社区的访问量）。&lt;br /&gt;
 &lt;br /&gt;
 以上可知,JAR格式是默认压缩生成的(JAR文件基于ZIP文件的格式)。这么说来，在上传插件到Bukkit上时把JAR文件压缩成ZIP只会增加文件体积罢了。&lt;br /&gt;
 &lt;br /&gt;
 而且呢, 放在JAR中的config文件可以在检测不到插件目录（插件自动生成的文件夹，名字与插件名相同，里面是该插件的配置）下的config文件时自动生成。&lt;br /&gt;
 &lt;br /&gt;
 所以我们一般不把jar文件转换成其他格式。&lt;br /&gt;
&lt;br /&gt;
== 导入其它插件 ==&lt;br /&gt;
你可能会希望编辑其它那些有源代码的插件. 如果插件在它的目录下有&#039;&#039;pom.xml&#039;&#039;(大多数知名插件,例如WorldEdit和Essentials都有),你可以通过点击&#039;&#039;File -&amp;gt; Import&#039;&#039;来把它作为一个工程导入, 然后打开&#039;&#039;Maven&#039;&#039;项并选择&#039;&#039;Existing Maven Projects&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
[[Image:Importmaven.png]]&lt;br /&gt;
&lt;br /&gt;
然后选择&#039;&#039;pom.xml&#039;&#039;所在的目录,这个工程就应该出现在你的侧边栏里了。就像平常一样编辑并编译它吧。&lt;br /&gt;
&lt;br /&gt;
== 小贴士  ==&lt;br /&gt;
&lt;br /&gt;
=== 使玩家着火 ===&lt;br /&gt;
&lt;br /&gt;
 Bukkit API有很多碉堡的功能。以下是实现一些功能的代码片段。 &lt;br /&gt;
&lt;br /&gt;
下面的代码运行一个玩家使另一个玩家着火。通过类似于&#039;&#039;&#039;/ignite Notch&#039;&#039;&#039;这样的指令，这个指令会让 Notch 着火。&lt;br /&gt;
&lt;br /&gt;
 @Override&lt;br /&gt;
 public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {&lt;br /&gt;
     // 使用 equalsIgnoreCase() 来忽视大小写&lt;br /&gt;
     if (cmd.getName().equalsIgnoreCase(&amp;quot;ignite&amp;quot;)) {&lt;br /&gt;
         // 确保玩家只输入了一个自变量(要被点着的玩家名).&lt;br /&gt;
         if (args.length != 1) {&lt;br /&gt;
             // 当return false时，该指令的使用信息会显示出来。&lt;br /&gt;
             return false;&lt;br /&gt;
         }&lt;br /&gt;
 &lt;br /&gt;
         // 确保命令发出者是个玩家.&lt;br /&gt;
         if (!(sender instanceof Player)) {&lt;br /&gt;
             sender.sendMessage(&amp;quot;Only players can set other players on fire.&amp;quot;);&lt;br /&gt;
             sender.sendMessage(&amp;quot;This is an arbitrary requirement for demonstration purposes only.&amp;quot;);&lt;br /&gt;
             return true;&lt;br /&gt;
         }&lt;br /&gt;
 &lt;br /&gt;
         // 获取那个要被点着的玩家. 请注意下标起始是0，不是1.&lt;br /&gt;
         Player target = Bukkit.getServer().getPlayer(args[0]);&lt;br /&gt;
 &lt;br /&gt;
         // 确保这个玩家在线。&lt;br /&gt;
         if (target == null) {&lt;br /&gt;
             sender.sendMessage(args[0] + &amp;quot; is not currently online.&amp;quot;);&lt;br /&gt;
             return true;&lt;br /&gt;
         }&lt;br /&gt;
 &lt;br /&gt;
         // 让这个玩家着火1000 ticks (一秒钟大概有20ticks,所以总共是50秒).&lt;br /&gt;
         target.setFireTicks(1000);&lt;br /&gt;
         return true;&lt;br /&gt;
     }&lt;br /&gt;
     return false;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== 干掉玩家  ===&lt;br /&gt;
&lt;br /&gt;
 和标题一样.这里是要干掉某个玩家。 &lt;br /&gt;
&lt;br /&gt;
在你的onCommand方法里使用这个: &lt;br /&gt;
&lt;br /&gt;
 @Override&lt;br /&gt;
 public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {&lt;br /&gt;
     if (cmd.getName().equalsIgnoreCase(&amp;quot;KillPlayer&amp;quot;)) {&lt;br /&gt;
         Player target = sender.getServer().getPlayer(args[0]);&lt;br /&gt;
          // 确保玩家在线.&lt;br /&gt;
         if (target == null) {&lt;br /&gt;
             sender.sendMessage(args[0] + &amp;quot; is not currently online.&amp;quot;);&lt;br /&gt;
             return true;&lt;br /&gt;
         }&lt;br /&gt;
         target.setHealth(0); &lt;br /&gt;
     }&lt;br /&gt;
     return false;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
这里有个小扩展,会使用一个爆炸来杀死玩家: &lt;br /&gt;
&lt;br /&gt;
 float explosionPower = 4F; //爆炸等级 - TNT的爆炸等级默认是4F&lt;br /&gt;
 Player target = sender.getWorld().getPlayer(args[0]);&lt;br /&gt;
 target.getWorld().createExplosion(target.getLocation(), explosionPower);&lt;br /&gt;
 target.setHealth(0);&lt;br /&gt;
&lt;br /&gt;
=== 创造一个假爆炸  ===&lt;br /&gt;
&lt;br /&gt;
这段代码会生产一个看起来和听起来与TNT/苦力怕产生的爆炸一样的效果。但是不会对实体和方块产生破坏。 在保留爆炸的艺术的同时又削弱了爆炸的威力，真是太有用了（&lt;br /&gt;
 @EventHandler&lt;br /&gt;
 public void onExplosionPrime(ExplosionPrimeEvent event) {	&lt;br /&gt;
     Entity entity = event.getEntity();&lt;br /&gt;
 &lt;br /&gt;
     // 如果事件和点燃的TNT有关,执行一些代码（又略）&lt;br /&gt;
     if (entity instanceof TNTPrimed) {&lt;br /&gt;
         entity.getWorld().createExplosion(entity.getLocation(), 0);&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== 使一个玩家对另外一个玩家隐形  ===&lt;br /&gt;
&lt;br /&gt;
 通过输入指令，能让指令执行者对特定的玩家隐形。 然而其他人仍然能看到指令执行者。&lt;br /&gt;
&lt;br /&gt;
 @Override&lt;br /&gt;
 public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {&lt;br /&gt;
     if (cmd.getName().equalsIgnoreCase(&amp;quot;HideMe&amp;quot;) &amp;amp;&amp;amp; args.length == 1) {&lt;br /&gt;
         if (!(sender instanceof Player)) {&lt;br /&gt;
             sender.sendMessage(&amp;quot;Only players can use this command!&amp;quot;);&lt;br /&gt;
             return true;&lt;br /&gt;
         }&lt;br /&gt;
         // 检测指令执行者是玩家后，我们便可以安全的进行强制转换类操作。&lt;br /&gt;
        Player s = (Player) sender;&lt;br /&gt;
 &lt;br /&gt;
        // 获取命令执行者指定的玩家&lt;br /&gt;
        Player target = Bukkit.getServer().getPlayer(args[0]);&lt;br /&gt;
        if (target == null) {&lt;br /&gt;
            sender.sendMessage(&amp;quot;Player &amp;quot; + args[0] + &amp;quot; is not online.&amp;quot;);&lt;br /&gt;
            return true;&lt;br /&gt;
        }&lt;br /&gt;
        // 将 s 从 target 的视野中隐藏起来.&lt;br /&gt;
        target.hidePlayer(s);&lt;br /&gt;
        return true;&lt;br /&gt;
    }&lt;br /&gt;
    return false;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== 在玩家准星所指处生产闪电 ===&lt;br /&gt;
&lt;br /&gt;
如下代码运行手持鱼竿的玩家通过点击来生成闪电 (当然要用准星瞄准)。 真是个简单好玩的恶作剧（。&lt;br /&gt;
&lt;br /&gt;
 @EventHandler&lt;br /&gt;
 public void onPlayerInteractBlock(PlayerInteractEvent event) {&lt;br /&gt;
     Player player = event.getPlayer();&lt;br /&gt;
     if (player.getItemInHand().getType() == Material.FISHING_ROD) {&lt;br /&gt;
         // 在给定坐标中生成一道闪电. 在本例中, 这个坐标是玩家准星瞄准的地方.&lt;br /&gt;
         // 只能指向200格以内的坐标.&lt;br /&gt;
         player.getWorld().strikeLightning(player.getTargetBlock(null, 200).getLocation());&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== 自动格式 ===&lt;br /&gt;
&lt;br /&gt;
 Eclipse提供了将你的代码自动转成Oracle规定的格式, 修正了不符合常规的缩进, 空格等等。 在侧边栏选中你的项目,然后选择&#039;&#039;Source -&amp;gt; Format&#039;&#039;即可对其进行更改。&lt;br /&gt;
&lt;br /&gt;
== 插件需求专区  ==&lt;br /&gt;
&lt;br /&gt;
http://forums.bukkit.org/forums/plugin-requests.13/&lt;br /&gt;
&lt;br /&gt;
== 范例文件和样板  ==&lt;br /&gt;
&lt;br /&gt;
*[https://github.com/Bukkit/SamplePlugin/ Bukkit/SamplePlugin on GitHub]&lt;br /&gt;
&lt;br /&gt;
*[http://pastebin.com/wpeTPx7N Example.Java]&lt;br /&gt;
&lt;br /&gt;
*[http://pastebin.com/MTwaAVCT ExamplePlayerListener.Java]&lt;br /&gt;
&lt;br /&gt;
*[http://pastebin.com/6FLixfH3 ExampleBlockListener.Java]&lt;br /&gt;
&lt;br /&gt;
*[http://pastebin.com/8UZ6pkWC ExampleEntityListener.Java]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you have any more questions on this matter, don&#039;t hesitate to visit the BukkitDev [[IRC]] channel and ask!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:教程]]&lt;br /&gt;
[[Category:大篇幅条目]]&lt;/div&gt;</summary>
		<author><name>Minedx</name></author>
	</entry>
	<entry>
		<id>https://mineplugin.org/index.php?title=Help.yml&amp;diff=1279</id>
		<title>Help.yml</title>
		<link rel="alternate" type="text/html" href="https://mineplugin.org/index.php?title=Help.yml&amp;diff=1279"/>
		<updated>2015-08-11T16:06:57Z</updated>

		<summary type="html">&lt;p&gt;Minedx：​开头格式&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;      &#039;&#039;&#039;help.yml是帮助文件，可以帮助新手服主们查看指令&#039;&#039;&#039;&lt;br /&gt;
      本页文字全部带有#号为方便全部删除&lt;br /&gt;
&lt;br /&gt;
This is the help configuration file for Bukkit.&lt;br /&gt;
By default you do not need to modify this file. Help topics for all plugin commands are automatically provided by&lt;br /&gt;
or extracted from your installed plugins. You only need to modify this file if you wish to add new help pages to&lt;br /&gt;
your server or override the help pages of existing plugin commands.&lt;br /&gt;
This file is divided up into the following parts:&lt;br /&gt;
-- general-topics: lists admin defined help topics&lt;br /&gt;
-- index-topics:   lists admin defined index topics&lt;br /&gt;
-- amend-topics:   lists topic amendments to apply to existing help topics&lt;br /&gt;
-- ignore-plugins: lists any plugins that should be excluded from help&lt;br /&gt;
Examples are given below. When amending command topic, the string &amp;lt;text&amp;gt; will be replaced with the existing value&lt;br /&gt;
in the help topic. Color codes can be used in topic text. The color code character is &amp;amp; followed by 0-F.&lt;br /&gt;
================================================================&lt;br /&gt;
Set this to true to list the individual command help topics in the master help.&lt;br /&gt;
command-topics-in-master-index: true &lt;br /&gt;
Each general topic will show up as a separate topic in the help index along with all the plugin command topics.&lt;br /&gt;
general-topics:&lt;br /&gt;
    Rules:&lt;br /&gt;
        shortText: Rules of the server&lt;br /&gt;
        fullText: |&lt;br /&gt;
            &amp;amp;61. Be kind to your fellow players.&lt;br /&gt;
            &amp;amp;B2. No griefing.&lt;br /&gt;
            &amp;amp;D3. No swearing.&lt;br /&gt;
        permission: topics.rules&lt;br /&gt;
&lt;br /&gt;
Each index topic will show up as a separate sub-index in the help index along with all the plugin command topics.&lt;br /&gt;
To override the default help index (displayed when the user executes /help), name the index topic &amp;quot;Default&amp;quot;.&lt;br /&gt;
index-topics:&lt;br /&gt;
    Ban Commands:&lt;br /&gt;
        shortText: Player banning commands&lt;br /&gt;
        preamble: Moderator - do not abuse these commands&lt;br /&gt;
        permission: op&lt;br /&gt;
        commands:&lt;br /&gt;
            - /ban&lt;br /&gt;
            - /ban-ip&lt;br /&gt;
            - /banlist&lt;br /&gt;
&lt;br /&gt;
Topic amendments are used to change the content of automatically generated plugin command topics.&lt;br /&gt;
amended-topics:&lt;br /&gt;
    /stop:&lt;br /&gt;
        shortText: Stops the server cold....in its tracks!&lt;br /&gt;
        fullText: &amp;lt;text&amp;gt; - This kills the server.&lt;br /&gt;
        permission: you.dont.have&lt;br /&gt;
&lt;br /&gt;
Any plugin in the ignored plugins list will be excluded from help. The name must match the name displayed by&lt;br /&gt;
the /plugins command. Ignore &amp;quot;Bukkit&amp;quot; to remove the standard bukkit commands from the index. Ignore &amp;quot;All&amp;quot;&lt;br /&gt;
to completely disable automatic help topic generation.&lt;br /&gt;
ignore-plugins:&lt;br /&gt;
   - PluginNameOne&lt;br /&gt;
   - PluginNameTwo&lt;br /&gt;
   - PluginNameThree&lt;/div&gt;</summary>
		<author><name>Minedx</name></author>
	</entry>
	<entry>
		<id>https://mineplugin.org/index.php?title=ChestShop&amp;diff=1253</id>
		<title>ChestShop</title>
		<link rel="alternate" type="text/html" href="https://mineplugin.org/index.php?title=ChestShop&amp;diff=1253"/>
		<updated>2015-08-11T08:33:10Z</updated>

		<summary type="html">&lt;p&gt;Minedx：​修改表格,格式,分类&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;http://dev.bukkit.org/bukkit-plugins/chestshop/&lt;br /&gt;
==使用商店==&lt;br /&gt;
&lt;br /&gt;
*十分简单！右键来购买物品，左键来卖出物品（当然你也可以在配置文件中自定义按键用途！）&lt;br /&gt;
&lt;br /&gt;
==如何创建一个商店==&lt;br /&gt;
&lt;br /&gt;
===普通玩家商店===&lt;br /&gt;
&lt;br /&gt;
*放置一个箱子在地上.	&lt;br /&gt;
*放置一个在箱子周围一方格的牌子（例如，在箱子上）.	&lt;br /&gt;
*在牌子上, 书写文字：&lt;br /&gt;
*第一行会被插件自动填充	&lt;br /&gt;
*价格行是用来描述卖出和买进的价格的，你需要一个价格注释在价格的附近比如“B”来描述这是被玩家买的S来描述玩家卖出的，用冒号隔开，可用的序列有： &amp;quot;B 5:5 S&amp;quot;, &amp;quot;B 5&amp;quot;, &amp;quot;S free&amp;quot;，free指免费&lt;br /&gt;
*你可以通过使用/iteminfo命令来得到你手上物品的名字&lt;br /&gt;
*&lt;br /&gt;
*A person can buy 64 diamonds &lt;br /&gt;
*for 10 dollars and sell them back &lt;br /&gt;
*for 5 dollars from &lt;br /&gt;
*AcrobotPL&lt;br /&gt;
*&lt;br /&gt;
===管理员商店=== &lt;br /&gt;
*有无限物品的商店&lt;br /&gt;
*确保你安装了插件后有 ChestShop.admin权限，在牌子上第一行加上Admin shop就可以了 在config中可以配置。&lt;br /&gt;
&lt;br /&gt;
==翻译==&lt;br /&gt;
*右边是玩家自制的翻译列表: [http://dev.bukkit.org/bukkit-plugins/chestshop/pages/translations/ 翻译列表]&lt;br /&gt;
&lt;br /&gt;
==权限节点==&lt;br /&gt;
* ChestShop.shop.*	创造和使用商店&lt;br /&gt;
* ChestShop.shop.create.*	创造所有商店&lt;br /&gt;
* ChestShop.shop.buy	卖任何物品到商店&lt;br /&gt;
* ChestShop.shop.sell	从商店买任何物品&lt;br /&gt;
* ChestShop.mod	打开和破坏商店箱子&lt;br /&gt;
* ChestShop.admin	开启任何商店，破坏，创造管理员商店&lt;br /&gt;
&lt;br /&gt;
==对玩家们有用的提示==&lt;br /&gt;
&lt;br /&gt;
*[http://dev.bukkit.org/bukkit-plugins/chestshop/tickets/629-a-new-technique-for-not-going-bankrupt/ 如何不破产]&lt;br /&gt;
*[http://www.mediafire.com/download/82i1ep35ztnie10/Evolve+Gaming+Price+Table+ver6.4.xlsm 可定制的价格表]&lt;br /&gt;
*[http://www.mediafire.com/download/7ako58lj8ka9k51/Economy+Tool.rar 备选的价目表]&lt;br /&gt;
&lt;br /&gt;
==完整的插件信息==&lt;br /&gt;
*阅览本插件的完整信息,请访问[http://forums.bukkit.org/threads/4150/ Bukkit论坛上本插件的板块].&lt;br /&gt;
&lt;br /&gt;
==本插件报错或您对本插件有建议?==&lt;br /&gt;
&lt;br /&gt;
*请点击[http://dev.bukkit.org/server-mods/chestshop/tickets/?status=+ 此处]提交Bug！&lt;br /&gt;
&lt;br /&gt;
==你是否认为ChestShop能帮助你的服务器?==&lt;br /&gt;
*如果你认为插件不错，请力所能及的[https://www.paypal.com/cgi-bin/webscr?return=http%3A%2F%2Fdev.bukkit.org%2Fserver-mods%2Fchestshop%2F&amp;amp;cn=Add+special+instructions+to+the+addon+author%28s%29&amp;amp;business=andrzejp%40dysleksja.pl&amp;amp;bn=PP-DonationsBF%3Abtn_donateCC_LG.gif%3ANonHosted&amp;amp;cancel_return=http%3A%2F%2Fdev.bukkit.org%2Fserver-mods%2Fchestshop%2F&amp;amp;lc=US&amp;amp;item_name=ChestShop+%28iConomyChestShop%29+%28from+Bukkit.org%29&amp;amp;cmd=_donations&amp;amp;rm=1&amp;amp;no_shipping=1&amp;amp;currency_code=USD 捐助作者]:)&lt;/div&gt;</summary>
		<author><name>Minedx</name></author>
	</entry>
	<entry>
		<id>https://mineplugin.org/index.php?title=ChestShop&amp;diff=1252</id>
		<title>ChestShop</title>
		<link rel="alternate" type="text/html" href="https://mineplugin.org/index.php?title=ChestShop&amp;diff=1252"/>
		<updated>2015-08-11T08:29:39Z</updated>

		<summary type="html">&lt;p&gt;Minedx：​修改表格 修改格式&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;http://dev.bukkit.org/bukkit-plugins/chestshop/&lt;br /&gt;
==使用商店==&lt;br /&gt;
&lt;br /&gt;
十分简单！右键来购买物品，左键来卖出物品（当然你也可以在配置文件中自定义按键用途！）&lt;br /&gt;
&lt;br /&gt;
==如何创建一个商店==&lt;br /&gt;
&lt;br /&gt;
===普通玩家商店===&lt;br /&gt;
&lt;br /&gt;
*放置一个箱子在地上.	&lt;br /&gt;
*放置一个在箱子周围一方格的牌子（例如，在箱子上）.	&lt;br /&gt;
*在牌子上, 书写文字：&lt;br /&gt;
*第一行会被插件自动填充	&lt;br /&gt;
*价格行是用来描述卖出和买进的价格的，你需要一个价格注释在价格的附近比如“B”来描述这是被玩家买的S来描述玩家卖出的，用冒号隔开，可用的序列有： &amp;quot;B 5:5 S&amp;quot;, &amp;quot;B 5&amp;quot;, &amp;quot;S free&amp;quot;，free指免费&lt;br /&gt;
*你可以通过使用/iteminfo命令来得到你手上物品的名字&lt;br /&gt;
*&lt;br /&gt;
*A person can buy 64 diamonds &lt;br /&gt;
*for 10 dollars and sell them back &lt;br /&gt;
*for 5 dollars from &lt;br /&gt;
*AcrobotPL&lt;br /&gt;
*&lt;br /&gt;
===管理员商店=== &lt;br /&gt;
*有无限物品的商店&lt;br /&gt;
*确保你安装了插件后有 ChestShop.admin权限，在牌子上第一行加上Admin shop就可以了 在config中可以配置。&lt;br /&gt;
&lt;br /&gt;
===翻译===&lt;br /&gt;
&lt;br /&gt;
右边是玩家自制的翻译列表: [http://dev.bukkit.org/bukkit-plugins/chestshop/pages/translations/ 翻译列表]&lt;br /&gt;
&lt;br /&gt;
===权限节点===&lt;br /&gt;
 ChestShop.shop.*	创造和使用商店&lt;br /&gt;
 ChestShop.shop.create.*	创造所有商店&lt;br /&gt;
 ChestShop.shop.buy	卖任何物品到商店&lt;br /&gt;
 ChestShop.shop.sell	从商店买任何物品&lt;br /&gt;
 ChestShop.mod	打开和破坏商店箱子&lt;br /&gt;
 ChestShop.admin	开启任何商店，破坏，创造管理员商店&lt;br /&gt;
&lt;br /&gt;
===对玩家们有用的提示===&lt;br /&gt;
&lt;br /&gt;
*[http://dev.bukkit.org/bukkit-plugins/chestshop/tickets/629-a-new-technique-for-not-going-bankrupt/ 如何不破产]&lt;br /&gt;
*[http://www.mediafire.com/download/82i1ep35ztnie10/Evolve+Gaming+Price+Table+ver6.4.xlsm 可定制的价格表]&lt;br /&gt;
*[http://www.mediafire.com/download/7ako58lj8ka9k51/Economy+Tool.rar 备选的价目表]&lt;br /&gt;
&lt;br /&gt;
===完整的插件信息===&lt;br /&gt;
阅览本插件的完整信息,请访问[http://forums.bukkit.org/threads/4150/ Bukkit论坛上本插件的板块].&lt;br /&gt;
&lt;br /&gt;
===本插件报错或您对本插件有建议?===&lt;br /&gt;
&lt;br /&gt;
请点击[http://dev.bukkit.org/server-mods/chestshop/tickets/?status=+ 此处]提交Bug！&lt;br /&gt;
&lt;br /&gt;
===你是否认为ChestShop能帮助你的服务器?===&lt;br /&gt;
如果你认为插件不错，请力所能及的[https://www.paypal.com/cgi-bin/webscr?return=http%3A%2F%2Fdev.bukkit.org%2Fserver-mods%2Fchestshop%2F&amp;amp;cn=Add+special+instructions+to+the+addon+author%28s%29&amp;amp;business=andrzejp%40dysleksja.pl&amp;amp;bn=PP-DonationsBF%3Abtn_donateCC_LG.gif%3ANonHosted&amp;amp;cancel_return=http%3A%2F%2Fdev.bukkit.org%2Fserver-mods%2Fchestshop%2F&amp;amp;lc=US&amp;amp;item_name=ChestShop+%28iConomyChestShop%29+%28from+Bukkit.org%29&amp;amp;cmd=_donations&amp;amp;rm=1&amp;amp;no_shipping=1&amp;amp;currency_code=USD 捐助作者]:)&lt;/div&gt;</summary>
		<author><name>Minedx</name></author>
	</entry>
	<entry>
		<id>https://mineplugin.org/index.php?title=ChestShop&amp;diff=1251</id>
		<title>ChestShop</title>
		<link rel="alternate" type="text/html" href="https://mineplugin.org/index.php?title=ChestShop&amp;diff=1251"/>
		<updated>2015-08-11T08:26:03Z</updated>

		<summary type="html">&lt;p&gt;Minedx：​本身内容即无图为范例,牌子范例内容无需翻译 已编辑完成&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;http://dev.bukkit.org/bukkit-plugins/chestshop/&lt;br /&gt;
==使用商店==&lt;br /&gt;
&lt;br /&gt;
十分简单！右键来购买物品，左键来卖出物品（当然你也可以在配置文件中自定义按键用途！）&lt;br /&gt;
&lt;br /&gt;
==如何创建一个商店==&lt;br /&gt;
&lt;br /&gt;
===普通玩家商店===&lt;br /&gt;
&lt;br /&gt;
放置一个箱子在地上.	&lt;br /&gt;
放置一个在箱子周围一方格的牌子（例如，在箱子上）.	&lt;br /&gt;
在牌子上, 书写文字：&lt;br /&gt;
第一行会被插件自动填充	&lt;br /&gt;
价格行是用来描述卖出和买进的价格的，你需要一个价格注释在价格的附近比如“B”来描述这是被玩家买的S来描述玩家卖出的，用冒号隔开，可用的序列有： &amp;quot;B 5:5 S&amp;quot;, &amp;quot;B 5&amp;quot;, &amp;quot;S free&amp;quot;，free指免费&lt;br /&gt;
你可以通过使用/iteminfo命令来得到你手上物品的名字&lt;br /&gt;
{| style=&amp;quot;color:green;background-color:#ffffcc;&amp;quot; cellpadding=&amp;quot;20&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|A person can buy 64 diamonds &lt;br /&gt;
|-&lt;br /&gt;
|for 10 dollars and sell them back &lt;br /&gt;
|-&lt;br /&gt;
|for 5 dollars from &lt;br /&gt;
|-&lt;br /&gt;
|AcrobotPL&lt;br /&gt;
|}&lt;br /&gt;
===管理员商店=== &lt;br /&gt;
- 有无限物品的商店&lt;br /&gt;
确保你安装了插件后有 ChestShop.admin权限，在牌子上第一行加上Admin shop就可以了 在config中可以配置。&lt;br /&gt;
&lt;br /&gt;
===翻译===&lt;br /&gt;
&lt;br /&gt;
右边是玩家自制的翻译列表: [http://dev.bukkit.org/bukkit-plugins/chestshop/pages/translations/ 翻译列表]&lt;br /&gt;
&lt;br /&gt;
===权限节点===&lt;br /&gt;
 ChestShop.shop.*	创造和使用商店&lt;br /&gt;
 ChestShop.shop.create.*	创造所有商店&lt;br /&gt;
 ChestShop.shop.buy	卖任何物品到商店&lt;br /&gt;
 ChestShop.shop.sell	从商店买任何物品&lt;br /&gt;
 ChestShop.mod	打开和破坏商店箱子&lt;br /&gt;
 ChestShop.admin	开启任何商店，破坏，创造管理员商店&lt;br /&gt;
&lt;br /&gt;
===对玩家们有用的提示===&lt;br /&gt;
&lt;br /&gt;
[http://dev.bukkit.org/bukkit-plugins/chestshop/tickets/629-a-new-technique-for-not-going-bankrupt/ 如何不破产]&lt;br /&gt;
[http://www.mediafire.com/download/82i1ep35ztnie10/Evolve+Gaming+Price+Table+ver6.4.xlsm 可定制的价格表]&lt;br /&gt;
[http://www.mediafire.com/download/7ako58lj8ka9k51/Economy+Tool.rar 备选的价目表]&lt;br /&gt;
&lt;br /&gt;
===完整的插件信息===&lt;br /&gt;
阅览本插件的完整信息,请访问[http://forums.bukkit.org/threads/4150/ Bukkit论坛上本插件的板块].&lt;br /&gt;
&lt;br /&gt;
===本插件报错或您对本插件有建议?===&lt;br /&gt;
&lt;br /&gt;
请点击[http://dev.bukkit.org/server-mods/chestshop/tickets/?status=+ 此处]提交Bug！&lt;br /&gt;
&lt;br /&gt;
===你是否认为ChestShop能帮助你的服务器?===&lt;br /&gt;
如果你认为插件不错，请力所能及的[https://www.paypal.com/cgi-bin/webscr?return=http%3A%2F%2Fdev.bukkit.org%2Fserver-mods%2Fchestshop%2F&amp;amp;cn=Add+special+instructions+to+the+addon+author%28s%29&amp;amp;business=andrzejp%40dysleksja.pl&amp;amp;bn=PP-DonationsBF%3Abtn_donateCC_LG.gif%3ANonHosted&amp;amp;cancel_return=http%3A%2F%2Fdev.bukkit.org%2Fserver-mods%2Fchestshop%2F&amp;amp;lc=US&amp;amp;item_name=ChestShop+%28iConomyChestShop%29+%28from+Bukkit.org%29&amp;amp;cmd=_donations&amp;amp;rm=1&amp;amp;no_shipping=1&amp;amp;currency_code=USD 捐助作者]:)&lt;/div&gt;</summary>
		<author><name>Minedx</name></author>
	</entry>
	<entry>
		<id>https://mineplugin.org/index.php?title=MCMMO&amp;diff=1250</id>
		<title>MCMMO</title>
		<link rel="alternate" type="text/html" href="https://mineplugin.org/index.php?title=MCMMO&amp;diff=1250"/>
		<updated>2015-08-11T08:08:59Z</updated>

		<summary type="html">&lt;p&gt;Minedx：​重定向页面至McMMO&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[McMMO]]&lt;/div&gt;</summary>
		<author><name>Minedx</name></author>
	</entry>
	<entry>
		<id>https://mineplugin.org/index.php?title=Mcmmo&amp;diff=1249</id>
		<title>Mcmmo</title>
		<link rel="alternate" type="text/html" href="https://mineplugin.org/index.php?title=Mcmmo&amp;diff=1249"/>
		<updated>2015-08-11T08:08:29Z</updated>

		<summary type="html">&lt;p&gt;Minedx：​重定向页面至McMMO&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[McMMO]]&lt;/div&gt;</summary>
		<author><name>Minedx</name></author>
	</entry>
	<entry>
		<id>https://mineplugin.org/index.php?title=McMMO&amp;diff=1248</id>
		<title>McMMO</title>
		<link rel="alternate" type="text/html" href="https://mineplugin.org/index.php?title=McMMO&amp;diff=1248"/>
		<updated>2015-08-11T07:59:20Z</updated>

		<summary type="html">&lt;p&gt;Minedx：​&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{待翻译}}&lt;br /&gt;
http://dev.bukkit.org/bukkit-plugins/mcmmo/&lt;br /&gt;
http://mcmmo.wikia.com/wiki/McMMO_Wiki&lt;br /&gt;
https://github.com/mcMMO-Dev/mcMMO&lt;br /&gt;
&lt;br /&gt;
== 来自 bukkit 发布帖的内容==&lt;br /&gt;
===McMMO 指令===&lt;br /&gt;
&lt;br /&gt;
说明:&lt;br /&gt;
&lt;br /&gt;
显示简介和完整的指令列表.&lt;br /&gt;
&lt;br /&gt;
输入方法:&lt;br /&gt;
&lt;br /&gt;
/mcmmo [commands]&lt;br /&gt;
&lt;br /&gt;
别名:&lt;br /&gt;
&lt;br /&gt;
无&lt;br /&gt;
&lt;br /&gt;
权限节点:&lt;br /&gt;
&lt;br /&gt;
无&lt;br /&gt;
&lt;br /&gt;
详细内容:&lt;br /&gt;
&lt;br /&gt;
显示简介和完整的指令列表.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====•McStats 指令====&lt;br /&gt;
&lt;br /&gt;
说明:&lt;br /&gt;
&lt;br /&gt;
显示你的 mcMMO 等级和经验.&lt;br /&gt;
&lt;br /&gt;
输入方法:&lt;br /&gt;
&lt;br /&gt;
/mcstats&lt;br /&gt;
&lt;br /&gt;
别名:&lt;br /&gt;
&lt;br /&gt;
/stats&lt;br /&gt;
&lt;br /&gt;
权限节点:&lt;br /&gt;
&lt;br /&gt;
无&lt;br /&gt;
&lt;br /&gt;
详细内容:&lt;br /&gt;
&lt;br /&gt;
显示你的 mcMMO 等级和经验.&lt;br /&gt;
&lt;br /&gt;
===组队指令相关===&lt;br /&gt;
&lt;br /&gt;
====ptp 指令====&lt;br /&gt;
&lt;br /&gt;
说明:&lt;br /&gt;
&lt;br /&gt;
传送到一个组队成员附近.&lt;br /&gt;
&lt;br /&gt;
输入方法:&lt;br /&gt;
&lt;br /&gt;
/ptp [name]&lt;br /&gt;
&lt;br /&gt;
例如:&lt;br /&gt;
&lt;br /&gt;
/ptp nossr50&lt;br /&gt;
&lt;br /&gt;
别名:&lt;br /&gt;
&lt;br /&gt;
无&lt;br /&gt;
&lt;br /&gt;
权限节点:&lt;br /&gt;
&lt;br /&gt;
mcmmo.commands.ptp&lt;br /&gt;
&lt;br /&gt;
详细内容:&lt;br /&gt;
&lt;br /&gt;
你可以输入ptp指令,传送到一个组队成员附近.&lt;br /&gt;
&lt;br /&gt;
====party 指令====&lt;br /&gt;
&lt;br /&gt;
说明:&lt;br /&gt;
&lt;br /&gt;
管理你的组队相关内容&lt;br /&gt;
&lt;br /&gt;
输入方法:&lt;br /&gt;
&lt;br /&gt;
/party 查看队伍详细信息.&lt;br /&gt;
/party create &amp;lt;队伍名&amp;gt; &amp;lt;密码&amp;gt; 创建一个队伍.&lt;br /&gt;
/party join &amp;lt;队伍名&amp;gt; &amp;lt;密码&amp;gt; 加入一个玩家队伍.&lt;br /&gt;
/party invite &amp;lt;玩家名&amp;gt; 邀请一个玩家加入你的队伍.&lt;br /&gt;
/party accept &amp;lt;玩家名&amp;gt; 允许一个玩家加入你的队伍.&lt;br /&gt;
/party password &amp;lt;密码&amp;gt; 设置你现在拥有队伍的密码.&lt;br /&gt;
/party kick &amp;lt;玩家名&amp;gt; 将一个玩家移除队伍.&lt;br /&gt;
/party owner &amp;lt;玩家名&amp;gt; 将队伍转让给一个玩家.&lt;br /&gt;
/party expshare [无/equal] 设置队伍经验共享.&lt;br /&gt;
/party lock 锁定队伍.&lt;br /&gt;
/party unlock 解锁队伍.&lt;br /&gt;
/party q 离开你目前所在的队伍.&lt;br /&gt;
/party ? 关于组队的更多信息.&lt;br /&gt;
&lt;br /&gt;
例如:&lt;br /&gt;
&lt;br /&gt;
/party create CoolGrindersParty pass1234&lt;br /&gt;
&lt;br /&gt;
别名:&lt;br /&gt;
&lt;br /&gt;
无&lt;br /&gt;
&lt;br /&gt;
权限节点:&lt;br /&gt;
&lt;br /&gt;
mcmmo.commands.party&lt;br /&gt;
&lt;br /&gt;
详细内容:&lt;br /&gt;
&lt;br /&gt;
通过party指令，你可以创建一个队伍或加入一个队伍。&lt;br /&gt;
&lt;br /&gt;
====partychat 指令====&lt;br /&gt;
&lt;br /&gt;
说明:&lt;br /&gt;
&lt;br /&gt;
设置组队聊天打开/关闭或发送一条队伍聊天信息.&lt;br /&gt;
&lt;br /&gt;
输入方法:&lt;br /&gt;
&lt;br /&gt;
/partychat [message]&lt;br /&gt;
&lt;br /&gt;
例如:&lt;br /&gt;
&lt;br /&gt;
/pc hello! (译者注:发送一条队伍聊天信息)&lt;br /&gt;
/partychat (译者注:设置队伍聊天开关)&lt;br /&gt;
&lt;br /&gt;
别名:&lt;br /&gt;
&lt;br /&gt;
p pc&lt;br /&gt;
&lt;br /&gt;
权限节点:&lt;br /&gt;
&lt;br /&gt;
mcmmo.chat.partychat&lt;br /&gt;
&lt;br /&gt;
详细内容:&lt;br /&gt;
&lt;br /&gt;
通过这个指令,你可以和你的组队成员在你们的私人领域聊天,只有你们自己的组员才能看到这些消息。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===adminchat 指令===&lt;br /&gt;
&lt;br /&gt;
说明:&lt;br /&gt;
&lt;br /&gt;
设置管理员聊天打开/关闭或发送一条队伍聊天信息.&lt;br /&gt;
&lt;br /&gt;
输入方法:&lt;br /&gt;
&lt;br /&gt;
/adminchat /a [message]&lt;br /&gt;
&lt;br /&gt;
别名:&lt;br /&gt;
&lt;br /&gt;
/a&lt;br /&gt;
/ac&lt;br /&gt;
&lt;br /&gt;
权限节点:&lt;br /&gt;
&lt;br /&gt;
mcmmo.chat.adminchat&lt;br /&gt;
&lt;br /&gt;
详细内容:&lt;br /&gt;
&lt;br /&gt;
设置管理员聊天打开/关闭或发送一条队伍聊天信息，只有拥有指定权限节点(译者注:权限节点即为mcmmo.chat.adminchat)&lt;br /&gt;
&lt;br /&gt;
===mcrefresh 指令===&lt;br /&gt;
&lt;br /&gt;
说明:&lt;br /&gt;
&lt;br /&gt;
重置某个玩家McMMO的所有冷却时间&lt;br /&gt;
&lt;br /&gt;
输入方法:&lt;br /&gt;
&lt;br /&gt;
/mcrefresh [player]&lt;br /&gt;
&lt;br /&gt;
别名:&lt;br /&gt;
&lt;br /&gt;
无&lt;br /&gt;
&lt;br /&gt;
权限节点:&lt;br /&gt;
&lt;br /&gt;
mcmmo.commands.mcrefresh&lt;br /&gt;
mcmmo.commands.mcrefresh.others&lt;br /&gt;
&lt;br /&gt;
详细内容:&lt;br /&gt;
&lt;br /&gt;
With this command, you can refresh your own ability cool downs, or those of the targeted player.&lt;br /&gt;
&lt;br /&gt;
===mcgod 指令===&lt;br /&gt;
&lt;br /&gt;
说明:&lt;br /&gt;
&lt;br /&gt;
McMMO 上帝模式的开关.&lt;br /&gt;
&lt;br /&gt;
输入方法:&lt;br /&gt;
&lt;br /&gt;
/mcgod [player]&lt;br /&gt;
&lt;br /&gt;
别名:&lt;br /&gt;
&lt;br /&gt;
无&lt;br /&gt;
&lt;br /&gt;
权限节点:&lt;br /&gt;
&lt;br /&gt;
mcmmo.commands.mcgod&lt;br /&gt;
mcmmo.commands.mcgod.others&lt;br /&gt;
&lt;br /&gt;
详细内容:&lt;br /&gt;
&lt;br /&gt;
你可以用这个指令控制你/其他人McMMO上帝模式的开关,在此模式下你是无敌的.&lt;br /&gt;
&lt;br /&gt;
===xprate 指令===&lt;br /&gt;
&lt;br /&gt;
说明:&lt;br /&gt;
&lt;br /&gt;
设置经验比例或重置经验比例.&lt;br /&gt;
&lt;br /&gt;
输入方法:&lt;br /&gt;
&lt;br /&gt;
/xprate [rate] &lt;br /&gt;
/xprate reset&lt;br /&gt;
&lt;br /&gt;
别名:&lt;br /&gt;
&lt;br /&gt;
/mcxprate&lt;br /&gt;
&lt;br /&gt;
权限节点:&lt;br /&gt;
&lt;br /&gt;
mcmmo.commands.xprate.all&lt;br /&gt;
mcmmo.commands.xprate&lt;br /&gt;
mcmmo.commands.xprate.reset&lt;br /&gt;
mcmmo.commands.xprate.set&lt;br /&gt;
&lt;br /&gt;
详细内容:&lt;br /&gt;
&lt;br /&gt;
你可以输入这个指令开启一次McMMO经验加成的活动.例如输入/xprate 2开启一次全体双倍经验的活动！所有人皆享有经验加成！&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===mmoedit 指令===&lt;br /&gt;
&lt;br /&gt;
说明:&lt;br /&gt;
&lt;br /&gt;
修改某个玩家的McMMO技能等级.&lt;br /&gt;
&lt;br /&gt;
输入方法:&lt;br /&gt;
&lt;br /&gt;
/mmoedit [player] &amp;lt;skill&amp;gt; &amp;lt;level&amp;gt;&lt;br /&gt;
&lt;br /&gt;
别名:&lt;br /&gt;
&lt;br /&gt;
无&lt;br /&gt;
&lt;br /&gt;
权限节点:&lt;br /&gt;
&lt;br /&gt;
mcmmo.commands.mmoedit&lt;br /&gt;
mcmmo.commands.mmoedit.others&lt;br /&gt;
&lt;br /&gt;
详细内容:&lt;br /&gt;
&lt;br /&gt;
这个指令是用来修改玩家某个技能的等级的.输入 /mmoedit nossr50 herbalism 613 会设置玩家 nossr50 的 Herbalism 技能等级为 613.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===addxp 指令===&lt;br /&gt;
&lt;br /&gt;
说明:&lt;br /&gt;
&lt;br /&gt;
向一名玩家增加某技能的经验.&lt;br /&gt;
&lt;br /&gt;
输入方法:&lt;br /&gt;
&lt;br /&gt;
/addxp [player] &amp;lt;skill&amp;gt; &amp;lt;xp&amp;gt;&lt;br /&gt;
&lt;br /&gt;
别名:&lt;br /&gt;
&lt;br /&gt;
无&lt;br /&gt;
&lt;br /&gt;
权限节点:&lt;br /&gt;
&lt;br /&gt;
mcmmo.commands.addxp&lt;br /&gt;
mcmmo.commands.addxp.others&lt;br /&gt;
&lt;br /&gt;
详细内容:&lt;br /&gt;
&lt;br /&gt;
这个指令是用来给一名玩家加某个技能的经验的.使用/addxp nossr50 mining 45 会给 nossr50 增加45点 Mining 技能的经验.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===addlevels 指令===&lt;br /&gt;
&lt;br /&gt;
说明:&lt;br /&gt;
&lt;br /&gt;
添加一个玩家的McMMO等级.&lt;br /&gt;
&lt;br /&gt;
输入方法:&lt;br /&gt;
&lt;br /&gt;
/addlevels [player] &amp;lt;技能名&amp;gt; &amp;lt;等级&amp;gt;&lt;br /&gt;
&lt;br /&gt;
别名:&lt;br /&gt;
&lt;br /&gt;
无&lt;br /&gt;
&lt;br /&gt;
权限节点:&lt;br /&gt;
&lt;br /&gt;
mcmmo.commands.addlevels&lt;br /&gt;
mcmmo.commands.addlevels.others&lt;br /&gt;
&lt;br /&gt;
详细内容:&lt;br /&gt;
&lt;br /&gt;
这个指令可以用来给某个用户增加技能等级.输入 /addlevels nossr50 acrobatics 12 会在玩家 nossr50 现有的 Acrobatics 等级上加12.&lt;br /&gt;
&lt;br /&gt;
===mcremove 指令===&lt;br /&gt;
&lt;br /&gt;
说明:&lt;br /&gt;
&lt;br /&gt;
将一个用户从数据库移除.&lt;br /&gt;
&lt;br /&gt;
输入方法:&lt;br /&gt;
&lt;br /&gt;
/mcremove [player]&lt;br /&gt;
&lt;br /&gt;
别名:&lt;br /&gt;
&lt;br /&gt;
无&lt;br /&gt;
&lt;br /&gt;
权限节点:&lt;br /&gt;
&lt;br /&gt;
mcmmo.commands.mcremove&lt;br /&gt;
&lt;br /&gt;
详细内容:&lt;br /&gt;
&lt;br /&gt;
这个指令会将玩家从数据库移除.输入 /mcremove nossr50 会将 nossr50 从数据库中移除.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===skillreset 指令===&lt;br /&gt;
&lt;br /&gt;
说明:&lt;br /&gt;
&lt;br /&gt;
重置一个或你全部的mcmmo技能等级.&lt;br /&gt;
&lt;br /&gt;
输入方法:&lt;br /&gt;
&lt;br /&gt;
/skillreset [player] &amp;lt;skill&amp;gt;&lt;br /&gt;
&lt;br /&gt;
别名:&lt;br /&gt;
&lt;br /&gt;
无&lt;br /&gt;
&lt;br /&gt;
权限节点:&lt;br /&gt;
&lt;br /&gt;
mcmmo.commands.skillreset&lt;br /&gt;
mcmmo.commands.skillreset.acrobatics mcmmo.commands.skillreset.archery mcmmo.commands.skillreset.axes mcmmo.commands.skillreset.excavation mcmmo.commands.skillreset.fishing mcmmo.commands.skillreset.herbalism mcmmo.commands.skillreset.mining mcmmo.commands.skillreset.others.all mcmmo.commands.skillreset.repair mcmmo.commands.skillreset.smelting mcmmo.commands.skillreset.swords mcmmo.commands.skillreset.taming mcmmo.commands.skillreset.unarmed mcmmo.commands.skillreset.woodcutting&lt;br /&gt;
&lt;br /&gt;
详细内容:&lt;br /&gt;
&lt;br /&gt;
重置一个或你全部的mcmmo技能等级.This command is used to reset a users skill level. Using /skillreset nossr50 herbalism will set nossr50&#039;s Herbalism level and experience to 0. Using /skillreset will reset your own stats for every skill.&lt;br /&gt;
&lt;br /&gt;
===mcpurge 指令===&lt;br /&gt;
&lt;br /&gt;
说明:&lt;br /&gt;
&lt;br /&gt;
从服务器数据库中清除0技能等级的用户或者未在几个月内登陆过的用户.&lt;br /&gt;
&lt;br /&gt;
输入方法:&lt;br /&gt;
&lt;br /&gt;
/mcpurge&lt;br /&gt;
&lt;br /&gt;
别名:&lt;br /&gt;
&lt;br /&gt;
无&lt;br /&gt;
&lt;br /&gt;
权限节点:&lt;br /&gt;
&lt;br /&gt;
mcmmo.commands.mcpurge&lt;br /&gt;
&lt;br /&gt;
详细内容:&lt;br /&gt;
&lt;br /&gt;
使用 /mcpurge 会立即在服务器数据库中启动一个清理进程,默认的McMMO设定下会清除一切无作为和6个月内从未连接过服务器的玩家.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===mcconvert 指令===&lt;br /&gt;
&lt;br /&gt;
说明:&lt;br /&gt;
&lt;br /&gt;
从不同的数据库类型和格式类型间转换。&lt;br /&gt;
&lt;br /&gt;
输入方法:&lt;br /&gt;
&lt;br /&gt;
/mcconvert database &amp;lt;flatfile|sql&amp;gt; /mcconvert experience &amp;lt;linear|exponential&amp;gt;&lt;br /&gt;
&lt;br /&gt;
别名:&lt;br /&gt;
&lt;br /&gt;
无&lt;br /&gt;
&lt;br /&gt;
权限节点:&lt;br /&gt;
&lt;br /&gt;
mcmmo.commands.mcconvert&lt;br /&gt;
&lt;br /&gt;
详细内容:&lt;br /&gt;
&lt;br /&gt;
这个指令可以把一个无格式文件转换到MySQL数据库中, 反之亦然. 它也可以把一个不仅合规范的文本变成一个规范的文本.&lt;br /&gt;
&lt;br /&gt;
===mcimport 指令===&lt;br /&gt;
&lt;br /&gt;
说明:&lt;br /&gt;
&lt;br /&gt;
全自动生成插件设置文本.&lt;br /&gt;
&lt;br /&gt;
输入方法:&lt;br /&gt;
&lt;br /&gt;
/mcimport&lt;br /&gt;
&lt;br /&gt;
别名:&lt;br /&gt;
&lt;br /&gt;
无&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
权限节点:&lt;br /&gt;
&lt;br /&gt;
mcmmo.commands.mcimport&lt;br /&gt;
&lt;br /&gt;
详细内容:&lt;br /&gt;
&lt;br /&gt;
这个指令可以用在从你的Cauldron启动日志中来导入并重生成插件设置,你需要至少1.7.x才能运行这个指令.&lt;br /&gt;
&lt;br /&gt;
创建一个 /mcMMO/mods/ 的文件夹. 将你的Cauldron 1.7+运行日志放到其中并重命名import.log.&lt;br /&gt;
&lt;br /&gt;
注意在系统创建时,最佳状态是每次启动或关闭服务器保存一次日志,或编辑你的日志文件使它只剩下你想导入的内容,这样可以有效加速导入速度.&lt;br /&gt;
&lt;br /&gt;
当服务器在运行时,你使用 /mcimport 时可以在控制台中看到导入进程,当导入完成后它将会全被导出到 /mcMMO/mods/output/.&lt;br /&gt;
&lt;br /&gt;
任何你放在文件夹中但名字不为import.log的设置文件,你需要手动让它们符合标准.&lt;br /&gt;
&lt;br /&gt;
现在你只需要把所有output文件夹中的内容整合起来,然后填入经验收益倍数.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 来自McMMO Wiki的内容 ==&lt;br /&gt;
&lt;br /&gt;
=== Commands ===&lt;br /&gt;
&#039;&#039;&#039;Commands&#039;&#039;&#039; are simple lines of code used in-game as a way to keep track of various aspects of the plugin that range from general information to in-depth Mcmmo&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;toc&amp;quot; id=&amp;quot;toc&amp;quot; style=&amp;quot; &amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot; height: 235px; width: 630px; &amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|Toggle ability notifications on/off.&lt;br /&gt;
|-&lt;br /&gt;
|/mcremove &amp;lt;playername&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|as&lt;br /&gt;
|-&lt;br /&gt;
|/mcpurge&lt;br /&gt;
&lt;br /&gt;
|Purges all users from MySQL or FlatFile.&lt;br /&gt;
|-&lt;br /&gt;
|/a OR /ac&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
Toggles Admin Chat (Not working)&lt;br /&gt;
|-&lt;br /&gt;
|/xplock &amp;lt;skillname&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|Lock the xp bar to named skill.&lt;br /&gt;
|-&lt;br /&gt;
|/mcrefresh [player]&lt;br /&gt;
&lt;br /&gt;
|Refreshes all cooldowns for McMMO or optionally named player.(Not Working)&lt;br /&gt;
|}&lt;br /&gt;
|}&lt;br /&gt;
[[Category:Configuration]]&lt;br /&gt;
[[Category:Axes]]&lt;br /&gt;
[[Category:Commands]]&lt;br /&gt;
[[Category:Moderator]]&lt;br /&gt;
&lt;br /&gt;
=== Configuration ===&lt;br /&gt;
{{Stub}}&lt;br /&gt;
&lt;br /&gt;
==== MySQL  ====&lt;br /&gt;
Optional configuration to use a MySQL database instead of the YAML flatfiles. If you intend to use MySQL, make sure you configure all of the parts in this section! MaxConnections and MaxPoolSize can probably be left alone for smaller servers, but a foray into the official MySQL documentation for both would not be discouraged...&lt;br /&gt;
 MySQL:&lt;br /&gt;
     Enabled: false # Set to true to enable MySQL&lt;br /&gt;
     Database:&lt;br /&gt;
         User_Name: UserName # Username for the mysql server. Usually &amp;quot;root&amp;quot;&lt;br /&gt;
         User_Password: UserPassword # Password for the mysql server&lt;br /&gt;
         Name: DataBaseName # The database in which the mcmmo data will be stored&lt;br /&gt;
         TablePrefix: mcmmo_ # The prefix of each mcmmo table in said database&lt;br /&gt;
         MaxConnections: # Max number of clients connected to the mysql server.&lt;br /&gt;
             Misc: 30 # Must be high enough to support multiple sequential logins&lt;br /&gt;
             Load: 30&lt;br /&gt;
             Save: 30&lt;br /&gt;
         MaxPoolSize: # Cached connections that are always held available&lt;br /&gt;
             Misc: 10&lt;br /&gt;
             Load: 20&lt;br /&gt;
             Save: 20&lt;br /&gt;
     Server:&lt;br /&gt;
         Port: 3306 # Port of the mysql server&lt;br /&gt;
         Address: localhost # Address of the mysql server&lt;br /&gt;
==== General ====&lt;br /&gt;
Miscellaneous settings, used thorough the functionalities.&lt;br /&gt;
&lt;br /&gt;
===== Locale =====&lt;br /&gt;
:&#039;&#039;&#039;&#039;&#039;String&#039;&#039;&#039;&#039;&#039;: This sets the language and locale settings used in the plugin, currently supported values are &#039;&#039;&#039;&#039;&amp;lt;nowiki&amp;gt;en_us&#039;&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;, &#039;&#039;&#039;&#039;&amp;lt;nowiki&amp;gt;fi&#039;&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;, &#039;&#039;&#039;&#039;&amp;lt;nowiki&amp;gt;de&#039;&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;, &#039;&#039;&#039;&#039;&amp;lt;nowiki&amp;gt;fr&#039;&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;, &#039;&#039;&#039;&#039;&amp;lt;nowiki&amp;gt;es&#039;&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039; and &#039;&#039;&#039;&#039;&amp;lt;nowiki&amp;gt;pl&#039;&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;. Further languages can be implemented, see [[Localization]]. Defaults to &#039;&#039;&#039;&#039;&amp;lt;nowiki&amp;gt;en_us&#039;&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
===== General Features =====&lt;br /&gt;
&lt;br /&gt;
===== Items =====&lt;br /&gt;
  Items:&lt;br /&gt;
     Chimaera_Wing:&lt;br /&gt;
         Enabled: true&lt;br /&gt;
         Cooldown: 240&lt;br /&gt;
         Warmup: 5&lt;br /&gt;
         RecentlyHurt_Cooldown: 60&lt;br /&gt;
         Prevent_Use_Underground: true&lt;br /&gt;
         Use_Cost: 1&lt;br /&gt;
         Recipe_Cost: 5&lt;br /&gt;
         Item_Name: FEATHER&lt;br /&gt;
         Sound_Enabled: true&lt;br /&gt;
&lt;br /&gt;
===== Colors =====&lt;br /&gt;
  Spout:&lt;br /&gt;
     Menu:&lt;br /&gt;
 &lt;br /&gt;
                     BLUE: 0.75&lt;br /&gt;
                     GREEN: 0.3&lt;br /&gt;
                     RED: 0.3&lt;br /&gt;
                 Taming:&lt;br /&gt;
                     BLUE: 0.75&lt;br /&gt;
                     GREEN: 0.3&lt;br /&gt;
                     RED: 0.3&lt;br /&gt;
                 Acrobatics:&lt;br /&gt;
                     BLUE: 0.75&lt;br /&gt;
                     GREEN: 0.3&lt;br /&gt;
                     RED: 0.3&lt;br /&gt;
                 Border:&lt;br /&gt;
                     BLUE: 0.0&lt;br /&gt;
                     GREEN: 0.0&lt;br /&gt;
                     RED: 0.0&lt;br /&gt;
                 Background:&lt;br /&gt;
                     BLUE: 0.75&lt;br /&gt;
                     GREEN: 0.75&lt;br /&gt;
                     RED: 0.75&lt;br /&gt;
                 Woodcutting:&lt;br /&gt;
                     BLUE: 0.75&lt;br /&gt;
                     GREEN: 0.3&lt;br /&gt;
                     RED: 0.3&lt;br /&gt;
                 Archery:&lt;br /&gt;
                     BLUE: 0.75&lt;br /&gt;
                     GREEN: 0.3&lt;br /&gt;
                     RED: 0.3&lt;br /&gt;
                 Axes:&lt;br /&gt;
                     BLUE: 0.75&lt;br /&gt;
                     GREEN: 0.3&lt;br /&gt;
                     RED: 0.3&lt;br /&gt;
                 Repair:&lt;br /&gt;
                     BLUE: 0.75&lt;br /&gt;
                     GREEN: 0.3&lt;br /&gt;
                     RED: 0.3&lt;br /&gt;
                 Fishing:&lt;br /&gt;
                     BLUE: 0.75&lt;br /&gt;
                     GREEN: 0.3&lt;br /&gt;
                     RED: 0.3&lt;br /&gt;
                 Excavation:&lt;br /&gt;
                     BLUE: 0.75&lt;br /&gt;
                     GREEN: 0.3&lt;br /&gt;
                     RED: 0.3&lt;br /&gt;
                 Herbalism:&lt;br /&gt;
                     BLUE: 0.75&lt;br /&gt;
                     GREEN: 0.3&lt;br /&gt;
                     RED: 0.3&lt;br /&gt;
                 Unarmed:&lt;br /&gt;
                     BLUE: 0.75&lt;br /&gt;
                     GREEN: 0.3&lt;br /&gt;
                     RED: 0.3&lt;br /&gt;
                 Mining:&lt;br /&gt;
                     BLUE: 0.75&lt;br /&gt;
                     GREEN: 0.3&lt;br /&gt;
                     RED: 0.3&lt;br /&gt;
&lt;br /&gt;
===== Experience =====&lt;br /&gt;
&#039;&#039;Note: Multiplier values are applied inversely. For example to double the amount of xp earned, change the multiplier value from 1.0 to 0.5.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  Experience:&lt;br /&gt;
     Fishing:&lt;br /&gt;
         Base: 200&lt;br /&gt;
     Formula:&lt;br /&gt;
         Multiplier:&lt;br /&gt;
             Swords: 0.25&lt;br /&gt;
             Taming: .5&lt;br /&gt;
             Acrobatics: .6&lt;br /&gt;
             Sorcery: .05&lt;br /&gt;
             Excavation: 0.25&lt;br /&gt;
             Herbalism: 0.25&lt;br /&gt;
             Unarmed: .5&lt;br /&gt;
             Woodcutting: 0.25&lt;br /&gt;
             Mining: 0.25&lt;br /&gt;
             Archery: 0.25&lt;br /&gt;
             Axes: 1.0&lt;br /&gt;
             Repair: .8&lt;br /&gt;
     Gains:&lt;br /&gt;
         Mobspawners:&lt;br /&gt;
             Enabled: true&lt;br /&gt;
         Multiplier:&lt;br /&gt;
             PVP: 1&lt;br /&gt;
             Global: 0.25&lt;br /&gt;
     PVP:&lt;br /&gt;
         Rewards: true&lt;br /&gt;
     Excavation:&lt;br /&gt;
         Base: 40&lt;br /&gt;
         Cake: 3000&lt;br /&gt;
         Sulphur: 30&lt;br /&gt;
         Bones: 30&lt;br /&gt;
         Map: 200&lt;br /&gt;
         Slimeballs: 100&lt;br /&gt;
         Bucket: 100&lt;br /&gt;
         Apple: 100&lt;br /&gt;
         Mushroom: 80&lt;br /&gt;
         Eggs: 100&lt;br /&gt;
         Slowsand: 80&lt;br /&gt;
         Watch: 200&lt;br /&gt;
         Web: 150&lt;br /&gt;
         String: 200&lt;br /&gt;
         Glowstone: 80&lt;br /&gt;
         Music: 3000&lt;br /&gt;
         Diamond: 1000&lt;br /&gt;
         Cocoa_Beans: 100&lt;br /&gt;
     Woodcutting:&lt;br /&gt;
         Birch: 70&lt;br /&gt;
         Spruce: 80&lt;br /&gt;
         Pine: 90&lt;br /&gt;
     Herbalism:&lt;br /&gt;
         Sugar_Cane: 30&lt;br /&gt;
         Cactus: 30&lt;br /&gt;
         Flowers: 100&lt;br /&gt;
         Pumpkin: 20&lt;br /&gt;
         Mushrooms: 150&lt;br /&gt;
         Wheat: 50&lt;br /&gt;
         Melon: 20&lt;br /&gt;
         Nether_Wart: 50&lt;br /&gt;
         Lily_Pads: 100&lt;br /&gt;
         Vines: 10&lt;br /&gt;
     Mining:&lt;br /&gt;
         Sandstone: 30&lt;br /&gt;
         Glowstone: 30&lt;br /&gt;
         Lapis: 400&lt;br /&gt;
         Obsidian: 150&lt;br /&gt;
         Stone: 30&lt;br /&gt;
         Netherrack: 30&lt;br /&gt;
         Gold: 350&lt;br /&gt;
         Redstone: 150&lt;br /&gt;
         Coal: 100&lt;br /&gt;
         Diamond: 750&lt;br /&gt;
         lapis: 400&lt;br /&gt;
         Iron: 250&lt;br /&gt;
&lt;br /&gt;
===== Sorcery-What is this? =====&lt;br /&gt;
  Sorcery:&lt;br /&gt;
    Spells: &lt;br /&gt;
        Water: 15&lt;br /&gt;
            Thunder: 15&lt;br /&gt;
        Curative: 15&lt;br /&gt;
            Cure_Self: 15&lt;br /&gt;
                Mana_Cost: 5&lt;br /&gt;
            Cure_Other: 15&lt;br /&gt;
                Mana_Cost:&lt;br /&gt;
&lt;br /&gt;
===== Gathering =====&lt;br /&gt;
  Excavation:&lt;br /&gt;
    Drops:&lt;br /&gt;
        Cocoa_Beans: true&lt;br /&gt;
        Mushrooms: true&lt;br /&gt;
        Glowstone: true&lt;br /&gt;
        Eggs: true&lt;br /&gt;
        Apples: true&lt;br /&gt;
        Cake: true&lt;br /&gt;
        Music: false&lt;br /&gt;
        Diamond: true&lt;br /&gt;
        Slowsand: true&lt;br /&gt;
        Sulphur: true&lt;br /&gt;
        Netherrack: true&lt;br /&gt;
        Bones: true&lt;br /&gt;
  Fishing:&lt;br /&gt;
    Drops:&lt;br /&gt;
         Gold_Tools: true&lt;br /&gt;
         Diamond_Armor: true&lt;br /&gt;
         Stone_Tools: true&lt;br /&gt;
         Diamonds: true&lt;br /&gt;
         Iron_Armor: true&lt;br /&gt;
         Iron_Tools: true&lt;br /&gt;
         Diamond_Tools: true&lt;br /&gt;
         Item_Drops_Enabled: true&lt;br /&gt;
         Records: true&lt;br /&gt;
         Blaze_Rod: true&lt;br /&gt;
         Leather_Armor: true&lt;br /&gt;
         Drop_Chance:&lt;br /&gt;
             Tier_1: 15&lt;br /&gt;
             Tier_2: 20&lt;br /&gt;
             Tier_3: 25&lt;br /&gt;
             Tier_4: 30&lt;br /&gt;
             Tier_5: 30&lt;br /&gt;
         Gold_Armor: true&lt;br /&gt;
         Glowstone_Dust: true&lt;br /&gt;
         Ender_Pearl: true&lt;br /&gt;
         Wooden_Tools: true&lt;br /&gt;
&lt;br /&gt;
=====Commands=====&lt;br /&gt;
  Commands:&lt;br /&gt;
    mctop:&lt;br /&gt;
        Name: mctop&lt;br /&gt;
        Enabled: true&lt;br /&gt;
    addxp:&lt;br /&gt;
        Name: addxp&lt;br /&gt;
        Enabled: true&lt;br /&gt;
    mcability:&lt;br /&gt;
        Name: mcability&lt;br /&gt;
        Enabled: true&lt;br /&gt;
    mcrefresh:&lt;br /&gt;
        Name: mcrefresh&lt;br /&gt;
        Enabled: true&lt;br /&gt;
    mcmmo:&lt;br /&gt;
        Name: mcmmo&lt;br /&gt;
        Enabled: true&lt;br /&gt;
        Donate_Message: true&lt;br /&gt;
    mcc:&lt;br /&gt;
        Name: mcc&lt;br /&gt;
        Enabled: true&lt;br /&gt;
    mcgod:&lt;br /&gt;
        Name: mcgod&lt;br /&gt;
        Enabled: true&lt;br /&gt;
    stats:&lt;br /&gt;
        Name: stats&lt;br /&gt;
        Enabled: true&lt;br /&gt;
    mmoedit:&lt;br /&gt;
        Name: mmoedit&lt;br /&gt;
        Enabled: false&lt;br /&gt;
    ptp:&lt;br /&gt;
        Name: ptp&lt;br /&gt;
        Enabled: true&lt;br /&gt;
    party:&lt;br /&gt;
        Name: party&lt;br /&gt;
        Enabled: tru&lt;br /&gt;
    myspawn:&lt;br /&gt;
        Name: myspawn&lt;br /&gt;
        Enabled: true&lt;br /&gt;
    whois:&lt;br /&gt;
        Name: whois&lt;br /&gt;
        Enabled: true&lt;br /&gt;
    invite:&lt;br /&gt;
        Name: invite&lt;br /&gt;
        Enabled: true&lt;br /&gt;
    accept:&lt;br /&gt;
        Name: accept&lt;br /&gt;
        Enabled: true&lt;br /&gt;
    clearmyspawn:&lt;br /&gt;
        Name: clearmyspawn&lt;br /&gt;
        Enabled: true&lt;br /&gt;
&lt;br /&gt;
=====Abilities=====&lt;br /&gt;
&lt;br /&gt;
=====Skills===&lt;br /&gt;
  Skills:&lt;br /&gt;
    Agility:&lt;br /&gt;
         Level_Cap: 200    #Level cap of 0 for no limit&lt;br /&gt;
     Range:&lt;br /&gt;
         Level_Cap: 200&lt;br /&gt;
     Strength:&lt;br /&gt;
         Level_Cap: 200&lt;br /&gt;
     Excavation:&lt;br /&gt;
         Level_Cap: 200&lt;br /&gt;
         Requires_Shovel: true&lt;br /&gt;
     Fishing:&lt;br /&gt;
         Level_Cap: 100&lt;br /&gt;
     Herblore:&lt;br /&gt;
         Level_Cap: 200&lt;br /&gt;
         Green_Thumb:&lt;br /&gt;
             Cobble_To_Mossy: true&lt;br /&gt;
     Mining:&lt;br /&gt;
         Level_Cap: 200&lt;br /&gt;
         Requires_Pickaxe: true&lt;br /&gt;
     Smithing:&lt;br /&gt;
         Level_Cap: 200&lt;br /&gt;
         Leather:&lt;br /&gt;
             ID: 334&lt;br /&gt;
         String:&lt;br /&gt;
             Name: Leather&lt;br /&gt;
             ID: 287&lt;br /&gt;
         Stone:&lt;br /&gt;
             Name: Cobblestone&lt;br /&gt;
             ID: 4&lt;br /&gt;
         Wood:&lt;br /&gt;
             Name: Wood Planks&lt;br /&gt;
             ID: 5&lt;br /&gt;
         Gold:&lt;br /&gt;
             Name: Gold Bars&lt;br /&gt;
             ID: 266&lt;br /&gt;
         Anvil_Messages: true&lt;br /&gt;
         Diamond:&lt;br /&gt;
             Name: Diamond&lt;br /&gt;
             Level_Required: 50&lt;br /&gt;
             ID: 264&lt;br /&gt;
         Iron:&lt;br /&gt;
             Name: Iron Bars&lt;br /&gt;
             ID: 265&lt;br /&gt;
     Attack:&lt;br /&gt;
         Level_Cap: 200&lt;br /&gt;
     Summoning:&lt;br /&gt;
         Level_Cap: 200&lt;br /&gt;
         Call_Of_The_Wild:&lt;br /&gt;
             Bones_Required: 10&lt;br /&gt;
     Defence:&lt;br /&gt;
         Level_Cap: 200&lt;br /&gt;
     Woodcutting:&lt;br /&gt;
         Level_Cap: 200&lt;br /&gt;
         Requires_Axe: true&lt;br /&gt;
[[Category:Configuration]]&lt;br /&gt;
&lt;br /&gt;
=== Localization ===&lt;br /&gt;
&lt;br /&gt;
{{Stub}}&lt;br /&gt;
First of all use an archive program like WinRar or 7zip to open up mcMMO.jar and navigate to com\gmail\nossr50\locale\ inside the Jar file. Here you will see a file called locale_en_US.properties this is the localization file for en_US and will be the template for other languages. You can either modify all strings in this file or copy it and start making a new file for localization.&lt;br /&gt;
&lt;br /&gt;
If you want to make a file for another language you would copy locale_en_US.properties and rename the en_US part of it to something else. Then inside mcmmo.properties you will change the localization file setting from en_US to whatever the new files name is. You would have to add your new localization file to the same location in mcMMO.jar that messages_en_US.properties is in. For example, If you were translating mcMMO to Mexican Spanish you would name it es_MX. If you want to know what the correct name for your localization would be you can check the [http://en.wikipedia.org/wiki/ISO_639-1 ISO 639-1 Table]. I&#039;ll probably change these files to be located inside your plugins folder in future versions.&lt;br /&gt;
&lt;br /&gt;
Anyways theres a few things you should know about the localization files, they use special words to insert color codes, for example &amp;lt;nowiki&amp;gt;[[GREEN]]&amp;lt;/nowiki&amp;gt; will insert the green color code. These are based on the ChatColor bukkit uses found [https://github.com/Bukkit/Bukkit/blob/master/src/main/java/org/bukkit/ChatColor.java in this source file]. So if you want to insert RED used in bukkit, write &amp;lt;nowiki&amp;gt;[[RED]]&amp;lt;/nowiki&amp;gt; in the localization file.&lt;br /&gt;
&lt;br /&gt;
If you fully translate mcMMO into another language [[User talk:Nossr50|contact Nossr50]] to get it included into mcMMO.&lt;br /&gt;
&lt;br /&gt;
=== Permissions ===&lt;br /&gt;
&lt;br /&gt;
;Party&lt;br /&gt;
: Allows players to enter a party using /party &amp;lt;party name&amp;gt;&lt;br /&gt;
: &#039;mcmmo.commands.party&#039;&lt;br /&gt;
&lt;br /&gt;
;Party Teleport&lt;br /&gt;
: Let players use the party teleport command.&lt;br /&gt;
: &#039;mcmmo.commands.ptp&#039;&lt;br /&gt;
&lt;br /&gt;
;Mining Ability&lt;br /&gt;
: Allows the use of the [[Mining#Ability|Super Breaker]] ability.&lt;br /&gt;
: &#039;mcmmo.ability.mining&#039;&lt;br /&gt;
&lt;br /&gt;
;Axes Ability&lt;br /&gt;
: Allows the use of the [[Axes#Ability|Skull Splitter]] ability.&lt;br /&gt;
: &#039;mcmmo.ability.axes&#039;&lt;br /&gt;
&lt;br /&gt;
;Excavation Ability&lt;br /&gt;
: Allows the use of the [[Excavation#Ability|Giga Drill Breaker]] ability.&lt;br /&gt;
: &#039;mcmmo.ability.excavation&#039;&lt;br /&gt;
&lt;br /&gt;
;Swords Ability&lt;br /&gt;
: Allows the use of the [[Swords#Ability|Serrated Strike]] ability.&lt;br /&gt;
: &#039;mcmmo.ability.swords&#039;&lt;br /&gt;
&lt;br /&gt;
;Unarmed Ability&lt;br /&gt;
: Allows the use of the [[Unarmed#Ability|Beserk]] ability.&lt;br /&gt;
: &#039;mcmmo.ability.unarmed&#039;&lt;br /&gt;
&lt;br /&gt;
====[[:Category:Skills|Skills]]====&lt;br /&gt;
;All Skills&lt;br /&gt;
: Allows access to all of the skills. Recommended.&lt;br /&gt;
: &#039;mcmmo.skills.*&#039;&lt;br /&gt;
&lt;br /&gt;
;Mining&lt;br /&gt;
: Allows the use of the [[Mining]] skill.&lt;br /&gt;
: &#039;mcmmo.skills.mining&#039;&lt;br /&gt;
&lt;br /&gt;
;Woodcutting&lt;br /&gt;
: Allows the use of the [[Woodcutting]] skill.&lt;br /&gt;
: &#039;mcmmo.skills.woodcutting&#039;&lt;br /&gt;
&lt;br /&gt;
;Repair&lt;br /&gt;
: Allows the use of the [[Repair]] skill.&lt;br /&gt;
: &#039;mcmmo.skills.repair&#039;&lt;br /&gt;
&lt;br /&gt;
;Unarmed&lt;br /&gt;
: Allows the use of the [[Unarmed]] skill.&lt;br /&gt;
: &#039;mcmmo.skills.unarmed&#039;&lt;br /&gt;
&lt;br /&gt;
;Archery&lt;br /&gt;
: Allows the use of the [[Archery]] skill.&lt;br /&gt;
: &#039;mcmmo.skills.archery&#039;&lt;br /&gt;
&lt;br /&gt;
;Herbalism&lt;br /&gt;
: Allows the use of the [[Herbalism]] skills.&lt;br /&gt;
: &#039;mcmmo.skills.herbalism&#039;&lt;br /&gt;
&lt;br /&gt;
;Excavation&lt;br /&gt;
: Allows the use of the [[Excavation]] skill.&lt;br /&gt;
: &#039;mcmmo.skills.excavation&#039;&lt;br /&gt;
&lt;br /&gt;
;Swords&lt;br /&gt;
: Allows the use of the [[Swords]] skill.&lt;br /&gt;
: &#039;mcmmo.skills.swords&#039;&lt;br /&gt;
&lt;br /&gt;
;Acrobatics&lt;br /&gt;
: Allows the use of the [[Acrobatics]] skill.&lt;br /&gt;
: &#039;mcmmo.skills.acrobatics&#039;&lt;br /&gt;
&lt;br /&gt;
;Axes&lt;br /&gt;
: Allows the use of the [[Axes]] skill.&lt;br /&gt;
: &#039;mcmmo.skills.axes&#039;.&lt;br /&gt;
&lt;br /&gt;
;Taming&lt;br /&gt;
: Allows the use of the [[Taming]] skill.&lt;br /&gt;
: &#039;mcmmo.skills.taming&#039;.&lt;br /&gt;
&lt;br /&gt;
;&lt;br /&gt;
;&lt;br /&gt;
&lt;br /&gt;
=== API ===&lt;br /&gt;
&amp;lt;p&amp;gt;The mcMMO API is a new utility to mcMMO. It is used with the new events system, to make it easy.&amp;lt;/p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;The basic syntax goes like this:&amp;lt;/p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background: #DDD;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;package packagename;&amp;lt;br /&amp;gt;import com.gmail.nossr50.events.McMMOPlayerLevelUpEvent;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;public class MyListener implements Listener {&amp;lt;br /&amp;gt; &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;@EventHandler&amp;lt;br /&amp;gt;  public void onPlayerLevelUp(McMMOPlayerLevelUpEvent event) {&amp;lt;br /&amp;gt;      Player player = event.getPlayer();&amp;lt;br /&amp;gt;      SkillType skill = event.getSkill();&amp;lt;br /&amp;gt;  }&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;}&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;That would be your Listener class. Now, you just add this line into your public void onEnable():&amp;lt;/p&amp;gt;&amp;lt;div style=&amp;quot;background: #DDD;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Bukkit.getServer().getPluginManager().registerEvents(new MyListener(this), this);&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;From there you can extend and add more features. :D&amp;lt;/p&amp;gt;&lt;br /&gt;
[[Category:API]]&lt;br /&gt;
&lt;br /&gt;
=== Compatible Software ===&lt;br /&gt;
[[File:ZombiePigmanFace.png|right|zombie pig man]]&lt;br /&gt;
These plugins are plugins that are either add extra functions to McMMO (i.e. Money2Xp allows the purchase of experience through iConomy) or a web page that display stats or features to a web page.&lt;br /&gt;
====WS:====&lt;br /&gt;
[http://forums.bukkit.org/threads/info-web-ws-v0-2-web-stat-page-for-mcmmo-740.15315/ WS] is a simple WebStat page for McMMo. It is currently updated for [http://bukkit.org bukkit] build #740 and is compatible with McMMO V1.0.05 or later (because it uses mySQL). The respective topic on the [http://forums.bukkit.org bukkit forums] can be found [http://forums.bukkit.org/threads/info-web-ws-v0-2-web-stat-page-for-mcmmo-740.15315/ here] .&lt;br /&gt;
====McMMO Web Stats:====&lt;br /&gt;
mcMMO Web Stats is a simple PHP page you can link to directly or include in an existing page to display the mcMMO stats of every player on your server. Think of it like a character sheet for your players. It&#039;s respective [http://forums.bukkit.org bukkit forum] topic can be found [http://forums.bukkit.org/threads/info-web-mcmmo-web-stats-v1-1-a-web-based-view-of-your-mcmmo-stats-0-556.9815/ here]. It is confirmed to be compatible with McMMO V0.9.2 and later.&lt;br /&gt;
&lt;br /&gt;
====Money2Xp:====&lt;br /&gt;
[http://forums.bukkit.org/threads/mech-econ-money2xp-v0-2-3-train-your-mcmmo-skills-using-money-now-with-zones-740.11831/ Money2Xp] is a slightly complicated (but very clever) plugin that allows the purchase of McMMO skill experience, with support for the [http://forums.bukkit.org/threads/econ-iconomy-5-0-eruanna-602-740.40/ iConomy] and [http://forums.bukkit.org/threads/econ-boseconomy-v0-6-2-simple-server-economy-714.4874/ BOSEconomy] plugins. It also requires the [http://forums.bukkit.org/threads/admn-dev-permissions-v2-7-2-phoenix-now-with-real-multiworld-permissions-740.5974/ Permissions] plugin and a McMMO version of 1.0 or later. It is currently updated for [http://bukkit.org bukkit] build #740 and the forum topic can be found [http://forums.bukkit.org/threads/mech-econ-money2xp-v0-2-3-train-your-mcmmo-skills-using-money-now-with-zones-740.11831/ here] .&lt;br /&gt;
&lt;br /&gt;
:) discontinued&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
====VirtualChest:====&lt;br /&gt;
[http://forums.bukkit.org/threads/gen-mech-virtualchest-3-6-1-have-a-chest-with-you-everywhere-iconomy-5-0-4-6-permissions-740.11695/ VirtualChest] is not a plugin that adapts or adds an existing feature - it is &amp;quot;A Virtual Chest is a chest that can&#039;t be accessed in the &amp;quot;physical world of minecraft&amp;quot; - there is no block, nothing&amp;quot;, with added support for McMMO parties (more than one player may access it if they are in an McMMO party). The [http://forums.bukkit.org bukkit forum] topic can be found [http://forums.bukkit.org/threads/gen-mech-virtualchest-3-6-1-have-a-chest-with-you-everywhere-iconomy-5-0-4-6-permissions-740.11695/ here], and the plugin is currently updated for bukkit build #740.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Admin Video ===&lt;br /&gt;
在Wiki上未编辑&lt;br /&gt;
&lt;br /&gt;
=== Source Code ===&lt;br /&gt;
https://github.com/mcMMO-Dev/mcMMO&lt;/div&gt;</summary>
		<author><name>Minedx</name></author>
	</entry>
	<entry>
		<id>https://mineplugin.org/index.php?title=McMMO&amp;diff=1247</id>
		<title>McMMO</title>
		<link rel="alternate" type="text/html" href="https://mineplugin.org/index.php?title=McMMO&amp;diff=1247"/>
		<updated>2015-08-11T07:58:12Z</updated>

		<summary type="html">&lt;p&gt;Minedx：​搬运 McMMO Wikia&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;http://dev.bukkit.org/bukkit-plugins/mcmmo/&lt;br /&gt;
&lt;br /&gt;
== 来自 bukkit 发布帖的内容==&lt;br /&gt;
===McMMO 指令===&lt;br /&gt;
&lt;br /&gt;
说明:&lt;br /&gt;
&lt;br /&gt;
显示简介和完整的指令列表.&lt;br /&gt;
&lt;br /&gt;
输入方法:&lt;br /&gt;
&lt;br /&gt;
/mcmmo [commands]&lt;br /&gt;
&lt;br /&gt;
别名:&lt;br /&gt;
&lt;br /&gt;
无&lt;br /&gt;
&lt;br /&gt;
权限节点:&lt;br /&gt;
&lt;br /&gt;
无&lt;br /&gt;
&lt;br /&gt;
详细内容:&lt;br /&gt;
&lt;br /&gt;
显示简介和完整的指令列表.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====•McStats 指令====&lt;br /&gt;
&lt;br /&gt;
说明:&lt;br /&gt;
&lt;br /&gt;
显示你的 mcMMO 等级和经验.&lt;br /&gt;
&lt;br /&gt;
输入方法:&lt;br /&gt;
&lt;br /&gt;
/mcstats&lt;br /&gt;
&lt;br /&gt;
别名:&lt;br /&gt;
&lt;br /&gt;
/stats&lt;br /&gt;
&lt;br /&gt;
权限节点:&lt;br /&gt;
&lt;br /&gt;
无&lt;br /&gt;
&lt;br /&gt;
详细内容:&lt;br /&gt;
&lt;br /&gt;
显示你的 mcMMO 等级和经验.&lt;br /&gt;
&lt;br /&gt;
===组队指令相关===&lt;br /&gt;
&lt;br /&gt;
====ptp 指令====&lt;br /&gt;
&lt;br /&gt;
说明:&lt;br /&gt;
&lt;br /&gt;
传送到一个组队成员附近.&lt;br /&gt;
&lt;br /&gt;
输入方法:&lt;br /&gt;
&lt;br /&gt;
/ptp [name]&lt;br /&gt;
&lt;br /&gt;
例如:&lt;br /&gt;
&lt;br /&gt;
/ptp nossr50&lt;br /&gt;
&lt;br /&gt;
别名:&lt;br /&gt;
&lt;br /&gt;
无&lt;br /&gt;
&lt;br /&gt;
权限节点:&lt;br /&gt;
&lt;br /&gt;
mcmmo.commands.ptp&lt;br /&gt;
&lt;br /&gt;
详细内容:&lt;br /&gt;
&lt;br /&gt;
你可以输入ptp指令,传送到一个组队成员附近.&lt;br /&gt;
&lt;br /&gt;
====party 指令====&lt;br /&gt;
&lt;br /&gt;
说明:&lt;br /&gt;
&lt;br /&gt;
管理你的组队相关内容&lt;br /&gt;
&lt;br /&gt;
输入方法:&lt;br /&gt;
&lt;br /&gt;
/party 查看队伍详细信息.&lt;br /&gt;
/party create &amp;lt;队伍名&amp;gt; &amp;lt;密码&amp;gt; 创建一个队伍.&lt;br /&gt;
/party join &amp;lt;队伍名&amp;gt; &amp;lt;密码&amp;gt; 加入一个玩家队伍.&lt;br /&gt;
/party invite &amp;lt;玩家名&amp;gt; 邀请一个玩家加入你的队伍.&lt;br /&gt;
/party accept &amp;lt;玩家名&amp;gt; 允许一个玩家加入你的队伍.&lt;br /&gt;
/party password &amp;lt;密码&amp;gt; 设置你现在拥有队伍的密码.&lt;br /&gt;
/party kick &amp;lt;玩家名&amp;gt; 将一个玩家移除队伍.&lt;br /&gt;
/party owner &amp;lt;玩家名&amp;gt; 将队伍转让给一个玩家.&lt;br /&gt;
/party expshare [无/equal] 设置队伍经验共享.&lt;br /&gt;
/party lock 锁定队伍.&lt;br /&gt;
/party unlock 解锁队伍.&lt;br /&gt;
/party q 离开你目前所在的队伍.&lt;br /&gt;
/party ? 关于组队的更多信息.&lt;br /&gt;
&lt;br /&gt;
例如:&lt;br /&gt;
&lt;br /&gt;
/party create CoolGrindersParty pass1234&lt;br /&gt;
&lt;br /&gt;
别名:&lt;br /&gt;
&lt;br /&gt;
无&lt;br /&gt;
&lt;br /&gt;
权限节点:&lt;br /&gt;
&lt;br /&gt;
mcmmo.commands.party&lt;br /&gt;
&lt;br /&gt;
详细内容:&lt;br /&gt;
&lt;br /&gt;
通过party指令，你可以创建一个队伍或加入一个队伍。&lt;br /&gt;
&lt;br /&gt;
====partychat 指令====&lt;br /&gt;
&lt;br /&gt;
说明:&lt;br /&gt;
&lt;br /&gt;
设置组队聊天打开/关闭或发送一条队伍聊天信息.&lt;br /&gt;
&lt;br /&gt;
输入方法:&lt;br /&gt;
&lt;br /&gt;
/partychat [message]&lt;br /&gt;
&lt;br /&gt;
例如:&lt;br /&gt;
&lt;br /&gt;
/pc hello! (译者注:发送一条队伍聊天信息)&lt;br /&gt;
/partychat (译者注:设置队伍聊天开关)&lt;br /&gt;
&lt;br /&gt;
别名:&lt;br /&gt;
&lt;br /&gt;
p pc&lt;br /&gt;
&lt;br /&gt;
权限节点:&lt;br /&gt;
&lt;br /&gt;
mcmmo.chat.partychat&lt;br /&gt;
&lt;br /&gt;
详细内容:&lt;br /&gt;
&lt;br /&gt;
通过这个指令,你可以和你的组队成员在你们的私人领域聊天,只有你们自己的组员才能看到这些消息。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===adminchat 指令===&lt;br /&gt;
&lt;br /&gt;
说明:&lt;br /&gt;
&lt;br /&gt;
设置管理员聊天打开/关闭或发送一条队伍聊天信息.&lt;br /&gt;
&lt;br /&gt;
输入方法:&lt;br /&gt;
&lt;br /&gt;
/adminchat /a [message]&lt;br /&gt;
&lt;br /&gt;
别名:&lt;br /&gt;
&lt;br /&gt;
/a&lt;br /&gt;
/ac&lt;br /&gt;
&lt;br /&gt;
权限节点:&lt;br /&gt;
&lt;br /&gt;
mcmmo.chat.adminchat&lt;br /&gt;
&lt;br /&gt;
详细内容:&lt;br /&gt;
&lt;br /&gt;
设置管理员聊天打开/关闭或发送一条队伍聊天信息，只有拥有指定权限节点(译者注:权限节点即为mcmmo.chat.adminchat)&lt;br /&gt;
&lt;br /&gt;
===mcrefresh 指令===&lt;br /&gt;
&lt;br /&gt;
说明:&lt;br /&gt;
&lt;br /&gt;
重置某个玩家McMMO的所有冷却时间&lt;br /&gt;
&lt;br /&gt;
输入方法:&lt;br /&gt;
&lt;br /&gt;
/mcrefresh [player]&lt;br /&gt;
&lt;br /&gt;
别名:&lt;br /&gt;
&lt;br /&gt;
无&lt;br /&gt;
&lt;br /&gt;
权限节点:&lt;br /&gt;
&lt;br /&gt;
mcmmo.commands.mcrefresh&lt;br /&gt;
mcmmo.commands.mcrefresh.others&lt;br /&gt;
&lt;br /&gt;
详细内容:&lt;br /&gt;
&lt;br /&gt;
With this command, you can refresh your own ability cool downs, or those of the targeted player.&lt;br /&gt;
&lt;br /&gt;
===mcgod 指令===&lt;br /&gt;
&lt;br /&gt;
说明:&lt;br /&gt;
&lt;br /&gt;
McMMO 上帝模式的开关.&lt;br /&gt;
&lt;br /&gt;
输入方法:&lt;br /&gt;
&lt;br /&gt;
/mcgod [player]&lt;br /&gt;
&lt;br /&gt;
别名:&lt;br /&gt;
&lt;br /&gt;
无&lt;br /&gt;
&lt;br /&gt;
权限节点:&lt;br /&gt;
&lt;br /&gt;
mcmmo.commands.mcgod&lt;br /&gt;
mcmmo.commands.mcgod.others&lt;br /&gt;
&lt;br /&gt;
详细内容:&lt;br /&gt;
&lt;br /&gt;
你可以用这个指令控制你/其他人McMMO上帝模式的开关,在此模式下你是无敌的.&lt;br /&gt;
&lt;br /&gt;
===xprate 指令===&lt;br /&gt;
&lt;br /&gt;
说明:&lt;br /&gt;
&lt;br /&gt;
设置经验比例或重置经验比例.&lt;br /&gt;
&lt;br /&gt;
输入方法:&lt;br /&gt;
&lt;br /&gt;
/xprate [rate] &lt;br /&gt;
/xprate reset&lt;br /&gt;
&lt;br /&gt;
别名:&lt;br /&gt;
&lt;br /&gt;
/mcxprate&lt;br /&gt;
&lt;br /&gt;
权限节点:&lt;br /&gt;
&lt;br /&gt;
mcmmo.commands.xprate.all&lt;br /&gt;
mcmmo.commands.xprate&lt;br /&gt;
mcmmo.commands.xprate.reset&lt;br /&gt;
mcmmo.commands.xprate.set&lt;br /&gt;
&lt;br /&gt;
详细内容:&lt;br /&gt;
&lt;br /&gt;
你可以输入这个指令开启一次McMMO经验加成的活动.例如输入/xprate 2开启一次全体双倍经验的活动！所有人皆享有经验加成！&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===mmoedit 指令===&lt;br /&gt;
&lt;br /&gt;
说明:&lt;br /&gt;
&lt;br /&gt;
修改某个玩家的McMMO技能等级.&lt;br /&gt;
&lt;br /&gt;
输入方法:&lt;br /&gt;
&lt;br /&gt;
/mmoedit [player] &amp;lt;skill&amp;gt; &amp;lt;level&amp;gt;&lt;br /&gt;
&lt;br /&gt;
别名:&lt;br /&gt;
&lt;br /&gt;
无&lt;br /&gt;
&lt;br /&gt;
权限节点:&lt;br /&gt;
&lt;br /&gt;
mcmmo.commands.mmoedit&lt;br /&gt;
mcmmo.commands.mmoedit.others&lt;br /&gt;
&lt;br /&gt;
详细内容:&lt;br /&gt;
&lt;br /&gt;
这个指令是用来修改玩家某个技能的等级的.输入 /mmoedit nossr50 herbalism 613 会设置玩家 nossr50 的 Herbalism 技能等级为 613.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===addxp 指令===&lt;br /&gt;
&lt;br /&gt;
说明:&lt;br /&gt;
&lt;br /&gt;
向一名玩家增加某技能的经验.&lt;br /&gt;
&lt;br /&gt;
输入方法:&lt;br /&gt;
&lt;br /&gt;
/addxp [player] &amp;lt;skill&amp;gt; &amp;lt;xp&amp;gt;&lt;br /&gt;
&lt;br /&gt;
别名:&lt;br /&gt;
&lt;br /&gt;
无&lt;br /&gt;
&lt;br /&gt;
权限节点:&lt;br /&gt;
&lt;br /&gt;
mcmmo.commands.addxp&lt;br /&gt;
mcmmo.commands.addxp.others&lt;br /&gt;
&lt;br /&gt;
详细内容:&lt;br /&gt;
&lt;br /&gt;
这个指令是用来给一名玩家加某个技能的经验的.使用/addxp nossr50 mining 45 会给 nossr50 增加45点 Mining 技能的经验.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===addlevels 指令===&lt;br /&gt;
&lt;br /&gt;
说明:&lt;br /&gt;
&lt;br /&gt;
添加一个玩家的McMMO等级.&lt;br /&gt;
&lt;br /&gt;
输入方法:&lt;br /&gt;
&lt;br /&gt;
/addlevels [player] &amp;lt;技能名&amp;gt; &amp;lt;等级&amp;gt;&lt;br /&gt;
&lt;br /&gt;
别名:&lt;br /&gt;
&lt;br /&gt;
无&lt;br /&gt;
&lt;br /&gt;
权限节点:&lt;br /&gt;
&lt;br /&gt;
mcmmo.commands.addlevels&lt;br /&gt;
mcmmo.commands.addlevels.others&lt;br /&gt;
&lt;br /&gt;
详细内容:&lt;br /&gt;
&lt;br /&gt;
这个指令可以用来给某个用户增加技能等级.输入 /addlevels nossr50 acrobatics 12 会在玩家 nossr50 现有的 Acrobatics 等级上加12.&lt;br /&gt;
&lt;br /&gt;
===mcremove 指令===&lt;br /&gt;
&lt;br /&gt;
说明:&lt;br /&gt;
&lt;br /&gt;
将一个用户从数据库移除.&lt;br /&gt;
&lt;br /&gt;
输入方法:&lt;br /&gt;
&lt;br /&gt;
/mcremove [player]&lt;br /&gt;
&lt;br /&gt;
别名:&lt;br /&gt;
&lt;br /&gt;
无&lt;br /&gt;
&lt;br /&gt;
权限节点:&lt;br /&gt;
&lt;br /&gt;
mcmmo.commands.mcremove&lt;br /&gt;
&lt;br /&gt;
详细内容:&lt;br /&gt;
&lt;br /&gt;
这个指令会将玩家从数据库移除.输入 /mcremove nossr50 会将 nossr50 从数据库中移除.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===skillreset 指令===&lt;br /&gt;
&lt;br /&gt;
说明:&lt;br /&gt;
&lt;br /&gt;
重置一个或你全部的mcmmo技能等级.&lt;br /&gt;
&lt;br /&gt;
输入方法:&lt;br /&gt;
&lt;br /&gt;
/skillreset [player] &amp;lt;skill&amp;gt;&lt;br /&gt;
&lt;br /&gt;
别名:&lt;br /&gt;
&lt;br /&gt;
无&lt;br /&gt;
&lt;br /&gt;
权限节点:&lt;br /&gt;
&lt;br /&gt;
mcmmo.commands.skillreset&lt;br /&gt;
mcmmo.commands.skillreset.acrobatics mcmmo.commands.skillreset.archery mcmmo.commands.skillreset.axes mcmmo.commands.skillreset.excavation mcmmo.commands.skillreset.fishing mcmmo.commands.skillreset.herbalism mcmmo.commands.skillreset.mining mcmmo.commands.skillreset.others.all mcmmo.commands.skillreset.repair mcmmo.commands.skillreset.smelting mcmmo.commands.skillreset.swords mcmmo.commands.skillreset.taming mcmmo.commands.skillreset.unarmed mcmmo.commands.skillreset.woodcutting&lt;br /&gt;
&lt;br /&gt;
详细内容:&lt;br /&gt;
&lt;br /&gt;
重置一个或你全部的mcmmo技能等级.This command is used to reset a users skill level. Using /skillreset nossr50 herbalism will set nossr50&#039;s Herbalism level and experience to 0. Using /skillreset will reset your own stats for every skill.&lt;br /&gt;
&lt;br /&gt;
===mcpurge 指令===&lt;br /&gt;
&lt;br /&gt;
说明:&lt;br /&gt;
&lt;br /&gt;
从服务器数据库中清除0技能等级的用户或者未在几个月内登陆过的用户.&lt;br /&gt;
&lt;br /&gt;
输入方法:&lt;br /&gt;
&lt;br /&gt;
/mcpurge&lt;br /&gt;
&lt;br /&gt;
别名:&lt;br /&gt;
&lt;br /&gt;
无&lt;br /&gt;
&lt;br /&gt;
权限节点:&lt;br /&gt;
&lt;br /&gt;
mcmmo.commands.mcpurge&lt;br /&gt;
&lt;br /&gt;
详细内容:&lt;br /&gt;
&lt;br /&gt;
使用 /mcpurge 会立即在服务器数据库中启动一个清理进程,默认的McMMO设定下会清除一切无作为和6个月内从未连接过服务器的玩家.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===mcconvert 指令===&lt;br /&gt;
&lt;br /&gt;
说明:&lt;br /&gt;
&lt;br /&gt;
从不同的数据库类型和格式类型间转换。&lt;br /&gt;
&lt;br /&gt;
输入方法:&lt;br /&gt;
&lt;br /&gt;
/mcconvert database &amp;lt;flatfile|sql&amp;gt; /mcconvert experience &amp;lt;linear|exponential&amp;gt;&lt;br /&gt;
&lt;br /&gt;
别名:&lt;br /&gt;
&lt;br /&gt;
无&lt;br /&gt;
&lt;br /&gt;
权限节点:&lt;br /&gt;
&lt;br /&gt;
mcmmo.commands.mcconvert&lt;br /&gt;
&lt;br /&gt;
详细内容:&lt;br /&gt;
&lt;br /&gt;
这个指令可以把一个无格式文件转换到MySQL数据库中, 反之亦然. 它也可以把一个不仅合规范的文本变成一个规范的文本.&lt;br /&gt;
&lt;br /&gt;
===mcimport 指令===&lt;br /&gt;
&lt;br /&gt;
说明:&lt;br /&gt;
&lt;br /&gt;
全自动生成插件设置文本.&lt;br /&gt;
&lt;br /&gt;
输入方法:&lt;br /&gt;
&lt;br /&gt;
/mcimport&lt;br /&gt;
&lt;br /&gt;
别名:&lt;br /&gt;
&lt;br /&gt;
无&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
权限节点:&lt;br /&gt;
&lt;br /&gt;
mcmmo.commands.mcimport&lt;br /&gt;
&lt;br /&gt;
详细内容:&lt;br /&gt;
&lt;br /&gt;
这个指令可以用在从你的Cauldron启动日志中来导入并重生成插件设置,你需要至少1.7.x才能运行这个指令.&lt;br /&gt;
&lt;br /&gt;
创建一个 /mcMMO/mods/ 的文件夹. 将你的Cauldron 1.7+运行日志放到其中并重命名import.log.&lt;br /&gt;
&lt;br /&gt;
注意在系统创建时,最佳状态是每次启动或关闭服务器保存一次日志,或编辑你的日志文件使它只剩下你想导入的内容,这样可以有效加速导入速度.&lt;br /&gt;
&lt;br /&gt;
当服务器在运行时,你使用 /mcimport 时可以在控制台中看到导入进程,当导入完成后它将会全被导出到 /mcMMO/mods/output/.&lt;br /&gt;
&lt;br /&gt;
任何你放在文件夹中但名字不为import.log的设置文件,你需要手动让它们符合标准.&lt;br /&gt;
&lt;br /&gt;
现在你只需要把所有output文件夹中的内容整合起来,然后填入经验收益倍数.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 来自McMMO Wiki的内容 ==&lt;br /&gt;
&lt;br /&gt;
=== Commands ===&lt;br /&gt;
&#039;&#039;&#039;Commands&#039;&#039;&#039; are simple lines of code used in-game as a way to keep track of various aspects of the plugin that range from general information to in-depth Mcmmo&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;toc&amp;quot; id=&amp;quot;toc&amp;quot; style=&amp;quot; &amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot; height: 235px; width: 630px; &amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|Toggle ability notifications on/off.&lt;br /&gt;
|-&lt;br /&gt;
|/mcremove &amp;lt;playername&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|as&lt;br /&gt;
|-&lt;br /&gt;
|/mcpurge&lt;br /&gt;
&lt;br /&gt;
|Purges all users from MySQL or FlatFile.&lt;br /&gt;
|-&lt;br /&gt;
|/a OR /ac&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
Toggles Admin Chat (Not working)&lt;br /&gt;
|-&lt;br /&gt;
|/xplock &amp;lt;skillname&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|Lock the xp bar to named skill.&lt;br /&gt;
|-&lt;br /&gt;
|/mcrefresh [player]&lt;br /&gt;
&lt;br /&gt;
|Refreshes all cooldowns for McMMO or optionally named player.(Not Working)&lt;br /&gt;
|}&lt;br /&gt;
|}&lt;br /&gt;
[[Category:Configuration]]&lt;br /&gt;
[[Category:Axes]]&lt;br /&gt;
[[Category:Commands]]&lt;br /&gt;
[[Category:Moderator]]&lt;br /&gt;
&lt;br /&gt;
=== Configuration ===&lt;br /&gt;
{{Stub}}&lt;br /&gt;
&lt;br /&gt;
==== MySQL  ====&lt;br /&gt;
Optional configuration to use a MySQL database instead of the YAML flatfiles. If you intend to use MySQL, make sure you configure all of the parts in this section! MaxConnections and MaxPoolSize can probably be left alone for smaller servers, but a foray into the official MySQL documentation for both would not be discouraged...&lt;br /&gt;
 MySQL:&lt;br /&gt;
     Enabled: false # Set to true to enable MySQL&lt;br /&gt;
     Database:&lt;br /&gt;
         User_Name: UserName # Username for the mysql server. Usually &amp;quot;root&amp;quot;&lt;br /&gt;
         User_Password: UserPassword # Password for the mysql server&lt;br /&gt;
         Name: DataBaseName # The database in which the mcmmo data will be stored&lt;br /&gt;
         TablePrefix: mcmmo_ # The prefix of each mcmmo table in said database&lt;br /&gt;
         MaxConnections: # Max number of clients connected to the mysql server.&lt;br /&gt;
             Misc: 30 # Must be high enough to support multiple sequential logins&lt;br /&gt;
             Load: 30&lt;br /&gt;
             Save: 30&lt;br /&gt;
         MaxPoolSize: # Cached connections that are always held available&lt;br /&gt;
             Misc: 10&lt;br /&gt;
             Load: 20&lt;br /&gt;
             Save: 20&lt;br /&gt;
     Server:&lt;br /&gt;
         Port: 3306 # Port of the mysql server&lt;br /&gt;
         Address: localhost # Address of the mysql server&lt;br /&gt;
==== General ====&lt;br /&gt;
Miscellaneous settings, used thorough the functionalities.&lt;br /&gt;
&lt;br /&gt;
===== Locale =====&lt;br /&gt;
:&#039;&#039;&#039;&#039;&#039;String&#039;&#039;&#039;&#039;&#039;: This sets the language and locale settings used in the plugin, currently supported values are &#039;&#039;&#039;&#039;&amp;lt;nowiki&amp;gt;en_us&#039;&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;, &#039;&#039;&#039;&#039;&amp;lt;nowiki&amp;gt;fi&#039;&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;, &#039;&#039;&#039;&#039;&amp;lt;nowiki&amp;gt;de&#039;&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;, &#039;&#039;&#039;&#039;&amp;lt;nowiki&amp;gt;fr&#039;&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;, &#039;&#039;&#039;&#039;&amp;lt;nowiki&amp;gt;es&#039;&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039; and &#039;&#039;&#039;&#039;&amp;lt;nowiki&amp;gt;pl&#039;&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;. Further languages can be implemented, see [[Localization]]. Defaults to &#039;&#039;&#039;&#039;&amp;lt;nowiki&amp;gt;en_us&#039;&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
===== General Features =====&lt;br /&gt;
&lt;br /&gt;
===== Items =====&lt;br /&gt;
  Items:&lt;br /&gt;
     Chimaera_Wing:&lt;br /&gt;
         Enabled: true&lt;br /&gt;
         Cooldown: 240&lt;br /&gt;
         Warmup: 5&lt;br /&gt;
         RecentlyHurt_Cooldown: 60&lt;br /&gt;
         Prevent_Use_Underground: true&lt;br /&gt;
         Use_Cost: 1&lt;br /&gt;
         Recipe_Cost: 5&lt;br /&gt;
         Item_Name: FEATHER&lt;br /&gt;
         Sound_Enabled: true&lt;br /&gt;
&lt;br /&gt;
===== Colors =====&lt;br /&gt;
  Spout:&lt;br /&gt;
     Menu:&lt;br /&gt;
 &lt;br /&gt;
                     BLUE: 0.75&lt;br /&gt;
                     GREEN: 0.3&lt;br /&gt;
                     RED: 0.3&lt;br /&gt;
                 Taming:&lt;br /&gt;
                     BLUE: 0.75&lt;br /&gt;
                     GREEN: 0.3&lt;br /&gt;
                     RED: 0.3&lt;br /&gt;
                 Acrobatics:&lt;br /&gt;
                     BLUE: 0.75&lt;br /&gt;
                     GREEN: 0.3&lt;br /&gt;
                     RED: 0.3&lt;br /&gt;
                 Border:&lt;br /&gt;
                     BLUE: 0.0&lt;br /&gt;
                     GREEN: 0.0&lt;br /&gt;
                     RED: 0.0&lt;br /&gt;
                 Background:&lt;br /&gt;
                     BLUE: 0.75&lt;br /&gt;
                     GREEN: 0.75&lt;br /&gt;
                     RED: 0.75&lt;br /&gt;
                 Woodcutting:&lt;br /&gt;
                     BLUE: 0.75&lt;br /&gt;
                     GREEN: 0.3&lt;br /&gt;
                     RED: 0.3&lt;br /&gt;
                 Archery:&lt;br /&gt;
                     BLUE: 0.75&lt;br /&gt;
                     GREEN: 0.3&lt;br /&gt;
                     RED: 0.3&lt;br /&gt;
                 Axes:&lt;br /&gt;
                     BLUE: 0.75&lt;br /&gt;
                     GREEN: 0.3&lt;br /&gt;
                     RED: 0.3&lt;br /&gt;
                 Repair:&lt;br /&gt;
                     BLUE: 0.75&lt;br /&gt;
                     GREEN: 0.3&lt;br /&gt;
                     RED: 0.3&lt;br /&gt;
                 Fishing:&lt;br /&gt;
                     BLUE: 0.75&lt;br /&gt;
                     GREEN: 0.3&lt;br /&gt;
                     RED: 0.3&lt;br /&gt;
                 Excavation:&lt;br /&gt;
                     BLUE: 0.75&lt;br /&gt;
                     GREEN: 0.3&lt;br /&gt;
                     RED: 0.3&lt;br /&gt;
                 Herbalism:&lt;br /&gt;
                     BLUE: 0.75&lt;br /&gt;
                     GREEN: 0.3&lt;br /&gt;
                     RED: 0.3&lt;br /&gt;
                 Unarmed:&lt;br /&gt;
                     BLUE: 0.75&lt;br /&gt;
                     GREEN: 0.3&lt;br /&gt;
                     RED: 0.3&lt;br /&gt;
                 Mining:&lt;br /&gt;
                     BLUE: 0.75&lt;br /&gt;
                     GREEN: 0.3&lt;br /&gt;
                     RED: 0.3&lt;br /&gt;
&lt;br /&gt;
===== Experience =====&lt;br /&gt;
&#039;&#039;Note: Multiplier values are applied inversely. For example to double the amount of xp earned, change the multiplier value from 1.0 to 0.5.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  Experience:&lt;br /&gt;
     Fishing:&lt;br /&gt;
         Base: 200&lt;br /&gt;
     Formula:&lt;br /&gt;
         Multiplier:&lt;br /&gt;
             Swords: 0.25&lt;br /&gt;
             Taming: .5&lt;br /&gt;
             Acrobatics: .6&lt;br /&gt;
             Sorcery: .05&lt;br /&gt;
             Excavation: 0.25&lt;br /&gt;
             Herbalism: 0.25&lt;br /&gt;
             Unarmed: .5&lt;br /&gt;
             Woodcutting: 0.25&lt;br /&gt;
             Mining: 0.25&lt;br /&gt;
             Archery: 0.25&lt;br /&gt;
             Axes: 1.0&lt;br /&gt;
             Repair: .8&lt;br /&gt;
     Gains:&lt;br /&gt;
         Mobspawners:&lt;br /&gt;
             Enabled: true&lt;br /&gt;
         Multiplier:&lt;br /&gt;
             PVP: 1&lt;br /&gt;
             Global: 0.25&lt;br /&gt;
     PVP:&lt;br /&gt;
         Rewards: true&lt;br /&gt;
     Excavation:&lt;br /&gt;
         Base: 40&lt;br /&gt;
         Cake: 3000&lt;br /&gt;
         Sulphur: 30&lt;br /&gt;
         Bones: 30&lt;br /&gt;
         Map: 200&lt;br /&gt;
         Slimeballs: 100&lt;br /&gt;
         Bucket: 100&lt;br /&gt;
         Apple: 100&lt;br /&gt;
         Mushroom: 80&lt;br /&gt;
         Eggs: 100&lt;br /&gt;
         Slowsand: 80&lt;br /&gt;
         Watch: 200&lt;br /&gt;
         Web: 150&lt;br /&gt;
         String: 200&lt;br /&gt;
         Glowstone: 80&lt;br /&gt;
         Music: 3000&lt;br /&gt;
         Diamond: 1000&lt;br /&gt;
         Cocoa_Beans: 100&lt;br /&gt;
     Woodcutting:&lt;br /&gt;
         Birch: 70&lt;br /&gt;
         Spruce: 80&lt;br /&gt;
         Pine: 90&lt;br /&gt;
     Herbalism:&lt;br /&gt;
         Sugar_Cane: 30&lt;br /&gt;
         Cactus: 30&lt;br /&gt;
         Flowers: 100&lt;br /&gt;
         Pumpkin: 20&lt;br /&gt;
         Mushrooms: 150&lt;br /&gt;
         Wheat: 50&lt;br /&gt;
         Melon: 20&lt;br /&gt;
         Nether_Wart: 50&lt;br /&gt;
         Lily_Pads: 100&lt;br /&gt;
         Vines: 10&lt;br /&gt;
     Mining:&lt;br /&gt;
         Sandstone: 30&lt;br /&gt;
         Glowstone: 30&lt;br /&gt;
         Lapis: 400&lt;br /&gt;
         Obsidian: 150&lt;br /&gt;
         Stone: 30&lt;br /&gt;
         Netherrack: 30&lt;br /&gt;
         Gold: 350&lt;br /&gt;
         Redstone: 150&lt;br /&gt;
         Coal: 100&lt;br /&gt;
         Diamond: 750&lt;br /&gt;
         lapis: 400&lt;br /&gt;
         Iron: 250&lt;br /&gt;
&lt;br /&gt;
===== Sorcery-What is this? =====&lt;br /&gt;
  Sorcery:&lt;br /&gt;
    Spells: &lt;br /&gt;
        Water: 15&lt;br /&gt;
            Thunder: 15&lt;br /&gt;
        Curative: 15&lt;br /&gt;
            Cure_Self: 15&lt;br /&gt;
                Mana_Cost: 5&lt;br /&gt;
            Cure_Other: 15&lt;br /&gt;
                Mana_Cost:&lt;br /&gt;
&lt;br /&gt;
===== Gathering =====&lt;br /&gt;
  Excavation:&lt;br /&gt;
    Drops:&lt;br /&gt;
        Cocoa_Beans: true&lt;br /&gt;
        Mushrooms: true&lt;br /&gt;
        Glowstone: true&lt;br /&gt;
        Eggs: true&lt;br /&gt;
        Apples: true&lt;br /&gt;
        Cake: true&lt;br /&gt;
        Music: false&lt;br /&gt;
        Diamond: true&lt;br /&gt;
        Slowsand: true&lt;br /&gt;
        Sulphur: true&lt;br /&gt;
        Netherrack: true&lt;br /&gt;
        Bones: true&lt;br /&gt;
  Fishing:&lt;br /&gt;
    Drops:&lt;br /&gt;
         Gold_Tools: true&lt;br /&gt;
         Diamond_Armor: true&lt;br /&gt;
         Stone_Tools: true&lt;br /&gt;
         Diamonds: true&lt;br /&gt;
         Iron_Armor: true&lt;br /&gt;
         Iron_Tools: true&lt;br /&gt;
         Diamond_Tools: true&lt;br /&gt;
         Item_Drops_Enabled: true&lt;br /&gt;
         Records: true&lt;br /&gt;
         Blaze_Rod: true&lt;br /&gt;
         Leather_Armor: true&lt;br /&gt;
         Drop_Chance:&lt;br /&gt;
             Tier_1: 15&lt;br /&gt;
             Tier_2: 20&lt;br /&gt;
             Tier_3: 25&lt;br /&gt;
             Tier_4: 30&lt;br /&gt;
             Tier_5: 30&lt;br /&gt;
         Gold_Armor: true&lt;br /&gt;
         Glowstone_Dust: true&lt;br /&gt;
         Ender_Pearl: true&lt;br /&gt;
         Wooden_Tools: true&lt;br /&gt;
&lt;br /&gt;
=====Commands=====&lt;br /&gt;
  Commands:&lt;br /&gt;
    mctop:&lt;br /&gt;
        Name: mctop&lt;br /&gt;
        Enabled: true&lt;br /&gt;
    addxp:&lt;br /&gt;
        Name: addxp&lt;br /&gt;
        Enabled: true&lt;br /&gt;
    mcability:&lt;br /&gt;
        Name: mcability&lt;br /&gt;
        Enabled: true&lt;br /&gt;
    mcrefresh:&lt;br /&gt;
        Name: mcrefresh&lt;br /&gt;
        Enabled: true&lt;br /&gt;
    mcmmo:&lt;br /&gt;
        Name: mcmmo&lt;br /&gt;
        Enabled: true&lt;br /&gt;
        Donate_Message: true&lt;br /&gt;
    mcc:&lt;br /&gt;
        Name: mcc&lt;br /&gt;
        Enabled: true&lt;br /&gt;
    mcgod:&lt;br /&gt;
        Name: mcgod&lt;br /&gt;
        Enabled: true&lt;br /&gt;
    stats:&lt;br /&gt;
        Name: stats&lt;br /&gt;
        Enabled: true&lt;br /&gt;
    mmoedit:&lt;br /&gt;
        Name: mmoedit&lt;br /&gt;
        Enabled: false&lt;br /&gt;
    ptp:&lt;br /&gt;
        Name: ptp&lt;br /&gt;
        Enabled: true&lt;br /&gt;
    party:&lt;br /&gt;
        Name: party&lt;br /&gt;
        Enabled: tru&lt;br /&gt;
    myspawn:&lt;br /&gt;
        Name: myspawn&lt;br /&gt;
        Enabled: true&lt;br /&gt;
    whois:&lt;br /&gt;
        Name: whois&lt;br /&gt;
        Enabled: true&lt;br /&gt;
    invite:&lt;br /&gt;
        Name: invite&lt;br /&gt;
        Enabled: true&lt;br /&gt;
    accept:&lt;br /&gt;
        Name: accept&lt;br /&gt;
        Enabled: true&lt;br /&gt;
    clearmyspawn:&lt;br /&gt;
        Name: clearmyspawn&lt;br /&gt;
        Enabled: true&lt;br /&gt;
&lt;br /&gt;
=====Abilities=====&lt;br /&gt;
&lt;br /&gt;
=====Skills===&lt;br /&gt;
  Skills:&lt;br /&gt;
    Agility:&lt;br /&gt;
         Level_Cap: 200    #Level cap of 0 for no limit&lt;br /&gt;
     Range:&lt;br /&gt;
         Level_Cap: 200&lt;br /&gt;
     Strength:&lt;br /&gt;
         Level_Cap: 200&lt;br /&gt;
     Excavation:&lt;br /&gt;
         Level_Cap: 200&lt;br /&gt;
         Requires_Shovel: true&lt;br /&gt;
     Fishing:&lt;br /&gt;
         Level_Cap: 100&lt;br /&gt;
     Herblore:&lt;br /&gt;
         Level_Cap: 200&lt;br /&gt;
         Green_Thumb:&lt;br /&gt;
             Cobble_To_Mossy: true&lt;br /&gt;
     Mining:&lt;br /&gt;
         Level_Cap: 200&lt;br /&gt;
         Requires_Pickaxe: true&lt;br /&gt;
     Smithing:&lt;br /&gt;
         Level_Cap: 200&lt;br /&gt;
         Leather:&lt;br /&gt;
             ID: 334&lt;br /&gt;
         String:&lt;br /&gt;
             Name: Leather&lt;br /&gt;
             ID: 287&lt;br /&gt;
         Stone:&lt;br /&gt;
             Name: Cobblestone&lt;br /&gt;
             ID: 4&lt;br /&gt;
         Wood:&lt;br /&gt;
             Name: Wood Planks&lt;br /&gt;
             ID: 5&lt;br /&gt;
         Gold:&lt;br /&gt;
             Name: Gold Bars&lt;br /&gt;
             ID: 266&lt;br /&gt;
         Anvil_Messages: true&lt;br /&gt;
         Diamond:&lt;br /&gt;
             Name: Diamond&lt;br /&gt;
             Level_Required: 50&lt;br /&gt;
             ID: 264&lt;br /&gt;
         Iron:&lt;br /&gt;
             Name: Iron Bars&lt;br /&gt;
             ID: 265&lt;br /&gt;
     Attack:&lt;br /&gt;
         Level_Cap: 200&lt;br /&gt;
     Summoning:&lt;br /&gt;
         Level_Cap: 200&lt;br /&gt;
         Call_Of_The_Wild:&lt;br /&gt;
             Bones_Required: 10&lt;br /&gt;
     Defence:&lt;br /&gt;
         Level_Cap: 200&lt;br /&gt;
     Woodcutting:&lt;br /&gt;
         Level_Cap: 200&lt;br /&gt;
         Requires_Axe: true&lt;br /&gt;
[[Category:Configuration]]&lt;br /&gt;
&lt;br /&gt;
=== Localization ===&lt;br /&gt;
&lt;br /&gt;
{{Stub}}&lt;br /&gt;
First of all use an archive program like WinRar or 7zip to open up mcMMO.jar and navigate to com\gmail\nossr50\locale\ inside the Jar file. Here you will see a file called locale_en_US.properties this is the localization file for en_US and will be the template for other languages. You can either modify all strings in this file or copy it and start making a new file for localization.&lt;br /&gt;
&lt;br /&gt;
If you want to make a file for another language you would copy locale_en_US.properties and rename the en_US part of it to something else. Then inside mcmmo.properties you will change the localization file setting from en_US to whatever the new files name is. You would have to add your new localization file to the same location in mcMMO.jar that messages_en_US.properties is in. For example, If you were translating mcMMO to Mexican Spanish you would name it es_MX. If you want to know what the correct name for your localization would be you can check the [http://en.wikipedia.org/wiki/ISO_639-1 ISO 639-1 Table]. I&#039;ll probably change these files to be located inside your plugins folder in future versions.&lt;br /&gt;
&lt;br /&gt;
Anyways theres a few things you should know about the localization files, they use special words to insert color codes, for example &amp;lt;nowiki&amp;gt;[[GREEN]]&amp;lt;/nowiki&amp;gt; will insert the green color code. These are based on the ChatColor bukkit uses found [https://github.com/Bukkit/Bukkit/blob/master/src/main/java/org/bukkit/ChatColor.java in this source file]. So if you want to insert RED used in bukkit, write &amp;lt;nowiki&amp;gt;[[RED]]&amp;lt;/nowiki&amp;gt; in the localization file.&lt;br /&gt;
&lt;br /&gt;
If you fully translate mcMMO into another language [[User talk:Nossr50|contact Nossr50]] to get it included into mcMMO.&lt;br /&gt;
&lt;br /&gt;
=== Permissions ===&lt;br /&gt;
&lt;br /&gt;
;Party&lt;br /&gt;
: Allows players to enter a party using /party &amp;lt;party name&amp;gt;&lt;br /&gt;
: &#039;mcmmo.commands.party&#039;&lt;br /&gt;
&lt;br /&gt;
;Party Teleport&lt;br /&gt;
: Let players use the party teleport command.&lt;br /&gt;
: &#039;mcmmo.commands.ptp&#039;&lt;br /&gt;
&lt;br /&gt;
;Mining Ability&lt;br /&gt;
: Allows the use of the [[Mining#Ability|Super Breaker]] ability.&lt;br /&gt;
: &#039;mcmmo.ability.mining&#039;&lt;br /&gt;
&lt;br /&gt;
;Axes Ability&lt;br /&gt;
: Allows the use of the [[Axes#Ability|Skull Splitter]] ability.&lt;br /&gt;
: &#039;mcmmo.ability.axes&#039;&lt;br /&gt;
&lt;br /&gt;
;Excavation Ability&lt;br /&gt;
: Allows the use of the [[Excavation#Ability|Giga Drill Breaker]] ability.&lt;br /&gt;
: &#039;mcmmo.ability.excavation&#039;&lt;br /&gt;
&lt;br /&gt;
;Swords Ability&lt;br /&gt;
: Allows the use of the [[Swords#Ability|Serrated Strike]] ability.&lt;br /&gt;
: &#039;mcmmo.ability.swords&#039;&lt;br /&gt;
&lt;br /&gt;
;Unarmed Ability&lt;br /&gt;
: Allows the use of the [[Unarmed#Ability|Beserk]] ability.&lt;br /&gt;
: &#039;mcmmo.ability.unarmed&#039;&lt;br /&gt;
&lt;br /&gt;
====[[:Category:Skills|Skills]]====&lt;br /&gt;
;All Skills&lt;br /&gt;
: Allows access to all of the skills. Recommended.&lt;br /&gt;
: &#039;mcmmo.skills.*&#039;&lt;br /&gt;
&lt;br /&gt;
;Mining&lt;br /&gt;
: Allows the use of the [[Mining]] skill.&lt;br /&gt;
: &#039;mcmmo.skills.mining&#039;&lt;br /&gt;
&lt;br /&gt;
;Woodcutting&lt;br /&gt;
: Allows the use of the [[Woodcutting]] skill.&lt;br /&gt;
: &#039;mcmmo.skills.woodcutting&#039;&lt;br /&gt;
&lt;br /&gt;
;Repair&lt;br /&gt;
: Allows the use of the [[Repair]] skill.&lt;br /&gt;
: &#039;mcmmo.skills.repair&#039;&lt;br /&gt;
&lt;br /&gt;
;Unarmed&lt;br /&gt;
: Allows the use of the [[Unarmed]] skill.&lt;br /&gt;
: &#039;mcmmo.skills.unarmed&#039;&lt;br /&gt;
&lt;br /&gt;
;Archery&lt;br /&gt;
: Allows the use of the [[Archery]] skill.&lt;br /&gt;
: &#039;mcmmo.skills.archery&#039;&lt;br /&gt;
&lt;br /&gt;
;Herbalism&lt;br /&gt;
: Allows the use of the [[Herbalism]] skills.&lt;br /&gt;
: &#039;mcmmo.skills.herbalism&#039;&lt;br /&gt;
&lt;br /&gt;
;Excavation&lt;br /&gt;
: Allows the use of the [[Excavation]] skill.&lt;br /&gt;
: &#039;mcmmo.skills.excavation&#039;&lt;br /&gt;
&lt;br /&gt;
;Swords&lt;br /&gt;
: Allows the use of the [[Swords]] skill.&lt;br /&gt;
: &#039;mcmmo.skills.swords&#039;&lt;br /&gt;
&lt;br /&gt;
;Acrobatics&lt;br /&gt;
: Allows the use of the [[Acrobatics]] skill.&lt;br /&gt;
: &#039;mcmmo.skills.acrobatics&#039;&lt;br /&gt;
&lt;br /&gt;
;Axes&lt;br /&gt;
: Allows the use of the [[Axes]] skill.&lt;br /&gt;
: &#039;mcmmo.skills.axes&#039;.&lt;br /&gt;
&lt;br /&gt;
;Taming&lt;br /&gt;
: Allows the use of the [[Taming]] skill.&lt;br /&gt;
: &#039;mcmmo.skills.taming&#039;.&lt;br /&gt;
&lt;br /&gt;
;&lt;br /&gt;
;&lt;br /&gt;
&lt;br /&gt;
=== API ===&lt;br /&gt;
&amp;lt;p&amp;gt;The mcMMO API is a new utility to mcMMO. It is used with the new events system, to make it easy.&amp;lt;/p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;The basic syntax goes like this:&amp;lt;/p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background: #DDD;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;package packagename;&amp;lt;br /&amp;gt;import com.gmail.nossr50.events.McMMOPlayerLevelUpEvent;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;public class MyListener implements Listener {&amp;lt;br /&amp;gt; &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;@EventHandler&amp;lt;br /&amp;gt;  public void onPlayerLevelUp(McMMOPlayerLevelUpEvent event) {&amp;lt;br /&amp;gt;      Player player = event.getPlayer();&amp;lt;br /&amp;gt;      SkillType skill = event.getSkill();&amp;lt;br /&amp;gt;  }&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;}&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;That would be your Listener class. Now, you just add this line into your public void onEnable():&amp;lt;/p&amp;gt;&amp;lt;div style=&amp;quot;background: #DDD;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Bukkit.getServer().getPluginManager().registerEvents(new MyListener(this), this);&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;From there you can extend and add more features. :D&amp;lt;/p&amp;gt;&lt;br /&gt;
[[Category:API]]&lt;br /&gt;
&lt;br /&gt;
=== Compatible Software ===&lt;br /&gt;
[[File:ZombiePigmanFace.png|right|zombie pig man]]&lt;br /&gt;
These plugins are plugins that are either add extra functions to McMMO (i.e. Money2Xp allows the purchase of experience through iConomy) or a web page that display stats or features to a web page.&lt;br /&gt;
====WS:====&lt;br /&gt;
[http://forums.bukkit.org/threads/info-web-ws-v0-2-web-stat-page-for-mcmmo-740.15315/ WS] is a simple WebStat page for McMMo. It is currently updated for [http://bukkit.org bukkit] build #740 and is compatible with McMMO V1.0.05 or later (because it uses mySQL). The respective topic on the [http://forums.bukkit.org bukkit forums] can be found [http://forums.bukkit.org/threads/info-web-ws-v0-2-web-stat-page-for-mcmmo-740.15315/ here] .&lt;br /&gt;
====McMMO Web Stats:====&lt;br /&gt;
mcMMO Web Stats is a simple PHP page you can link to directly or include in an existing page to display the mcMMO stats of every player on your server. Think of it like a character sheet for your players. It&#039;s respective [http://forums.bukkit.org bukkit forum] topic can be found [http://forums.bukkit.org/threads/info-web-mcmmo-web-stats-v1-1-a-web-based-view-of-your-mcmmo-stats-0-556.9815/ here]. It is confirmed to be compatible with McMMO V0.9.2 and later.&lt;br /&gt;
&lt;br /&gt;
====Money2Xp:====&lt;br /&gt;
[http://forums.bukkit.org/threads/mech-econ-money2xp-v0-2-3-train-your-mcmmo-skills-using-money-now-with-zones-740.11831/ Money2Xp] is a slightly complicated (but very clever) plugin that allows the purchase of McMMO skill experience, with support for the [http://forums.bukkit.org/threads/econ-iconomy-5-0-eruanna-602-740.40/ iConomy] and [http://forums.bukkit.org/threads/econ-boseconomy-v0-6-2-simple-server-economy-714.4874/ BOSEconomy] plugins. It also requires the [http://forums.bukkit.org/threads/admn-dev-permissions-v2-7-2-phoenix-now-with-real-multiworld-permissions-740.5974/ Permissions] plugin and a McMMO version of 1.0 or later. It is currently updated for [http://bukkit.org bukkit] build #740 and the forum topic can be found [http://forums.bukkit.org/threads/mech-econ-money2xp-v0-2-3-train-your-mcmmo-skills-using-money-now-with-zones-740.11831/ here] .&lt;br /&gt;
&lt;br /&gt;
:) discontinued&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
====VirtualChest:====&lt;br /&gt;
[http://forums.bukkit.org/threads/gen-mech-virtualchest-3-6-1-have-a-chest-with-you-everywhere-iconomy-5-0-4-6-permissions-740.11695/ VirtualChest] is not a plugin that adapts or adds an existing feature - it is &amp;quot;A Virtual Chest is a chest that can&#039;t be accessed in the &amp;quot;physical world of minecraft&amp;quot; - there is no block, nothing&amp;quot;, with added support for McMMO parties (more than one player may access it if they are in an McMMO party). The [http://forums.bukkit.org bukkit forum] topic can be found [http://forums.bukkit.org/threads/gen-mech-virtualchest-3-6-1-have-a-chest-with-you-everywhere-iconomy-5-0-4-6-permissions-740.11695/ here], and the plugin is currently updated for bukkit build #740.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Admin Video ===&lt;br /&gt;
在Wiki上未编辑&lt;br /&gt;
&lt;br /&gt;
=== Source Code ===&lt;br /&gt;
https://github.com/mcMMO-Dev/mcMMO&lt;/div&gt;</summary>
		<author><name>Minedx</name></author>
	</entry>
	<entry>
		<id>https://mineplugin.org/index.php?title=McMMO&amp;diff=1242</id>
		<title>McMMO</title>
		<link rel="alternate" type="text/html" href="https://mineplugin.org/index.php?title=McMMO&amp;diff=1242"/>
		<updated>2015-08-11T03:26:43Z</updated>

		<summary type="html">&lt;p&gt;Minedx：​McMMO Bukkit发布帖 翻译已完成&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;http://dev.bukkit.org/bukkit-plugins/mcmmo/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==McMMO 指令==&lt;br /&gt;
&lt;br /&gt;
说明:&lt;br /&gt;
&lt;br /&gt;
显示简介和完整的指令列表.&lt;br /&gt;
&lt;br /&gt;
输入方法:&lt;br /&gt;
&lt;br /&gt;
/mcmmo [commands]&lt;br /&gt;
&lt;br /&gt;
别名:&lt;br /&gt;
&lt;br /&gt;
无&lt;br /&gt;
&lt;br /&gt;
权限节点:&lt;br /&gt;
&lt;br /&gt;
无&lt;br /&gt;
&lt;br /&gt;
详细内容:&lt;br /&gt;
&lt;br /&gt;
显示简介和完整的指令列表.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===•McStats 指令===&lt;br /&gt;
&lt;br /&gt;
说明:&lt;br /&gt;
&lt;br /&gt;
显示你的 mcMMO 等级和经验.&lt;br /&gt;
&lt;br /&gt;
输入方法:&lt;br /&gt;
&lt;br /&gt;
/mcstats&lt;br /&gt;
&lt;br /&gt;
别名:&lt;br /&gt;
&lt;br /&gt;
/stats&lt;br /&gt;
&lt;br /&gt;
权限节点:&lt;br /&gt;
&lt;br /&gt;
无&lt;br /&gt;
&lt;br /&gt;
详细内容:&lt;br /&gt;
&lt;br /&gt;
显示你的 mcMMO 等级和经验.&lt;br /&gt;
&lt;br /&gt;
==组队指令相关==&lt;br /&gt;
&lt;br /&gt;
===ptp 指令===&lt;br /&gt;
&lt;br /&gt;
说明:&lt;br /&gt;
&lt;br /&gt;
传送到一个组队成员附近.&lt;br /&gt;
&lt;br /&gt;
输入方法:&lt;br /&gt;
&lt;br /&gt;
/ptp [name]&lt;br /&gt;
&lt;br /&gt;
例如:&lt;br /&gt;
&lt;br /&gt;
/ptp nossr50&lt;br /&gt;
&lt;br /&gt;
别名:&lt;br /&gt;
&lt;br /&gt;
无&lt;br /&gt;
&lt;br /&gt;
权限节点:&lt;br /&gt;
&lt;br /&gt;
mcmmo.commands.ptp&lt;br /&gt;
&lt;br /&gt;
详细内容:&lt;br /&gt;
&lt;br /&gt;
你可以输入ptp指令,传送到一个组队成员附近.&lt;br /&gt;
&lt;br /&gt;
===party 指令===&lt;br /&gt;
&lt;br /&gt;
说明:&lt;br /&gt;
&lt;br /&gt;
管理你的组队相关内容&lt;br /&gt;
&lt;br /&gt;
输入方法:&lt;br /&gt;
&lt;br /&gt;
/party 查看队伍详细信息.&lt;br /&gt;
/party create &amp;lt;队伍名&amp;gt; &amp;lt;密码&amp;gt; 创建一个队伍.&lt;br /&gt;
/party join &amp;lt;队伍名&amp;gt; &amp;lt;密码&amp;gt; 加入一个玩家队伍.&lt;br /&gt;
/party invite &amp;lt;玩家名&amp;gt; 邀请一个玩家加入你的队伍.&lt;br /&gt;
/party accept &amp;lt;玩家名&amp;gt; 允许一个玩家加入你的队伍.&lt;br /&gt;
/party password &amp;lt;密码&amp;gt; 设置你现在拥有队伍的密码.&lt;br /&gt;
/party kick &amp;lt;玩家名&amp;gt; 将一个玩家移除队伍.&lt;br /&gt;
/party owner &amp;lt;玩家名&amp;gt; 将队伍转让给一个玩家.&lt;br /&gt;
/party expshare [无/equal] 设置队伍经验共享.&lt;br /&gt;
/party lock 锁定队伍.&lt;br /&gt;
/party unlock 解锁队伍.&lt;br /&gt;
/party q 离开你目前所在的队伍.&lt;br /&gt;
/party ? 关于组队的更多信息.&lt;br /&gt;
&lt;br /&gt;
例如:&lt;br /&gt;
&lt;br /&gt;
/party create CoolGrindersParty pass1234&lt;br /&gt;
&lt;br /&gt;
别名:&lt;br /&gt;
&lt;br /&gt;
无&lt;br /&gt;
&lt;br /&gt;
权限节点:&lt;br /&gt;
&lt;br /&gt;
mcmmo.commands.party&lt;br /&gt;
&lt;br /&gt;
详细内容:&lt;br /&gt;
&lt;br /&gt;
通过party指令，你可以创建一个队伍或加入一个队伍。&lt;br /&gt;
&lt;br /&gt;
===partychat 指令===&lt;br /&gt;
&lt;br /&gt;
说明:&lt;br /&gt;
&lt;br /&gt;
设置组队聊天打开/关闭或发送一条队伍聊天信息.&lt;br /&gt;
&lt;br /&gt;
输入方法:&lt;br /&gt;
&lt;br /&gt;
/partychat [message]&lt;br /&gt;
&lt;br /&gt;
例如:&lt;br /&gt;
&lt;br /&gt;
/pc hello! (译者注:发送一条队伍聊天信息)&lt;br /&gt;
/partychat (译者注:设置队伍聊天开关)&lt;br /&gt;
&lt;br /&gt;
别名:&lt;br /&gt;
&lt;br /&gt;
p pc&lt;br /&gt;
&lt;br /&gt;
权限节点:&lt;br /&gt;
&lt;br /&gt;
mcmmo.chat.partychat&lt;br /&gt;
&lt;br /&gt;
详细内容:&lt;br /&gt;
&lt;br /&gt;
通过这个指令,你可以和你的组队成员在你们的私人领域聊天,只有你们自己的组员才能看到这些消息。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==adminchat 指令==&lt;br /&gt;
&lt;br /&gt;
说明:&lt;br /&gt;
&lt;br /&gt;
设置管理员聊天打开/关闭或发送一条队伍聊天信息.&lt;br /&gt;
&lt;br /&gt;
输入方法:&lt;br /&gt;
&lt;br /&gt;
/adminchat /a [message]&lt;br /&gt;
&lt;br /&gt;
别名:&lt;br /&gt;
&lt;br /&gt;
/a&lt;br /&gt;
/ac&lt;br /&gt;
&lt;br /&gt;
权限节点:&lt;br /&gt;
&lt;br /&gt;
mcmmo.chat.adminchat&lt;br /&gt;
&lt;br /&gt;
详细内容:&lt;br /&gt;
&lt;br /&gt;
设置管理员聊天打开/关闭或发送一条队伍聊天信息，只有拥有指定权限节点(译者注:权限节点即为mcmmo.chat.adminchat)&lt;br /&gt;
&lt;br /&gt;
==mcrefresh 指令==&lt;br /&gt;
&lt;br /&gt;
说明:&lt;br /&gt;
&lt;br /&gt;
重置某个玩家McMMO的所有冷却时间&lt;br /&gt;
&lt;br /&gt;
输入方法:&lt;br /&gt;
&lt;br /&gt;
/mcrefresh [player]&lt;br /&gt;
&lt;br /&gt;
别名:&lt;br /&gt;
&lt;br /&gt;
无&lt;br /&gt;
&lt;br /&gt;
权限节点:&lt;br /&gt;
&lt;br /&gt;
mcmmo.commands.mcrefresh&lt;br /&gt;
mcmmo.commands.mcrefresh.others&lt;br /&gt;
&lt;br /&gt;
详细内容:&lt;br /&gt;
&lt;br /&gt;
With this command, you can refresh your own ability cool downs, or those of the targeted player.&lt;br /&gt;
&lt;br /&gt;
==mcgod 指令==&lt;br /&gt;
&lt;br /&gt;
说明:&lt;br /&gt;
&lt;br /&gt;
McMMO 上帝模式的开关.&lt;br /&gt;
&lt;br /&gt;
输入方法:&lt;br /&gt;
&lt;br /&gt;
/mcgod [player]&lt;br /&gt;
&lt;br /&gt;
别名:&lt;br /&gt;
&lt;br /&gt;
无&lt;br /&gt;
&lt;br /&gt;
权限节点:&lt;br /&gt;
&lt;br /&gt;
mcmmo.commands.mcgod&lt;br /&gt;
mcmmo.commands.mcgod.others&lt;br /&gt;
&lt;br /&gt;
详细内容:&lt;br /&gt;
&lt;br /&gt;
你可以用这个指令控制你/其他人McMMO上帝模式的开关,在此模式下你是无敌的.&lt;br /&gt;
&lt;br /&gt;
==xprate 指令==&lt;br /&gt;
&lt;br /&gt;
说明:&lt;br /&gt;
&lt;br /&gt;
设置经验比例或重置经验比例.&lt;br /&gt;
&lt;br /&gt;
输入方法:&lt;br /&gt;
&lt;br /&gt;
/xprate [rate] &lt;br /&gt;
/xprate reset&lt;br /&gt;
&lt;br /&gt;
别名:&lt;br /&gt;
&lt;br /&gt;
/mcxprate&lt;br /&gt;
&lt;br /&gt;
权限节点:&lt;br /&gt;
&lt;br /&gt;
mcmmo.commands.xprate.all&lt;br /&gt;
mcmmo.commands.xprate&lt;br /&gt;
mcmmo.commands.xprate.reset&lt;br /&gt;
mcmmo.commands.xprate.set&lt;br /&gt;
&lt;br /&gt;
详细内容:&lt;br /&gt;
&lt;br /&gt;
你可以输入这个指令开启一次McMMO经验加成的活动.例如输入/xprate 2开启一次全体双倍经验的活动！所有人皆享有经验加成！&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==mmoedit 指令==&lt;br /&gt;
&lt;br /&gt;
说明:&lt;br /&gt;
&lt;br /&gt;
修改某个玩家的McMMO技能等级.&lt;br /&gt;
&lt;br /&gt;
输入方法:&lt;br /&gt;
&lt;br /&gt;
/mmoedit [player] &amp;lt;skill&amp;gt; &amp;lt;level&amp;gt;&lt;br /&gt;
&lt;br /&gt;
别名:&lt;br /&gt;
&lt;br /&gt;
无&lt;br /&gt;
&lt;br /&gt;
权限节点:&lt;br /&gt;
&lt;br /&gt;
mcmmo.commands.mmoedit&lt;br /&gt;
mcmmo.commands.mmoedit.others&lt;br /&gt;
&lt;br /&gt;
详细内容:&lt;br /&gt;
&lt;br /&gt;
这个指令是用来修改玩家某个技能的等级的.输入 /mmoedit nossr50 herbalism 613 会设置玩家 nossr50 的 Herbalism 技能等级为 613.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==addxp 指令==&lt;br /&gt;
&lt;br /&gt;
说明:&lt;br /&gt;
&lt;br /&gt;
向一名玩家增加某技能的经验.&lt;br /&gt;
&lt;br /&gt;
输入方法:&lt;br /&gt;
&lt;br /&gt;
/addxp [player] &amp;lt;skill&amp;gt; &amp;lt;xp&amp;gt;&lt;br /&gt;
&lt;br /&gt;
别名:&lt;br /&gt;
&lt;br /&gt;
无&lt;br /&gt;
&lt;br /&gt;
权限节点:&lt;br /&gt;
&lt;br /&gt;
mcmmo.commands.addxp&lt;br /&gt;
mcmmo.commands.addxp.others&lt;br /&gt;
&lt;br /&gt;
详细内容:&lt;br /&gt;
&lt;br /&gt;
这个指令是用来给一名玩家加某个技能的经验的.使用/addxp nossr50 mining 45 会给 nossr50 增加45点 Mining 技能的经验.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==addlevels 指令==&lt;br /&gt;
&lt;br /&gt;
说明:&lt;br /&gt;
&lt;br /&gt;
添加一个玩家的McMMO等级.&lt;br /&gt;
&lt;br /&gt;
输入方法:&lt;br /&gt;
&lt;br /&gt;
/addlevels [player] &amp;lt;技能名&amp;gt; &amp;lt;等级&amp;gt;&lt;br /&gt;
&lt;br /&gt;
别名:&lt;br /&gt;
&lt;br /&gt;
无&lt;br /&gt;
&lt;br /&gt;
权限节点:&lt;br /&gt;
&lt;br /&gt;
mcmmo.commands.addlevels&lt;br /&gt;
mcmmo.commands.addlevels.others&lt;br /&gt;
&lt;br /&gt;
详细内容:&lt;br /&gt;
&lt;br /&gt;
这个指令可以用来给某个用户增加技能等级.输入 /addlevels nossr50 acrobatics 12 会在玩家 nossr50 现有的 Acrobatics 等级上加12.&lt;br /&gt;
&lt;br /&gt;
==mcremove 指令==&lt;br /&gt;
&lt;br /&gt;
说明:&lt;br /&gt;
&lt;br /&gt;
将一个用户从数据库移除.&lt;br /&gt;
&lt;br /&gt;
输入方法:&lt;br /&gt;
&lt;br /&gt;
/mcremove [player]&lt;br /&gt;
&lt;br /&gt;
别名:&lt;br /&gt;
&lt;br /&gt;
无&lt;br /&gt;
&lt;br /&gt;
权限节点:&lt;br /&gt;
&lt;br /&gt;
mcmmo.commands.mcremove&lt;br /&gt;
&lt;br /&gt;
详细内容:&lt;br /&gt;
&lt;br /&gt;
这个指令会将玩家从数据库移除.输入 /mcremove nossr50 会将 nossr50 从数据库中移除.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==skillreset 指令==&lt;br /&gt;
&lt;br /&gt;
说明:&lt;br /&gt;
&lt;br /&gt;
重置一个或你全部的mcmmo技能等级.&lt;br /&gt;
&lt;br /&gt;
输入方法:&lt;br /&gt;
&lt;br /&gt;
/skillreset [player] &amp;lt;skill&amp;gt;&lt;br /&gt;
&lt;br /&gt;
别名:&lt;br /&gt;
&lt;br /&gt;
无&lt;br /&gt;
&lt;br /&gt;
权限节点:&lt;br /&gt;
&lt;br /&gt;
mcmmo.commands.skillreset&lt;br /&gt;
mcmmo.commands.skillreset.acrobatics mcmmo.commands.skillreset.archery mcmmo.commands.skillreset.axes mcmmo.commands.skillreset.excavation mcmmo.commands.skillreset.fishing mcmmo.commands.skillreset.herbalism mcmmo.commands.skillreset.mining mcmmo.commands.skillreset.others.all mcmmo.commands.skillreset.repair mcmmo.commands.skillreset.smelting mcmmo.commands.skillreset.swords mcmmo.commands.skillreset.taming mcmmo.commands.skillreset.unarmed mcmmo.commands.skillreset.woodcutting&lt;br /&gt;
&lt;br /&gt;
详细内容:&lt;br /&gt;
&lt;br /&gt;
重置一个或你全部的mcmmo技能等级.This command is used to reset a users skill level. Using /skillreset nossr50 herbalism will set nossr50&#039;s Herbalism level and experience to 0. Using /skillreset will reset your own stats for every skill.&lt;br /&gt;
&lt;br /&gt;
==mcpurge 指令==&lt;br /&gt;
&lt;br /&gt;
说明:&lt;br /&gt;
&lt;br /&gt;
从服务器数据库中清除0技能等级的用户或者未在几个月内登陆过的用户.&lt;br /&gt;
&lt;br /&gt;
输入方法:&lt;br /&gt;
&lt;br /&gt;
/mcpurge&lt;br /&gt;
&lt;br /&gt;
别名:&lt;br /&gt;
&lt;br /&gt;
无&lt;br /&gt;
&lt;br /&gt;
权限节点:&lt;br /&gt;
&lt;br /&gt;
mcmmo.commands.mcpurge&lt;br /&gt;
&lt;br /&gt;
详细内容:&lt;br /&gt;
&lt;br /&gt;
使用 /mcpurge 会立即在服务器数据库中启动一个清理进程,默认的McMMO设定下会清除一切无作为和6个月内从未连接过服务器的玩家.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==mcconvert 指令==&lt;br /&gt;
&lt;br /&gt;
说明:&lt;br /&gt;
&lt;br /&gt;
从不同的数据库类型和格式类型间转换。&lt;br /&gt;
&lt;br /&gt;
输入方法:&lt;br /&gt;
&lt;br /&gt;
/mcconvert database &amp;lt;flatfile|sql&amp;gt; /mcconvert experience &amp;lt;linear|exponential&amp;gt;&lt;br /&gt;
&lt;br /&gt;
别名:&lt;br /&gt;
&lt;br /&gt;
无&lt;br /&gt;
&lt;br /&gt;
权限节点:&lt;br /&gt;
&lt;br /&gt;
mcmmo.commands.mcconvert&lt;br /&gt;
&lt;br /&gt;
详细内容:&lt;br /&gt;
&lt;br /&gt;
这个指令可以把一个无格式文件转换到MySQL数据库中, 反之亦然. 它也可以把一个不仅合规范的文本变成一个规范的文本.&lt;br /&gt;
&lt;br /&gt;
==mcimport 指令==&lt;br /&gt;
&lt;br /&gt;
说明:&lt;br /&gt;
&lt;br /&gt;
全自动生成插件设置文本.&lt;br /&gt;
&lt;br /&gt;
输入方法:&lt;br /&gt;
&lt;br /&gt;
/mcimport&lt;br /&gt;
&lt;br /&gt;
别名:&lt;br /&gt;
&lt;br /&gt;
无&lt;br /&gt;
&lt;br /&gt;
权限节点:&lt;br /&gt;
&lt;br /&gt;
mcmmo.commands.mcimport&lt;br /&gt;
&lt;br /&gt;
详细内容:&lt;br /&gt;
&lt;br /&gt;
这个指令可以用在从你的Cauldron启动日志中来导入并重生成插件设置,你需要至少1.7.x才能运行这个指令.&lt;br /&gt;
&lt;br /&gt;
创建一个 /mcMMO/mods/ 的文件夹. 将你的Cauldron 1.7+运行日志放到其中并重命名import.log.&lt;br /&gt;
&lt;br /&gt;
注意在系统创建时,最佳状态是每次启动或关闭服务器保存一次日志,或编辑你的日志文件使它只剩下你想导入的内容,这样可以有效加速导入速度.&lt;br /&gt;
&lt;br /&gt;
当服务器在运行时,你使用 /mcimport 时可以在控制台中看到导入进程,当导入完成后它将会全被导出到 /mcMMO/mods/output/.&lt;br /&gt;
&lt;br /&gt;
任何你放在文件夹中但名字不为import.log的设置文件,你需要手动让它们符合标准.&lt;br /&gt;
&lt;br /&gt;
现在你只需要把所有output文件夹中的内容整合起来,然后填入经验收益倍数.&lt;/div&gt;</summary>
		<author><name>Minedx</name></author>
	</entry>
	<entry>
		<id>https://mineplugin.org/index.php?title=McMMO&amp;diff=1237</id>
		<title>McMMO</title>
		<link rel="alternate" type="text/html" href="https://mineplugin.org/index.php?title=McMMO&amp;diff=1237"/>
		<updated>2015-08-10T15:45:34Z</updated>

		<summary type="html">&lt;p&gt;Minedx：​skillreset mark&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{待搬运}}&lt;br /&gt;
http://dev.bukkit.org/bukkit-plugins/mcmmo/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==McMMO 指令==&lt;br /&gt;
&lt;br /&gt;
说明:&lt;br /&gt;
&lt;br /&gt;
显示简介和完整的指令列表.&lt;br /&gt;
&lt;br /&gt;
输入方法:&lt;br /&gt;
&lt;br /&gt;
/mcmmo [commands]&lt;br /&gt;
&lt;br /&gt;
别名:&lt;br /&gt;
&lt;br /&gt;
无&lt;br /&gt;
&lt;br /&gt;
权限节点:&lt;br /&gt;
&lt;br /&gt;
无&lt;br /&gt;
&lt;br /&gt;
详细内容:&lt;br /&gt;
&lt;br /&gt;
显示简介和完整的指令列表.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===•McStats 指令===&lt;br /&gt;
&lt;br /&gt;
说明:&lt;br /&gt;
&lt;br /&gt;
显示你的 mcMMO 等级和经验.&lt;br /&gt;
&lt;br /&gt;
输入方法:&lt;br /&gt;
&lt;br /&gt;
/mcstats&lt;br /&gt;
&lt;br /&gt;
别名:&lt;br /&gt;
&lt;br /&gt;
/stats&lt;br /&gt;
&lt;br /&gt;
权限节点:&lt;br /&gt;
&lt;br /&gt;
无&lt;br /&gt;
&lt;br /&gt;
详细内容:&lt;br /&gt;
&lt;br /&gt;
显示你的 mcMMO 等级和经验.&lt;br /&gt;
&lt;br /&gt;
==组队指令相关==&lt;br /&gt;
&lt;br /&gt;
===ptp 指令===&lt;br /&gt;
&lt;br /&gt;
说明:&lt;br /&gt;
&lt;br /&gt;
传送到一个组队成员附近.&lt;br /&gt;
&lt;br /&gt;
输入方法:&lt;br /&gt;
&lt;br /&gt;
/ptp [name]&lt;br /&gt;
&lt;br /&gt;
例如:&lt;br /&gt;
&lt;br /&gt;
/ptp nossr50&lt;br /&gt;
&lt;br /&gt;
别名:&lt;br /&gt;
&lt;br /&gt;
无&lt;br /&gt;
&lt;br /&gt;
权限节点:&lt;br /&gt;
&lt;br /&gt;
mcmmo.commands.ptp&lt;br /&gt;
&lt;br /&gt;
详细内容:&lt;br /&gt;
&lt;br /&gt;
你可以输入ptp指令,传送到一个组队成员附近.&lt;br /&gt;
&lt;br /&gt;
===party 指令===&lt;br /&gt;
&lt;br /&gt;
说明:&lt;br /&gt;
&lt;br /&gt;
管理你的组队相关内容&lt;br /&gt;
&lt;br /&gt;
输入方法:&lt;br /&gt;
&lt;br /&gt;
/party 查看队伍详细信息.&lt;br /&gt;
/party create &amp;lt;队伍名&amp;gt; &amp;lt;密码&amp;gt; 创建一个队伍.&lt;br /&gt;
/party join &amp;lt;队伍名&amp;gt; &amp;lt;密码&amp;gt; 加入一个玩家队伍.&lt;br /&gt;
/party invite &amp;lt;玩家名&amp;gt; 邀请一个玩家加入你的队伍.&lt;br /&gt;
/party accept &amp;lt;玩家名&amp;gt; 允许一个玩家加入你的队伍.&lt;br /&gt;
/party password &amp;lt;密码&amp;gt; 设置你现在拥有队伍的密码.&lt;br /&gt;
/party kick &amp;lt;玩家名&amp;gt; 将一个玩家移除队伍.&lt;br /&gt;
/party owner &amp;lt;玩家名&amp;gt; 将队伍转让给一个玩家.&lt;br /&gt;
/party expshare [无/equal] 设置队伍经验共享.&lt;br /&gt;
/party lock 锁定队伍.&lt;br /&gt;
/party unlock 解锁队伍.&lt;br /&gt;
/party q 离开你目前所在的队伍.&lt;br /&gt;
/party ? 关于组队的更多信息.&lt;br /&gt;
&lt;br /&gt;
例如:&lt;br /&gt;
&lt;br /&gt;
/party create CoolGrindersParty pass1234&lt;br /&gt;
&lt;br /&gt;
别名:&lt;br /&gt;
&lt;br /&gt;
无&lt;br /&gt;
&lt;br /&gt;
权限节点:&lt;br /&gt;
&lt;br /&gt;
mcmmo.commands.party&lt;br /&gt;
&lt;br /&gt;
详细内容:&lt;br /&gt;
&lt;br /&gt;
通过party指令，你可以创建一个队伍或加入一个队伍。&lt;br /&gt;
&lt;br /&gt;
===partychat 指令===&lt;br /&gt;
&lt;br /&gt;
说明:&lt;br /&gt;
&lt;br /&gt;
设置组队聊天打开/关闭或发送一条队伍聊天信息.&lt;br /&gt;
&lt;br /&gt;
输入方法:&lt;br /&gt;
&lt;br /&gt;
/partychat [message]&lt;br /&gt;
&lt;br /&gt;
例如:&lt;br /&gt;
&lt;br /&gt;
/pc hello! (译者注:发送一条队伍聊天信息)&lt;br /&gt;
/partychat (译者注:设置队伍聊天开关)&lt;br /&gt;
&lt;br /&gt;
别名:&lt;br /&gt;
&lt;br /&gt;
p pc&lt;br /&gt;
&lt;br /&gt;
权限节点:&lt;br /&gt;
&lt;br /&gt;
mcmmo.chat.partychat&lt;br /&gt;
&lt;br /&gt;
详细内容:&lt;br /&gt;
&lt;br /&gt;
通过这个指令,你可以和你的组队成员在你们的私人领域聊天,只有你们自己的组员才能看到这些消息。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==adminchat 指令==&lt;br /&gt;
&lt;br /&gt;
说明:&lt;br /&gt;
&lt;br /&gt;
设置管理员聊天打开/关闭或发送一条队伍聊天信息.&lt;br /&gt;
&lt;br /&gt;
输入方法:&lt;br /&gt;
&lt;br /&gt;
/adminchat /a [message]&lt;br /&gt;
&lt;br /&gt;
别名:&lt;br /&gt;
&lt;br /&gt;
/a&lt;br /&gt;
/ac&lt;br /&gt;
&lt;br /&gt;
权限节点:&lt;br /&gt;
&lt;br /&gt;
mcmmo.chat.adminchat&lt;br /&gt;
&lt;br /&gt;
详细内容:&lt;br /&gt;
&lt;br /&gt;
设置管理员聊天打开/关闭或发送一条队伍聊天信息，只有拥有指定权限节点(译者注:权限节点即为mcmmo.chat.adminchat)&lt;br /&gt;
&lt;br /&gt;
==mcrefresh 指令==&lt;br /&gt;
&lt;br /&gt;
说明:&lt;br /&gt;
&lt;br /&gt;
重置某个玩家McMMO的所有冷却时间&lt;br /&gt;
&lt;br /&gt;
输入方法:&lt;br /&gt;
&lt;br /&gt;
/mcrefresh [player]&lt;br /&gt;
&lt;br /&gt;
别名:&lt;br /&gt;
&lt;br /&gt;
无&lt;br /&gt;
&lt;br /&gt;
权限节点:&lt;br /&gt;
&lt;br /&gt;
mcmmo.commands.mcrefresh&lt;br /&gt;
mcmmo.commands.mcrefresh.others&lt;br /&gt;
&lt;br /&gt;
详细内容:&lt;br /&gt;
&lt;br /&gt;
With this command, you can refresh your own ability cool downs, or those of the targeted player.&lt;br /&gt;
&lt;br /&gt;
==mcgod 指令==&lt;br /&gt;
&lt;br /&gt;
说明:&lt;br /&gt;
&lt;br /&gt;
McMMO 上帝模式的开关.&lt;br /&gt;
&lt;br /&gt;
输入方法:&lt;br /&gt;
&lt;br /&gt;
/mcgod [player]&lt;br /&gt;
&lt;br /&gt;
别名:&lt;br /&gt;
&lt;br /&gt;
无&lt;br /&gt;
&lt;br /&gt;
权限节点:&lt;br /&gt;
&lt;br /&gt;
mcmmo.commands.mcgod&lt;br /&gt;
mcmmo.commands.mcgod.others&lt;br /&gt;
&lt;br /&gt;
详细内容:&lt;br /&gt;
&lt;br /&gt;
你可以用这个指令控制你/其他人McMMO上帝模式的开关,在此模式下你是无敌的.&lt;br /&gt;
&lt;br /&gt;
==xprate 指令==&lt;br /&gt;
&lt;br /&gt;
说明:&lt;br /&gt;
&lt;br /&gt;
设置经验比例或重置经验比例.&lt;br /&gt;
&lt;br /&gt;
输入方法:&lt;br /&gt;
&lt;br /&gt;
/xprate [rate] &lt;br /&gt;
/xprate reset&lt;br /&gt;
&lt;br /&gt;
别名:&lt;br /&gt;
&lt;br /&gt;
/mcxprate&lt;br /&gt;
&lt;br /&gt;
权限节点:&lt;br /&gt;
&lt;br /&gt;
mcmmo.commands.xprate.all&lt;br /&gt;
mcmmo.commands.xprate&lt;br /&gt;
mcmmo.commands.xprate.reset&lt;br /&gt;
mcmmo.commands.xprate.set&lt;br /&gt;
&lt;br /&gt;
详细内容:&lt;br /&gt;
&lt;br /&gt;
你可以输入这个指令开启一次McMMO经验加成的活动.例如输入/xprate 2开启一次全体双倍经验的活动！所有人皆享有经验加成！&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==mmoedit 指令==&lt;br /&gt;
&lt;br /&gt;
说明:&lt;br /&gt;
&lt;br /&gt;
修改某个玩家的McMMO技能等级.&lt;br /&gt;
&lt;br /&gt;
输入方法:&lt;br /&gt;
&lt;br /&gt;
/mmoedit [player] &amp;lt;skill&amp;gt; &amp;lt;level&amp;gt;&lt;br /&gt;
&lt;br /&gt;
别名:&lt;br /&gt;
&lt;br /&gt;
无&lt;br /&gt;
&lt;br /&gt;
权限节点:&lt;br /&gt;
&lt;br /&gt;
mcmmo.commands.mmoedit&lt;br /&gt;
mcmmo.commands.mmoedit.others&lt;br /&gt;
&lt;br /&gt;
详细内容:&lt;br /&gt;
&lt;br /&gt;
这个指令是用来修改玩家某个技能的等级的.输入 /mmoedit nossr50 herbalism 613 会设置玩家 nossr50 的 Herbalism 技能等级为 613.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==addxp 指令==&lt;br /&gt;
&lt;br /&gt;
说明:&lt;br /&gt;
&lt;br /&gt;
向一名玩家增加某技能的经验.&lt;br /&gt;
&lt;br /&gt;
输入方法:&lt;br /&gt;
&lt;br /&gt;
/addxp [player] &amp;lt;skill&amp;gt; &amp;lt;xp&amp;gt;&lt;br /&gt;
&lt;br /&gt;
别名:&lt;br /&gt;
&lt;br /&gt;
无&lt;br /&gt;
&lt;br /&gt;
权限节点:&lt;br /&gt;
&lt;br /&gt;
mcmmo.commands.addxp&lt;br /&gt;
mcmmo.commands.addxp.others&lt;br /&gt;
&lt;br /&gt;
详细内容:&lt;br /&gt;
&lt;br /&gt;
这个指令是用来给一名玩家加某个技能的经验的.使用/addxp nossr50 mining 45 会给 nossr50 增加45点 Mining 技能的经验.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==addlevels 指令==&lt;br /&gt;
&lt;br /&gt;
说明:&lt;br /&gt;
&lt;br /&gt;
添加一个玩家的McMMO等级.&lt;br /&gt;
&lt;br /&gt;
输入方法:&lt;br /&gt;
&lt;br /&gt;
/addlevels [player] &amp;lt;技能名&amp;gt; &amp;lt;等级&amp;gt;&lt;br /&gt;
&lt;br /&gt;
别名:&lt;br /&gt;
&lt;br /&gt;
无&lt;br /&gt;
&lt;br /&gt;
权限节点:&lt;br /&gt;
&lt;br /&gt;
mcmmo.commands.addlevels&lt;br /&gt;
mcmmo.commands.addlevels.others&lt;br /&gt;
&lt;br /&gt;
详细内容:&lt;br /&gt;
&lt;br /&gt;
这个指令可以用来给某个用户增加技能等级.输入 /addlevels nossr50 acrobatics 12 会在玩家 nossr50 现有的 Acrobatics 等级上加12.&lt;br /&gt;
&lt;br /&gt;
==mcremove 指令==&lt;br /&gt;
&lt;br /&gt;
说明:&lt;br /&gt;
&lt;br /&gt;
将一个用户从数据库移除.&lt;br /&gt;
&lt;br /&gt;
输入方法:&lt;br /&gt;
&lt;br /&gt;
/mcremove [player]&lt;br /&gt;
&lt;br /&gt;
别名:&lt;br /&gt;
&lt;br /&gt;
无&lt;br /&gt;
&lt;br /&gt;
权限节点:&lt;br /&gt;
&lt;br /&gt;
mcmmo.commands.mcremove&lt;br /&gt;
&lt;br /&gt;
详细内容:&lt;br /&gt;
&lt;br /&gt;
这个指令会将玩家从数据库移除.输入 /mcremove nossr50 会将 nossr50 从数据库中移除.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
•skillreset Command&lt;br /&gt;
&lt;br /&gt;
说明:&lt;br /&gt;
&lt;br /&gt;
Reset the level of one or all of your skills.&lt;br /&gt;
&lt;br /&gt;
输入方法:&lt;br /&gt;
&lt;br /&gt;
/skillreset [player] &amp;lt;skill&amp;gt;&lt;br /&gt;
&lt;br /&gt;
别名:&lt;br /&gt;
&lt;br /&gt;
无&lt;br /&gt;
&lt;br /&gt;
权限节点:&lt;br /&gt;
&lt;br /&gt;
mcmmo.commands.skillreset&lt;br /&gt;
mcmmo.commands.skillreset.acrobatics mcmmo.commands.skillreset.archery mcmmo.commands.skillreset.axes mcmmo.commands.skillreset.excavation mcmmo.commands.skillreset.fishing mcmmo.commands.skillreset.herbalism mcmmo.commands.skillreset.mining mcmmo.commands.skillreset.others.all mcmmo.commands.skillreset.repair mcmmo.commands.skillreset.smelting mcmmo.commands.skillreset.swords mcmmo.commands.skillreset.taming mcmmo.commands.skillreset.unarmed mcmmo.commands.skillreset.woodcutting&lt;br /&gt;
&lt;br /&gt;
详细内容:&lt;br /&gt;
&lt;br /&gt;
This command is used to reset a users skill level. Using /skillreset nossr50 herbalism will set nossr50&#039;s Herbalism level and experience to 0. Using /skillreset will reset your own stats for every skill.&lt;br /&gt;
&lt;br /&gt;
==•mcpurge Command==&lt;br /&gt;
&lt;br /&gt;
说明:&lt;br /&gt;
&lt;br /&gt;
Purge users with 0 powerlevel and/or who haven&#039;t connected in several months from the server DB.&lt;br /&gt;
&lt;br /&gt;
输入方法:&lt;br /&gt;
&lt;br /&gt;
/mcpurge&lt;br /&gt;
&lt;br /&gt;
别名:&lt;br /&gt;
&lt;br /&gt;
无&lt;br /&gt;
&lt;br /&gt;
权限节点:&lt;br /&gt;
&lt;br /&gt;
mcmmo.commands.mcpurge&lt;br /&gt;
&lt;br /&gt;
详细内容:&lt;br /&gt;
&lt;br /&gt;
Using /mcpurge will immediately start a purge run using the settings in the config file. By default mcMMO will purge all powerless users and users who haven&#039;t connected in the last 6 months.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==•mcconvert Command==&lt;br /&gt;
&lt;br /&gt;
说明:&lt;br /&gt;
&lt;br /&gt;
Convert between different database and formula types.&lt;br /&gt;
&lt;br /&gt;
输入方法:&lt;br /&gt;
&lt;br /&gt;
/mcconvert database &amp;lt;flatfile|sql&amp;gt; /mcconvert experience &amp;lt;linear|exponential&amp;gt;&lt;br /&gt;
&lt;br /&gt;
别名:&lt;br /&gt;
&lt;br /&gt;
无&lt;br /&gt;
&lt;br /&gt;
权限节点:&lt;br /&gt;
&lt;br /&gt;
mcmmo.commands.mcconvert&lt;br /&gt;
&lt;br /&gt;
详细内容:&lt;br /&gt;
&lt;br /&gt;
This command can be used to convert a flatfile database to MySQL, or the other way round. It is also used to convert from a linear XP formula to an exponential shaped formula curve.&lt;br /&gt;
&lt;br /&gt;
==• mcimport Command==&lt;br /&gt;
&lt;br /&gt;
说明:&lt;br /&gt;
&lt;br /&gt;
Automagically generate mod config files, ready to be filled in.&lt;br /&gt;
&lt;br /&gt;
输入方法:&lt;br /&gt;
&lt;br /&gt;
/mcimport&lt;br /&gt;
&lt;br /&gt;
别名:&lt;br /&gt;
&lt;br /&gt;
无&lt;br /&gt;
&lt;br /&gt;
权限节点:&lt;br /&gt;
&lt;br /&gt;
mcmmo.commands.mcimport&lt;br /&gt;
&lt;br /&gt;
详细内容:&lt;br /&gt;
&lt;br /&gt;
This command can be used to import and generate mod config files from your Cauldron server&#039;s startup log. You need to use at least 1.7.x for this to work.&lt;br /&gt;
&lt;br /&gt;
Create a folder called import inside /mcMMO/mods/. Place your latest Cauldron 1.7+ startup log in this folder and rename it to import.log.&lt;br /&gt;
&lt;br /&gt;
It is worth noting that it&#039;s advisable to create a short log by starting and stopping the server once, or by manually editing the log file to only include material mapping in order to speed up the import process.&lt;br /&gt;
&lt;br /&gt;
When the server is running, use the command /mcimport. You will see the import progress in the console, once it is done the files are created in /mcMMO/mods/output/.&lt;br /&gt;
&lt;br /&gt;
Any item that wasn&#039;t recognised gets placed in a .unknown.yml config file, you need to handle these manually.&lt;br /&gt;
&lt;br /&gt;
Now you should have a whole bunch of &amp;quot;empty&amp;quot; mod config files and you just need to fill in the XP gains.&lt;/div&gt;</summary>
		<author><name>Minedx</name></author>
	</entry>
	<entry>
		<id>https://mineplugin.org/index.php?title=PermissionsEX&amp;diff=1112</id>
		<title>PermissionsEX</title>
		<link rel="alternate" type="text/html" href="https://mineplugin.org/index.php?title=PermissionsEX&amp;diff=1112"/>
		<updated>2015-07-20T04:59:46Z</updated>

		<summary type="html">&lt;p&gt;Minedx：​/* Permissions Inheritance Rules */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{待翻译}}&lt;br /&gt;
{{Bukkit Plugin Infobox&lt;br /&gt;
|插件名=PermissonEX(PEX)&lt;br /&gt;
|版本=v1.23.1&lt;br /&gt;
|前置插件=无&lt;br /&gt;
|兼容服务端版本=1.8.1&lt;br /&gt;
|網址=http://dev.bukkit.org/bukkit-plugins/permissionsex/&lt;br /&gt;
}}&lt;br /&gt;
=概述=&lt;br /&gt;
==介绍==&lt;br /&gt;
PermissionsEx (PEX) 是一个新的权限（组）, 基于权限组和它的所有功能. 但是PEX插件能做到更多！ 它提供了各式各样有力的后台和游戏内管理方式, 很好的限制了一些玩家对于服务器的修改.&lt;br /&gt;
&lt;br /&gt;
==现有特性==&lt;br /&gt;
版本V1.21开始支持UUID&lt;br /&gt;
不同的存储方式。目前的存储方式有:文本存储(YAML),数据库存储(MySQL，SQLite)。当然,也支持你自己添加！&lt;br /&gt;
YAML存储方式,对于新手,最容易配置的方式,所有玩家的信息都存储在 permission.yml 文件里面,缺点:后期读取可能出现卡顿。&lt;br /&gt;
SQL存储方式,对于有一定基础的人,推荐此方式，目前支持MySQL和SQLite，其他的数据库(如Postgre)也是可以的。PEX会自动创建数据库的表单。这就说明了,你只需要设置好PEX如何连接到数据库，剩余的你就只需要看着PEX自己完成了。&lt;br /&gt;
简明的构架和API接口，如果你对编程有一定了解，那么你可以改变很多。&lt;br /&gt;
全面的指令，你可以在游戏里/控制台，做到你想做的任何事情。指令列表看下文。&lt;br /&gt;
多世界 - 你可以设置一个玩家在某个世界的单独权限，比如在世界A不能破坏，在世界B不能拾取等等。(设置个别方块等权限,见下文)&lt;br /&gt;
权限组的继承，用户可以继承组的权限,组也可以继承组的权限，并且可以选择继承他们的权限、前缀、后缀。&lt;br /&gt;
权限的表达方式，这说明,如果你习惯于GroupManager,你也不用担心更换权限插件之后的不习惯。例子: - essentials.fly 这个权限就是允许玩家使用/fly指令&lt;br /&gt;
多世界权限继承，你可以继承不同世界的权限。也可以在不同世界继承不同的权限。&lt;br /&gt;
良好的优化，当你拥有大量用户的时候,你会发现没有延迟！&lt;br /&gt;
排行榜,你可以设置权限组的排列顺序&lt;br /&gt;
计时权限!你可以使用指令给玩家添加一个时限权限！注意:当服务端重启,或者崩溃将会失效。&lt;br /&gt;
V1.21.1版本开始 PEX支持自动更新,不过并不是跨阶段的更新,只支持BUG修复等更新,防止出现大更新,没有备份而导致文件丢失(V1.21.1→V1.21.2  而不是 V1.21.1 →V1.22.1),当然你也可以在config.yml文件中关闭更新。&lt;br /&gt;
Bukkit权限的兼容&lt;br /&gt;
禁用错误报告,在插件文件夹目录下创建一个文件,名为&#039;report-disable&#039;。&lt;br /&gt;
&lt;br /&gt;
=进阶权限管理=&lt;br /&gt;
===权限的继承 ===&lt;br /&gt;
&lt;br /&gt;
很多服务器配置了多个权限组, 添加权限要各组分别添加. 权限继承可以服务器管理最大限度的减少每一组重复的节点数量.&lt;br /&gt;
&lt;br /&gt;
这里假定您已经完成了基本教程，如还没有，请看基础权限知识，不然的话不能保证您能明白这里的每一步.&lt;br /&gt;
&lt;br /&gt;
实际上，使用了基本教程中的案例，你会发现Member, VIP 和Moderator组都有共同的节点 ,  modifyworld.* .这里不需要使用继承.&lt;br /&gt;
&lt;br /&gt;
===权限继承规则===&lt;br /&gt;
&lt;br /&gt;
当继承需要处理,PEX会遵循下列规则:&lt;br /&gt;
&lt;br /&gt;
对玩家的设置(前缀,后缀,权限节点,etc.)拥有比组更高的优先权.&lt;br /&gt;
设置给一个组的玩家权限在当玩家个人设置生效前被组中任意玩家继承.&lt;br /&gt;
Permission nodes are evaluated in order of the inheritance tree (see The Inheritance Tree for details)&lt;br /&gt;
A group set to inherit from another group will inherit everything (this includes other inheritance directives!) from the source group, not just permissions. For example, if you have group B inheriting from group A, and group A is set to inherit from group B, PEX will follow the inheritance chain on group A, which is set to inherit from B, which inherits from A, and so on. Watch for this, it will cause a loop that will crash PEX.&lt;br /&gt;
&lt;br /&gt;
===Converting Existing Groups To Use Inheritance ===&lt;br /&gt;
&lt;br /&gt;
Converting an existing group to use inheritance is easy with the pex group parents set command.&lt;br /&gt;
&lt;br /&gt;
Convert the VIP and Moderator groups&lt;br /&gt;
&lt;br /&gt;
 pex group VIP parents set Member&lt;br /&gt;
 pex group Moderator parents set VIP&lt;br /&gt;
 Remove the redundant nodes&lt;br /&gt;
&lt;br /&gt;
 pex group VIP remove modifyworld.*&lt;br /&gt;
 pex group Moderator remove modifyworld.*&lt;br /&gt;
At this point, the VIP and Moderator groups still have the same access as before as the VIP group inherits the modifyworld.* node from the Member group while adding the -modifyworld.mobtarget.monster.creeper node, and the Moderator group inherits it&#039;s nodes from the VIP group (including the nodes it inherited from the Member group) while adding the -modifyworld.mobtarget.* node.&lt;br /&gt;
&lt;br /&gt;
The relevant portion of the permissions file now looks like this:&lt;br /&gt;
&lt;br /&gt;
    Member:&lt;br /&gt;
        prefix: &#039;&amp;amp;0(&amp;amp;8M&amp;amp;7ember&amp;amp;0)&amp;amp;7 &#039;&lt;br /&gt;
        permissions:&lt;br /&gt;
        - modifyworld.*&lt;br /&gt;
        options:&lt;br /&gt;
            rank: &#039;900&#039;&lt;br /&gt;
    VIP:&lt;br /&gt;
        prefix: &#039;&amp;amp;0(&amp;amp;eVIP&amp;amp;0)&amp;amp;7 &#039;&lt;br /&gt;
        inheritance:&lt;br /&gt;
        - Member&lt;br /&gt;
        permissions:&lt;br /&gt;
        - -modifyworld.mobtarget.monster.creeper&lt;br /&gt;
        options:&lt;br /&gt;
            rank: &#039;800&#039;&lt;br /&gt;
    Moderator:&lt;br /&gt;
        prefix: &#039;&amp;amp;0(&amp;amp;1Moderator&amp;amp;0)&amp;amp;7 &#039;&lt;br /&gt;
        inheritance:&lt;br /&gt;
        - VIP&lt;br /&gt;
        permissions:&lt;br /&gt;
        - -modifyworld.mobtarget.*&lt;br /&gt;
        options:&lt;br /&gt;
            rank: &#039;100&#039;&lt;br /&gt;
It&#039;s not a large reduction with this example, but if a server has multiple groups with a dozen or more nodes in common with the groups, the file size savings can be considerable.&lt;br /&gt;
&lt;br /&gt;
This inheritance can also be applied at a world level for servers with multiple worlds. See the Multiworld inheritance section page for more.&lt;br /&gt;
&lt;br /&gt;
===The Inheritance Tree===&lt;br /&gt;
&lt;br /&gt;
(Thanks goes to aviator14 for use of these nodes)&lt;br /&gt;
&lt;br /&gt;
Due to the way PEX deals with file backends, it may help to view inheritance as a tree. For example, we have the following permission nodes:&lt;br /&gt;
&lt;br /&gt;
  Guest:&lt;br /&gt;
    prefix: &#039;&amp;amp;7&#039;&lt;br /&gt;
    default: true&lt;br /&gt;
    permissions: []&lt;br /&gt;
  Player:&lt;br /&gt;
    prefix: &#039;&amp;amp;f&#039;&lt;br /&gt;
    default: false&lt;br /&gt;
    permissions:&lt;br /&gt;
    - generic.user.permissions&lt;br /&gt;
    - -multiverse.access.world_creative&lt;br /&gt;
    - -multiverse.portal.access.end&lt;br /&gt;
    - multiverse.access.*&lt;br /&gt;
    - multiverse.core.coord&lt;br /&gt;
    - multiverse.core.info&lt;br /&gt;
    - multiverse.core.list.who&lt;br /&gt;
    - multiverse.portal.access.*&lt;br /&gt;
    inheritance:&lt;br /&gt;
    - Guest&lt;br /&gt;
  Donator:&lt;br /&gt;
    prefix: &#039;&amp;amp;5&#039;&lt;br /&gt;
    permissions:&lt;br /&gt;
    - generic.donor.permissions&lt;br /&gt;
    - multiverse.access.world_creative&lt;br /&gt;
    inheritance:&lt;br /&gt;
    - Player&lt;br /&gt;
  Supporter:&lt;br /&gt;
    prefix: &#039;&amp;amp;6&#039;&lt;br /&gt;
    permissions:&lt;br /&gt;
    - more.generic.donor.permissons&lt;br /&gt;
    - multiverse.portal.access.end&lt;br /&gt;
    inheritance:&lt;br /&gt;
    - Donator&lt;br /&gt;
  Moderator:&lt;br /&gt;
    prefix: &#039;&amp;amp;d&#039;&lt;br /&gt;
    permissions:&lt;br /&gt;
    - generic.moderator.permissions&lt;br /&gt;
    inheritance:&lt;br /&gt;
    - Player&lt;br /&gt;
  ModD:&lt;br /&gt;
    prefix: &#039;&amp;amp;d&#039;&lt;br /&gt;
    permissions: []&lt;br /&gt;
    inheritance:&lt;br /&gt;
    - Moderator&lt;br /&gt;
    - Donator&lt;br /&gt;
  ModS:&lt;br /&gt;
    prefix: &#039;&amp;amp;d&#039;&lt;br /&gt;
    permissions: []&lt;br /&gt;
    inheritance:&lt;br /&gt;
    - Moderator&lt;br /&gt;
    - Supporter&lt;br /&gt;
The original forum post these nodes came from was asking why the ModD group was not getting the multiverse.portal.access.end node it was inheriting from the Donator group. Well, the reason for this is because of the way PEX evaluates nodes in a file backend and the inheritance tree.&lt;br /&gt;
&lt;br /&gt;
An abbreviated version of the tree for the ModD group is this:&lt;br /&gt;
&lt;br /&gt;
ModD permissions (none)&lt;br /&gt;
Moderator (generic.moderator.permissions) which inherits from Player&lt;br /&gt;
Player (which has -multiverse.access.world_creative among others) and inherits from Guest&lt;br /&gt;
Guest (no permissions)&lt;br /&gt;
Donator (generic.donor.permissions, multiverse portal access node) which inherits from Player&lt;br /&gt;
Player (which has -multiverse.access.world_creative among others) and inherits from Guest&lt;br /&gt;
Guest (no permissions)&lt;br /&gt;
In this case, the issue was due to the Moderator tree being evaluated first, which finds the negation node for multiverse and stops looking. If the Donator tree was listed first (which was the suggested fix), PEX would follow that inheritance tree first, which has the multiverse permissions, and allow access to that node.&lt;br /&gt;
&lt;br /&gt;
===Regular Expressions (regex)===&lt;br /&gt;
&lt;br /&gt;
Regular Expressions, also known as regex or regexp, is a way to &#039;match&#039; strings of text, such as particular characters, words, or patterns of characters. PEX supports a subset of regex in it&#039;s permission node checks.&lt;br /&gt;
&lt;br /&gt;
PEX supports open and closed parentheses ( ) for grouping, curly braces { } for pattern matching, a pipe | for &amp;quot;or&amp;quot;, and a dash - for through (as in numbers 1 through 5).&lt;br /&gt;
&lt;br /&gt;
WARNING: If you have any nodes that use these characters then you MUST either put the line in quotes or escape with a backslash the character. If you do not, PEX may mistake the character as an attempt to use a regex, causing a Java error and rendering your permissions useless!&lt;br /&gt;
&lt;br /&gt;
To use it, place the conditions/keywords and/or id numbers in a group, separated by a pipe or a dash if wanting to cover multiple numbers in a sequence.&lt;br /&gt;
&lt;br /&gt;
If this is confusing, worry not. There is a reason why several technical book publishers sell books dedicated to regular expressions. Fortunately, for the purposes of PEX and permission nodes, it&#039;s much simpler to deal with, especially with examples of it in action.&lt;br /&gt;
&lt;br /&gt;
Assume that you have a group that you don&#039;t want opening the following:&lt;br /&gt;
&lt;br /&gt;
 Dispensers (&#039;dispenser&#039;, or 23)&lt;br /&gt;
 Chests (&#039;chest&#039;, or 54)&lt;br /&gt;
 Furnaces (&#039;furnace&#039;, or 61 unlit and &#039;burning_furnance&#039;, or 62 lit)&lt;br /&gt;
 Jukeboxes (&#039;jukebox&#039;, or 84)&lt;br /&gt;
 Remember to check your use-material-names node setting.&lt;br /&gt;
&lt;br /&gt;
You could have a set of nodes like this:&lt;br /&gt;
&lt;br /&gt;
 - -modifyworld.blocks.interact.dispenser&lt;br /&gt;
 - -modifyworld.blocks.interact.chest&lt;br /&gt;
 - -modifyworld.blocks.interact.furnace&lt;br /&gt;
 - -modifyworld.blocks.interact.burning_furnace&lt;br /&gt;
 - -modifyworld.blocks.interact.jukebox&lt;br /&gt;
However, this is unnecessary. Using the regex support in PEX, you can combine the nodes into a single line: - -modifyworld.blocks.interact.(dispenser|chest|burning_furnace|furnace|jukebox) - -modifyworld.blocks.interact.(23|54|61|62|84) (for use-material-names: false)&lt;br /&gt;
&lt;br /&gt;
If you wanted to keep a group from destroying stone (1), grass (2), dirt (3), and cobblestone (4), you can use modifyworld.blocks.destroy.(1-4)&lt;br /&gt;
&lt;br /&gt;
You can also use &#039;or&#039; on other parts of the node.&lt;br /&gt;
&lt;br /&gt;
Keeping with the previous example, adding the ability to place the blocks looks like modifyworld.blocks.(destroy|place).(1-4) Adding sand (12) to this example, you could use modifyworld.blocks.(destroy|place).(1-4|12)&lt;br /&gt;
&lt;br /&gt;
Adding this to a group, such as the default group, is as simple as using the pex group &amp;lt;group&amp;gt; add &amp;lt;node&amp;gt; command.&lt;br /&gt;
&lt;br /&gt;
pex group default add modifyworld.blocks.(destroy|place).(1-4|12)&lt;br /&gt;
Any extra nodes can be removed with the pex group &amp;lt;group&amp;gt; remove &amp;lt;node&amp;gt; command. See Commands for more on the add/remove commands.&lt;br /&gt;
&lt;br /&gt;
For advanced users, users can place a $ character directly in front of the node (after any other flag characters) to prevent PEX from performing regex escaping of . and *, so that they behave as normal regex characters rather than their function as delimiters in permissions nodes (escaped by default for backwards compatibility and user sanity)&lt;br /&gt;
&lt;br /&gt;
As you can see, the ability to use regex in permissions can save a lot of typing.&lt;br /&gt;
&lt;br /&gt;
File Back-end Example&lt;br /&gt;
&lt;br /&gt;
In the interest of completeness, this is the full permissions file after the inheritance and regex commands listed above. This example assume use-material-names: false in your plugins/Modifyworld/config.yml file.&lt;br /&gt;
&lt;br /&gt;
groups:&lt;br /&gt;
    default:&lt;br /&gt;
        default: true&lt;br /&gt;
        options:&lt;br /&gt;
            rank: &#039;1000&#039;&lt;br /&gt;
        permissions:&lt;br /&gt;
        - modifyworld.chat&lt;br /&gt;
        - modifyworld.blocks.(destroy|place).(1-4|12)&lt;br /&gt;
    Member:&lt;br /&gt;
        prefix: &#039;&amp;amp;0(&amp;amp;8M&amp;amp;7ember&amp;amp;0)&amp;amp;7 &#039;&lt;br /&gt;
        permissions:&lt;br /&gt;
        - modifyworld.*&lt;br /&gt;
        options:&lt;br /&gt;
            rank: &#039;900&#039;&lt;br /&gt;
    VIP:&lt;br /&gt;
        prefix: &#039;&amp;amp;0(&amp;amp;eVIP&amp;amp;0)&amp;amp;7 &#039;&lt;br /&gt;
        inheritance:&lt;br /&gt;
        - Member&lt;br /&gt;
        permissions:&lt;br /&gt;
        - -modifyworld.mobtarget.monster.creeper&lt;br /&gt;
        options:&lt;br /&gt;
            rank: &#039;800&#039;&lt;br /&gt;
    Moderator:&lt;br /&gt;
        prefix: &#039;&amp;amp;0(&amp;amp;1Moderator&amp;amp;0)&amp;amp;7 &#039;&lt;br /&gt;
        inheritance:&lt;br /&gt;
        - VIP&lt;br /&gt;
        permissions:&lt;br /&gt;
        - -modifyworld.mobtarget.*&lt;br /&gt;
        options:&lt;br /&gt;
            rank: &#039;100&#039;&lt;br /&gt;
    Admins:&lt;br /&gt;
        prefix: &#039;&amp;amp;0(&amp;amp;4Admins&amp;amp;0)&amp;amp;7 &#039;&lt;br /&gt;
        permissions:&lt;br /&gt;
        - -modifyworld.mobtarget.*&lt;br /&gt;
        - modifyworld.*&lt;br /&gt;
        - permissions.*&lt;br /&gt;
        options:&lt;br /&gt;
            rank: &#039;1&#039;&lt;br /&gt;
users:&lt;br /&gt;
    AnotherPlayer:&lt;br /&gt;
        group:&lt;br /&gt;
        - default&lt;br /&gt;
    YourPlayerName:&lt;br /&gt;
        group:&lt;br /&gt;
        - Admins&lt;br /&gt;
===Multiworld===[[Multiworld]]&lt;br /&gt;
&lt;br /&gt;
Having several maps (or worlds) on a server is a common way to offer more than one game play experience. However, not all commands are suitable for all worlds. You wouldn&#039;t want a hardcore survival world to have access to the give command, but it may be perfectly fine, if not required, in a world intended for free building. Fortunately, limiting a permission node to a specific world is easy with PEX by specifying the world when adding the permission node.&lt;br /&gt;
&lt;br /&gt;
Assume the following server setup:&lt;br /&gt;
&lt;br /&gt;
 A survival world with Nether and End worlds (named survival, survival_nether, and survival_the_end respectively)&lt;br /&gt;
 A free build world (named freebuild)&lt;br /&gt;
 A group (pvp) that has the ability to build in the survival world only (modifyworld.*)&lt;br /&gt;
 A group (build) that has the ability to build in the survival and free build world (modifyworld.*)&lt;br /&gt;
See Modifyworld page for details on block placement permission nodes.&lt;br /&gt;
&lt;br /&gt;
The commands to set this up are:&lt;br /&gt;
&lt;br /&gt;
 /pex group pvp add modifyworld.* survival (add build permissions to the survival world for the pvp group)&lt;br /&gt;
 /pex group build add modifyworld.* freebuild (add build permissions to the freebuild world for the build group)&lt;br /&gt;
 /pex group build parents set pvp (Set the build group to inherit the permission to build in the survival world)&lt;br /&gt;
Keep in mind that if you edit/add the multiworld lines into the permissions file by hand, make sure the name you use matches the one used in the bukkit configs and what is on the server, capitalization matters here!&lt;br /&gt;
&lt;br /&gt;
The resulting permissions will look like this in the file back-end:&lt;br /&gt;
&lt;br /&gt;
groups:&lt;br /&gt;
    pvp:&lt;br /&gt;
        permissions:&lt;br /&gt;
        worlds:&lt;br /&gt;
            survival:&lt;br /&gt;
                permissions:&lt;br /&gt;
                - modifyworld.*&lt;br /&gt;
    build:&lt;br /&gt;
        inheritance:&lt;br /&gt;
        - pvp&lt;br /&gt;
        permissions:&lt;br /&gt;
        worlds:&lt;br /&gt;
            freebuild:&lt;br /&gt;
                permissions:&lt;br /&gt;
                - modifyworld.*&lt;br /&gt;
===Multiworld inheritance===&lt;br /&gt;
&lt;br /&gt;
You may have noticed the flaw in this setup, which is neither group had permission to build in the Nether and End worlds. This can be corrected in two ways:&lt;br /&gt;
&lt;br /&gt;
Add the modifyworld.* node to each world individually&lt;br /&gt;
Set up world-level inheritance using /pex world &amp;lt;world&amp;gt; inherit &amp;lt;parentWorlds&amp;gt; /pex world pvp_nether inherit pvp /pex world pvp_the_end inherit pvp&lt;br /&gt;
These commands look like the following in the file back-end:&lt;br /&gt;
&lt;br /&gt;
worlds:&lt;br /&gt;
    pvp_nether:&lt;br /&gt;
        inheritance:&lt;br /&gt;
        - pvp&lt;br /&gt;
    pvp_the_end:&lt;br /&gt;
        inheritance:&lt;br /&gt;
        - pvp&lt;br /&gt;
&lt;br /&gt;
=Backends=&lt;br /&gt;
原帖是这么说的&lt;br /&gt;
PermissionsEx provides several backends to store permissions data. This page (will explain) explains them all.&lt;br /&gt;
（PEX插件提供了一些用于保存权限数据的后台，这个页面会解释所有）&lt;br /&gt;
但其实这个页面只有这一句话（或许是服务器问题）&lt;br /&gt;
所以请等待更新。&lt;br /&gt;
&lt;br /&gt;
=基础的权限设定=&lt;br /&gt;
==权限节点的基本添加和否定 == &lt;br /&gt;
PEX插件有一个普遍原则，就是权限运行命令是不允许的，除非这个权限节点是具体列出的. 对于那些可以被默认（default）操作的事件和命令, PEX插件可以拒绝访问那些被否定的节点.&lt;br /&gt;
&lt;br /&gt;
使用一个可以拒绝访问节点就像用 pex group &amp;lt;group&amp;gt; add &amp;lt;node&amp;gt;（最基本的权限给予命令） 命令那样简单. 使用同样的命令，只在权限节点前加一个负号（-）即可.&lt;br /&gt;
&lt;br /&gt;
举个例子 /give 和 /plugins 命令是水桶客户端的一部分（基本命令）&lt;br /&gt;
&lt;br /&gt;
 /give 命令有一个权限节点 command.give 这个命令一般限制在ops.txt列出的人使用（管理员命令）&lt;br /&gt;
 /plugins 命令也有个权限节点 command.plugins 它可以被服务器中任何人使用。&lt;br /&gt;
我们可以试试对于某个权限组增加和否定这两个节点:&lt;br /&gt;
&lt;br /&gt;
 如果允许某个权限组使用/give, 就可以输入命令 pex group 组别名 add bukkit.command.give&lt;br /&gt;
 不允许某个权限组使用 /plugins, 这时候的命令就为 pex group 组别名 add -bukkit.command.plugins&lt;br /&gt;
&lt;br /&gt;
===重要的关于*的信息 ===&lt;br /&gt;
PEX插件允许使用XXX*来给予XXX下的所有的分权限节点，但是呢，在使用这个前，&#039;&#039;你必须要明白它怎么工作以及会造成什么效果&#039;&#039;。一开始浏览的时候，这看上去很简单，给一个权限组“*”使它可以访问所有的权限节点，但是这也可能会导致你给了你不想要给这个权限组的权限。例如，在插件VanishNoPacket（简称VNP）中，它提供了一个权限vanish.silentjoin，使得所有的用户在登入时都不会显示加入公告，这是大多数服务器主人都不想要的效果。实际上这也可以用否定节点来简单解决（否定节点优先），任何给默认组使用的权限节点都能被否定以“关闭功能”&lt;br /&gt;
&lt;br /&gt;
===重要的后台文件 === &lt;br /&gt;
如果你要在后台修改编辑权限的话，请阅读并遵守以下规则:&lt;br /&gt;
权限必须以一个空格或者负号开始&lt;br /&gt;
- modifyworld.chat 和 - -modifyworld.mobtarget.*是在后台文件中有效的（格式正确）。&lt;br /&gt;
modifyworld.chat 和 -modifyworld.mobtarget.* 在后台文件中无效（格式不正确，无空格或负号）。&lt;br /&gt;
所有在YAML文件中的格式规则在PEX插件基本文件中必须被遵守，错误的文件会使得PEX插件无法启动，然后把log文件塞满错误信息。&lt;br /&gt;
PEX插件用自上而下的方式来检查用户和组别的权限节点，就像网络防火墙一样，如果它找到了一个与它想找的匹配的节点，它就会停止寻找，这就意味着在现实中，如果一个权限给了主要组别和它所有的子组别，它在看到允许的权限后就会停止寻找而忽略否定节点。&lt;br /&gt;
我们举个错误的例子&lt;br /&gt;
&lt;br /&gt;
default:&lt;br /&gt;
  options:&lt;br /&gt;
    default: true&lt;br /&gt;
  permissions:&lt;br /&gt;
  - modifyworld.*&lt;br /&gt;
  - -modifyworld.blocks.interact.23&lt;br /&gt;
用这样的权限节点文件，如果一个玩家想要打开一个发射器（ID 23），它第一个会匹配到modifyworld.*节点然后停止，以至于允许玩家打开！（实际上第二个权限节点是不允许这样的事情发生的。&lt;br /&gt;
&lt;br /&gt;
不过，如果把这两行互换，-modifyworld.blocks.interact.23在modifyworld.*之前，玩家会被拒绝访问发射器（插件先检测到-modifyworld.blocks.interact.23节点）如果一个玩家想要打开一个熔炉（ID 61）插件就会检测到modifyworld.*节点，然后认为是modifyworld.blocks.interact.61节点，使得玩家可以打开。&lt;br /&gt;
&lt;br /&gt;
==上机操作==&lt;br /&gt;
&lt;br /&gt;
先来试试基本的权限指令和插件基本功能（以下作为教程实例并且推荐各服务器使用。）&lt;br /&gt;
创建五个组别个组别：Default，Member，VIP,Mod,Admin。&lt;br /&gt;
 &amp;quot;Default&amp;quot; 可以聊天但是不可以改动任何东西，没有称号&lt;br /&gt;
 &amp;quot;Member&amp;quot;信任的玩家组别，可以改动世界，拥有称号 (&amp;quot;&amp;amp;0(&amp;amp;8M&amp;amp;7ember&amp;amp;0)&amp;amp;7 &amp;quot;)&lt;br /&gt;
 &amp;quot;VIP&amp;quot; 可以改动世界还可以不受到苦力怕的烦恼（这个VIP棒）！ 并且拥有称号&amp;quot;&amp;amp;0(&amp;amp;eVIP&amp;amp;0)&amp;amp;7 &amp;quot;.&lt;br /&gt;
 A &amp;quot;Mod&amp;quot;  可以不受到任何怪物的困扰（万岁！）.&lt;br /&gt;
 An &amp;quot;Admin&amp;quot; (管理员) 是超级用户，可以使用这个插件的所有功能并且拥有炫酷的称号比如 &amp;quot;&amp;amp;0(&amp;amp;4Admin&amp;amp;0)&amp;amp;7 &amp;quot;.&lt;br /&gt;
可选: 去除 modifyworld.* 权限从 &amp;quot;Default&amp;quot; 权限组中&lt;br /&gt;
可选: 添加 modifyworld.chat 权限到 &amp;quot;Default&amp;quot; 权限组里&lt;br /&gt;
是时候测试环境了&lt;br /&gt;
&lt;br /&gt;
===准备===&lt;br /&gt;
安装PEX插件（放在插件目录下）&lt;br /&gt;
&lt;br /&gt;
开启服务器.&lt;br /&gt;
&lt;br /&gt;
打开浏览器控制台（租借，后台服务器的话）&lt;br /&gt;
&lt;br /&gt;
在浏览器中打开PEX插件的配置文件&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===开始基础及基本权限 === &lt;br /&gt;
这些命令必须在控制台输入&lt;br /&gt;
&lt;br /&gt;
创建一个Admin权限组（pex group admin create命令）&lt;br /&gt;
&lt;br /&gt;
把 permissions.* 权限加入到组别中（pex group Admin add pressions.*命令）&lt;br /&gt;
把你自己加入组中 （pex user 你的游戏名 group set Admin）, 其中你的游戏名是你在游戏内的ID名.&lt;br /&gt;
可选的:给自己所有权限不管自己是不是在拥有permissions.*权限的权限组里&lt;br /&gt;
&lt;br /&gt;
====如果你不想（不能）在控制台输入====&lt;br /&gt;
创建一个permissions.yml文件输入以下文字，并上传（放置）到PEX插件的目录，请确保你的格式是正确的！看上面的YAML后台信息的帮助。&lt;br /&gt;
&lt;br /&gt;
 groups:&lt;br /&gt;
 Default:&lt;br /&gt;
   options:&lt;br /&gt;
     default: true&lt;br /&gt;
   permissions:&lt;br /&gt;
&lt;br /&gt;
  modifyworld.* Admin: options: prefix: &#039;&amp;amp;0(&amp;amp;4Admin&amp;amp;0)&amp;amp;7 &#039; permissions:&lt;br /&gt;
  permissions.* users:你的用户名: group:&lt;br /&gt;
  Admin permissions:&lt;br /&gt;
  permissions.*&lt;br /&gt;
是时候创建其他组别了&lt;br /&gt;
&lt;br /&gt;
===创建其他组别: Member, VIP, Mod ===&lt;br /&gt;
&lt;br /&gt;
 使用这个命令创建Member组 /pex group Member create&lt;br /&gt;
 使用这个命令创建VIP组 /pex group VIP create&lt;br /&gt;
 使用这个命令创建Mod组 /pex group Mod create&lt;br /&gt;
接下来我们要标注这几个组别的阶级使得符合这样的顺序 Member -&amp;gt; VIP -&amp;gt; Mod -&amp;gt; Admin.看阶级页面以知道更多&lt;br /&gt;
&lt;br /&gt;
===设置阶级 ===&lt;br /&gt;
输入以下命令&lt;br /&gt;
 /pex group default set rank 1000&lt;br /&gt;
 /pex group Member set rank 900&lt;br /&gt;
 /pex group VIP set rank 800&lt;br /&gt;
 /pex group Mod set rank 100&lt;br /&gt;
 /pex group Admin set rank 1&lt;br /&gt;
阶级100是最高提升的阶级数。&lt;br /&gt;
&lt;br /&gt;
升级和降级命令都会在游戏内收到限制 (但在控制台不会). 在游戏中，你不可以:&lt;br /&gt;
&lt;br /&gt;
把一个低于你阶级的升到你的阶级 (Mod到Admin, 用前面的例子)&lt;br /&gt;
把一个阶级高于你的降到低于你的阶级(Admin到Mod,用前面的例子)&lt;br /&gt;
不能对于你同样阶级的升降级 (Mob不能对Mob操作，Admin不能对Admin操作。)&lt;br /&gt;
如果你在游戏内（只是举个例子）是Admin，想要把一个玩家提高到你一样的阶级必须使用/pex user PlayerName group set Admin.&lt;br /&gt;
&lt;br /&gt;
在控制台，你很自由可以不受以上限制。&lt;br /&gt;
&lt;br /&gt;
===炫酷的滑板鞋!(好吧只是称号吗)===&lt;br /&gt;
使用以下命令&lt;br /&gt;
 /pex group Member prefix &amp;quot;&amp;amp;0(&amp;amp;8M&amp;amp;7ember&amp;amp;0)&amp;amp;7 &amp;quot;&lt;br /&gt;
 /pex group VIP prefix &amp;quot;&amp;amp;0(&amp;amp;eVIP&amp;amp;0)&amp;amp;7 &amp;quot;&lt;br /&gt;
 /pex group Mod prefix &amp;quot;&amp;amp;0(&amp;amp;1Mod&amp;amp;0)&amp;amp;7 &amp;quot;&lt;br /&gt;
 /pex group Admin prefix &amp;quot;&amp;amp;0(&amp;amp;4Admin&amp;amp;0)&amp;amp;7 &amp;quot;&lt;br /&gt;
确保在每个称号后面都加上了个空格，这可以阻止称号和用户名混在一起在聊天中。实际上，后缀前也是因为同样的理由加一个空格为好。还有一种可以显示前缀后缀的方法就是前缀后缀相同（只需把prefix变成suffix就行）。&lt;br /&gt;
&lt;br /&gt;
===给每个组别添加权限 ===&lt;br /&gt;
注意: 如果你还没有允许这些组别修改世界，那么删除modifiyworld.*这一步是不需要的.&lt;br /&gt;
&lt;br /&gt;
可选的: /pex group default remove modifyworld.*&lt;br /&gt;
可选的: /pex group default add modifyworld.chat (Only needed if modifyworld.* has been removed)&lt;br /&gt;
 /pex group Member add modifyworld.*&lt;br /&gt;
 /pex group VIP add modifyworld.*&lt;br /&gt;
 /pex group VIP add -modifyworld.mobtarget.monster.creeper&lt;br /&gt;
 /pex group Mod add modifyworld.*&lt;br /&gt;
 /pex group Mod add -modifyworld.mobtarget.*&lt;br /&gt;
 /pex group Admin add permissions.*&lt;br /&gt;
 /pex group Admin add modifyworld.*&lt;br /&gt;
 /pex group Admin add -modifyworld.mobtarget.*&lt;br /&gt;
来看看成果吧！&lt;br /&gt;
&lt;br /&gt;
===见证奇迹！===&lt;br /&gt;
&lt;br /&gt;
你想要改变你的权限组的话，使用这个命令 /pex user 玩家名 group set 权限组名，接下来就测试啦！&lt;br /&gt;
&lt;br /&gt;
Default&lt;br /&gt;
&lt;br /&gt;
 验证你可以聊天&lt;br /&gt;
 验证你有正确的前缀在聊天时&lt;br /&gt;
 验证你可以在出生点外破坏方块&lt;br /&gt;
 注意: 如果你把modifyworld.* 节点之前移除了，就不能破坏（之前是可选项）&lt;br /&gt;
 如果你可以破坏但是modifyworld.* 节点被移除了！, 找到个爬行者然后拥抱它！ (别担心，它保证对你没兴趣但是你伤得了它)&lt;br /&gt;
Member&lt;br /&gt;
&lt;br /&gt;
 验证你可以聊天&lt;br /&gt;
 验证你有正确的前缀在聊天时&lt;br /&gt;
 验证你可以在出生点外破坏方块&lt;br /&gt;
VIP&lt;br /&gt;
&lt;br /&gt;
 验证你可以聊天&lt;br /&gt;
 验证你有正确的前缀在聊天时&lt;br /&gt;
 验证你可以在出生点外破坏方块&lt;br /&gt;
 如果你可以破坏但是modifyworld.* 节点被移除了！, 找到个爬行者然后拥抱它！ (别担心，它保证对你没兴趣但是你伤得了它)&lt;br /&gt;
Admin&lt;br /&gt;
&lt;br /&gt;
 验证你可以聊天&lt;br /&gt;
 验证你有正确的前缀在聊天时&lt;br /&gt;
 验证你可以在出生点外破坏方块 (如果你把玩家名字放在了OP文件中，并且在PEX插件配置config文档里把allowOps设置为了true，你将可以在出生点附近破坏).&lt;br /&gt;
 验证你可以使用PEX插件所有命令(使用/pex reload命令测试，它应该会回复 &amp;quot;Permissions Reloaded（权限重新加载）&amp;quot;)&lt;br /&gt;
 验证所有怪物都对你没兴趣&lt;br /&gt;
 下一步你可以换一个玩家作为“实验对象”比如加入游戏的好基友(这是为了科学！!)&lt;br /&gt;
&lt;br /&gt;
===测试阶级 ===&lt;br /&gt;
&lt;br /&gt;
 首先使用/pex user 另一个玩家 group set default&lt;br /&gt;
 验证升降级别命令有效 使用/pex promote 前面你移动的那个玩家. 你会看见 &amp;quot;User AnotherPlayer promoted to NextGroup（这个玩家到了下个组别）&amp;quot;&lt;br /&gt;
一直使用这个命令直到出现 &amp;quot;Promotion error: User is not promotable（升级错误，用户不允许）&amp;quot;. 使用 /pex user 这个玩家 命令会显示:&lt;br /&gt;
 playername are member of:&lt;br /&gt;
  Mod (rank 100 @ default)&lt;br /&gt;
 playername&#039;s permissions:&lt;br /&gt;
  -modifyworld.mobtarget.* (from Mod)&lt;br /&gt;
 modifyworld.* (from Mod)&lt;br /&gt;
 playername&#039;s options:&lt;br /&gt;
 降级和升级一样，只不过把命令中的promote变成demote&lt;br /&gt;
如果那个玩家只是个机器人, 如果你想的话，使用这个命令把它删掉 /pex user 玩家名 delete&lt;br /&gt;
如果那个玩家是真人，确保每个组别都正常工作（看上机教程最前面。）&lt;br /&gt;
&lt;br /&gt;
===后台文件案例=== &lt;br /&gt;
如果你成功了上面那个案例，你就会发现后台文件变成了这样。很具有参考性:&lt;br /&gt;
&lt;br /&gt;
  groups:&lt;br /&gt;
   default:&lt;br /&gt;
     options:&lt;br /&gt;
        rank: &#039;1000&#039;&lt;br /&gt;
       default: true&lt;br /&gt;
     permissions:&lt;br /&gt;
     - modifyworld.chat&lt;br /&gt;
   Member:&lt;br /&gt;
     permissions:&lt;br /&gt;
     - modifyworld.*&lt;br /&gt;
     options:&lt;br /&gt;
       rank: &#039;900&#039;&lt;br /&gt;
       prefix: &#039;&amp;amp;0(&amp;amp;8M&amp;amp;7ember&amp;amp;0)&amp;amp;7 &#039;&lt;br /&gt;
   VIP:&lt;br /&gt;
     permissions:&lt;br /&gt;
     - -modifyworld.mobtarget.monster.creeper&lt;br /&gt;
     - modifyworld.*&lt;br /&gt;
     options:&lt;br /&gt;
       rank: &#039;800&#039;&lt;br /&gt;
       prefix: &#039;&amp;amp;0(&amp;amp;eVIP&amp;amp;0)&amp;amp;7 &#039;&lt;br /&gt;
   Mod:&lt;br /&gt;
     permissions:&lt;br /&gt;
     - -modifyworld.mobtarget.*&lt;br /&gt;
     - modifyworld.*&lt;br /&gt;
     options:&lt;br /&gt;
       rank: &#039;100&#039;&lt;br /&gt;
       prefix: &#039;&amp;amp;0(&amp;amp;1Mod&amp;amp;0)&amp;amp;7 &#039;&lt;br /&gt;
   Admin:&lt;br /&gt;
     permissions:&lt;br /&gt;
     - -modifyworld.mobtarget.*&lt;br /&gt;
     - modifyworld.*&lt;br /&gt;
     - permissions.*&lt;br /&gt;
     options:&lt;br /&gt;
       rank: &#039;1&#039;&lt;br /&gt;
       prefix: &#039;&amp;amp;0(&amp;amp;4Admin&amp;amp;0)&amp;amp;7 &#039;&lt;br /&gt;
 users:&lt;br /&gt;
   AnotherPlayer:&lt;br /&gt;
     group:&lt;br /&gt;
     - default&lt;br /&gt;
   YourPlayerName:&lt;br /&gt;
     group:&lt;br /&gt;
     - Admin&lt;br /&gt;
这就是被解析后的文件的样子，但是最好使用YAML编写工具来确保你的文件已经正确，不然插件可能会出所有类别的错误！&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;users&amp;quot;: {&lt;br /&gt;
    &amp;quot;AnotherPlayer&amp;quot;: {&lt;br /&gt;
      &amp;quot;group&amp;quot;: [&lt;br /&gt;
        &amp;quot;default&amp;quot;&lt;br /&gt;
      ]&lt;br /&gt;
    }, &lt;br /&gt;
    &amp;quot;YourPlayerName&amp;quot;: {&lt;br /&gt;
      &amp;quot;group&amp;quot;: [&lt;br /&gt;
        &amp;quot;Admin&amp;quot;&lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  }, &lt;br /&gt;
  &amp;quot;groups&amp;quot;: {&lt;br /&gt;
    &amp;quot;default&amp;quot;: {&lt;br /&gt;
      &amp;quot;options&amp;quot;: {&lt;br /&gt;
        &amp;quot;default&amp;quot;: true, &lt;br /&gt;
        &amp;quot;rank&amp;quot;: &amp;quot;1000&amp;quot;&lt;br /&gt;
      }, &lt;br /&gt;
      &amp;quot;permissions&amp;quot;: [&lt;br /&gt;
        &amp;quot;modifyworld.chat&amp;quot;&lt;br /&gt;
      ]&lt;br /&gt;
    }, &lt;br /&gt;
    &amp;quot;Member&amp;quot;: {&lt;br /&gt;
      &amp;quot;options&amp;quot;: {&lt;br /&gt;
        &amp;quot;prefix&amp;quot;: &amp;quot;&amp;amp;0(&amp;amp;8M&amp;amp;7ember&amp;amp;0)&amp;amp;7 &amp;quot;, &lt;br /&gt;
        &amp;quot;rank&amp;quot;: &amp;quot;900&amp;quot;&lt;br /&gt;
      }, &lt;br /&gt;
      &amp;quot;permissions&amp;quot;: [&lt;br /&gt;
        &amp;quot;modifyworld.*&amp;quot;&lt;br /&gt;
      ]&lt;br /&gt;
    }, &lt;br /&gt;
    &amp;quot;VIP&amp;quot;: {&lt;br /&gt;
      &amp;quot;options&amp;quot;: {&lt;br /&gt;
        &amp;quot;prefix&amp;quot;: &amp;quot;&amp;amp;0(&amp;amp;eVIP&amp;amp;0)&amp;amp;7 &amp;quot;, &lt;br /&gt;
        &amp;quot;rank&amp;quot;: &amp;quot;800&amp;quot;&lt;br /&gt;
      }, &lt;br /&gt;
      &amp;quot;permissions&amp;quot;: [&lt;br /&gt;
        &amp;quot;-modifyworld.mobtarget.monster.creeper&amp;quot;, &lt;br /&gt;
        &amp;quot;modifyworld.*&amp;quot;&lt;br /&gt;
      ]&lt;br /&gt;
    }, &lt;br /&gt;
    &amp;quot;Mod&amp;quot;: {&lt;br /&gt;
      &amp;quot;options&amp;quot;: {&lt;br /&gt;
        &amp;quot;prefix&amp;quot;: &amp;quot;&amp;amp;0(&amp;amp;1Mod&amp;amp;0)&amp;amp;7 &amp;quot;, &lt;br /&gt;
        &amp;quot;rank&amp;quot;: &amp;quot;100&amp;quot;&lt;br /&gt;
      }, &lt;br /&gt;
      &amp;quot;permissions&amp;quot;: [&lt;br /&gt;
        &amp;quot;-modifyworld.mobtarget.*&amp;quot;, &lt;br /&gt;
        &amp;quot;modifyworld.*&amp;quot;&lt;br /&gt;
      ]&lt;br /&gt;
    }, &lt;br /&gt;
    &amp;quot;Admin&amp;quot;: {&lt;br /&gt;
      &amp;quot;options&amp;quot;: {&lt;br /&gt;
        &amp;quot;prefix&amp;quot;: &amp;quot;&amp;amp;0(&amp;amp;4Admin&amp;amp;0)&amp;amp;7 &amp;quot;, &lt;br /&gt;
        &amp;quot;rank&amp;quot;: &amp;quot;1&amp;quot;&lt;br /&gt;
      }, &lt;br /&gt;
      &amp;quot;permissions&amp;quot;: [&lt;br /&gt;
        &amp;quot;-modifyworld.mobtarget.*&amp;quot;, &lt;br /&gt;
        &amp;quot;modifyworld.*&amp;quot;, &lt;br /&gt;
        &amp;quot;permissions.*&amp;quot;&lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
=Chat Manager=&lt;br /&gt;
=命令=&lt;br /&gt;
===实用指令===&lt;br /&gt;
注意，在以下命令里 user=玩家名字，world=世界名字 permission=权限 node=节点 backend=后台文件 group=权限组别&lt;br /&gt;
 /pex                                                                           显示帮助&lt;br /&gt;
permissions.manage&lt;br /&gt;
 /pex toggle debug                                                      调试开关（不要总开着！，要不然会出很多信息文件）&lt;br /&gt;
permissions.debug&lt;br /&gt;
 /pex user &amp;lt;user&amp;gt; toggle debug                                   给指定的一个人测试调整（上面一样）&lt;br /&gt;
permissions.manage.&amp;lt;user&amp;gt;&lt;br /&gt;
 /pex user &amp;lt;user&amp;gt; check &amp;lt;permission&amp;gt;                         检查一个具体的玩家的具体的权限&lt;br /&gt;
permissions.manage.&amp;lt;user&amp;gt;&lt;br /&gt;
 /pex reload                                                                  重新载入所有pex文件&lt;br /&gt;
permissions.manage.reload&lt;br /&gt;
 /pex config &amp;lt;node&amp;gt; [value]                                         看节点的值（写上后面的更改值）&lt;br /&gt;
permissions.manage.config	&lt;br /&gt;
 /pex backend                                                              看现在的后台文件（也就是正在用的文件）&lt;br /&gt;
permissions.manage.backend&lt;br /&gt;
 /pex hierarchy                                                            看现在服务器结构（阶级）&lt;br /&gt;
permissions.manage.users&lt;br /&gt;
 /pex dump &amp;lt;backend&amp;gt; &amp;lt;filename&amp;gt;                            把你的后台文件倒到另外一个文件里 谨慎使用！不会立刻保存，但会在游戏中有效果&lt;br /&gt;
permissions.manage.dump&lt;br /&gt;
 /pex users cleanup &amp;lt;group&amp;gt; [threshold]                     清走“死亡”的会员（默认30天不活动）&lt;br /&gt;
permissions.manage.users.cleanup&lt;br /&gt;
&lt;br /&gt;
===世界管理===&lt;br /&gt;
 /pex worlds                                                                  看PEX里面的世界&lt;br /&gt;
permissions.manage.worlds&lt;br /&gt;
 /pex world &amp;lt;world&amp;gt;                                                      看这个世界的层次信息&lt;br /&gt;
permissions.manage.worlds&lt;br /&gt;
 /pex world &amp;lt;world&amp;gt; inherit &amp;lt;parentWorlds&amp;gt;                 让你选择的世界继承一个世界（继承permission,etc.)&lt;br /&gt;
permissions.manage.worlds.inheritance	&lt;br /&gt;
玩家指令：&lt;br /&gt;
 /pex users list                                                                 看所有在PEX里面的玩家&lt;br /&gt;
permissions.manage.users&lt;br /&gt;
 /pex users                                                                      一样一样&lt;br /&gt;
 /pex user                                                                       一样一样                                                                               = = &lt;br /&gt;
玩家permission管理：&lt;br /&gt;
 /pex user                                                                      一样.....······&lt;br /&gt;
permissions.manage.users&lt;br /&gt;
 /pex user &amp;lt;user&amp;gt;                                                          看玩家的权限&lt;br /&gt;
permissions.manage.users.permissions.&amp;lt;user&amp;gt;&lt;br /&gt;
 /pex user &amp;lt;user&amp;gt; prefix [newprefix]                              设置玩家前缀颜色&lt;br /&gt;
permissions.manage.users.prefix.&amp;lt;user&amp;gt;	&lt;br /&gt;
 /pex user &amp;lt;user&amp;gt; suffix [newsuffix]                               设置玩家后缀颜色&lt;br /&gt;
permissions.manage.users.suffix.&amp;lt;user&amp;gt;&lt;br /&gt;
 /pex user &amp;lt;user&amp;gt; delete                                                把玩家从权限文件里面移除&lt;br /&gt;
permissions.manage.users.&amp;lt;user&amp;gt;&lt;br /&gt;
 /pex user &amp;lt;user&amp;gt; list [world]                                          看玩家的权限&lt;br /&gt;
permissions.manage.users.permissions.&amp;lt;user&amp;gt;&lt;br /&gt;
 /pex user &amp;lt;user&amp;gt; add &amp;lt;permission&amp;gt; [world]                  给玩家增加权限&lt;br /&gt;
permissions.manage.users.permissions.&amp;lt;user&amp;gt;&lt;br /&gt;
 /pex user &amp;lt;user&amp;gt; remove &amp;lt;permission&amp;gt; [world]            给玩家移除权限&lt;br /&gt;
permissions.manage.users.permissions.&amp;lt;user&amp;gt;&lt;br /&gt;
 /pex user &amp;lt;user&amp;gt; timed add &amp;lt;permission&amp;gt; &amp;lt;lifetime in seconds&amp;gt; [world] 给玩家在时间内（秒）添加权限&lt;br /&gt;
permissions.manage.users.permissions.timed.&amp;lt;user&amp;gt;&lt;br /&gt;
 /pex user &amp;lt;user&amp;gt; timed remove &amp;lt;permission&amp;gt; &amp;lt;lifetime in seconds&amp;gt; [world]给玩家在时间内（秒）移除权限&lt;br /&gt;
permissions.manage.users.permissions.timed.&amp;lt;user&amp;gt;&lt;br /&gt;
 /pex user &amp;lt;user&amp;gt; set &amp;lt;option&amp;gt; &amp;lt;value&amp;gt; [world]          给玩家设选择值（不怎么懂表示，望进一步翻译和解释）&lt;br /&gt;
permissions.manage.users.permissions.&amp;lt;user&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===玩家组管理===&lt;br /&gt;
 /pex user &amp;lt;user&amp;gt; group list                                          给出玩家所有现在在的组&lt;br /&gt;
permissions.manage.membership.&amp;lt;user&amp;gt;&lt;br /&gt;
 /pex user &amp;lt;user&amp;gt; group add &amp;lt;group&amp;gt; [world] [lifetime]把玩家加入组（时间，秒，不设默认永久）&lt;br /&gt;
permissions.manage.membership.&amp;lt;group&amp;gt;&lt;br /&gt;
 /pex user &amp;lt;user&amp;gt; group set &amp;lt;group&amp;gt; [world]               把玩家放进组，注意这将会把玩家从另一个组移除&lt;br /&gt;
permissions.manage.membership.&amp;lt;group&amp;gt;&lt;br /&gt;
 /pex user &amp;lt;user&amp;gt; group remove &amp;lt;group&amp;gt; [world]            把玩家从组移除&lt;br /&gt;
permissions.manage.membership.&amp;lt;group&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===默认组管理===&lt;br /&gt;
 /pex default group [world]                                            看默认的管理组情况&lt;br /&gt;
permissions.manage.groups.inheritance&lt;br /&gt;
 /pex set default group &amp;lt;group&amp;gt; [world]                       把权限组组设成默认&lt;br /&gt;
permissions.manage.groups.inheritance&lt;br /&gt;
&lt;br /&gt;
===组的指令===&lt;br /&gt;
 /pex group                                                                   显示所有创建了的组&lt;br /&gt;
permissions.manage.groups.list&lt;br /&gt;
 /pex groups                                                                  ↑（同上）&lt;br /&gt;
permissions.manage.groups.list&lt;br /&gt;
 /pex groups list                                                             ↑&lt;br /&gt;
permissions.manage.groups.list&lt;br /&gt;
 /pex group &amp;lt;group&amp;gt; prefix [newprefix]                        设置组前缀&lt;br /&gt;
permissions.manage.groups.prefix.&amp;lt;group&amp;gt;	&lt;br /&gt;
/pex group &amp;lt;group&amp;gt; suffix [newsuffix]                          设置组后缀&lt;br /&gt;
permissions.manage.groups.suffix.&amp;lt;group&amp;gt;&lt;br /&gt;
 /pex group &amp;lt;group&amp;gt; create [parents]                             创建组，parents（母权限组）是说他是从哪里升级得来的（继承权限)&lt;br /&gt;
permissions.manage.groups.create.&amp;lt;group&amp;gt;&lt;br /&gt;
 /pex group &amp;lt;group&amp;gt; delete                                            删除权限组&lt;br /&gt;
permissions.manage.groups.remove.&amp;lt;group&amp;gt;&lt;br /&gt;
 /pex group &amp;lt;group&amp;gt; parents list                                     看权限组的继承表&lt;br /&gt;
permissions.manage.groups.inheritance.&amp;lt;group&amp;gt;&lt;br /&gt;
 /pex group &amp;lt;group&amp;gt; parents set &amp;lt;parents&amp;gt;                   设置权限组组的母权限组&lt;br /&gt;
permissions.manage.groups.inheritance.&amp;lt;group&amp;gt;&lt;br /&gt;
 /pex group &amp;lt;group&amp;gt;                                                      显示所有组的权限&lt;br /&gt;
permissions.manage.groups.permissions.&amp;lt;group&amp;gt;&lt;br /&gt;
 /pex group &amp;lt;group&amp;gt; list [world]                                     组的所有权限，加上世界名称可以看单个世界的权限&lt;br /&gt;
permissions.manage.groups.permissions.&amp;lt;group&amp;gt;&lt;br /&gt;
 /pex group &amp;lt;group&amp;gt; add &amp;lt;permission&amp;gt; [world]              给小组加权限 &lt;br /&gt;
permissions.manage.groups.permissions.&amp;lt;group&amp;gt;&lt;br /&gt;
 /pex group &amp;lt;group&amp;gt; remove &amp;lt;permission&amp;gt; [world]           移除权限&lt;br /&gt;
permissions.manage.groups.permissions.&amp;lt;group&amp;gt;&lt;br /&gt;
 /pex group &amp;lt;group&amp;gt; timed add &amp;lt;permission&amp;gt; [lifetime] [world] 给权限组限时加权限，不填默认永久&lt;br /&gt;
permissions.manage.groups.permissions.timed.&amp;lt;group&amp;gt;&lt;br /&gt;
 /pex group &amp;lt;group&amp;gt; timed remove &amp;lt;permission&amp;gt; [world]   给权限组限时移除权限组，不填默认永久&lt;br /&gt;
permissions.manage.groups.permissions.timed.&amp;lt;group&amp;gt;&lt;br /&gt;
 /pex group &amp;lt;group&amp;gt; set &amp;lt;option&amp;gt; &amp;lt;value&amp;gt; [world]       给组的人设置选则的值&lt;br /&gt;
permissions.manage.groups.permissions.&amp;lt;group&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===组的玩家的管理===&lt;br /&gt;
 /pex group &amp;lt;group&amp;gt; users                                            所有在组里的玩家&lt;br /&gt;
permissions.manage.membership.&amp;lt;group&amp;gt;&lt;br /&gt;
 /pex group &amp;lt;group&amp;gt; user add &amp;lt;user&amp;gt;                          把玩家弄进小组&lt;br /&gt;
permissions.manage.membership.&amp;lt;group&amp;gt;&lt;br /&gt;
 /pex group &amp;lt;group&amp;gt; user remove &amp;lt;user&amp;gt;                    把玩家从组里移除&lt;br /&gt;
permissions.manage.membership.&amp;lt;group&amp;gt;&lt;br /&gt;
 /pex promote &amp;lt;user&amp;gt; &amp;lt;ladder&amp;gt;                                    不知道怎么翻译了Promote &amp;lt;玩家名&amp;gt; on &amp;lt;ladder&amp;gt;. If &amp;lt;ladder&amp;gt; is not specified, the default ladder (named default) will be used.&lt;br /&gt;
permissions.user.promote.&amp;lt;ladder&amp;gt; &lt;br /&gt;
 /pex demote &amp;lt;user&amp;gt; &amp;lt;ladder&amp;gt;      大题同上&lt;br /&gt;
permissions.user.demote.&amp;lt;ladder&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=FAQ=&lt;br /&gt;
=Features=&lt;br /&gt;
=Integrating with PEX=&lt;br /&gt;
=Migration=&lt;br /&gt;
=Migration and UUIDs=&lt;br /&gt;
=Modifyworld=&lt;br /&gt;
===Modifyworld Notes===&lt;br /&gt;
&lt;br /&gt;
This section requires that you have a permissions plugin installed, which includes a basic structured group layout that allows the default group to only chat.&lt;br /&gt;
&lt;br /&gt;
By default, users are not restricted. This is by design. Set specific nodes on this list to false to restrict users from performing actions, or set modifyworld.* to false to block a user from doing anything.&lt;br /&gt;
&lt;br /&gt;
By default, modifyworld uses block names instead of block ID&#039;s. To use ID&#039;s, change or add the use-material-names: false line to the config.&lt;br /&gt;
Negate a node (-, set its value to false) to disallow a feature to a user/group. Use the wildcard symbol * to include all subnodes.&lt;br /&gt;
When using PermissionsEx, per the Regex section on the Advanced Permissions Setup page, you can specify multiple items within a single line. To do this, put the item codes/names in parentheses, separated by a pipe character (a shift-backslash on most US keyboard layouts). For example, (260|296|297) will match apples, wheat, and bread if use-material-names is false.&lt;br /&gt;
===IMPORTANT NOTICES===&lt;br /&gt;
&lt;br /&gt;
Thanks to Bukkit user @Tahg we were notified about one issue with the modifyworld.blocks.place.* node: If you remove modifyworld.* from a group, for the group to place blocks, you will need to specify what blocks the group is allowed to place other blocks on using the modifyworld.blocks.interact.* (alternately you can use a wildcard for the block ID with modifyworld.blocks.interact.*) in addition to the modifyworld.blocks.place.* for the blocks the group is allowed to place. This is because Bukkit checks first for onPlayerInteract() then for onBlockPlace().&lt;br /&gt;
For example, when trying to place a sand block on a grass block, the permission node checks are modifyworld.blocks.interact.grass then modifyworld.blocks.place.sand. Consider the block being targeted with this action - the interact permission is required for the block that is targeted with right-click, and thus could be to the side or above the placed block.&lt;br /&gt;
Metadata can appear on a lot of blocks and items that you might not expect, please make sure you read the section on Metadata and check the debug output before posting in the forums!&lt;br /&gt;
===Configuration===&lt;br /&gt;
&lt;br /&gt;
Modifyworld configuration is stored in plugins/Modifyworld/config.yml&lt;br /&gt;
&lt;br /&gt;
An example ModifyWorld config file:&lt;br /&gt;
&lt;br /&gt;
 informPlayers: true&lt;br /&gt;
 itemRestrictions: true&lt;br /&gt;
 whitelist: false&lt;br /&gt;
 messages:&lt;br /&gt;
    prohibitedItem: You have prohibited item &amp;quot;%s&amp;quot;.&lt;br /&gt;
    whitelist: You are not allowed to join this server. Goodbye!&lt;br /&gt;
    permissionDenied: Sorry, you don&#039;t have enough permissions&lt;br /&gt;
 use-material-names: true&lt;br /&gt;
 drop-restricted-item: false&lt;br /&gt;
 item-use-check: false&lt;br /&gt;
===Configuration Properties===&lt;br /&gt;
&lt;br /&gt;
由于搬运，格式有些耽误此处格式为：&lt;br /&gt;
&lt;br /&gt;
权限/实体...名   （默认是否开启） 简介&lt;br /&gt;
 informPlayers	false	Informs players if/when their permissions change&lt;br /&gt;
 itemRestrictions	false	Enable/disable item restrictions. If this is enabled, items not configured to be allowed will be removed from the player&#039;s inventory if it&#039;s found.&lt;br /&gt;
 messages.prohibitedItem	You have prohibited item &amp;quot;%s&amp;quot;.	Message sent to players who have disallowed item(s)&lt;br /&gt;
 messages.whitelist	You are not allowed to join this server. Goodbye!	Message sent to clients not on the whitelist&lt;br /&gt;
 messages.permissionDenied	Sorry, you don&#039;t have enough permissions	What is sent to players trying to do something they are not allowed to&lt;br /&gt;
 whitelist	false	Enable/disable the whitelisting feature&lt;br /&gt;
 drop-restricted-item	false	If true, restricted items will be &amp;quot;ejected&amp;quot; from the player as if they dropped the items. If false, the items will just dissappear.&lt;br /&gt;
 use-material-names	true	If true, modifyworld will use item names (dirt) instead of item numbers (3) when checking the permission nodes&lt;br /&gt;
 check-metadata (REMOVED AS OF VERSION 1.19.1)	false	If true, modifyworld will use the meta-data for blocks and items in the permissions checks. This means that your nodes may need a :* or .* added to the end of them!&lt;br /&gt;
 item-use-check	false	If true, modifyworld will enable the modifyworld.item.use.&amp;lt;itemid&amp;gt;.on.block.&amp;lt;blockid&amp;gt; node and check for rights to use &amp;lt;itemid&amp;gt; on &amp;lt;blockid&amp;gt;. Note that this basically replaces the modifyworld.interact.&amp;lt;entityName&amp;gt; checks.&lt;br /&gt;
===Metadata Notes===&lt;br /&gt;
&lt;br /&gt;
Starting with release 1.19.1, metadata handling has been changed a bit.&lt;br /&gt;
&lt;br /&gt;
There is no longer a need to specifically turn on metadata handling for modifyworld. However, a lot of blocks and items have metadata that one might not expect, or now has metadata due to changes in minecraft and bukkit.&lt;br /&gt;
&lt;br /&gt;
A few examples are leaf blocks (each type has it&#039;s own value), planks (for the different colours), and sandstone (the different designs).&lt;br /&gt;
&lt;br /&gt;
For item ID&#039;s that have metadata, using :* will cover all possible values for the metadata. For nodes that cover multiple items/blocks where some have metadata and others do not, the regex value of :?* will cover ID&#039;s that have metadata and ID&#039;s that do not.&lt;br /&gt;
&lt;br /&gt;
Many blocks that you might not expect can have metadata, such as chests and doors that are freshly placed but have not been opened yet. When in doubt and you can&#039;t get a permission node, turning on debug will show what is being looked for. Please do this before posting in the forums, I can&#039;t stress this enough. Metadata is a very large stumbling block for many new users to PEX.&lt;br /&gt;
&lt;br /&gt;
===Generic Nodes===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 modifyworld.login	是否允许玩家加入游戏，你需要吧白名单开启来启动这个功能&lt;br /&gt;
 modifyworld.chat	是否允许玩家能发布公告，聊天&lt;br /&gt;
 modifyworld.sneak	Player can crouch (check your Minecraft client config for the key) NOTE: Per https://github.com/PEXPlugins/PermissionsEx/issues/78, 这个节点在bukkit中因为缺少支持难以工作&lt;br /&gt;
 modifyworld.sprint	Player can sprint (double tap your forward key) NOTE: Per http://github.com/t3hk0d3/PermissionsEx/issues/78,也因为同样的原因难以工作。&lt;br /&gt;
 modifyworld.chat.private	玩家是否能私聊&lt;br /&gt;
 modifyworld.usebeds	玩家是否能使用床&lt;br /&gt;
 modifyworld.bucket.empty.&amp;lt;fluid&amp;gt;	玩家是否能使用液体（清空桶）&lt;br /&gt;
 &amp;lt;fluid&amp;gt;指的是水或岩浆&lt;br /&gt;
  modifyworld.bucket.fill.&amp;lt;fluid&amp;gt;	玩家是否能用桶装东西&lt;br /&gt;
 &amp;lt;fluid&amp;gt; 指的是谁，岩浆或牛奶（早期版本里，air就是牛奶）&lt;br /&gt;
 modifyworld.digestion	Allows players&#039; energy bar to deplete. A popular application of this would be to do -modifyworld.digestion to disable energy consumption whilst still enabling modifyworld.*&lt;br /&gt;
&lt;br /&gt;
===Block Nodes===&lt;br /&gt;
&lt;br /&gt;
See Materials for &amp;lt;blockid&amp;gt; values.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 modifyworld.blocks.destroy.&amp;lt;blockid&amp;gt;	Player can break &amp;lt;blockid&amp;gt;. It&#039;s also possible to specify &amp;lt;blockid&amp;gt; by name. Example: modifyworld.blocks.destroy.stone&lt;br /&gt;
 modifyworld.blocks.place.&amp;lt;blockid&amp;gt;	Player can place &amp;lt;blockid&amp;gt;. NOTICE: This permission requires modifyworld.blocks.interact.&amp;lt;blockid&amp;gt; to work properly.&lt;br /&gt;
 modifyworld.blocks.interact.&amp;lt;blockid&amp;gt;	Player can interact with &amp;lt;blockid&amp;gt; (use levers, press buttons, etc.)&lt;br /&gt;
===Item Nodes===&lt;br /&gt;
&lt;br /&gt;
See Materials for &amp;lt;itemid&amp;gt; values.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 modifyworld.items.craft.&amp;lt;itemid&amp;gt;	Player can craft &amp;lt;itemid&amp;gt;.&lt;br /&gt;
 modifyworld.items.drop.&amp;lt;itemid&amp;gt;	Player can drop &amp;lt;itemid&amp;gt;.&lt;br /&gt;
 modifyworld.items.enchant.&amp;lt;itemid&amp;gt;	Player can enchant &amp;lt;itemid&amp;gt;.&lt;br /&gt;
 modifyworld.items.have.&amp;lt;itemid&amp;gt;	Player can have &amp;lt;itemid&amp;gt; in their inventory. itemRestrictions: true need to be set for this to work.&lt;br /&gt;
 modifyworld.items.hold.&amp;lt;itemid&amp;gt;	Player can have &amp;lt;itemid&amp;gt; in their hand. itemRestrictions: true need to be set for this to work.&lt;br /&gt;
 modifyworld.items.pickup.&amp;lt;itemid&amp;gt;	Player can pickup &amp;lt;itemid&amp;gt;. Also it&#039;s possible to specify &amp;lt;itemid&amp;gt; by name, example:  、modifyworld.items.pickup.diamondpickaxe&lt;br /&gt;
 modifyworld.item.use.&amp;lt;itemid&amp;gt;.on.block.&amp;lt;blockid&amp;gt;	Player can use &amp;lt;itemid&amp;gt; on block &amp;lt;blockid&amp;gt;. item-use-check: true need to be set for this to work and is check in addition to the modifyworld.interact.&amp;lt;entityName&amp;gt; checks&lt;br /&gt;
As of 1.19.3&lt;br /&gt;
 modifyworld.items.use.&amp;lt;itemid&amp;gt;.on.block.&amp;lt;blockid&amp;gt;	Player can use &amp;lt;itemid&amp;gt; on block &amp;lt;blockid&amp;gt;. item-use-check: true need to be set for this to work and is check in addition to the modifyworld.interact.&amp;lt;entityName&amp;gt; checks&lt;br /&gt;
 modifyworld.items.throw.&amp;lt;itemid&amp;gt;	Player may throw eggs, snowballs, splash potions or experience bottles. Potion metadata excludes splash flag: potion:34 will match a Splash Potion of Swiftness II.&lt;br /&gt;
As of 1.19.4&lt;br /&gt;
 modifyworld.items.take.&amp;lt;itemid&amp;gt;.of.&amp;lt;container&amp;gt;	Player may take items from containers, such as chests.&lt;br /&gt;
 modifyworld.items.put.&amp;lt;itemid&amp;gt;.of.&amp;lt;container&amp;gt;	Player may take put items in containers, such as chests.&lt;br /&gt;
===Entity Nodes===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 modifyworld.damage.deal.&amp;lt;entityName&amp;gt;	Player can deal damage to &amp;lt;entityName&amp;gt; (e.g. skeleton, spider, creeper, cow, pig, minecart, etc)&lt;br /&gt;
 modifyworld.damage.take.&amp;lt;entityName&amp;gt;	Player can take damage from &amp;lt;entityName&amp;gt;&lt;br /&gt;
 modifyworld.mobtarget.&amp;lt;entityName&amp;gt;	Player can be targeted by &amp;lt;entityName&amp;gt;&lt;br /&gt;
 modifyworld.interact.&amp;lt;entityName&amp;gt;	Player can interact with &amp;lt;entityName&amp;gt;&lt;br /&gt;
 modifyworld.tame.&amp;lt;entityName&amp;gt;	Player can tame &amp;lt;entityName&amp;gt;. This permission won&#039;t give you ability to tame animals or mobs that are not normally tameable (no pet creepers). Currently, only animal.wolf and animal.ocelot are applicable.&lt;br /&gt;
===Possible &amp;lt;entityName&amp;gt; values===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Players and Wolves&lt;br /&gt;
 player.&amp;lt;playerName&amp;gt;	Player called &amp;lt;playerName&amp;gt;. (Example: player.t3hk0d3)&lt;br /&gt;
 group.&amp;lt;groupName&amp;gt;	Any member of &amp;lt;groupName&amp;gt; group. (Example: group.admins)&lt;br /&gt;
 animal.wolf	Wild wolf&lt;br /&gt;
 animal.wolf.&amp;lt;playerName&amp;gt;	Wolf tamed by &amp;lt;playerName&amp;gt; (Example: wolf.t3hk0d3)&lt;br /&gt;
 animal.ocelot	Wild ocelot (cat)&lt;br /&gt;
 animal.ocelot.&amp;lt;playerName&amp;gt;	Tamed cat (ocelot)&lt;br /&gt;
 Example: animal.ocelot.t3hk0d3&lt;br /&gt;
 npc.villager	Not related to Bert&lt;br /&gt;
 snowman	Not related Frosty&lt;br /&gt;
 irongolem	Defenders of the Villagers&lt;br /&gt;
Animals&lt;br /&gt;
 animal.chicken	cluck-cluck&lt;br /&gt;
 animal.cow	Mooo&lt;br /&gt;
 animal.mushroomcow	Mooshroom&lt;br /&gt;
 animal.pig	Pig&lt;br /&gt;
 animal.sheep	Sheep&lt;br /&gt;
 animal.squid	Squid&lt;br /&gt;
Monsters&lt;br /&gt;
 monster.blaze	Pyros, every one...&lt;br /&gt;
 monster.cavespider	Worse than spiders&lt;br /&gt;
 monster.creeper	SssssSSSssss&lt;br /&gt;
 monster.enderman	Don&#039;t look at them directly&lt;br /&gt;
 monster.ghast	AWWWWWWW&lt;br /&gt;
 monster.giant	Giant Zombie&lt;br /&gt;
 monster.pigzombie	Pig Zombie, omg&lt;br /&gt;
 monster.silverfish	Beware the horde&lt;br /&gt;
 monster.skeleton	Them bones, them dry bones...&lt;br /&gt;
 monster.slime	Covers regular slimes and magma cubes&lt;br /&gt;
 monster.spider	Yep, this is Spider, he is annoying.&lt;br /&gt;
 monster.zombie	Brainzzzz...&lt;br /&gt;
Environment&lt;br /&gt;
 starvation	Num nums, or lack there of&lt;br /&gt;
 fire	Initial fire damage&lt;br /&gt;
 lava	Lava damage. Add firetick too for full protection.&lt;br /&gt;
 firetick	Damage from touching fire (or after stepping into lava) over time.&lt;br /&gt;
 blockexplosion	Damage from TNT explosion.&lt;br /&gt;
 projectile.arrow	Arrows shot at player&lt;br /&gt;
 drowning	Failing to grab a breath of fresh air&lt;br /&gt;
 fall	Jumping without a parachute&lt;br /&gt;
 suicide	Committing Seppuku&lt;br /&gt;
 poison	Poison potions&lt;br /&gt;
===Vehicle Nodes===&lt;br /&gt;
&lt;br /&gt;
NOTE: If you want to have permission to enter or exit a vehicle, you will also need modifyworld.interact.*&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 modifyworld.vehicle.destroy.&amp;lt;vehicleName&amp;gt;	Player can damage vehicles (minecarts for example)&lt;br /&gt;
 modifyworld.vehicle.enter.&amp;lt;vehicleName&amp;gt;	Player can enter vehicles&lt;br /&gt;
 modifyworld.vehicle.collide.&amp;lt;vehicleName&amp;gt;	Player can collide with a vehicle&lt;br /&gt;
===Possible &amp;lt;vehicleName&amp;gt; values=== &lt;br /&gt;
&lt;br /&gt;
 Boat&lt;br /&gt;
 boat	Not related to the Love Boat&lt;br /&gt;
 Minecart&lt;br /&gt;
 minecart	Indiana Jones rides in one of these&lt;br /&gt;
===Material Names===&lt;br /&gt;
&lt;br /&gt;
If use-material-names is false use the ID column value. Otherwise use the Name value.&lt;br /&gt;
&lt;br /&gt;
You can find more detail, including metadata information, at Minecraft Wiki.&lt;br /&gt;
&lt;br /&gt;
=Pex basics=&lt;br /&gt;
===Permissions and Server Terminology===&lt;br /&gt;
&lt;br /&gt;
Server Console (AKA Console); The window that appears when the server is started. Displays server and plugin startup information, as well as server and plugin errors.&lt;br /&gt;
Global Permissions: Permissions that are applied to all worlds on a server.&lt;br /&gt;
World Specific Permissions: Permissions that are applied only to specified worlds.&lt;br /&gt;
Users: Your players.&lt;br /&gt;
Group: A name given to a set of permission nodes, often used to designate various levels of support on a server.&lt;br /&gt;
Groups can have global and world specific permissions, as well as other information used by other plugins.&lt;br /&gt;
Node: A line of text that represents a command, action or ability. For example, the /give command in bukkit has the node of bukkit.command.give&lt;br /&gt;
Negation: Mark a node as not available. Generally used only in certain specific situations.&lt;br /&gt;
Inheritance: The ability of a group to have the permissions from another group automatically apply. PEX supports group and world level Inheritance.&lt;br /&gt;
Metadata: (Also know as damage value) Metadata is another value added to an item ID number for various things, such as the different colours of wool blocks, the position of a switch, if a door is open or not, and so on. Primary used with Modifyworld.&lt;br /&gt;
===Permissions Hierarchy ===&lt;br /&gt;
&lt;br /&gt;
PEX supports both a file based and SQL permissions hierarchy. For the purposes of explanation and ease of visualization, the following example will use a file based permissions hierarchy.&lt;br /&gt;
&lt;br /&gt;
users:                                            &amp;lt;- Users Section&lt;br /&gt;
    t3hk0d3:                                      &amp;lt;- Player Name&lt;br /&gt;
        group:                                    &amp;lt;- Player Group(s) Section&lt;br /&gt;
        - default                                 &amp;lt;- Player Group Name&lt;br /&gt;
        permissions:                              &amp;lt;- Player Specific Permissions Section&lt;br /&gt;
        - permissions.*                           &amp;lt;- Permissions node&lt;br /&gt;
        worlds:                                   &amp;lt;- World Specific Permission Section&lt;br /&gt;
            world:                                &amp;lt;- World designator&lt;br /&gt;
                permissions:                      &amp;lt;- World Specific Permission Group&lt;br /&gt;
                - test.*                          &amp;lt;- World Specific Permission&lt;br /&gt;
                group:                            &amp;lt;- World Specific Group Section&lt;br /&gt;
                - testers                         &amp;lt;- World Specific Group&lt;br /&gt;
                prefix: &#039;&amp;amp;5[YARR]&amp;amp;f&#039;              &amp;lt;- World Specific Prefix&lt;br /&gt;
groups:                                           &amp;lt;- Group Section&lt;br /&gt;
    default:                                      &amp;lt;- Group Name&lt;br /&gt;
        default: true                             &amp;lt;- Default Group Setting&lt;br /&gt;
        permissions:                              &amp;lt;- Group Permissions Section&lt;br /&gt;
        - -modifyworld.blocks.interact.23         &amp;lt;- Negated Permission Node&lt;br /&gt;
        - modifyworld.*                           &amp;lt;- Permission Node&lt;br /&gt;
    admins:&lt;br /&gt;
        inheritance:                              &amp;lt;- Group Inheritance Section&lt;br /&gt;
        - default                                 &amp;lt;- Groups) To Inherit From&lt;br /&gt;
        permissions:&lt;br /&gt;
        - example.permission&lt;br /&gt;
        - -punish.noobs&lt;br /&gt;
        options:                                  &amp;lt;- Group Options Section&lt;br /&gt;
            test.test: &#039;100500&#039;                   &amp;lt;- Extra Data&lt;br /&gt;
            rank: &#039;1&#039;                             &amp;lt;- Rank Designator&lt;br /&gt;
        worlds:&lt;br /&gt;
            nether:&lt;br /&gt;
                permissions:&lt;br /&gt;
                - nocheat.fly&lt;br /&gt;
                prefix: &#039;&amp;amp;7[ADMIN FROM HELL]&#039;&lt;br /&gt;
    testers:&lt;br /&gt;
        inheritance:&lt;br /&gt;
        - admins&lt;br /&gt;
        options:&lt;br /&gt;
            test.test: &#039;9000&#039;&lt;br /&gt;
worlds:                                           &amp;lt;- World Specific Section&lt;br /&gt;
    nether:                                       &amp;lt;- World Name&lt;br /&gt;
        inheritance:                              &amp;lt;- World Inheritance Section&lt;br /&gt;
        - world                                   &amp;lt;- World To Inherit From&lt;br /&gt;
===PEX File Format (YAML)===&lt;br /&gt;
&lt;br /&gt;
PEX, like many other plugins, uses a format for it&#039;s files called YAML (YAML Ain&#039;t Markup Language, see http://yaml.org/ if you want to know more). YAML, unlike some other file formats, is very picky about the formatting and characters used. Config files used by PEX, including the permissions file, must be indented correctly! Capitalization matters as well!&lt;br /&gt;
&lt;br /&gt;
The rules for YAML as they apply to PEX are:&lt;br /&gt;
&lt;br /&gt;
Certain characters are reserved for use by YAML. Some of the characters are  &#039; - : # and %. If the data for an entry is going to use one of those characters, it must be in quotes.&lt;br /&gt;
%prefix%player%suffix&amp;gt; &amp;amp;e%message is invalid. &amp;quot;%prefix%player%suffix&amp;gt; &amp;amp;e%message&amp;quot; is valid&lt;br /&gt;
Any entries that are made of numbers only must be in quotes.&lt;br /&gt;
rank: 1000 or 45625: is invalid. rank: &#039;1000&#039; or &#039;45625&#039;: is valid.&lt;br /&gt;
Tabs are not allowed to be in the file anywhere, unless it is in quotes. Any place where you would use a tab must use exactly two spaces.&lt;br /&gt;
Each group must start at the very beginning of the line, and each section contained within that section must be indented.&lt;br /&gt;
Due to the regex support in PEX, there are other characters that one has to be aware of. Characters such as } { ) ( ? and * must be quoted or escaped (a backslash works well). This isn&#039;t a YAML limitation, but is a similar situation to the reserved characters in YAML.&lt;br /&gt;
&lt;br /&gt;
=PEXML=&lt;br /&gt;
=Plugin Configuration=&lt;br /&gt;
=Ranks (Promotion and Demotion)=&lt;br /&gt;
=Troubleshooting and FAQ=&lt;/div&gt;</summary>
		<author><name>Minedx</name></author>
	</entry>
	<entry>
		<id>https://mineplugin.org/index.php?title=%E7%94%A8%E6%88%B7:Minedx&amp;diff=1111</id>
		<title>用户:Minedx</title>
		<link rel="alternate" type="text/html" href="https://mineplugin.org/index.php?title=%E7%94%A8%E6%88%B7:Minedx&amp;diff=1111"/>
		<updated>2015-07-19T16:25:27Z</updated>

		<summary type="html">&lt;p&gt;Minedx：​&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== 个人信息与属性 ==&lt;br /&gt;
&lt;br /&gt;
MCBBS:tony990412&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
江苏苏州  物联网专业！&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
单片机轻度兼容！&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
萌,腹黑,强受属性&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
快速学习快速忘！&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;傲娇！&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
其实就是逗比一枚！&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 特殊技能 ==&lt;br /&gt;
&lt;br /&gt;
c51！&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
奇怪声线！&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
两年后台插件经验！&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
意识落后但是可以通过不同角度解决你的问题！&lt;/div&gt;</summary>
		<author><name>Minedx</name></author>
	</entry>
	<entry>
		<id>https://mineplugin.org/index.php?title=%E7%94%A8%E6%88%B7:Minedx&amp;diff=1110</id>
		<title>用户:Minedx</title>
		<link rel="alternate" type="text/html" href="https://mineplugin.org/index.php?title=%E7%94%A8%E6%88%B7:Minedx&amp;diff=1110"/>
		<updated>2015-07-19T16:24:02Z</updated>

		<summary type="html">&lt;p&gt;Minedx：​/* 特殊技能 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== 个人信息与属性 ==&lt;br /&gt;
&lt;br /&gt;
MCBBS:tony990412&lt;br /&gt;
----&lt;br /&gt;
江苏苏州  物联网专业！&lt;br /&gt;
----&lt;br /&gt;
单片机轻度兼容！&lt;br /&gt;
----&lt;br /&gt;
萌,腹黑,强受属性&lt;br /&gt;
----&lt;br /&gt;
快速学习快速忘！&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;傲娇！&#039;&#039;&#039;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
其实就是逗比一枚！&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== 特殊技能 ==&lt;br /&gt;
&lt;br /&gt;
c51！&lt;br /&gt;
----&lt;br /&gt;
奇怪声线！&lt;br /&gt;
----&lt;br /&gt;
两年后台插件经验！&lt;br /&gt;
----&lt;br /&gt;
意识落后但是&lt;br /&gt;
可以通过不同角度解决你的问题！&lt;/div&gt;</summary>
		<author><name>Minedx</name></author>
	</entry>
	<entry>
		<id>https://mineplugin.org/index.php?title=%E7%94%A8%E6%88%B7:Minedx&amp;diff=1109</id>
		<title>用户:Minedx</title>
		<link rel="alternate" type="text/html" href="https://mineplugin.org/index.php?title=%E7%94%A8%E6%88%B7:Minedx&amp;diff=1109"/>
		<updated>2015-07-19T16:23:39Z</updated>

		<summary type="html">&lt;p&gt;Minedx：​/* 个人信息与属性 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== 个人信息与属性 ==&lt;br /&gt;
&lt;br /&gt;
MCBBS:tony990412&lt;br /&gt;
----&lt;br /&gt;
江苏苏州  物联网专业！&lt;br /&gt;
----&lt;br /&gt;
单片机轻度兼容！&lt;br /&gt;
----&lt;br /&gt;
萌,腹黑,强受属性&lt;br /&gt;
----&lt;br /&gt;
快速学习快速忘！&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;傲娇！&#039;&#039;&#039;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
其实就是逗比一枚！&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== 特殊技能 ==&lt;br /&gt;
&lt;br /&gt;
c51！&lt;br /&gt;
奇怪声线！&lt;br /&gt;
两年后台插件经验！&lt;br /&gt;
意识落后但是&lt;br /&gt;
可以通过不同角度解决你的问题！&lt;/div&gt;</summary>
		<author><name>Minedx</name></author>
	</entry>
	<entry>
		<id>https://mineplugin.org/index.php?title=%E7%94%A8%E6%88%B7:Minedx&amp;diff=1108</id>
		<title>用户:Minedx</title>
		<link rel="alternate" type="text/html" href="https://mineplugin.org/index.php?title=%E7%94%A8%E6%88%B7:Minedx&amp;diff=1108"/>
		<updated>2015-07-19T16:23:15Z</updated>

		<summary type="html">&lt;p&gt;Minedx：​&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== 个人信息与属性 ==&lt;br /&gt;
&lt;br /&gt;
MCBBS:tony990412&lt;br /&gt;
江苏苏州  物联网专业！单片机轻度兼容！&lt;br /&gt;
萌,腹黑,强受属性&lt;br /&gt;
快速学习快速忘！&lt;br /&gt;
&#039;&#039;&#039;傲娇！&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
其实就是逗比一枚！&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 特殊技能 ==&lt;br /&gt;
&lt;br /&gt;
c51！&lt;br /&gt;
奇怪声线！&lt;br /&gt;
两年后台插件经验！&lt;br /&gt;
意识落后但是&lt;br /&gt;
可以通过不同角度解决你的问题！&lt;/div&gt;</summary>
		<author><name>Minedx</name></author>
	</entry>
	<entry>
		<id>https://mineplugin.org/index.php?title=%E7%94%A8%E6%88%B7:Minedx&amp;diff=1107</id>
		<title>用户:Minedx</title>
		<link rel="alternate" type="text/html" href="https://mineplugin.org/index.php?title=%E7%94%A8%E6%88%B7:Minedx&amp;diff=1107"/>
		<updated>2015-07-19T16:19:56Z</updated>

		<summary type="html">&lt;p&gt;Minedx：​以“ == 个人信息与属性 ==  MCBBS:tony990412 江苏苏州  物联网专业！单片机轻度兼容！ 萌,腹黑,强受属性 快速学习快速忘！ &amp;#039;&amp;#039;&amp;#039;傲娇！...”为内容创建页面&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== 个人信息与属性 ==&lt;br /&gt;
&lt;br /&gt;
MCBBS:tony990412&lt;br /&gt;
江苏苏州  物联网专业！单片机轻度兼容！&lt;br /&gt;
萌,腹黑,强受属性&lt;br /&gt;
快速学习快速忘！&lt;br /&gt;
&#039;&#039;&#039;傲娇！&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
其实就是逗比一枚！&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 特殊技能 ==&lt;br /&gt;
&lt;br /&gt;
c51！&lt;br /&gt;
奇怪声线！&lt;br /&gt;
两年后台插件经验！&lt;br /&gt;
意识落后但是&lt;br /&gt;
可以通过不同角度解决你的问题！&lt;/div&gt;</summary>
		<author><name>Minedx</name></author>
	</entry>
	<entry>
		<id>https://mineplugin.org/index.php?title=CrazyLogin/%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6&amp;diff=1106</id>
		<title>CrazyLogin/配置文件</title>
		<link rel="alternate" type="text/html" href="https://mineplugin.org/index.php?title=CrazyLogin/%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6&amp;diff=1106"/>
		<updated>2015-07-19T16:01:38Z</updated>

		<summary type="html">&lt;p&gt;Minedx：​&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= config.yml =&lt;br /&gt;
version: X.Y&lt;br /&gt;
 此插件的版本可以在这里找到&lt;br /&gt;
 https://github.com/ST-DDT/CrazyLogin/blob/master/src/main/resources/plugin.yml&lt;br /&gt;
 提示信息头部 (它不能被任意一种reload所改变（也就是说，只能重启）)&lt;br /&gt;
chatHeader: &#039;&amp;amp;C[&amp;amp;ACrazyLogin&amp;amp;C] &amp;amp;F&#039;&lt;br /&gt;
database:&lt;br /&gt;
 保存类型↓ 可以为： &#039;MYSQL&#039;（MYSQL数据库）,&#039;FLAT&#039;（文件name.db）,&#039;CONFIG&#039;（不明)&lt;br /&gt;
  saveType: FLAT&lt;br /&gt;
 是否在关服时写入数据&lt;br /&gt;
  saveOnShutdown: true&lt;br /&gt;
 CONFIG 数据记录模式配置&lt;br /&gt;
  CONFIG:&lt;br /&gt;
 path inside config.yml&lt;br /&gt;
    path: accounts&lt;br /&gt;
    columns:&lt;br /&gt;
      name: name&lt;br /&gt;
      password: password&lt;br /&gt;
      ips: ips&lt;br /&gt;
      lastAction: lastAction&lt;br /&gt;
 FLAT 数据记录模式配置&lt;br /&gt;
  FLAT:&lt;br /&gt;
 数据库文件在插件config.yml所在目录中，下面可以更改文件名&lt;br /&gt;
    filePath: accounts.db&lt;br /&gt;
 MYSQL 数据库记录配置&lt;br /&gt;
 更多MYSQL配置戳这里 → [http://dev.bukkit.org/bukkit-plugins/crazycore/pages/mys-ql/ 这里]&lt;br /&gt;
  MYSQL:&lt;br /&gt;
    connection:&lt;br /&gt;
      host: localhost     链接数据库地址&lt;br /&gt;
      port: &#039;3306&#039;        端口&lt;br /&gt;
      dbname: Crazy       数据库名&lt;br /&gt;
      user: root          用户名&lt;br /&gt;
      password: &#039;&#039;        密码&lt;br /&gt;
    tableName: CrazyLogin_accounts   表的名字&lt;br /&gt;
 是否在没有玩家在线时让数据加载（这会消耗RAM！）. &lt;br /&gt;
 设置为false来使插件RAM占用减少&lt;br /&gt;
    cached: true&lt;br /&gt;
 如果下面的选项设置为true，那么在玩家登陆时将不会更新数据库, &lt;br /&gt;
 通常在多个服务器使用同一数据库时派上用场&lt;br /&gt;
    static: false&lt;br /&gt;
    columns:&lt;br /&gt;
      name: name&lt;br /&gt;
      password: password&lt;br /&gt;
      ips: ips&lt;br /&gt;
      lastAction: lastAction&lt;br /&gt;
 SQLITE 数据库配置&lt;br /&gt;
  SQLITE:&lt;br /&gt;
    connection:&lt;br /&gt;
      path: plugins/CrazyLogin/accounts.sqlite   sqlite路径&lt;br /&gt;
    tableName: CrazyLogin_accounts               表名&lt;br /&gt;
 是否在没有玩家在线时让数据加载（这会消耗RAM！）. &lt;br /&gt;
 设置为false来使插件RAM占用减少&lt;br /&gt;
    cached: true&lt;br /&gt;
 如果下面的选项设置为true，那么在玩家登陆时将不会更新数据库, &lt;br /&gt;
 通常在多个服务器使用同一数据库时派上用场&lt;br /&gt;
    static: false&lt;br /&gt;
    columns:&lt;br /&gt;
      name: name&lt;br /&gt;
      password: password&lt;br /&gt;
      ips: ips&lt;br /&gt;
      lastAction: lastAction&lt;br /&gt;
 设置在登录时是否一定需要密码或令玩家在想登陆时输入密码，玩家没有登录（或注册）时不能聊天、合成、破坏/创建方块、扔掉/拾取物品、移动/传送或瞬移、打开容器&lt;br /&gt;
 权限节点无效，op或者玩家一定需要输入密码或可选地输入密码&lt;br /&gt;
alwaysNeedPassword: true&lt;br /&gt;
 如果设置为true你得输入两次你的密码.（}注意，这个括号表示不用输）&lt;br /&gt;
 例: /register {OldPassword} &amp;lt;NewPassword&amp;gt; &amp;lt;NewPassword&amp;gt;&lt;br /&gt;
confirmNewPassword: false&lt;br /&gt;
 如果设置为true你必须在改变新密码时输入旧密码.&lt;br /&gt;
 例: /register &amp;lt;OldPassword&amp;gt; &amp;lt;NewPassword&amp;gt; {NewPassword}&lt;br /&gt;
confirmWithOldPassword: false&lt;br /&gt;
 如果设置为true的话，在玩家加入时保护将会被禁用，以降低服务器负担, &lt;br /&gt;
 会减少加入服务器,登陆,退出服务器时服务器的负担.&lt;br /&gt;
dynamicProtection: false&lt;br /&gt;
 隐藏 登陆错误 &amp;amp; &amp;lt;nowiki&amp;gt;COMMAND.EXPLOITWARN&amp;lt;/nowiki&amp;gt; 消息&lt;br /&gt;
 详细: 可能在未来会有其他警告消息同时被屏蔽.&lt;br /&gt;
 &#039;&#039;&#039;警告: 您不会收到任何可能攻占您服务器的信息 (直到它成功了).&#039;&#039;&#039; &lt;br /&gt;
hideWarnings: false&lt;br /&gt;
 你必须要在 不活跃/下线 x 秒后重新登录&lt;br /&gt;
 当你换了个ip登陆的时候肯定会被搞下线！&lt;br /&gt;
autoLogout: 3600&lt;br /&gt;
 功能开启时，在线却不登陆x秒后会被踢出 (-1=不开启)&lt;br /&gt;
autoKick: -1&lt;br /&gt;
 当开启时您因不登陆被t出时时同时会被ban x 秒 (-1=不开启)&lt;br /&gt;
autoTempBan: -1&lt;br /&gt;
 当你无账号时你会在 x 秒内被请出. (-1=不开启)&lt;br /&gt;
autoKickUnregistered: -1&lt;br /&gt;
 功能开启时，将会在失败登陆x次后被踢出 (-1=不开启)&lt;br /&gt;
autoKickLoginFailer: 3&lt;br /&gt;
 功能开启时，将会因为登陆失败而封禁x秒 (-1=不开启)&lt;br /&gt;
autoTempBanLoginFailer: -1&lt;br /&gt;
 功能开启时，将会因为使用不在白名单内的命令（违禁命令）x次而被踢出 (-1=不开启，下面的false也是不开启)&lt;br /&gt;
autoKickCommandUsers: false&lt;br /&gt;
 功能开启时，你将会因为使用不在白名单内的命令而被封禁x秒 (-1=不开启)&lt;br /&gt;
autoTempBanCommandUsers:&lt;br /&gt;
 功能开启时，不能在未登录状态下使用命令 (同使用违禁命令自动踢出功能一起工作) (true=开启/false=不开启)&lt;br /&gt;
blockGuestCommands: true&lt;br /&gt;
 功能开启时， 不能在未登录状态下发信息(true=开启/false=不开启)&lt;br /&gt;
blockGuestChat: false&lt;br /&gt;
 功能开启时，不能在未注册（数据库注册）情况下加入服务器 (同SQL数据库一起工作) (true=开启/false=不开启)&lt;br /&gt;
blockGuestJoin: false&lt;br /&gt;
 玩家数据将会在离开游戏后被重置 &lt;br /&gt;
 这包括所有的crazy系列插件, 玩家信息 (如果启动), +更多 (如果已启用)&lt;br /&gt;
 在这之后在服务器内搜索玩家名字将不会搜索到文件 (最好情况)&lt;br /&gt;
removeGuestData: false&lt;br /&gt;
 如果设置为true游戏中注册会被禁止(指令和插件相关) (true=开启/false=不开启)&lt;br /&gt;
disableRegistrations: false&lt;br /&gt;
 如果设置为true你将会无法使用AdminLogin的相关内容 (true=开启/false=不开启)&lt;br /&gt;
disableAdminLogin: false&lt;br /&gt;
 如果设置为true你将会无法使用TokenLogin的相关内容 (true=开启/false=不开启)&lt;br /&gt;
disableTokenLogin: false&lt;br /&gt;
 当不停过多使用屏蔽 登陆/注册 指令时将会使 登陆/注册 指令只能5秒使用一次 (true=开启/false=不开启)&lt;br /&gt;
doNotSpamAuthRequests: false&lt;br /&gt;
 只向玩家发送一次注册提示信息 (如果 alwaysNeedPassword=false) (true=开启/false=不开启)&lt;br /&gt;
doNotSpamRegisterRequests: false&lt;br /&gt;
 注册信息会延迟 x ticks 防止被其他信息覆盖.&lt;br /&gt;
delayAuthRequests: 0&lt;br /&gt;
 重复注册信息 x ticks 防止被其他信息覆盖.&lt;br /&gt;
repeatAuthRequests: 200&lt;br /&gt;
 以下这些指令游客或未登陆者可以执行 (即使 BlockGuestCommands 被启用了).&lt;br /&gt;
commandWhitelist:&lt;br /&gt;
- /l(ogin)?(\z| .*)&lt;br /&gt;
- /register(\z| .*)&lt;br /&gt;
- /language(\z| [a-z]{2,3}_[a-z]{2,3})&lt;br /&gt;
- /language select(\z| .*)&lt;br /&gt;
- /language list(\z| .*)&lt;br /&gt;
- /worldedit cui&lt;br /&gt;
 关于加密您的密码库的算法请访问以下页面. http://dev.bukkit.org/server-mods/crazylogin/pages/encryption/&lt;br /&gt;
 encryptor:&lt;br /&gt;
  name: CrazyCrypt1&lt;br /&gt;
 密码最短长度:&lt;br /&gt;
 minPasswordLength: 3&lt;br /&gt;
 对于保护者（特定权限拥有者）的最短密码长度&lt;br /&gt;
protectedAccountMinPasswordLength: 7&lt;br /&gt;
 防止玩家顶号 (true/false)&lt;br /&gt;
forceSingleSession: true&lt;br /&gt;
 当使用同一ip时越过 &amp;lt;nowiki&amp;gt;ForceSingleSession&amp;lt;/nowiki&amp;gt;[强制会话信息]. (true/false)&lt;br /&gt;
forceSingleSessionSameIPBypass: true&lt;br /&gt;
 激活预[[注册]]保护 x ticks(隐藏背包内容/ForceSaveLogin) (false/0, 1 , ...)&lt;br /&gt;
 目的是为了防止customSpawns和joinRewards.&lt;br /&gt;
delayPreRegisterSecurity: 5&lt;br /&gt;
 激活预[[登陆]]保护 x ticks(隐藏背包内容/ForceSaveLogin) (false/0, 1 , ...)&lt;br /&gt;
 目的是为了防止customSpawns和joinRewards.&lt;br /&gt;
 &#039;&#039;&#039;警告:部分作弊客户端可能会在这段时间内读取背包内容&#039;&#039;&#039;&lt;br /&gt;
delayPreLoginSecurity: false&lt;br /&gt;
 当开启时如果你受到伤害时你会被传送到出生点直到你登陆完成. (true/false)&lt;br /&gt;
saveLoginEnabled: true&lt;br /&gt;
 当开启时你会被传送到出生点直到你登陆完成. (true/false)&lt;br /&gt;
 这会修复AntiCheatPlugins当你在半空中时将你t出游戏.&lt;br /&gt;
forceSaveLogin: false&lt;br /&gt;
 各个世界的强制出生点:&lt;br /&gt;
saveLoginLocations: {}&lt;br /&gt;
  world:&lt;br /&gt;
    x: 1500&lt;br /&gt;
    y: -300&lt;br /&gt;
    z: 0.1&lt;br /&gt;
 这是可选参数！&lt;br /&gt;
    world: world&lt;br /&gt;
    yaw: 0&lt;br /&gt;
    pitch: 0&lt;br /&gt;
 当开启时你的背包将会被隐藏到你登陆为止. (true/false)&lt;br /&gt;
hideInventory: false&lt;br /&gt;
 隐藏未登录的玩家. (true/false)&lt;br /&gt;
hidePlayer: false&lt;br /&gt;
 阻止未登录的玩家获取聊天消息. (true/false)&lt;br /&gt;
hideChat: false&lt;br /&gt;
 不提示登陆消息直到玩家成功登陆/离开游戏. (true/false)&lt;br /&gt;
delayJoinQuitMessages: false&lt;br /&gt;
 使用多国语言. (true/false)&lt;br /&gt;
useCustomJoinQuitMessages: true&lt;br /&gt;
 隐藏服务端的密码 (提示信息为: Player issues command: /login Password) (true/false)&lt;br /&gt;
 &#039;&#039;信息:在极罕见的情况下可以越过某些其他插件的保护结构.&#039;&#039;&lt;br /&gt;
hidePasswordsFromConsole: false&lt;br /&gt;
 每个ip存储玩家的最大数:&lt;br /&gt;
maxStoredIPs: 5&lt;br /&gt;
 每个ip允许的最大在线玩家数:&lt;br /&gt;
maxOnlinesPerIP: 3&lt;br /&gt;
 每个ip允许的最大注册量:&lt;br /&gt;
maxRegistrationsPerIP: 3&lt;br /&gt;
 自动删除 x 天未登陆过的号(-1=关闭功能)&lt;br /&gt;
 &#039;&#039;&#039;警告:这会清除此玩家的所有信息(包括其他插件存储的内容;等同于&amp;quot;/crazycore player delete &amp;lt;Player&amp;gt;&amp;quot;)&#039;&#039;&#039;&lt;br /&gt;
autoDelete: -1&lt;br /&gt;
 唤醒特殊事件(大部分情况请关闭此选项)&lt;br /&gt;
  当换密码时向其他插件传达未经加密的密码.&lt;br /&gt;
pluginCommunicationEnabled: false&lt;br /&gt;
 在你未登录的情况下你可以移动 x 格.&lt;br /&gt;
 设置为0你将不能移动或转向.&lt;br /&gt;
moveRange: 5.0&lt;br /&gt;
 启用名称过滤器. (true/false/[a-zA-Z0-9_]/...)&lt;br /&gt;
filterNames: true&lt;br /&gt;
 检查大小写. (true/false)&lt;br /&gt;
 如果你使用 &amp;quot;PLaYer&amp;quot; 注册就不能使用 &amp;quot;Player&amp;quot; 登陆了！&lt;br /&gt;
 当玩家用不同大小写登录时一些加密会错误.&lt;br /&gt;
 INFO: a player cannot bypass login by using an different name case at any time.&lt;br /&gt;
blockDifferentNameCases: false&lt;br /&gt;
 最短用户名限制:&lt;br /&gt;
minNameLength: 3&lt;br /&gt;
 最长用户名限制: (minecraft 游戏中默认是 16)&lt;br /&gt;
maxNameLength: 16&lt;br /&gt;
 附加消息内容可以在以下网站中找到: http://dev.bukkit.org/server-mods/crazycore/pages/logging/&lt;br /&gt;
logs:&lt;br /&gt;
  Join:&lt;br /&gt;
    path: false&lt;br /&gt;
    console: false&lt;br /&gt;
  Quit:&lt;br /&gt;
    path: false&lt;br /&gt;
    console: false&lt;br /&gt;
  Login:&lt;br /&gt;
    path: false&lt;br /&gt;
    console: false&lt;br /&gt;
  Account:&lt;br /&gt;
    path: false&lt;br /&gt;
    console: false&lt;br /&gt;
  Logout:&lt;br /&gt;
    path: false&lt;br /&gt;
    console: false&lt;br /&gt;
  LoginFail:&lt;br /&gt;
    path: false&lt;br /&gt;
    console: false&lt;br /&gt;
  ChatBlocked:&lt;br /&gt;
    path: false&lt;br /&gt;
    console: false&lt;br /&gt;
  CommandBlocked:&lt;br /&gt;
    path: false&lt;br /&gt;
    console: false&lt;br /&gt;
  AccessDenied:&lt;br /&gt;
    path: false&lt;br /&gt;
    console: false&lt;/div&gt;</summary>
		<author><name>Minedx</name></author>
	</entry>
	<entry>
		<id>https://mineplugin.org/index.php?title=CrazyLogin/%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6&amp;diff=1105</id>
		<title>CrazyLogin/配置文件</title>
		<link rel="alternate" type="text/html" href="https://mineplugin.org/index.php?title=CrazyLogin/%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6&amp;diff=1105"/>
		<updated>2015-07-19T16:01:13Z</updated>

		<summary type="html">&lt;p&gt;Minedx：​blockGuestCommands joinRewards customSpawns ForceSaveLogin 未翻译 ForceSingleSession 非正式翻译&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{待翻译}}&lt;br /&gt;
= config.yml =&lt;br /&gt;
version: X.Y&lt;br /&gt;
 此插件的版本可以在这里找到&lt;br /&gt;
 https://github.com/ST-DDT/CrazyLogin/blob/master/src/main/resources/plugin.yml&lt;br /&gt;
 提示信息头部 (它不能被任意一种reload所改变（也就是说，只能重启）)&lt;br /&gt;
chatHeader: &#039;&amp;amp;C[&amp;amp;ACrazyLogin&amp;amp;C] &amp;amp;F&#039;&lt;br /&gt;
database:&lt;br /&gt;
 保存类型↓ 可以为： &#039;MYSQL&#039;（MYSQL数据库）,&#039;FLAT&#039;（文件name.db）,&#039;CONFIG&#039;（不明)&lt;br /&gt;
  saveType: FLAT&lt;br /&gt;
 是否在关服时写入数据&lt;br /&gt;
  saveOnShutdown: true&lt;br /&gt;
 CONFIG 数据记录模式配置&lt;br /&gt;
  CONFIG:&lt;br /&gt;
 path inside config.yml&lt;br /&gt;
    path: accounts&lt;br /&gt;
    columns:&lt;br /&gt;
      name: name&lt;br /&gt;
      password: password&lt;br /&gt;
      ips: ips&lt;br /&gt;
      lastAction: lastAction&lt;br /&gt;
 FLAT 数据记录模式配置&lt;br /&gt;
  FLAT:&lt;br /&gt;
 数据库文件在插件config.yml所在目录中，下面可以更改文件名&lt;br /&gt;
    filePath: accounts.db&lt;br /&gt;
 MYSQL 数据库记录配置&lt;br /&gt;
 更多MYSQL配置戳这里 → [http://dev.bukkit.org/bukkit-plugins/crazycore/pages/mys-ql/ 这里]&lt;br /&gt;
  MYSQL:&lt;br /&gt;
    connection:&lt;br /&gt;
      host: localhost     链接数据库地址&lt;br /&gt;
      port: &#039;3306&#039;        端口&lt;br /&gt;
      dbname: Crazy       数据库名&lt;br /&gt;
      user: root          用户名&lt;br /&gt;
      password: &#039;&#039;        密码&lt;br /&gt;
    tableName: CrazyLogin_accounts   表的名字&lt;br /&gt;
 是否在没有玩家在线时让数据加载（这会消耗RAM！）. &lt;br /&gt;
 设置为false来使插件RAM占用减少&lt;br /&gt;
    cached: true&lt;br /&gt;
 如果下面的选项设置为true，那么在玩家登陆时将不会更新数据库, &lt;br /&gt;
 通常在多个服务器使用同一数据库时派上用场&lt;br /&gt;
    static: false&lt;br /&gt;
    columns:&lt;br /&gt;
      name: name&lt;br /&gt;
      password: password&lt;br /&gt;
      ips: ips&lt;br /&gt;
      lastAction: lastAction&lt;br /&gt;
 SQLITE 数据库配置&lt;br /&gt;
  SQLITE:&lt;br /&gt;
    connection:&lt;br /&gt;
      path: plugins/CrazyLogin/accounts.sqlite   sqlite路径&lt;br /&gt;
    tableName: CrazyLogin_accounts               表名&lt;br /&gt;
 是否在没有玩家在线时让数据加载（这会消耗RAM！）. &lt;br /&gt;
 设置为false来使插件RAM占用减少&lt;br /&gt;
    cached: true&lt;br /&gt;
 如果下面的选项设置为true，那么在玩家登陆时将不会更新数据库, &lt;br /&gt;
 通常在多个服务器使用同一数据库时派上用场&lt;br /&gt;
    static: false&lt;br /&gt;
    columns:&lt;br /&gt;
      name: name&lt;br /&gt;
      password: password&lt;br /&gt;
      ips: ips&lt;br /&gt;
      lastAction: lastAction&lt;br /&gt;
 设置在登录时是否一定需要密码或令玩家在想登陆时输入密码，玩家没有登录（或注册）时不能聊天、合成、破坏/创建方块、扔掉/拾取物品、移动/传送或瞬移、打开容器&lt;br /&gt;
 权限节点无效，op或者玩家一定需要输入密码或可选地输入密码&lt;br /&gt;
alwaysNeedPassword: true&lt;br /&gt;
 如果设置为true你得输入两次你的密码.（}注意，这个括号表示不用输）&lt;br /&gt;
 例: /register {OldPassword} &amp;lt;NewPassword&amp;gt; &amp;lt;NewPassword&amp;gt;&lt;br /&gt;
confirmNewPassword: false&lt;br /&gt;
 如果设置为true你必须在改变新密码时输入旧密码.&lt;br /&gt;
 例: /register &amp;lt;OldPassword&amp;gt; &amp;lt;NewPassword&amp;gt; {NewPassword}&lt;br /&gt;
confirmWithOldPassword: false&lt;br /&gt;
 如果设置为true的话，在玩家加入时保护将会被禁用，以降低服务器负担, &lt;br /&gt;
 会减少加入服务器,登陆,退出服务器时服务器的负担.&lt;br /&gt;
dynamicProtection: false&lt;br /&gt;
 隐藏 登陆错误 &amp;amp; &amp;lt;nowiki&amp;gt;COMMAND.EXPLOITWARN&amp;lt;/nowiki&amp;gt; 消息&lt;br /&gt;
 详细: 可能在未来会有其他警告消息同时被屏蔽.&lt;br /&gt;
 &#039;&#039;&#039;警告: 您不会收到任何可能攻占您服务器的信息 (直到它成功了).&#039;&#039;&#039; &lt;br /&gt;
hideWarnings: false&lt;br /&gt;
 你必须要在 不活跃/下线 x 秒后重新登录&lt;br /&gt;
 当你换了个ip登陆的时候肯定会被搞下线！&lt;br /&gt;
autoLogout: 3600&lt;br /&gt;
 功能开启时，在线却不登陆x秒后会被踢出 (-1=不开启)&lt;br /&gt;
autoKick: -1&lt;br /&gt;
 当开启时您因不登陆被t出时时同时会被ban x 秒 (-1=不开启)&lt;br /&gt;
autoTempBan: -1&lt;br /&gt;
 当你无账号时你会在 x 秒内被请出. (-1=不开启)&lt;br /&gt;
autoKickUnregistered: -1&lt;br /&gt;
 功能开启时，将会在失败登陆x次后被踢出 (-1=不开启)&lt;br /&gt;
autoKickLoginFailer: 3&lt;br /&gt;
 功能开启时，将会因为登陆失败而封禁x秒 (-1=不开启)&lt;br /&gt;
autoTempBanLoginFailer: -1&lt;br /&gt;
 功能开启时，将会因为使用不在白名单内的命令（违禁命令）x次而被踢出 (-1=不开启，下面的false也是不开启)&lt;br /&gt;
autoKickCommandUsers: false&lt;br /&gt;
 功能开启时，你将会因为使用不在白名单内的命令而被封禁x秒 (-1=不开启)&lt;br /&gt;
autoTempBanCommandUsers:&lt;br /&gt;
 功能开启时，不能在未登录状态下使用命令 (同使用违禁命令自动踢出功能一起工作) (true=开启/false=不开启)&lt;br /&gt;
blockGuestCommands: true&lt;br /&gt;
 功能开启时， 不能在未登录状态下发信息(true=开启/false=不开启)&lt;br /&gt;
blockGuestChat: false&lt;br /&gt;
 功能开启时，不能在未注册（数据库注册）情况下加入服务器 (同SQL数据库一起工作) (true=开启/false=不开启)&lt;br /&gt;
blockGuestJoin: false&lt;br /&gt;
 玩家数据将会在离开游戏后被重置 &lt;br /&gt;
 这包括所有的crazy系列插件, 玩家信息 (如果启动), +更多 (如果已启用)&lt;br /&gt;
 在这之后在服务器内搜索玩家名字将不会搜索到文件 (最好情况)&lt;br /&gt;
removeGuestData: false&lt;br /&gt;
 如果设置为true游戏中注册会被禁止(指令和插件相关) (true=开启/false=不开启)&lt;br /&gt;
disableRegistrations: false&lt;br /&gt;
 如果设置为true你将会无法使用AdminLogin的相关内容 (true=开启/false=不开启)&lt;br /&gt;
disableAdminLogin: false&lt;br /&gt;
 如果设置为true你将会无法使用TokenLogin的相关内容 (true=开启/false=不开启)&lt;br /&gt;
disableTokenLogin: false&lt;br /&gt;
 当不停过多使用屏蔽 登陆/注册 指令时将会使 登陆/注册 指令只能5秒使用一次 (true=开启/false=不开启)&lt;br /&gt;
doNotSpamAuthRequests: false&lt;br /&gt;
 只向玩家发送一次注册提示信息 (如果 alwaysNeedPassword=false) (true=开启/false=不开启)&lt;br /&gt;
doNotSpamRegisterRequests: false&lt;br /&gt;
 注册信息会延迟 x ticks 防止被其他信息覆盖.&lt;br /&gt;
delayAuthRequests: 0&lt;br /&gt;
 重复注册信息 x ticks 防止被其他信息覆盖.&lt;br /&gt;
repeatAuthRequests: 200&lt;br /&gt;
 以下这些指令游客或未登陆者可以执行 (即使 BlockGuestCommands 被启用了).&lt;br /&gt;
commandWhitelist:&lt;br /&gt;
- /l(ogin)?(\z| .*)&lt;br /&gt;
- /register(\z| .*)&lt;br /&gt;
- /language(\z| [a-z]{2,3}_[a-z]{2,3})&lt;br /&gt;
- /language select(\z| .*)&lt;br /&gt;
- /language list(\z| .*)&lt;br /&gt;
- /worldedit cui&lt;br /&gt;
 关于加密您的密码库的算法请访问以下页面. http://dev.bukkit.org/server-mods/crazylogin/pages/encryption/&lt;br /&gt;
 encryptor:&lt;br /&gt;
  name: CrazyCrypt1&lt;br /&gt;
 密码最短长度:&lt;br /&gt;
 minPasswordLength: 3&lt;br /&gt;
 对于保护者（特定权限拥有者）的最短密码长度&lt;br /&gt;
protectedAccountMinPasswordLength: 7&lt;br /&gt;
 防止玩家顶号 (true/false)&lt;br /&gt;
forceSingleSession: true&lt;br /&gt;
 当使用同一ip时越过 &amp;lt;nowiki&amp;gt;ForceSingleSession&amp;lt;/nowiki&amp;gt;[强制会话信息]. (true/false)&lt;br /&gt;
forceSingleSessionSameIPBypass: true&lt;br /&gt;
 激活预[[注册]]保护 x ticks(隐藏背包内容/ForceSaveLogin) (false/0, 1 , ...)&lt;br /&gt;
 目的是为了防止customSpawns和joinRewards.&lt;br /&gt;
delayPreRegisterSecurity: 5&lt;br /&gt;
 激活预[[登陆]]保护 x ticks(隐藏背包内容/ForceSaveLogin) (false/0, 1 , ...)&lt;br /&gt;
 目的是为了防止customSpawns和joinRewards.&lt;br /&gt;
 &#039;&#039;&#039;警告:部分作弊客户端可能会在这段时间内读取背包内容&#039;&#039;&#039;&lt;br /&gt;
delayPreLoginSecurity: false&lt;br /&gt;
 当开启时如果你受到伤害时你会被传送到出生点直到你登陆完成. (true/false)&lt;br /&gt;
saveLoginEnabled: true&lt;br /&gt;
 当开启时你会被传送到出生点直到你登陆完成. (true/false)&lt;br /&gt;
 这会修复AntiCheatPlugins当你在半空中时将你t出游戏.&lt;br /&gt;
forceSaveLogin: false&lt;br /&gt;
 各个世界的强制出生点:&lt;br /&gt;
saveLoginLocations: {}&lt;br /&gt;
  world:&lt;br /&gt;
    x: 1500&lt;br /&gt;
    y: -300&lt;br /&gt;
    z: 0.1&lt;br /&gt;
 这是可选参数！&lt;br /&gt;
    world: world&lt;br /&gt;
    yaw: 0&lt;br /&gt;
    pitch: 0&lt;br /&gt;
 当开启时你的背包将会被隐藏到你登陆为止. (true/false)&lt;br /&gt;
hideInventory: false&lt;br /&gt;
 隐藏未登录的玩家. (true/false)&lt;br /&gt;
hidePlayer: false&lt;br /&gt;
 阻止未登录的玩家获取聊天消息. (true/false)&lt;br /&gt;
hideChat: false&lt;br /&gt;
 不提示登陆消息直到玩家成功登陆/离开游戏. (true/false)&lt;br /&gt;
delayJoinQuitMessages: false&lt;br /&gt;
 使用多国语言. (true/false)&lt;br /&gt;
useCustomJoinQuitMessages: true&lt;br /&gt;
 隐藏服务端的密码 (提示信息为: Player issues command: /login Password) (true/false)&lt;br /&gt;
 &#039;&#039;信息:在极罕见的情况下可以越过某些其他插件的保护结构.&#039;&#039;&lt;br /&gt;
hidePasswordsFromConsole: false&lt;br /&gt;
 每个ip存储玩家的最大数:&lt;br /&gt;
maxStoredIPs: 5&lt;br /&gt;
 每个ip允许的最大在线玩家数:&lt;br /&gt;
maxOnlinesPerIP: 3&lt;br /&gt;
 每个ip允许的最大注册量:&lt;br /&gt;
maxRegistrationsPerIP: 3&lt;br /&gt;
 自动删除 x 天未登陆过的号(-1=关闭功能)&lt;br /&gt;
 &#039;&#039;&#039;警告:这会清除此玩家的所有信息(包括其他插件存储的内容;等同于&amp;quot;/crazycore player delete &amp;lt;Player&amp;gt;&amp;quot;)&#039;&#039;&#039;&lt;br /&gt;
autoDelete: -1&lt;br /&gt;
 唤醒特殊事件(大部分情况请关闭此选项)&lt;br /&gt;
  当换密码时向其他插件传达未经加密的密码.&lt;br /&gt;
pluginCommunicationEnabled: false&lt;br /&gt;
 在你未登录的情况下你可以移动 x 格.&lt;br /&gt;
 设置为0你将不能移动或转向.&lt;br /&gt;
moveRange: 5.0&lt;br /&gt;
 启用名称过滤器. (true/false/[a-zA-Z0-9_]/...)&lt;br /&gt;
filterNames: true&lt;br /&gt;
 检查大小写. (true/false)&lt;br /&gt;
 如果你使用 &amp;quot;PLaYer&amp;quot; 注册就不能使用 &amp;quot;Player&amp;quot; 登陆了！&lt;br /&gt;
 当玩家用不同大小写登录时一些加密会错误.&lt;br /&gt;
 INFO: a player cannot bypass login by using an different name case at any time.&lt;br /&gt;
blockDifferentNameCases: false&lt;br /&gt;
 最短用户名限制:&lt;br /&gt;
minNameLength: 3&lt;br /&gt;
 最长用户名限制: (minecraft 游戏中默认是 16)&lt;br /&gt;
maxNameLength: 16&lt;br /&gt;
 附加消息内容可以在以下网站中找到: http://dev.bukkit.org/server-mods/crazycore/pages/logging/&lt;br /&gt;
logs:&lt;br /&gt;
  Join:&lt;br /&gt;
    path: false&lt;br /&gt;
    console: false&lt;br /&gt;
  Quit:&lt;br /&gt;
    path: false&lt;br /&gt;
    console: false&lt;br /&gt;
  Login:&lt;br /&gt;
    path: false&lt;br /&gt;
    console: false&lt;br /&gt;
  Account:&lt;br /&gt;
    path: false&lt;br /&gt;
    console: false&lt;br /&gt;
  Logout:&lt;br /&gt;
    path: false&lt;br /&gt;
    console: false&lt;br /&gt;
  LoginFail:&lt;br /&gt;
    path: false&lt;br /&gt;
    console: false&lt;br /&gt;
  ChatBlocked:&lt;br /&gt;
    path: false&lt;br /&gt;
    console: false&lt;br /&gt;
  CommandBlocked:&lt;br /&gt;
    path: false&lt;br /&gt;
    console: false&lt;br /&gt;
  AccessDenied:&lt;br /&gt;
    path: false&lt;br /&gt;
    console: false&lt;/div&gt;</summary>
		<author><name>Minedx</name></author>
	</entry>
	<entry>
		<id>https://mineplugin.org/index.php?title=CrazyLogin/%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6&amp;diff=1104</id>
		<title>CrazyLogin/配置文件</title>
		<link rel="alternate" type="text/html" href="https://mineplugin.org/index.php?title=CrazyLogin/%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6&amp;diff=1104"/>
		<updated>2015-07-19T15:19:04Z</updated>

		<summary type="html">&lt;p&gt;Minedx：​半数存档   COMMAND.EXPLOITWARN AdminLogin TokenLogin alwaysNeedPassword未翻译&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{待翻译}}&lt;br /&gt;
= config.yml =&lt;br /&gt;
version: X.Y&lt;br /&gt;
 此插件的版本可以在这里找到&lt;br /&gt;
 https://github.com/ST-DDT/CrazyLogin/blob/master/src/main/resources/plugin.yml&lt;br /&gt;
 提示信息头部 (它不能被任意一种reload所改变（也就是说，只能重启）)&lt;br /&gt;
chatHeader: &#039;&amp;amp;C[&amp;amp;ACrazyLogin&amp;amp;C] &amp;amp;F&#039;&lt;br /&gt;
database:&lt;br /&gt;
 保存类型↓ 可以为： &#039;MYSQL&#039;（MYSQL数据库）,&#039;FLAT&#039;（文件name.db）,&#039;CONFIG&#039;（不明)&lt;br /&gt;
  saveType: FLAT&lt;br /&gt;
 是否在关服时写入数据&lt;br /&gt;
  saveOnShutdown: true&lt;br /&gt;
 CONFIG 数据记录模式配置&lt;br /&gt;
  CONFIG:&lt;br /&gt;
 path inside config.yml&lt;br /&gt;
    path: accounts&lt;br /&gt;
    columns:&lt;br /&gt;
      name: name&lt;br /&gt;
      password: password&lt;br /&gt;
      ips: ips&lt;br /&gt;
      lastAction: lastAction&lt;br /&gt;
 FLAT 数据记录模式配置&lt;br /&gt;
  FLAT:&lt;br /&gt;
 数据库文件在插件config.yml所在目录中，下面可以更改文件名&lt;br /&gt;
    filePath: accounts.db&lt;br /&gt;
 MYSQL 数据库记录配置&lt;br /&gt;
 更多MYSQL配置戳这里 → [http://dev.bukkit.org/bukkit-plugins/crazycore/pages/mys-ql/ 这里]&lt;br /&gt;
  MYSQL:&lt;br /&gt;
    connection:&lt;br /&gt;
      host: localhost     链接数据库地址&lt;br /&gt;
      port: &#039;3306&#039;        端口&lt;br /&gt;
      dbname: Crazy       数据库名&lt;br /&gt;
      user: root          用户名&lt;br /&gt;
      password: &#039;&#039;        密码&lt;br /&gt;
    tableName: CrazyLogin_accounts   表的名字&lt;br /&gt;
 是否在没有玩家在线时让数据加载（这会消耗RAM！）. &lt;br /&gt;
 设置为false来使插件RAM占用减少&lt;br /&gt;
    cached: true&lt;br /&gt;
 如果下面的选项设置为true，那么在玩家登陆时将不会更新数据库, &lt;br /&gt;
 通常在多个服务器使用同一数据库时派上用场&lt;br /&gt;
    static: false&lt;br /&gt;
    columns:&lt;br /&gt;
      name: name&lt;br /&gt;
      password: password&lt;br /&gt;
      ips: ips&lt;br /&gt;
      lastAction: lastAction&lt;br /&gt;
 SQLITE 数据库配置&lt;br /&gt;
  SQLITE:&lt;br /&gt;
    connection:&lt;br /&gt;
      path: plugins/CrazyLogin/accounts.sqlite   sqlite路径&lt;br /&gt;
    tableName: CrazyLogin_accounts               表名&lt;br /&gt;
 是否在没有玩家在线时让数据加载（这会消耗RAM！）. &lt;br /&gt;
 设置为false来使插件RAM占用减少&lt;br /&gt;
    cached: true&lt;br /&gt;
 如果下面的选项设置为true，那么在玩家登陆时将不会更新数据库, &lt;br /&gt;
 通常在多个服务器使用同一数据库时派上用场&lt;br /&gt;
    static: false&lt;br /&gt;
    columns:&lt;br /&gt;
      name: name&lt;br /&gt;
      password: password&lt;br /&gt;
      ips: ips&lt;br /&gt;
      lastAction: lastAction&lt;br /&gt;
 设置在登录时是否一定需要密码或令玩家在想登陆时输入密码，玩家没有登录（或注册）时不能聊天、合成、破坏/创建方块、扔掉/拾取物品、移动/传送或瞬移、打开容器&lt;br /&gt;
 权限节点无效，op或者玩家一定需要输入密码或可选地输入密码&lt;br /&gt;
alwaysNeedPassword: true&lt;br /&gt;
 如果设置为true你得输入两次你的密码.（}注意，这个括号表示不用输）&lt;br /&gt;
 例: /register {OldPassword} &amp;lt;NewPassword&amp;gt; &amp;lt;NewPassword&amp;gt;&lt;br /&gt;
confirmNewPassword: false&lt;br /&gt;
 如果设置为true你必须在改变新密码时输入旧密码.&lt;br /&gt;
 例: /register &amp;lt;OldPassword&amp;gt; &amp;lt;NewPassword&amp;gt; {NewPassword}&lt;br /&gt;
confirmWithOldPassword: false&lt;br /&gt;
 如果设置为true的话，在玩家加入时保护将会被禁用，以降低服务器负担, &lt;br /&gt;
 会减少加入服务器,登陆,退出服务器时服务器的负担.&lt;br /&gt;
dynamicProtection: false&lt;br /&gt;
 隐藏 登陆错误 &amp;amp; &amp;lt;nowiki&amp;gt;COMMAND.EXPLOITWARN&amp;lt;/nowiki&amp;gt; 消息&lt;br /&gt;
 详细: 可能在未来会有其他警告消息同时被屏蔽.&lt;br /&gt;
 &#039;&#039;&#039;警告: 您不会收到任何可能攻占您服务器的信息 (直到它成功了).&#039;&#039;&#039; &lt;br /&gt;
hideWarnings: false&lt;br /&gt;
 你必须要在 不活跃/下线 x 秒后重新登录&lt;br /&gt;
 当你换了个ip登陆的时候肯定会被搞下线！&lt;br /&gt;
autoLogout: 3600&lt;br /&gt;
 功能开启时，在线却不登陆x秒后会被踢出 (-1=不开启)&lt;br /&gt;
autoKick: -1&lt;br /&gt;
 当开启时您因不登陆被t出时时同时会被ban x 秒 (-1=不开启)&lt;br /&gt;
autoTempBan: -1&lt;br /&gt;
 当你无账号时你会在 x 秒内被请出. (-1=不开启)&lt;br /&gt;
autoKickUnregistered: -1&lt;br /&gt;
 功能开启时，将会在失败登陆x次后被踢出 (-1=不开启)&lt;br /&gt;
autoKickLoginFailer: 3&lt;br /&gt;
 功能开启时，将会因为登陆失败而封禁x秒 (-1=不开启)&lt;br /&gt;
autoTempBanLoginFailer: -1&lt;br /&gt;
 功能开启时，将会因为使用不在白名单内的命令（违禁命令）x次而被踢出 (-1=不开启，下面的false也是不开启)&lt;br /&gt;
autoKickCommandUsers: false&lt;br /&gt;
 功能开启时，你将会因为使用不在白名单内的命令而被封禁x秒 (-1=不开启)&lt;br /&gt;
autoTempBanCommandUsers:&lt;br /&gt;
 功能开启时，不能在未登录状态下使用命令 (同使用违禁命令自动踢出功能一起工作) (true=开启/false=不开启)&lt;br /&gt;
blockGuestCommands: true&lt;br /&gt;
 功能开启时， 不能在未登录状态下发信息(true=开启/false=不开启)&lt;br /&gt;
blockGuestChat: false&lt;br /&gt;
 功能开启时，不能在未注册（数据库注册）情况下加入服务器 (同SQL数据库一起工作) (true=开启/false=不开启)&lt;br /&gt;
blockGuestJoin: false&lt;br /&gt;
 玩家数据将会在离开游戏后被重置 &lt;br /&gt;
 这包括所有的crazy系列插件, 玩家信息 (如果启动), +更多 (如果已启用)&lt;br /&gt;
 在这之后在服务器内搜索玩家名字将不会搜索到文件 (最好情况)&lt;br /&gt;
removeGuestData: false&lt;br /&gt;
 如果设置为true游戏中注册会被禁止(指令和插件相关) (true=开启/false=不开启)&lt;br /&gt;
disableRegistrations: false&lt;br /&gt;
 如果设置为true你将会无法使用AdminLogin的相关内容 (true=开启/false=不开启)&lt;br /&gt;
disableAdminLogin: false&lt;br /&gt;
 如果设置为true你将会无法使用TokenLogin的相关内容 (true=开启/false=不开启)&lt;br /&gt;
disableTokenLogin: false&lt;br /&gt;
 当不停过多使用屏蔽 登陆/注册 指令时将会使 登陆/注册 指令只能5秒使用一次 (true=开启/false=不开启)&lt;br /&gt;
doNotSpamAuthRequests: false&lt;br /&gt;
 只向玩家发送一次注册提示信息 (如果 alwaysNeedPassword=false) (true=开启/false=不开启)&lt;br /&gt;
doNotSpamRegisterRequests: false&lt;br /&gt;
 auth request are delayed for x ticks to prevent it from being displaced by other messages.&lt;br /&gt;
delayAuthRequests: 0&lt;br /&gt;
 repeat requests every x ticks to prevent it from being displaced by other messages.&lt;br /&gt;
repeatAuthRequests: 200&lt;br /&gt;
 these commands can be executed as guest (even if blockGuestCommands is enabled) or when not logged in&lt;br /&gt;
commandWhitelist:&lt;br /&gt;
- /l(ogin)?(\z| .*)&lt;br /&gt;
- /register(\z| .*)&lt;br /&gt;
- /language(\z| [a-z]{2,3}_[a-z]{2,3})&lt;br /&gt;
- /language select(\z| .*)&lt;br /&gt;
- /language list(\z| .*)&lt;br /&gt;
- /worldedit cui&lt;br /&gt;
 the encryption alogrithm used to encrypt your passwords. http://dev.bukkit.org/server-mods/crazylogin/pages/encryption/&lt;br /&gt;
encryptor:&lt;br /&gt;
  name: CrazyCrypt1&lt;br /&gt;
 密码最短长度&lt;br /&gt;
minPasswordLength: 3&lt;br /&gt;
 对于保护者（特定权限拥有者）的最短密码长度&lt;br /&gt;
protectedAccountMinPasswordLength: 7&lt;br /&gt;
 block player join with an online players name (prevents Logged in from another location messages) (true/false)&lt;br /&gt;
forceSingleSession: true&lt;br /&gt;
 bypass forceSingleSession when using the same ip (true/false)&lt;br /&gt;
forceSingleSessionSameIPBypass: true&lt;br /&gt;
 activates the preLoginSecurity x ticks later (hideInventory / forceSaveLogin) (false/0, 1 , ...)&lt;br /&gt;
 this is intended to allow customSpawns and joinRewards&lt;br /&gt;
delayPreRegisterSecurity: 5&lt;br /&gt;
 activates the preLoginSecurity x ticks later (hideInventory / forceSaveLogin) (false/0, 1 , ...)&lt;br /&gt;
 this is intended to allow customSpawns and joinRewards&lt;br /&gt;
 WARNING: some hacked clients may be able to use that time to read the inventory/location&lt;br /&gt;
delayPreLoginSecurity: false&lt;br /&gt;
 when enabled you are teleported to spawn until login if recieving damage. (true/false)&lt;br /&gt;
saveLoginEnabled: true&lt;br /&gt;
 when enabled you are teleported to spawn until login. (true/false)&lt;br /&gt;
 this fixes issues with AntiCheatPlugins whilte not logged in and being in mid air.&lt;br /&gt;
forceSaveLogin: false&lt;br /&gt;
 custom saveLogin locations for each world&lt;br /&gt;
saveLoginLocations: {}&lt;br /&gt;
  world:&lt;br /&gt;
    x: 1500&lt;br /&gt;
    y: -300&lt;br /&gt;
    z: 0.1&lt;br /&gt;
 this parameters are optional&lt;br /&gt;
    world: world&lt;br /&gt;
    yaw: 0&lt;br /&gt;
    pitch: 0&lt;br /&gt;
 when enabled your inventory is hidden until login. (true/false)&lt;br /&gt;
hideInventory: false&lt;br /&gt;
 hide every player which isn&#039;t logged in. (true/false)&lt;br /&gt;
hidePlayer: false&lt;br /&gt;
 hide chat from players who aren&#039;t logged in to avoid espionage. (true/false)&lt;br /&gt;
hideChat: false&lt;br /&gt;
 Delay Join messages until login / hide Quit messages if not logged in. (true/false)&lt;br /&gt;
delayJoinQuitMessages: false&lt;br /&gt;
 use the multilingual messages defined in the lang files. (true/false)&lt;br /&gt;
useCustomJoinQuitMessages: true&lt;br /&gt;
 hide Password from Console (Player issues command: /login Password) (true/false)&lt;br /&gt;
 INFO: This could bypass some command protections/mechanics from other plugins in very rare cases.&lt;br /&gt;
hidePasswordsFromConsole: false&lt;br /&gt;
 maximum count of ips stored per player&lt;br /&gt;
maxStoredIPs: 5&lt;br /&gt;
 maximum players allowed to play on your server at once&lt;br /&gt;
maxOnlinesPerIP: 3&lt;br /&gt;
 maximum players allowed to register an account using the same ip on your server&lt;br /&gt;
maxRegistrationsPerIP: 3&lt;br /&gt;
 automatically delete accounts that haven&#039;t been used for x days(-1=disabled)&lt;br /&gt;
 WARNING: deletes all data belonging to this player (including those saved in other plugins; equals &amp;quot;/crazycore player delete &amp;lt;Player&amp;gt;&amp;quot;)&lt;br /&gt;
autoDelete: -1&lt;br /&gt;
 call special events (do not enable it, if you don&#039;t need it)&lt;br /&gt;
 send raw passwords to other plugins when changing passwords&lt;br /&gt;
pluginCommunicationEnabled: false&lt;br /&gt;
 you can move x blocks from the location you joined when not logged in&lt;br /&gt;
 when set to 0 you cannot move/rotate&lt;br /&gt;
moveRange: 5.0&lt;br /&gt;
 when enabled only default chars are allowed in a players name (true/false/[a-zA-Z0-9_]/...)&lt;br /&gt;
filterNames: true&lt;br /&gt;
 check a players name case for its char case (true/false)&lt;br /&gt;
 when enabled a player cannot join as &amp;quot;PLaYer&amp;quot; when he registered as &amp;quot;Player&amp;quot;&lt;br /&gt;
 some encryptions may fail when a player has different char cases.&lt;br /&gt;
 INFO: a player cannot bypass login by using an different name case at any time.&lt;br /&gt;
blockDifferentNameCases: false&lt;br /&gt;
 最短用户名限制&lt;br /&gt;
minNameLength: 3&lt;br /&gt;
 最长用户名限制 (minecraft 游戏中默认是 16)&lt;br /&gt;
maxNameLength: 16&lt;br /&gt;
 additional information about logging can be found here http://dev.bukkit.org/server-mods/crazycore/pages/logging/&lt;br /&gt;
logs:&lt;br /&gt;
  Join:&lt;br /&gt;
    path: false&lt;br /&gt;
    console: false&lt;br /&gt;
  Quit:&lt;br /&gt;
    path: false&lt;br /&gt;
    console: false&lt;br /&gt;
  Login:&lt;br /&gt;
    path: false&lt;br /&gt;
    console: false&lt;br /&gt;
  Account:&lt;br /&gt;
    path: false&lt;br /&gt;
    console: false&lt;br /&gt;
  Logout:&lt;br /&gt;
    path: false&lt;br /&gt;
    console: false&lt;br /&gt;
  LoginFail:&lt;br /&gt;
    path: false&lt;br /&gt;
    console: false&lt;br /&gt;
  ChatBlocked:&lt;br /&gt;
    path: false&lt;br /&gt;
    console: false&lt;br /&gt;
  CommandBlocked:&lt;br /&gt;
    path: false&lt;br /&gt;
    console: false&lt;br /&gt;
  AccessDenied:&lt;br /&gt;
    path: false&lt;br /&gt;
    console: false&lt;/div&gt;</summary>
		<author><name>Minedx</name></author>
	</entry>
</feed>