• 因近日遭受攻击,百科现已限制新用户的编辑权限,一段时间后成为自动确认用户方可编辑。

Difference between revisions of "FastAsyncWorldEdit"

From Minecraft插件百科
Jump to: navigation, search
m (填写中文修改)
 
Line 1: Line 1:
[[Category:创世]][[Category:待完善]]
+
== <code>FastAsyncWorldEdit</code> ==
  
= <code>FastAsyncWorldEdit</code> =
+
<blockquote>FAWE 是 WorldEdit 的一款附属插件,它通过改变大量 WorldEdit 中的核心类,在大幅度提升原插件的性能的同时,也为其大量增添了新功能。</blockquote>
  
<blockquote>FAWE 是一款 WorldEdit 插件的附属插件,它改变了 WorldEdit 插件中大量核心类,彻底的提升了原插件的性能,为其增加了大量的新功能。
+
相关链接:
</blockquote>
+
* [https://github.com/boy0001/FastAsyncWorldedit/releases 安装]
=== - [https://github.com/c7w/FastAsyncWorldedit/releases '''<code>&gt; 安装 &lt;</code>'''] ===
+
* [https://discord.gg/ngZCzbU Discord 聊天频道] | [https://www.spigotmc.org/threads/fast-async-worldedit.100104/ Spigot 论坛]
 
+
* [https://ci.athion.net/job/FastAsyncWorldEdit/ 构建版本]
=== - '''<code>&gt; 聊天</code>'''[http://webchat.esper.net/?nick=&channels=IntellectualCrafters&fg_color=000&fg_sec_color=000&bg_color=FFF <code>IRC</code>]<code>|</code>[https://discord.gg/ngZCzbU <code>Discord</code>]<code>|</code>[https://gitter.im/PlotSquared/Lobby?utm_source=share-link&utm_medium=link&utm_campaign=share-link <code>Gitter</code>]<code>|</code>[https://www.spigotmc.org/threads/fast-async-worldedit.100104/ <code>Spigot Forums</code>]'''<code>&lt;</code>''' ===
+
* [https://github.com/boy0001/FastAsyncWorldedit/wiki/Commands 命令]
 
+
* [https://github.com/boy0001/FastAsyncWorldedit/wiki/Permissions 权限]
=== - [https://github.com/c7w/FastAsyncWorldedit '''<code>&gt; 资源</code>''']<code>|</code>[https://github.com/c7w/FastAsyncWorldedit/wiki/API '''<code>API &lt;</code>'''] ===
+
* [https://github.com/boy0001/FastAsyncWorldedit/issues/new 反馈问题|提供建议]
 
 
=== - [http://ci.athion.net/job/FastAsyncWorldEdit/ '''<code>&gt; 构建版本 &lt;</code>'''] ===
 
 
 
=== - [https://github.com/c7w/FastAsyncWorldedit/wiki/Commands '''<code>&gt; 命令 &lt;</code>'''] ===
 
 
 
=== - [https://github.com/c7w/FastAsyncWorldedit/wiki/Permissions '''<code>&gt; 权限 &lt;</code>'''] ===
 
 
 
=== - [https://github.com/c7w/FastAsyncWorldedit/wiki/Tutorials '''<code>&gt; 教程 &lt;</code>'''] ===
 
  
=== - [https://github.com/c7w/FastAsyncWorldedit/issues/new '''<code>&gt; 汇报问题/特性 &lt;</code>'''] ===
+
=== 目前支持的平台 ===
  
== 目前支持的平台 ==
 
 
<blockquote>PC: SP/MP, MCPE: MP
 
</blockquote>
 
 
* CraftBukkit
 
* CraftBukkit
 
* Spigot
 
* Spigot
 
* Paper
 
* Paper
* Thermos
 
 
* Forge
 
* Forge
 
* Sponge
 
* Sponge
 +
 +
目前停止更新的旧平台:
 
* Nukkit
 
* Nukkit
 +
* Thermos
  
== 汉化 ==
+
=== 汉化 ===
  
* Jenkins构建从#1209号构建开始已经内置中文
+
* Jenkins 上从#1209号构建开始已经内置中文
 
* 汉化文件的修改 [https://github.com/boy0001/FastAsyncWorldedit/blob/master/core/src/main/resources/cn/message.yml Github]
 
* 汉化文件的修改 [https://github.com/boy0001/FastAsyncWorldedit/blob/master/core/src/main/resources/cn/message.yml Github]
  
== 区域限制: ==
+
=== 区域限制: ===
  
 
<blockquote>当前支持下列区域插件:
 
<blockquote>当前支持下列区域插件:
Line 54: Line 44:
 
<blockquote>你可以在配置中禁用本项,也可以使用 <code>/wea</code> 或者 <code>fawe.bypass</code> 来跳过检查
 
<blockquote>你可以在配置中禁用本项,也可以使用 <code>/wea</code> 或者 <code>fawe.bypass</code> 来跳过检查
 
</blockquote>
 
</blockquote>
== 记录与回滚操作 ==
+
=== 记录与回滚操作 ===
  
<blockquote>请在 <code>config.yml</code> 中启用 <code>use-disk</code> 和 <code>use-database</code> 来使用 FAWE 插件开发中的记录与回滚操作。作为记录选项,在安装 [https://www.spigotmc.org/resources/blockshub.331/ BlocksHub] 插件后就支持下列的记录插件了。
+
<blockquote>请在 <code>config.yml</code> 中启用 <code>use-disk</code> 和 <code>use-database</code> 两个选项来开启 FAWE 插件提供的记录与回滚操作。为了实现记录的功能,首先请安装 [https://www.spigotmc.org/resources/blockshub.331/ BlocksHub] 插件,随后你就能使用以下记录插件之一来记录了:
 
</blockquote>
 
</blockquote>
 
* CoreProtect
 
* CoreProtect
Line 63: Line 53:
 
* HawkEye
 
* HawkEye
  
<blockquote>给予普通玩家使用 FAWE 回滚操作的权限是安全的,要想跳过记录请使用 <code>//fast</code>
+
<blockquote>给予普通玩家使用 FAWE 回滚操作的权限并不危险,要想跳过记录请使用 <code>//fast</code> 命令
 
</blockquote>
 
</blockquote>
  
= 命令 =
+
== 命令 ==
== 总览 ==
+
=== 总览 ===
 
+
要想在游戏中查看这些命令的话,请使用 <code>//help [类型|命令]</code> ## 命令的用法<br />
本页面是由资源文件生成的。点击下列指令旁边的编辑(edit)按钮来直接修改命令的类。
 
 
 
你需要找到跟帮助文档对应的命令的相关部分。
 
 
 
命令的帮助文档与游戏中可使用的命令是一致的。
 
 
 
要想在游戏中查看这些信息的话请使用 <code>//help [类型|命令]</code> ## 命令的用法<br />
 
 
- <code>&lt;arg&gt;</code> - 一个必需参数<br />
 
- <code>&lt;arg&gt;</code> - 一个必需参数<br />
 
- <code>[arg]</code> - 一个可选参数<br />
 
- <code>[arg]</code> - 一个可选参数<br />
- <code>&lt;arg1|arg2&gt;</code> - 提供的多选一选项<br />
+
- <code>&lt;arg1|arg2&gt;</code> - 在这些选项中选择<br />
- <code>&lt;arg=value&gt;</code> - 默认或建议你使用的值<br />
+
- <code>&lt;arg=value&gt;</code> - 缺省值<br />
- <code>-a</code> - 一条命令的标记,如 <code>//&lt;command&gt; -a [命令的标记的值]</code> ## 也请看看 - [https://github.com/c7w/FastAsyncWorldedit/wiki/WorldEdit---FAWE-mask-list Masks] - [https://github.com/c7w/FastAsyncWorldedit/wiki/WorldEdit-and-FAWE-patterns Patterns] - [https://github.com/c7w/FastAsyncWorldedit/wiki/Transforms Transforms]
+
- <code>-a</code> - 一条命令的标记,如 <code>//&lt;command&gt; -a [命令的标记的值]</code>  
 
+
## 详阅
== 目录 ==
+
* [https://github.com/c7w/FastAsyncWorldedit/wiki/WorldEdit---FAWE-mask-list 蒙版]  
 
+
* [https://github.com/c7w/FastAsyncWorldedit/wiki/WorldEdit-and-FAWE-patterns 样式]  
点击类型的名字去查看该类型下命令的列表,或者点击 <code>更多信息</code> 获取更多详细信息
+
* [https://github.com/c7w/FastAsyncWorldedit/wiki/Transforms 变换式]
* [[#world-edit-命令-编辑回到顶部|<code>World Edit 命令</code>]] (更新,信息,调试以及帮助命令)
 
* [[#utility-命令-编辑回到顶部|<code>工具命令</code>]] (一些工具的命令: [http://wiki.sk89q.com/wiki/WorldEdit/Utilities 更多信息])
 
* [[#region-命令-编辑回到顶部|<code>区域命令</code>]] (一些对区域起作用的命令: [http://wiki.sk89q.com/wiki/WorldEdit/Region_operations 更多信息])
 
* [[#selection-命令-编辑回到顶部|<code>选区命令</code>]] (变更你的选取点,模式或是查看你当前选区的有关信息: [http://wiki.sk89q.com/wiki/WorldEdit/Selection 更多信息])
 
* [[#history-命令-编辑回到顶部|<code>历史命令</code>]] (撤销,反撤销,清除历史记录的有关命令: [http://wiki.sk89q.com/wiki/WorldEdit/Features#History 更多信息])
 
* [[#schematic-命令-编辑回到顶部|<code>Schematic 命令</code>]] (跟 schematic 文件有关的命令)
 
* [[#clipboard-命令-编辑回到顶部|<code>剪切板命令</code>]] (跟复制和粘贴方块有关的命令: [https://goo.gl/z2ScQR 更多信息])
 
* [[#generation-命令-编辑回到顶部|<code>生成命令</code>]] (创建结构或特性: [https://goo.gl/KuLFRW 更多信息])
 
* [[#biome-命令-编辑回到顶部|<code>生物群系命令</code>]] (改变,列出或检查生物群系)
 
* [[#anvil-命令-编辑回到顶部|<code>Anvil 命令</code>]] (操纵超大量的方块: [https://github.com/c7w/FastAsyncWorldedit/wiki/Anvil-API 更多信息])
 
* [[#super-pickaxe-命令-编辑回到顶部|<code>超级镐子命令</code>]] (超级镐子命令: [https://goo.gl/aBtGHo 更多信息])
 
* [[#navigation-命令-编辑回到顶部|<code>导航命令</code>]] (关于让玩家在地上移动的命令: [https://goo.gl/uQTUiT 更多信息])
 
* [[#snapshot-命令-编辑回到顶部|<code>快照命令</code>]] (列出,读取或查看有关快照的更多信息)
 
* [[#snapshot-util-命令-编辑回到顶部|<code>快照功能命令</code>]] ([http://wiki.sk89q.com/wiki/WorldEdit/Snapshots 更多信息])
 
* [[#scripting-命令-编辑回到顶部|<code>脚本命令</code>]] (运行 craftscripts 脚本: [https://goo.gl/dHDxLG 更多信息])
 
* [[#chunk-命令-编辑回到顶部|<code>区块命令</code>]] ([旧版] 检索区块:[http://wiki.sk89q.com/wiki/WorldEdit/Chunk_tools 更多信息])
 
* [[#options-命令-编辑回到顶部|<code>选项命令</code>]] (玩家切换,设置与显示物品信息)
 
* [[#brush-options-命令-编辑回到顶部|<code>笔刷选项命令</code>]] (工具命令)
 
* [[#tool-命令-编辑回到顶部|<code>工具命令</code>]] (将某些功能绑定到持有的物品上: [https://goo.gl/xPnPxj 更多信息])
 
* [[#brush-命令-编辑回到顶部|<code>笔刷命令</code>]] (能够从远处建筑的命令。 [https://git.io/vSPYf 更多信息])
 
* [[#/masks-编辑回到顶部|<code>/Masks</code>]] (帮助设立蒙版。 [https://git.io/v9r4K 更多信息])
 
* [[#/patterns-编辑回到顶部|<code>/Patterns</code>]] (对一些模板很有帮助。 [https://git.io/vSPmA 更多信息])
 
* [[#/transforms-编辑回到顶部|<code>/Transforms</code>]] (对一些改造很有帮助。 [https://git.io/v9KHO 更多信息])
 
 
 
==== 未分类的命令 ====
 
  
 +
* 未分类的命令
 
{|
 
{|
 
! 别称
 
! 别称
Line 136: Line 95:
 
|}
 
|}
  
==== <code>/we threads</code> ====
 
  
 +
=== '''World Edit 命令''' ===
 +
*<code>/we threads</code>
 
'''权限''': <code>worldedit.threads</code><br />
 
'''权限''': <code>worldedit.threads</code><br />
'''描述''': 显示出所有的线程堆栈<br />
+
'''说明''': 显示出目前插件使用的所有线程<br />
* <code>/we version</code> '''描述''': 获取当前 WorldEdit / FAWE 插件的版本信息 * <code>/we help [&lt;command&gt;]</code> '''权限''': <code>worldedit.help</code><br />
+
* <code>/we version</code>  
'''描述''': 显示出 FAWE 插件的命令帮助信息<br />
+
'''说明''': 获取当前 WorldEdit / FAWE 插件的版本信息  
* <code>/we debugpaste</code> '''权限''': <code>worldedit.debugpaste</code><br />
+
* <code>/we help [&lt;command&gt;]</code> <br />
'''描述''': 将调试信息上传到 hastebin.com<br />
+
'''权限''': <code>worldedit.help</code><br />
* <code>/we changelog</code> '''权限''': <code>worldedit.changelog</code><br />
+
'''说明''': 显示 FAWE 插件的命令帮助信息<br />
'''描述''': 查看 FAWE 插件的更新日志<br />
+
* <code>/we debugpaste</code>  
* <code>/we reload</code> '''权限''': <code>worldedit.reload</code><br />
+
'''权限''': <code>worldedit.debugpaste</code><br />
'''描述''': 重载插件配置<br />
+
'''说明''': 将调试信息上传到 hastebin.com<br />
* <code>/we tz [timezone]</code> '''描述''': 设置你的快照的时间区域<br />
+
* <code>/we changelog</code>  
* <code>/we cui</code> '''描述''': 完成 CUI 信息交换(内部开发使用)
+
'''权限''': <code>worldedit.changelog</code><br />
 
+
'''说明''': 查看 FAWE 插件的更新日志<br />
 
+
* <code>/we reload</code>  
-----
+
'''权限''': <code>worldedit.reload</code><br />
 +
'''说明''': 重载插件配置<br />
 +
* <code>/we tz [timezone]</code>  
 +
'''说明''': 设定时区,方便为快照命名<br />
 +
* <code>/we cui</code>  
 +
'''说明''': 完成 CUI 信息交换(内部开发使用)
  
=== '''Utility 命令''' <code>[</code>[https://github.com/c7w/FastAsyncWorldedit/edit/master/core/src/main/java/com/sk89q/worldedit/command/UtilityCommands.java <code>编辑</code>]<code>|</code>[[#总览|<code>回到顶部</code>]]<code>]</code> ===
+
=== '''Utility 命令''' ===
  
<blockquote>(一些功能命令: [http://wiki.sk89q.com/wiki/WorldEdit/Utilities 更多信息])
+
<blockquote>(一些实用性的命令: [http://wiki.sk89q.com/wiki/WorldEdit/Utilities 更多信息])
 
</blockquote>
 
</blockquote>
  
-----
+
*<code>/remove &lt;type&gt; &lt;radius&gt;</code>
 
 
==== <code>/remove &lt;type&gt; &lt;radius&gt;</code> ====
 
 
 
 
'''权限''': <code>worldedit.remove</code><br />
 
'''权限''': <code>worldedit.remove</code><br />
 
'''描述''': 移除所有指定类型的实体<br />
 
'''描述''': 移除所有指定类型的实体<br />
* <code>//fill &lt;block&gt; &lt;radius&gt; [depth]</code> '''权限''': <code>worldedit.fill</code><br />
+
* <code>//fill &lt;block&gt; &lt;radius&gt; [depth]</code>  
 +
'''权限''': <code>worldedit.fill</code><br />
 
'''描述''': 填充一块洞<br />
 
'''描述''': 填充一块洞<br />
* <code>//help [&lt;command&gt;]</code> '''描述''': 显示 WorldEdit 插件的帮助命令<br />
+
* <code>//help [&lt;command&gt;]</code>
* <code>//drain &lt;radius&gt;</code> '''权限''': <code>worldedit.drain</code><br />
+
'''描述''': 显示 WorldEdit 插件的帮助命令<br />
'''描述''': 排开一片池塘内的水<br />
+
* <code>//drain &lt;radius&gt;</code>  
* <code>//removenear &lt;block&gt; [size]</code> '''权限''': <code>worldedit.removenear</code><br />
+
'''权限''': <code>worldedit.drain</code><br />
 +
'''描述''': 移除一片池塘内的水<br />
 +
* <code>//removenear &lt;block&gt; [size]</code>  
 +
'''权限''': <code>worldedit.removenear</code><br />
 
'''描述''': 移除你附近的方块<br />
 
'''描述''': 移除你附近的方块<br />
* <code>//fillr &lt;block&gt; &lt;radius&gt; [depth]</code> '''权限''': <code>worldedit.fill.recursive</code><br />
+
* <code>//fillr &lt;block&gt; &lt;radius&gt; [depth]</code>  
 +
'''权限''': <code>worldedit.fill.recursive</code><br />
 
'''描述''': 递归填充周围的洞<br />
 
'''描述''': 递归填充周围的洞<br />
* <code>//removeabove [size] [height]</code> '''权限''': <code>worldedit.removeabove</code><br />
+
* <code>//removeabove [size] [height]</code>  
 +
'''权限''': <code>worldedit.removeabove</code><br />
 
'''描述''': 移除你头上方的方块<br />
 
'''描述''': 移除你头上方的方块<br />
* <code>//fixlava &lt;radius&gt;</code> '''权限''': <code>worldedit.fixlava</code><br />
+
* <code>//fixlava &lt;radius&gt;</code>  
 +
'''权限''': <code>worldedit.fixlava</code><br />
 
'''描述''': 让岩浆静止<br />
 
'''描述''': 让岩浆静止<br />
* <code>//removebelow [size] [height]</code> '''权限''': <code>worldedit.removebelow</code><br />
+
* <code>//removebelow [size] [height]</code>  
 +
'''权限''': <code>worldedit.removebelow</code><br />
 
'''描述''': 移除你脚下方的方块<br />
 
'''描述''': 移除你脚下方的方块<br />
* <code>//fixwater &lt;radius&gt;</code> '''权限''': <code>worldedit.fixwater</code><br />
+
* <code>//fixwater &lt;radius&gt;</code>  
 +
'''权限''': <code>worldedit.fixwater</code><br />
 
'''描述''': 让水静止<br />
 
'''描述''': 让水静止<br />
* <code>//green [radius] [-f]</code> '''权限''': <code>worldedit.green</code><br />
+
* <code>//green [radius] [-f]</code>  
 +
'''权限''': <code>worldedit.green</code><br />
 
'''描述''': 绿化半径中的区域<br />
 
'''描述''': 绿化半径中的区域<br />
* <code>//replacenear &lt;size&gt; &lt;from-id&gt; &lt;to-id&gt; [-f]</code> '''权限''': <code>worldedit.replacenear</code><br />
+
* <code>//replacenear &lt;size&gt; &lt;from-id&gt; &lt;to-id&gt; [-f]</code>  
 +
'''权限''': <code>worldedit.replacenear</code><br />
 
'''描述''': 替换附近的方块<br />
 
'''描述''': 替换附近的方块<br />
* <code>//snow [radius]</code> '''权限''': <code>worldedit.snow</code><br />
+
* <code>//snow [radius]</code>  
 +
'''权限''': <code>worldedit.snow</code><br />
 
'''描述''': 模仿下雪<br />
 
'''描述''': 模仿下雪<br />
* <code>/butcher [radius] [-p] [-l] [-a] [-n] [-g] [-b] [-t] [-f] [-r]</code> '''权限''': <code>worldedit.butcher</code><br />
+
* <code>/butcher [radius] [-p] [-l] [-a] [-n] [-g] [-b] [-t] [-f] [-r]</code>  
'''描述''': 击杀附近的怪物,根据半径,如果没有特别给出半径的话则使用配置文件中的默认半径。<br />可用的标记:<br /> -p 也击杀宠物<br /> -n 也击杀 NPC<br /> -g 也击杀铁傀儡<br /> -a 也击杀动物。<br /> -b 也击杀中立生物<br /> -t 也击杀带有名字的怪物<br /> -f 相当于这以前所有标记的混合<br /> -r 也击杀盔甲架<br /> -l 目前啥都不能干 * <code>//ex [radius]</code> '''权限''': <code>worldedit.extinguish</code><br />
+
'''权限''': <code>worldedit.butcher</code><br />
'''描述''': 熄灭周围的火 * <code>//thaw [radius]</code> '''权限''': <code>worldedit.thaw</code><br />
+
'''描述''': 击杀附近的怪物,根据半径,如果没有特别给出半径的话则使用配置文件中的默认半径。<br />可用的标记:<br /> -p 也击杀宠物<br /> -n 也击杀 NPC<br /> -g 也击杀铁傀儡<br /> -a 也击杀动物。<br /> -b 也击杀中立生物<br /> -t 也击杀带有名字的怪物<br /> -f 相当于这以前所有标记的混合<br /> -r 也击杀盔甲架<br /> -l 目前没有具体作用
'''描述''': 使周围的区域中的雪与冰熔化<br />
+
* <code>//ex [radius]</code>  
* <code>//calc &lt;expression&gt;</code> '''权限''': <code>worldedit.calc</code><br />
+
'''权限''': <code>worldedit.extinguish</code><br />
 +
'''描述''': 熄灭周围的火  
 +
* <code>//thaw [radius]</code>  
 +
'''权限''': <code>worldedit.thaw</code><br />
 +
'''描述''': 移除周围的区域中的雪与冰<br />
 +
* <code>//calc &lt;expression&gt;</code>  
 +
'''权限''': <code>worldedit.calc</code><br />
 
'''描述''': 求一个数学表达式的值<br />
 
'''描述''': 求一个数学表达式的值<br />
* <code>//confirm</code> '''描述''': 确认一条命令
+
* <code>//confirm</code>  
 
+
'''描述''': 确认一条命令
  
-----
+
=== '''Region 命令''' ===
 
 
=== '''Region 命令''' <code>[</code>[https://github.com/c7w/FastAsyncWorldedit/edit/master/core/src/main/java/com/sk89q/worldedit/command/RegionCommands.java <code>编辑</code>]<code>|</code>[[#总览|<code>回到顶部</code>]]<code>]</code> ===
 
  
 
<blockquote>(一些对区域起作用的命令: [http://wiki.sk89q.com/wiki/WorldEdit/Region_operations 更多信息])
 
<blockquote>(一些对区域起作用的命令: [http://wiki.sk89q.com/wiki/WorldEdit/Region_operations 更多信息])
 
</blockquote>
 
</blockquote>
  
-----
+
*<code>//replace [from-mask] &lt;to-pattern&gt; [-f]</code>
 
 
==== <code>//replace [from-mask] &lt;to-pattern&gt; [-f]</code> ====
 
 
 
 
'''权限''': <code>worldedit.region.replace</code><br />
 
'''权限''': <code>worldedit.region.replace</code><br />
'''描述''': 用给定的方块替换选区中所有另一给定的方块 * <code>//stack [count] [direction] [-s] [-a] [-m]</code> '''权限''': <code>worldedit.region.stack</code><br />
+
'''说明''': 用给定的方块替换选区中所有另一给定的方块  
'''描述''': 重复选区中的内容<br />标记:<br /> -s 将上一堆叠的选取换挡为最终选区<br /> -a 跳过空气方块 * <code>//set [pattern]</code> '''权限''': <code>worldedit.region.set</code><br />
+
* <code>//stack [count] [direction] [-s] [-a] [-m]</code>
'''描述''': 将选取设置为给定方块<br />
+
'''权限''': <code>worldedit.region.stack</code><br />
* <code>//fall [replace] [-m]</code> '''权限''': <code>worldedit.region.fall</code><br />
+
'''说明''': 堆叠复制选区中的内容<br />标记:<br /> -s 将选区移动到最后一次被堆叠复制的区域<br /> -a 跳过空气方块  
'''描述''': 让选区中的方块掉落<br />-m 标记仅会让方块在竖直位置上下落。<br />
+
* <code>//set [pattern]</code>  
* <code>//faces &lt;block&gt;</code> '''权限''': <code>worldedit.region.faces</code><br />
+
'''权限''': <code>worldedit.region.set</code><br />
'''描述''': 建造出选区的墙壁,天花板和地板 * <code>//center &lt;block&gt;</code> '''权限''': <code>worldedit.region.center</code><br />
+
'''说明''': 将选区填充为给定方块<br />
'''描述''': 设置出选区的中心方块 * <code>//hollow [&lt;thickness&gt;[ &lt;block&gt;]]</code> '''权限''': <code>worldedit.region.hollow</code><br />
+
* <code>//fall [replace] [-m]</code>  
'''描述''': 挖空本区域中的物体<br />你可定义挖空的部分用什么方块填充<br />厚度用曼哈顿距离来计算。 * <code>//smooth [iterations] [-n]</code> '''权限''': <code>worldedit.region.smoothsnow</code><br />
+
'''权限''': <code>worldedit.region.fall</code><br />
'''描述''': 平滑化区域的陡峭程度。<br />-n 标记互让它仅更改自然生成的方块。<br />-s 标记让它只更改雪方块。 * <code>//nbtinfo</code> '''权限''': <code>worldedit.nbtinfo</code><br />
+
'''说明''': 让选区中的方块自然掉落<br />-m 标记仅会让方块在垂直方向上下落<br />
'''描述''': 查看一个方块的NBT信息<br />
+
* <code>//faces &lt;block&gt;</code>  
* <code>//setskylight</code> '''权限''': <code>worldedit.light.set</code><br />
+
'''权限''': <code>worldedit.region.faces</code><br />
'''描述''': 设置一个选区的天空亮度<br />
+
'''说明''': 建造出选区的墙壁,天花板和地板  
* <code>//line &lt;block&gt; [thickness] [-h]</code> '''权限''': <code>worldedit.region.line</code><br />
+
* <code>//center &lt;block&gt;</code>  
'''描述''': 在长方体选择区域的两个角落划出一条对角线线段。<br />仅能够在长方体选区中使用。<br />可用的标记:<br /> -h 仅会生成外形 * <code>//getlighting</code> '''权限''': <code>worldedit.light.fix</code><br />
+
'''权限''': <code>worldedit.region.center</code><br />
'''描述''': 获取某位置的亮度信息<br />
+
'''说明''': 填充出选区的中心方块
* <code>//overlay &lt;block&gt;</code> '''权限''': <code>worldedit.region.overlay</code><br />
+
* <code>//hollow [&lt;thickness&gt;[ &lt;block&gt;]]</code>  
'''描述''': 在给定区域的顶层方块上方覆盖给定方块<br />
+
'''权限''': <code>worldedit.region.hollow</code><br />
* <code>//wea</code> '''权限''': <code>fawe.admin</code><br />
+
'''说明''': 将本区域设置为中空<br />可以设置“中空”的部分用什么方块来填充<br />厚度用[[https://baike.baidu.com/item/%E6%9B%BC%E5%93%88%E9%A1%BF%E8%B7%9D%E7%A6%BB/743092?fr=aladdin 曼哈顿距离]]来计算。
'''描述''': 跳过区域检测限制<br />
+
* <code>//smooth [iterations] [-n]</code>  
* <code>//wer</code> '''权限''': <code>fawe.worldeditregion</code><br />
+
'''权限''': <code>worldedit.region.smoothsnow</code><br />
'''描述''': 选择你当前允许的区域<br />
+
'''说明''': 将区域平滑化<br />-n 标记仅更改自然生成的方块。<br />-s 标记只更改雪方块。
* <code>//fixlighting</code> '''权限''': <code>worldedit.light.fix</code><br />
+
* <code>//nbtinfo</code>  
'''描述''': 修复某位置的光照<br />
+
'''权限''': <code>worldedit.nbtinfo</code><br />
* <code>//removelight</code> '''权限''': <code>worldedit.light.remove</code><br />
+
'''说明''': 查看一个方块的NBT信息<br />
'''描述''': 移除某位置的光照<br />
+
* <code>//setskylight</code>  
* <code>//curve &lt;block&gt; [thickness] [-h]</code> '''权限''': <code>worldedit.region.curve</code><br />
+
'''权限''': <code>worldedit.light.set</code><br />
'''描述''': 过选择的点画一条曲线。<br />只能在使用凸多面体选区类型时才能使用。<br />Flags:<br /> -h 仅会生成外形<br />
+
'''说明''': 设置一个选区的天空亮度<br />
* <code>//naturalize</code> '''权限''': <code>worldedit.region.naturalize</code><br />
+
* <code>//line &lt;block&gt; [thickness] [-h]</code>  
'''描述''': 顶层覆盖3层泥土,下面为石头<br />
+
'''权限''': <code>worldedit.region.line</code><br />
* <code>//walls &lt;block&gt;</code> '''权限''': <code>worldedit.region.walls</code><br />
+
'''说明''': 以长方体选择区域的两个对角绘制出一条对角线线段。<br />仅能够在长方体选区中使用。<br />可用的标记:<br /> -h 仅会生成外壳
'''描述''': 围上选区的四边<br />
+
* <code>//getlighting</code>  
* <code>//setblocklight</code> '''权限''': <code>worldedit.light.set</code><br />
+
'''权限''': <code>worldedit.light.fix</code><br />
'''描述''': 设置选区中的方块亮度<br />
+
'''说明''': 获取某位置的亮度信息<br />
* <code>//lay &lt;block&gt;</code> '''权限''': <code>worldedit.region.overlay</code><br />
+
* <code>//overlay &lt;block&gt;</code>  
'''描述''': 设置选区的顶层方块<br />
+
'''权限''': <code>worldedit.region.overlay</code><br />
* <code>//move [count] [direction] [leave-id] [-s]</code> '''权限''': <code>worldedit.region.move</code><br />
+
'''说明''': 在给定区域的顶层方块上方覆盖给定方块<br />
'''描述''': 将选区中的内容移动。.<br /> -s 标记会将选区换挡到目标位置。<br /> -b 也会复制生物群系<br /> -e 忽略实体<br /> -a 忽略空气<br />自动使用 <leave-id> 填充旧区域。<br />
+
* <code>//wea</code>  
* <code>//forest [type] [density]</code> '''权限''': <code>worldedit.region.forest</code><br />
+
'''权限''': <code>fawe.admin</code><br />
'''描述''': 在区域内生成森林<br />
+
'''说明''': 跳过区域的权限检测限制<br />
* <code>//flora [density]</code> '''权限''': <code>worldedit.region.flora</code><br />
+
* <code>//wer</code>  
'''描述''': 在区域内生成植物群 * <code>//deform &lt;expression&gt; [-r] [-o]</code> '''权限''': <code>worldedit.region.deform</code><br />
+
'''权限''': <code>fawe.worldeditregion</code><br />
'''描述''': 使用给定的表达式使区域变形<br />表达式对每个方块都会执行,它可以<br />将方块的x,y,z修改到新方块的位置<br />来实现。也请看看 tinyurl.com/wesyntax。<br />
+
'''说明''': 将当前你有权限更改的区域设为选区<br />
* <code>//regen [biome] [seed]</code> '''权限''': <code>worldedit.regen</code><br />
+
* <code>//fixlighting</code>  
'''描述''': 重新生成当前选区中的内容。<br />这条命令也有可能影响选区外的东西,<br />如果它们在相同区块中的话。
+
'''权限''': <code>worldedit.light.fix</code><br />
 +
'''说明''': 修复某位置的光照<br />
 +
* <code>//removelight</code>  
 +
'''权限''': <code>worldedit.light.remove</code><br />
 +
'''说明''': 移除选区中的光照<br />
 +
* <code>//curve &lt;block&gt; [thickness] [-h]</code>  
 +
'''权限''': <code>worldedit.region.curve</code><br />
 +
'''说明''': 过选择的点画一条曲线。<br />只能在使用凸多面体选区类型时才能使用。<br />Flags:<br /> -h 仅会生成外壳<br />
 +
* <code>//naturalize</code>  
 +
'''权限''': <code>worldedit.region.naturalize</code><br />
 +
'''说明''': 顶层覆盖3层泥土,下面填充为石头<br />
 +
* <code>//walls &lt;block&gt;</code>  
 +
'''权限''': <code>worldedit.region.walls</code><br />
 +
'''说明''': 围上选区的四边,即将选区用墙围起来<br />
 +
* <code>//setblocklight</code>  
 +
'''权限''': <code>worldedit.light.set</code><br />
 +
'''说明''': 设置选区中的方块亮度<br />
 +
* <code>//lay &lt;block&gt;</code>  
 +
'''权限''': <code>worldedit.region.overlay</code><br />
 +
'''说明''': 设置选区的顶层方块<br />
 +
* <code>//move [count] [direction] [leave-id] [-s]</code>  
 +
'''权限''': <code>worldedit.region.move</code><br />
 +
'''说明''': 将选区中的内容移动。.<br /> -s 标记会将选区设定到目标位置。<br /> -b 也会复制生物群系<br /> -e 忽略实体<br /> -a 忽略空气<br />自动使用 <leave-id> 填充被移动区域。<br />
 +
* <code>//forest [type] [density]</code>  
 +
'''权限''': <code>worldedit.region.forest</code><br />
 +
'''说明''': 在区域内生成森林<br />
 +
* <code>//flora [density]</code>  
 +
'''权限''': <code>worldedit.region.flora</code><br />
 +
'''说明''': 在区域内生成植物群  
 +
* <code>//deform &lt;expression&gt; [-r] [-o]</code>  
 +
'''权限''': <code>worldedit.region.deform</code><br />
 +
'''说明''': 使用给定的表达式使区域变形<br />表达式对每个方块都会执行,它可以<br />将方块的x,y,z修改到新方块的位置<br />来实现。详阅 tinyurl.com/wesyntax。<br />
 +
* <code>//regen [biome] [seed]</code>  
 +
'''权限''': <code>worldedit.regen</code><br />
 +
'''说明''': 重新生成当前选区中的地图。<br />注意:这条命令会按照区块为单位来执行,<br />即会自动将选区内的所有区块自动重新生成。
  
 +
=== '''Selection 命令'''  ===
  
-----
+
<blockquote>(改变你的选区位置,选区的模式或是查看关于你的选区的信息: [http://wiki.sk89q.com/wiki/WorldEdit/Selection 更多信息])
 
 
=== '''Selection 命令''' <code>[</code>[https://github.com/c7w/FastAsyncWorldedit/edit/master/core/src/main/java/com/sk89q/worldedit/command/SelectionCommands.java <code>编辑</code>]<code>|</code>[[#总览|<code>回到顶部</code>]]<code>]</code> ===
 
 
 
<blockquote>(改变你选区的点,选取模式或是查看关于你的选区的信息: [http://wiki.sk89q.com/wiki/WorldEdit/Selection 更多信息])
 
 
</blockquote>
 
</blockquote>
  
-----
+
* <code>//count &lt;block&gt; [-d]</code>
 
 
==== <code>//count &lt;block&gt; [-d]</code> ====
 
 
 
 
'''权限''': <code>worldedit.analysis.count</code><br />
 
'''权限''': <code>worldedit.analysis.count</code><br />
'''描述''': 为当前选区中某种类型的方块计数<br />
+
'''说明''': 为当前选区中某种类型的方块计数<br />
* <code>//size  [-c]</code> '''权限''': <code>worldedit.selection.size</code><br />
+
* <code>//size  [-c]</code>  
'''描述''': 获取当前选区的信息<br />
+
'''权限''': <code>worldedit.selection.size</code><br />
* <code>//expand &lt;amount&gt; [reverse-amount] &lt;direction&gt;</code> '''权限''': <code>worldedit.selection.expand</code><br />
+
'''说明''': 获取当前选区的信息<br />
'''描述''': 延展选区区域<br />
+
* <code>//expand &lt;amount&gt; [reverse-amount] &lt;direction&gt;</code>  
* <code>//shift &lt;amount&gt; [direction]</code> '''权限''': <code>worldedit.selection.shift</code><br />
+
'''权限''': <code>worldedit.selection.expand</code><br />
'''描述''': 移动选区区域<br />
+
'''说明''': 延展选区区域<br />
* <code>//sel [cuboid|extend|poly|ellipsoid|sphere|cyl|convex] [-d]</code> '''描述''': 选择选区类型<br />
+
* <code>//shift &lt;amount&gt; [direction]</code>  
* <code>//contract &lt;amount&gt; [reverse-amount] [direction]</code> '''权限''': <code>worldedit.selection.contract</code><br />
+
'''权限''': <code>worldedit.selection.shift</code><br />
'''描述''': 缩小选区区域<br />
+
'''说明''': 移动选区区域<br />
* <code>//pos1 [coordinates]</code> '''权限''': <code>worldedit.selection.pos</code><br />
+
* <code>//sel [cuboid|extend|poly|ellipsoid|sphere|cyl|convex] [-d]</code>  
'''描述''': 设置选取点1<br />
+
'''说明''': 选择选区类型<br />
* <code>//pos2 [coordinates]</code> '''权限''': <code>worldedit.selection.pos</code><br />
+
* <code>//contract &lt;amount&gt; [reverse-amount] [direction]</code>  
'''描述''': 设置选取点2<br />
+
'''权限''': <code>worldedit.selection.contract</code><br />
* <code>//chunk [x,z coordinates] [-s] [-c]</code> '''权限''': <code>worldedit.selection.chunk</code><br />
+
'''说明''': 缩小选区区域<br />
'''描述''': 将选取设置为当前你所在的区块。<br />写入 -s 标记你当前的选区会被延展<br />来包括所有为它的部分的区块。<br /><br />也可以使用给定的坐标,这会替代你的<br />当前位置。使用-c来指定区块坐标,<br />否则就会使用全局坐标。<br />(举个例子,坐标5,5和 -c 0,0 是一样的) * <code>//hpos1</code> '''权限''': <code>worldedit.selection.hpos</code><br />
+
* <code>//pos1 [coordinates]</code>  
'''描述''': 将选取点1设置为目标方块<br />
+
'''权限''': <code>worldedit.selection.pos</code><br />
* <code>//wand</code> '''权限''': <code>worldedit.wand</code><br />
+
'''说明''': 设置选取点1<br />
'''描述''': 获取魔杖物品<br />
+
* <code>//pos2 [coordinates]</code>  
* <code>/toggleeditwand</code> '''权限''': <code>worldedit.wand.toggle</code><br />
+
'''权限''': <code>worldedit.selection.pos</code><br />
'''描述''': 切换编辑魔杖的功能启用与否<br />
+
'''说明''': 设置选取点2<br />
* <code>//hpos2</code> '''权限''': <code>worldedit.selection.hpos</code><br />
+
* <code>//chunk [x,z coordinates] [-s] [-c]</code>  
'''描述''': 将选取点2设置为目标方块<br />
+
'''权限''': <code>worldedit.selection.chunk</code><br />
* <code>//outset &lt;amount&gt; [-h] [-v]</code> '''权限''': <code>worldedit.selection.outset</code><br />
+
'''说明''': 将选取范围设置为当前你所在的区块。<br />使用 -s 标记,则你目前选区范围会扩展到包含目前选区范围的全部区块<br />也可以使用给定的坐标,这会替代你的<br />当前位置。使用-c来指定区块坐标,<br />否则将自动使用全局坐标。<br />(举个例子,全局坐标5,5和 -c 0,0 所指代的位置是相同的)
'''描述''': 使用给定的数值,在所有方向上延展选区。<br />可用标记:<br /> -h 仅会延展横向<br /> -v 仅会延展纵向<br />
+
* <code>//hpos1</code>  
* <code>//distr  [-c] [-d]</code> '''权限''': <code>worldedit.analysis.distr</code><br />
+
'''权限''': <code>worldedit.selection.hpos</code><br />
'''描述''': 获得选区内方块的分布情况。<br /> -c 标记会获得你剪切板内容的分布情况。<br /> -d 标记会将方块用数据分割<br />
+
'''说明''': 将选取点1设置为看向的方块<br />
* <code>//inset &lt;amount&gt; [-h] [-v]</code> '''权限''': <code>worldedit.selection.inset</code><br />
+
* <code>//wand</code>  
'''描述''': 使用给定的数值,在所有方向上缩小选区。<br />可用标记:<br /> -h 仅会缩小横向<br /> -v 仅会缩小纵向
+
'''权限''': <code>worldedit.wand</code><br />
 +
'''说明''': 获取魔杖物品<br />
 +
* <code>/toggleeditwand</code>  
 +
'''权限''': <code>worldedit.wand.toggle</code><br />
 +
'''说明''': 切换编辑魔杖功能的启用与否<br />
 +
* <code>//hpos2</code>  
 +
'''权限''': <code>worldedit.selection.hpos</code><br />
 +
'''说明''': 将选取点2设置为看向的方块<br />
 +
* <code>//outset &lt;amount&gt; [-h] [-v]</code>  
 +
'''权限''': <code>worldedit.selection.outset</code><br />
 +
'''说明''': 使用给定的数值,在所有方向上延展选区。<br />可用标记:<br /> -h 仅会延展横向<br /> -v 仅会延展纵向<br />
 +
* <code>//distr  [-c] [-d]</code>  
 +
'''权限''': <code>worldedit.analysis.distr</code><br />
 +
'''说明''': 获得选区内方块的分布情况。<br /> -c 标记会获得你剪切板内容的分布情况。<br /> -d 标记会将数据值不同的方块分开统计<br />
 +
* <code>//inset &lt;amount&gt; [-h] [-v]</code>  
 +
'''权限''': <code>worldedit.selection.inset</code><br />
 +
'''说明''': 使用给定的数值,在所有方向上缩小选区。<br />可用标记:<br /> -h 仅会缩小横向<br /> -v 仅会缩小纵向
  
 
+
=== '''History 命令''' ===
-----
 
 
 
=== '''History 命令''' <code>[</code>[https://github.com/c7w/FastAsyncWorldedit/edit/master/core/src/main/java/com/sk89q/worldedit/command/HistoryCommands.java <code>编辑</code>]<code>|</code>[[#总览|<code>回到顶部</code>]]<code>]</code> ===
 
  
 
<blockquote>(能够撤销操作,反撤销操作,清除历史的相关命令: [http://wiki.sk89q.com/wiki/WorldEdit/Features#History 更多信息])
 
<blockquote>(能够撤销操作,反撤销操作,清除历史的相关命令: [http://wiki.sk89q.com/wiki/WorldEdit/Features#History 更多信息])
 
</blockquote>
 
</blockquote>
  
-----
+
* <code>//redo [times] [player]</code>
 
 
==== <code>//redo [times] [player]</code> ====
 
 
 
 
'''权限''': <code>worldedit.history.redo</code><br />
 
'''权限''': <code>worldedit.history.redo</code><br />
'''描述''': 反撤销上个操作(从历史记录中)<br />
+
'''说明''': (从历史记录中)反撤销上个操作<br />
* <code>//clearhistory</code> '''权限''': <code>worldedit.history.clear</code><br />
+
* <code>//clearhistory</code>  
'''描述''': 清除你的历史记录<br />
+
'''权限''': <code>worldedit.history.clear</code><br />
* <code>//undo [times] [player]</code> '''权限''': <code>worldedit.history.undo</code><br />
+
'''说明''': 清除你的历史记录<br />
'''描述''': 撤销上个操作<br />
+
* <code>//undo [times] [player]</code>  
* <code>//frb &lt;user=Empire92&gt; &lt;radius=5&gt; &lt;time=3d4h&gt;</code> '''权限''': <code>worldedit.history.rollback</code><br />
+
'''权限''': <code>worldedit.history.undo</code><br />
'''描述''': 撤销某个给定的操作。 - 时间使用以下单位: s(秒), m(分钟), h(小时), d(天), y(年)。<br /> - 从硬盘中导入: /frb #import
+
'''说明''': 撤销上个操作<br />
 
+
* <code>//frb &lt;user=Empire92&gt; &lt;radius=5&gt; &lt;time=3d4h&gt;</code>  
 
+
'''权限''': <code>worldedit.history.rollback</code><br />
-----
+
'''说明''': 撤销某个给定的操作。 - 时间使用以下单位: s(秒), m(分钟), h(小时), d(天), y(年)。<br /> - 从硬盘中导入: /frb #import
  
=== '''Schematic 命令''' <code>[</code>[https://github.com/c7w/FastAsyncWorldedit/edit/master/core/src/main/java/com/sk89q/worldedit/command/SchematicCommands.java <code>编辑</code>]<code>|</code>[[#总览|<code>回到顶部</code>]]<code>]</code> ===
+
=== '''Schematic 命令''' ===
  
 
<blockquote>(跟 schematic 文件有关的命令)
 
<blockquote>(跟 schematic 文件有关的命令)
 
</blockquote>
 
</blockquote>
 
+
* <code>/schematic load [&lt;format&gt;] &lt;filename&gt;</code>  
-----
 
 
 
==== <code>/schematic load [&lt;format&gt;] &lt;filename&gt;</code> ====
 
 
 
 
'''权限''': <code>worldedit.clipboard.load</code>, <code>worldedit.schematic.load</code>, <code>worldedit.schematic.upload</code>, <code>worldedit.schematic.load.other</code><br />
 
'''权限''': <code>worldedit.clipboard.load</code>, <code>worldedit.schematic.load</code>, <code>worldedit.schematic.upload</code>, <code>worldedit.schematic.load.other</code><br />
'''描述''': 将某个schematic文件导入到你的剪切板中<br />
+
'''说明''': 将某个schematic文件导入到你的剪切板中<br />
* <code>/schematic delete &lt;filename&gt;</code> '''权限''': <code>worldedit.schematic.delete</code><br />
+
* <code>/schematic delete &lt;filename&gt;</code>  
'''描述''': 将某个schematic文件从文件列表中移除<br />
+
'''权限''': <code>worldedit.schematic.delete</code><br />
* <code>/schematic list [mine|&lt;filter&gt;] [page=1] [-d] [-n] [-p]</code> '''权限''': <code>worldedit.schematic.list</code><br />
+
'''说明''': 将某个schematic文件从文件列表中移除<br />
'''描述''': 列出所有schematic路径下的可用文件<br /> -p <页码数> 能够列出指定页面的文件<br /> -f <format> 启用格式限制<br />
+
* <code>/schematic list [mine|&lt;filter&gt;] [page=1] [-d] [-n] [-p]</code>  
* <code>/schematic save [&lt;format&gt;] &lt;filename&gt;</code> '''权限''': <code>worldedit.clipboard.save</code>, <code>worldedit.schematic.save</code>, <code>worldedit.schematic.save.other</code><br />
+
'''权限''': <code>worldedit.schematic.list</code><br />
'''描述''': 使用你的剪切板的内容储存到schematic文件中<br />
+
'''说明''': 列出所有schematic路径下的可用文件<br /> -p <页码数> 能够列出指定页面的文件<br /> -f <format> 启用格式限制<br />
* <code>/schematic remap</code> '''权限''': <code>worldedit.schematic.remap</code><br />
+
* <code>/schematic save [&lt;format&gt;] &lt;filename&gt;</code>  
'''描述''': 将剪切板在MCPE/PC的值之间交换 * <code>/schematic formats</code> '''权限''': <code>worldedit.schematic.formats</code><br />
+
'''权限''': <code>worldedit.clipboard.save</code>, <code>worldedit.schematic.save</code>, <code>worldedit.schematic.save.other</code><br />
'''描述''': 列出所有可用的格式<br />
+
'''说明''': 将你的剪切板中的内容储存到schematic文件中<br />
* <code>/schematic loadall [&lt;format&gt;] &lt;filename|url&gt;</code> '''权限''': <code>worldedit.clipboard.load</code>, <code>worldedit.schematic.load</code>, <code>worldedit.schematic.upload</code><br />
+
* <code>/schematic remap</code>  
'''描述''': 读取多个剪切板<br /> -r 标记可以应用随机旋转位置
+
'''权限''': <code>worldedit.schematic.remap</code><br />
 
+
'''说明''': 将剪切板在MCPE/PC的格式间进行转换
 
+
* <code>/schematic formats</code>  
-----
+
'''权限''': <code>worldedit.schematic.formats</code><br />
 +
'''说明''': 列出所有可用的格式<br />
 +
* <code>/schematic loadall [&lt;format&gt;] &lt;filename|url&gt;</code>  
 +
'''权限''': <code>worldedit.clipboard.load</code>, <code>worldedit.schematic.load</code>, <code>worldedit.schematic.upload</code><br />
 +
'''说明''': 读取多个剪切板<br /> -r 标记可以启用随机位置旋转
  
=== '''Clipboard 命令''' <code>[</code>[https://github.com/c7w/FastAsyncWorldedit/edit/master/core/src/main/java/com/sk89q/worldedit/command/ClipboardCommands.java <code>编辑</code>]<code>|</code>[[#总览|<code>回到顶部</code>]]<code>]</code> ===
+
=== '''Clipboard 命令''' ===
  
 
<blockquote>(跟复制和粘贴方块有关的命令: [https://goo.gl/z2ScQR 更多信息])
 
<blockquote>(跟复制和粘贴方块有关的命令: [https://goo.gl/z2ScQR 更多信息])
 
</blockquote>
 
</blockquote>
  
-----
+
* <code>//copy  [-e] [-m]</code>
 
 
==== <code>//copy  [-e] [-m]</code> ====
 
  
 
'''权限''': <code>worldedit.clipboard.copy</code><br />
 
'''权限''': <code>worldedit.clipboard.copy</code><br />
'''描述''': 将选区中的内容复制到剪切板中<br />可用标记:<br /> -e 跳过复制实体<br /> -m 设置资源蒙版,蒙版外的方块会作为空气复制<br /> -b 也会复制生物群系<br />警告:实体的粘贴不能被撤销!<br />
+
'''说明''': 将选区中的内容复制到剪切板中<br />可用标记:<br /> -e 跳过复制实体<br /> -m 设置资源蒙版,蒙版外的方块会作为空气复制<br /> -b 也会复制生物群系<br />警告:实体的粘贴不能通过命令撤销!<br />
* <code>//flip [&lt;direction&gt;]</code> '''权限''': <code>worldedit.clipboard.flip</code><br />
+
* <code>//flip [&lt;direction&gt;]</code>  
'''描述''': 沿着复制发生时的那个点为剪切板中的内容进行镜面翻转。<br />
+
'''权限''': <code>worldedit.clipboard.flip</code><br />
* <code>//rotate &lt;y-axis&gt; [&lt;x-axis&gt;] [&lt;z-axis&gt;]</code> '''权限''': <code>worldedit.clipboard.rotate</code><br />
+
'''说明''': 以复制点为基点,对剪切板中的内容进行镜面翻转。<br />
'''描述''': 不会有破坏性的旋转剪切板中的内容。<br />角度需要输入度数,正数会进行顺时针旋转。你也可以堆叠进行多次旋转。插值是不被接受,且没有任何作用的,所以角度的度数应该是90的倍数。<br />
+
* <code>//rotate &lt;y-axis&gt; [&lt;x-axis&gt;] [&lt;z-axis&gt;]</code>  
* <code>//lazycopy  [-e] [-m]</code> '''权限''': <code>worldedit.clipboard.lazycopy</code><br />
+
'''权限''': <code>worldedit.clipboard.rotate</code><br />
'''描述''': 将选区中的内容延迟复制到剪切板中<br />可用标记:<br /> -e 跳过复制实体<br /> -m 设置资源蒙版,蒙版外的方块会作为空气复制<br /> -b 也会复制生物群系<br />警告:实体的粘贴不能被撤销!<br />
+
'''说明''': 在不产生破坏的情况下,旋转剪切板中的内容。<br />角度需要输入度数,正数代表进行顺时针旋转。你也可以堆叠进行多次旋转。我们并不接受非90度倍数的值,否则将不会起任何作用,所以输入的度数应该是90的倍数。<br />
* <code>//place  [-s] [-a] [-o]</code> '''权限''': <code>worldedit.clipboard.place</code><br />
+
* <code>//lazycopy  [-e] [-m]</code>  
'''描述''': 不应用任何变化(例如:旋转)放置剪切板的内容。<br />可用参数:<br /> -a 跳过空气方块<br /> -o 粘贴在原位置<br /> -s 在粘贴之后将选区定在粘贴区域<br />
+
'''权限''': <code>worldedit.clipboard.lazycopy</code><br />
* <code>//cut [leave-id] [-e] [-m]</code> '''权限''': <code>worldedit.clipboard.cut</code><br />
+
'''说明''': 将选区中的内容延迟复制到剪切板中<br />可用标记:<br /> -e 跳过复制实体<br /> -m 设置资源蒙版,蒙版外的方块会作为空气复制<br /> -b 也会复制生物群系<br />警告:实体的粘贴不能通过命令撤销!<br />
'''描述''': 将选区剪切到粘贴板之中<br />可用参数:<br /> -e 跳过复制实体<br /> -m 设置资源蒙版,蒙版外的方块会作为空气复制<br /> -b 也会复制生物群系<br />警告:实体的粘贴不能被撤销! * <code>/download</code> '''权限''': <code>worldedit.clipboard.download</code><br />
+
* <code>//place  [-s] [-a] [-o]</code>  
'''描述''': 通过配置的网页接口下载剪切板的内容<br />
+
'''权限''': <code>worldedit.clipboard.place</code><br />
* <code>/asset [category]</code> '''权限''': <code>worldedit.clipboard.asset</code><br />
+
'''说明''': 在不应用任何变化(如旋转)的前提下,直接放置剪切板中的内容。<br />可用参数:<br /> -a 跳过空气方块<br /> -o 粘贴在原位置<br /> -s 粘贴之后将选区设定在粘贴区域<br />
'''描述''': 将你的剪切板的内容保存到网页资源接口中<br />
+
* <code>//cut [leave-id] [-e] [-m]</code>  
* <code>//paste  [-s] [-a] [-o]</code> '''权限''': <code>worldedit.clipboard.paste</code><br />
+
'''权限''': <code>worldedit.clipboard.cut</code><br />
'''描述''': 粘贴剪切板的内容。<br />可用参数:<br /> -a 跳过空气方块<br /> -b 跳过粘贴生物群系<br /> -e 跳过粘贴实体<br /> -o 粘贴到原位置<br /> -s 在粘贴之后将选区定在粘贴区域<br />
+
'''说明''': 将选区剪切到粘贴板之中<br />可用参数:<br /> -e 跳过复制实体<br /> -m 设置资源蒙版,蒙版外的方块会作为空气复制<br /> -b 也会复制生物群系<br />警告:实体的粘贴不能通过命令撤销!
* <code>//lazycut  [-e] [-m]</code> '''权限''': <code>worldedit.clipboard.lazycut</code><br />
+
* <code>/download</code>  
'''描述''': 将选区中的内容延迟剪切到剪切板之中<br />可用参数:<br /> -e 跳过复制实体<br /> -m 设置资源蒙版,蒙版外的方块会作为空气复制<br /> -b 也会复制生物群系<br />警告:实体的粘贴不能被撤销!<br />
+
'''权限''': <code>worldedit.clipboard.download</code><br />
* <code>/clearclipboard</code> '''权限''': <code>worldedit.clipboard.clear</code><br />
+
'''说明''': 通过配置的网页接口下载剪切板的内容<br />
'''描述''': 清除你的剪切板
+
* <code>/asset [category]</code>  
 
+
'''权限''': <code>worldedit.clipboard.asset</code><br />
 
+
'''说明''': 将你的剪切板的内容保存到网页资源接口中<br />
-----
+
* <code>//paste  [-s] [-a] [-o]</code>  
 +
'''权限''': <code>worldedit.clipboard.paste</code><br />
 +
'''说明''': 粘贴剪切板的内容。<br />可用参数:<br /> -a 跳过空气方块<br /> -b 跳过粘贴生物群系<br /> -e 跳过粘贴实体<br /> -o 粘贴到原位置<br /> -s 在粘贴之后将选区设定在粘贴区域<br />
 +
* <code>//lazycut  [-e] [-m]</code>  
 +
'''权限''': <code>worldedit.clipboard.lazycut</code><br />
 +
'''说明''': 将选区中的内容延迟剪切到剪切板之中<br />可用参数:<br /> -e 跳过复制实体<br /> -m 设置资源蒙版,蒙版外的方块会作为空气复制<br /> -b 也会复制生物群系<br />警告:实体的粘贴不能通过命令撤销!<br />
 +
* <code>/clearclipboard</code>  
 +
'''权限''': <code>worldedit.clipboard.clear</code><br />
 +
'''说明''': 清除你的剪切板
 +
=== '''Generation 命令''' ===
  
=== '''Generation 命令''' <code>[</code>[https://github.com/c7w/FastAsyncWorldedit/edit/master/core/src/main/java/com/sk89q/worldedit/command/GenerationCommands.java <code>编辑</code>]<code>|</code>[[#总览|<code>回到顶部</code>]]<code>]</code> ===
+
<blockquote>(创建特殊结构或更多有关特性: [https://goo.gl/KuLFRW 更多信息])
 
 
<blockquote>(创建结构或特性: [https://goo.gl/KuLFRW 更多信息])
 
 
</blockquote>
 
</blockquote>
  
-----
+
* <code>//image &lt;imgur&gt; [randomize=true] [complexity=100]</code>
 
 
==== <code>//image &lt;imgur&gt; [randomize=true] [complexity=100]</code> ====
 
 
 
 
'''权限''': <code>worldedit.generation.image</code><br />
 
'''权限''': <code>worldedit.generation.image</code><br />
'''描述''': 创建一张图片<br />
+
'''说明''': 创建一张图片<br />
* <code>//generate &lt;block&gt; &lt;expression&gt; [-h] [-r] [-o] [-c]</code> '''权限''': <code>worldedit.generation.shape</code><br />
+
* <code>//generate &lt;block&gt; &lt;expression&gt; [-h] [-r] [-o] [-c]</code>  
'''描述''': 根据表达式创建结构,表达式返回的值<br />应该是正数(返回true,如果选择点在结构内的话)<br />可选地,你可以设置目标方块的类型或数据。<br />可选参数:<br /> -h 创建凹下去的结构<br /> -r 使用原版Minecraft坐标<br /> -o 与 -r 相似,但使用相对坐标。<br /> -c 与 -r 相似,但相对坐标的中心不同。<br />如果你既没有没有输入 -r ,也没有输入 -o 的话,选区会自动映射为 -1..1<br />详见 tinyurl.com/wesyntax。<br />
+
'''权限''': <code>worldedit.generation.shape</code><br />
* <code>//cyl &lt;block&gt; &lt;radius&gt;[,&lt;radius&gt;] [height] [-h]</code> '''权限''': <code>worldedit.generation.cylinder</code><br />
+
'''说明''': 根据表达式创建结构,表达式返回的值<br />应该是正数(返回true,如果选择点在结构内的话)<br />作为可选项,你可以设置目标方块的类型或数据。<br />可选参数:<br /> -h 创建凹下去的结构<br /> -r 使用原版Minecraft坐标<br /> -o 与 -r 相似,但使用相对坐标。<br /> -c 与 -r 相似,但相对坐标的中心不同。<br />如果你既没有没有输入 -r ,也没有输入 -o 的话,选区会自动映射为 -1..1<br />详见 tinyurl.com/wesyntax。<br />
'''描述''': 生成圆柱体。<br />通过指定用逗号分隔的两个半径,<br />你能够创建椭圆体。<br />第一个参数指定南北距离,第二个参数指定东西距离。<br />
+
* <code>//cyl &lt;block&gt; &lt;radius&gt;[,&lt;radius&gt;] [height] [-h]</code>  
* <code>//sphere &lt;block&gt; &lt;radius&gt;[,&lt;radius&gt;,&lt;radius&gt;] [raised?] [-h]</code> '''权限''': <code>worldedit.generation.sphere</code><br />
+
'''权限''': <code>worldedit.generation.cylinder</code><br />
'''描述''': 生成内部填充的球。<br />通过指定用逗号分隔的三个半径,<br />你能够创建椭球体。椭球体半径的距离的指定顺序为:<br />南北,上下,东西。<br />
+
'''说明''': 生成圆柱体。<br />通过指定用逗号分隔的两个半径,<br />你能够创建椭圆体。<br />第一个参数指定南北距离,第二个参数指定东西距离。<br />
* <code>//ore &lt;mask&gt; &lt;pattern&gt; &lt;size&gt; &lt;freq&gt; &lt;rarity&gt; &lt;minY&gt; &lt;maxY&gt;</code> '''权限''': <code>worldedit.generation.ore</code><br />
+
* <code>//sphere &lt;block&gt; &lt;radius&gt;[,&lt;radius&gt;,&lt;radius&gt;] [raised?] [-h]</code>  
'''描述''': 生成矿物<br />
+
'''权限''': <code>worldedit.generation.sphere</code><br />
* <code>//caves [size=8] [freq=40] [rarity=7] [minY=8] [maxY=127] [sysFreq=1] [sysRarity=25] [pocketRarity=0] [pocketMin=0] [pocketMax=3]</code> '''权限''': <code>worldedit.generation.caves</code><br />
+
'''说明''': 生成实心球。<br />通过指定用逗号分隔的三个半径,<br />你能够创建椭球体。椭球体半径的距离的指定顺序为:<br />南北,上下,东西。<br />
'''描述''': 生成网状的洞穴结构<br />
+
* <code>//ore &lt;mask&gt; &lt;pattern&gt; &lt;size&gt; &lt;freq&gt; &lt;rarity&gt; &lt;minY&gt; &lt;maxY&gt;</code>  
* <code>//hcyl &lt;pattern&gt; &lt;radius&gt;[,&lt;radius&gt;] [height]</code> '''权限''': <code>worldedit.generation.cylinder</code><br />
+
'''权限''': <code>worldedit.generation.ore</code><br />
'''描述''': 生成中空的圆柱体。<br />通过指定用逗号分隔的两个半径,<br />你能够创建椭圆体。<br />第一个参数指定南北距离,第二个参数指定东西距离。<br />
+
'''说明''': 生成矿物<br />
* <code>//ores</code> '''权限''': <code>worldedit.generation.ore</code><br />
+
* <code>//caves [size=8] [freq=40] [rarity=7] [minY=8] [maxY=127] [sysFreq=1] [sysRarity=25] [pocketRarity=0] [pocketMin=0] [pocketMax=3]</code>  
'''描述''': 生成矿物<br />
+
'''权限''': <code>worldedit.generation.caves</code><br />
* <code>//hsphere &lt;block&gt; &lt;radius&gt;[,&lt;radius&gt;,&lt;radius&gt;] [raised?]</code> '''权限''': <code>worldedit.generation.sphere</code><br />
+
'''说明''': 生成网状的洞穴结构<br />
'''描述''': 生成中空的球体。<br />通过指定用逗号分隔的三个半径,<br />你能够创建椭球体。椭球体半径的距离的指定顺序为:<br />南北,上下,东西。<br />
+
* <code>//hcyl &lt;pattern&gt; &lt;radius&gt;[,&lt;radius&gt;] [height]</code>  
* <code>/forestgen [size] [type] [density]</code> '''权限''': <code>worldedit.generation.forest</code><br />
+
'''权限''': <code>worldedit.generation.cylinder</code><br />
'''描述''': 生成森林<br />
+
'''说明''': 生成中空的圆柱体。<br />通过指定用逗号分隔的两个半径,<br />你能够创建椭圆体。<br />第一个参数指定南北距离,第二个参数指定东西距离。<br />
* <code>//hpyramid &lt;block&gt; &lt;size&gt;</code> '''权限''': <code>worldedit.generation.pyramid</code><br />
+
* <code>//ores</code>  
'''描述''': 生成中空的金字塔<br />
+
'''权限''': <code>worldedit.generation.ore</code><br />
* <code>/pumpkins [size]</code> '''权限''': <code>worldedit.generation.pumpkins</code><br />
+
'''说明''': 生成矿物<br />
'''描述''': 生成南瓜群<br />
+
* <code>//hsphere &lt;block&gt; &lt;radius&gt;[,&lt;radius&gt;,&lt;radius&gt;] [raised?]</code>  
* <code>//pyramid &lt;block&gt; &lt;size&gt; [-h]</code> '''权限''': <code>worldedit.generation.pyramid</code><br />
+
'''权限''': <code>worldedit.generation.sphere</code><br />
'''描述''': 生成填充过的金字塔<br />
+
'''说明''': 生成中空的球体。<br />通过指定用逗号分隔的三个半径,<br />你能够创建椭球体。椭球体半径的距离的指定顺序为:<br />南北,上下,东西。<br />
* <code>//generatebiome &lt;biome&gt; &lt;expression&gt; [-h] [-r] [-o] [-c]</code> '''权限''': <code>worldedit.generation.shape</code>, <code>worldedit.biome.set</code><br />
+
* <code>/forestgen [size] [type] [density]</code>  
'''描述''': 根据表达式创建结构,表达式返回的值<br />应该是正数(返回true,如果选择点在结构内的话)<br />可选地,你可以设置目标方块的类型或数据。<br />可选参数:<br /> -h 创建凹下去的结构<br /> -r 使用原版Minecraft坐标<br /> -o 与 -r 相似,但使用相对坐标。<br /> -c 与 -r 相似,但相对坐标的中心不同。<br />如果你既没有没有输入 -r ,也没有输入 -o 的话,选区会自动映射为 -1..1<br />详见 tinyurl.com/wesyntax。
+
'''权限''': <code>worldedit.generation.forest</code><br />
 
+
'''说明''': 生成森林<br />
 
+
* <code>//hpyramid &lt;block&gt; &lt;size&gt;</code>  
-----
+
'''权限''': <code>worldedit.generation.pyramid</code><br />
 +
'''说明''': 生成中空的金字塔<br />
 +
* <code>/pumpkins [size]</code>  
 +
'''权限''': <code>worldedit.generation.pumpkins</code><br />
 +
'''说明''': 生成南瓜群<br />
 +
* <code>//pyramid &lt;block&gt; &lt;size&gt; [-h]</code>  
 +
'''权限''': <code>worldedit.generation.pyramid</code><br />
 +
'''说明''': 生成填充过的金字塔<br />
 +
* <code>//generatebiome &lt;biome&gt; &lt;expression&gt; [-h] [-r] [-o] [-c]</code>  
 +
'''权限''': <code>worldedit.generation.shape</code>, <code>worldedit.biome.set</code><br />
 +
'''说明''': 根据表达式创建结构,表达式返回的值<br />应该是正数(返回true,如果选择点在结构内的话)<br />作为选择项,你可以设置目标方块的类型或数据。<br />可选参数:<br /> -h 创建凹下去的结构<br /> -r 使用原版Minecraft坐标<br /> -o 与 -r 相似,但使用相对坐标。<br /> -c 与 -r 相似,但相对坐标的中心不同。<br />如果你既没有没有输入 -r ,也没有输入 -o 的话,选区会自动映射为 -1..1<br />详见 tinyurl.com/wesyntax。
  
=== '''Biome 命令''' <code>[</code>[https://github.com/c7w/FastAsyncWorldedit/edit/master/core/src/main/java/com/sk89q/worldedit/command/BiomeCommands.java <code>编辑</code>]<code>|</code>[[#总览|<code>回到顶部</code>]]<code>]</code> ===
+
=== '''Biome 命令''' ===
  
<blockquote>(改变,列出或检查生物群系)
+
<blockquote>(更改当前生物群系,或查看当前或所有生物群系)
 
</blockquote>
 
</blockquote>
  
-----
+
* <code>//setbiome &lt;biome&gt; [-p]</code>
 
 
==== <code>//setbiome &lt;biome&gt; [-p]</code> ====
 
  
 
'''权限''': <code>worldedit.biome.set</code><br />
 
'''权限''': <code>worldedit.biome.set</code><br />
'''描述''': 设置区域的生物群系。<br />默认生成的生物群系会使用你选区中所有的方块构成。<br />-p 会使用你当前所在的区块。<br />
+
'''说明''': 设置区域的生物群系。<br />默认来说,我们会将你选区中的所有方块直接设置为对应生物群系。<br />-p 标记则将选区所在区块设置为对应生物群系。<br />
* <code>/biomeinfo  [-p] [-t]</code> '''权限''': <code>worldedit.biome.info</code><br />
+
* <code>/biomeinfo  [-p] [-t]</code>  
'''描述''': 获取区块的生物群系。<br />默认获取的生物群系会检测你选区中所有的方块。<br />-t 使用你正在看着的那个区块。<br />-p 会使用你当前所在的区块。<br />
+
'''权限''': <code>worldedit.biome.info</code><br />
* <code>/biomelist [page]</code> '''权限''': <code>worldedit.biome.list</code><br />
+
'''说明''': 获取当前位置的生物群系。<br />默认来说,我们会检测你选区中所有的方块,列出所有包含的生物群系。<br />-t 则检测你目光指向的那个区块。<br />-p 会检查你当前所在的区块。<br />
'''描述''': 获取所有可用的生物群系。
+
* <code>/biomelist [page]</code>  
 
+
'''权限''': <code>worldedit.biome.list</code><br />
 +
'''说明''': 获取所有可用的生物群系。
  
-----
+
=== '''Anvil 命令''' ===
  
=== '''Anvil 命令''' <code>[</code>[https://github.com/c7w/FastAsyncWorldedit/edit/master/core/src/main/java/com/boydti/fawe/command/AnvilCommands.java <code>编辑</code>]<code>|</code>[[#总览|<code>回到顶部</code>]]<code>]</code> ===
+
<blockquote>(操纵大量方块:[https://github.com/c7w/FastAsyncWorldedit/wiki/Anvil-API 更多信息])
 
 
<blockquote>(Manipulate billions of blocks: [https://github.com/c7w/FastAsyncWorldedit/wiki/Anvil-API 更多信息])
 
 
</blockquote>
 
</blockquote>
  
-----
 
 
==== <code>/anvil count &lt;ids&gt; [-d]</code> ====
 
  
 +
* <code>/anvil count &lt;ids&gt; [-d]</code>
 
'''权限''': <code>worldedit.anvil.count</code><br />
 
'''权限''': <code>worldedit.anvil.count</code><br />
'''描述''': 为选区中的方块计数<br />
+
'''说明''': 为选区中的方块计数<br />
* <code>/anvil replace [from-block] &lt;to-block&gt;</code> '''权限''': <code>worldedit.anvil.replace</code><br />
+
* <code>/anvil replace [from-block] &lt;to-block&gt;</code>  
'''描述''': 用一种方块替换选区中的所有另一种方块<br />
+
'''权限''': <code>worldedit.anvil.replace</code><br />
* <code>/anvil replaceall &lt;folder&gt; [from-block] &lt;to-block&gt; [-d] [-f]</code> '''权限''': <code>worldedit.anvil.replaceall</code><br />
+
'''说明''': 用一种方块替换选区中的所有另一种方块<br />
'''描述''': 用另一种方块替换选区中的所有方块<br /> -d 标记会禁用通配符的匹配<br />
+
* <code>/anvil replaceall &lt;folder&gt; [from-block] &lt;to-block&gt; [-d] [-f]</code>
* <code>/anvil copy</code> '''权限''': <code>worldedit.anvil.copychunks</code><br />
+
'''权限''': <code>worldedit.anvil.replaceall</code><br />
'''描述''': 将区块延迟复制到你的anvil剪切板中<br />
+
'''说明''': 用另一种方块替换选区中的所有方块<br /> -d 标记会禁用通配符的匹配<br />
* <code>/anvil paste  [-c]</code> '''权限''': <code>worldedit.anvil.pastechunks</code><br />
+
* <code>/anvil copy</code>  
'''描述''': 从anvil剪切板将内容粘贴出来。<br /> -c 标记会调整将内容粘贴到区块中。<br />
+
'''权限''': <code>worldedit.anvil.copychunks</code><br />
* <code>/anvil distr</code> '''权限''': <code>worldedit.anvil.distr</code><br />
+
'''说明''': 将区块延迟复制到你的anvil剪切板中<br />
'''描述''': 用另一种方块替换选区中的所有方块<br />
+
* <code>/anvil paste  [-c]</code>  
* <code>/anvil trimallplots</code> '''权限''': <code>worldedit.anvil.trimallplots</code><br />
+
'''权限''': <code>worldedit.anvil.pastechunks</code><br />
'''描述''': 修剪地皮世界中的区块<br />未认领的区块会被删除<br />未修改的区块会被删除<br />使用 -v 来删除没有人去过的区块<br />
+
'''说明''': 从anvil剪切板将内容粘贴出来。<br /> -c 标记会调整将内容粘贴到区块中。<br />
* <code>/anvil countall &lt;folder&gt; [hasSky] &lt;id&gt; [-d]</code> '''权限''': <code>worldedit.anvil.countall</code><br />
+
* <code>/anvil distr</code>  
'''描述''': 为世界中的方块计数<br />
+
'''权限''': <code>worldedit.anvil.distr</code><br />
* <code>/anvil clear</code> '''权限''': <code>worldedit.anvil.clear</code><br />
+
'''说明''': 用另一种方块替换选区中的所有方块<br />
'''描述''': 清除选区的区块(不整理磁盘碎片就删除)<br />
+
* <code>/anvil trimallplots</code>  
* <code>/anvil removelayers &lt;id&gt;</code> '''权限''': <code>worldedit.anvil.removelayer</code><br />
+
'''权限''': <code>worldedit.anvil.trimallplots</code><br />
'''描述''': 如果某一区块的顶层方块全部都匹配提供的方块类型的话,就移除顶层方块。<br />
+
'''说明''': 修剪地皮世界中的区块<br />未认领的区块会被删除<br />未修改的区块会被删除<br />使用 -v 来删除没有人去过的区块<br />
* <code>/anvil replacepattern [from-mask] &lt;to-pattern&gt;</code> '''权限''': <code>worldedit.anvil.replace</code><br />
+
* <code>/anvil countall &lt;folder&gt; [hasSky] &lt;id&gt; [-d]</code>  
'''描述''': 移除选区内所有匹配模型的方块<br />
+
'''权限''': <code>worldedit.anvil.countall</code><br />
* <code>/anvil remapall &lt;folder&gt;</code> '''权限''': <code>worldedit.anvil.remapall</code><br />
+
'''说明''': 为世界中的方块计数<br />
'''描述''': 将世界在MCPE和PC的存档格式之间转换<br />
+
* <code>/anvil clear</code>  
* <code>/anvil deletealloldregions &lt;folder&gt; &lt;time&gt;</code> '''权限''': <code>worldedit.anvil.deletealloldregions</code><br />
+
'''权限''': <code>worldedit.anvil.clear</code><br />
'''描述''': 移除一段时间内没有人进入的区域<br />你可以使用秒 (s), 分钟 (m), 小时 (h), 天 (d), 周 (w),和 年 (y) 来计算时间<br />(请注意:月份不是计算时间的单位)<br />举个例子: 8h5m12s<br />
+
'''说明''': 清除选区的区块(不整理磁盘碎片,直接删除)<br />
* <code>/anvil replaceallpattern &lt;folder&gt; [from-block] &lt;to-pattern&gt; [-d] [-m]</code> '''权限''': <code>worldedit.anvil.replaceall</code><br />
+
* <code>/anvil removelayers &lt;id&gt;</code>  
'''描述''': 将选区中所有的方块替换成另一种<br />
+
'''权限''': <code>worldedit.anvil.removelayer</code><br />
* <code>/anvil deleteallunvisited &lt;folder&gt; &lt;age-ticks&gt; [file-age=60000]</code> '''权限''': <code>worldedit.anvil.deleteallunvisited</code><br />
+
'''说明''': 如果某一区块的顶层方块全部都与提供的方块类型匹配成功的话,就移除顶层方块。<br />
'''描述''': 移除所有加载时间没有到指定整数刻的区块(20t = 1s) and <br />在创建文件后的文件持续时间 <code>file-duration</code> (ms) 内不能访问<br />没有在过去的 <code>chunk-inactivity</code> (ms)中使用。自动保存的间隔推荐是 <code>file-duration</code> 和 <code>chunk-inactivity</code> 的值
+
* <code>/anvil replacepattern [from-mask] &lt;to-pattern&gt;</code>  
 +
'''权限''': <code>worldedit.anvil.replace</code><br />
 +
'''说明''': 移除选区内所有匹配对应样式模板的方块<br />
 +
* <code>/anvil remapall &lt;folder&gt;</code>  
 +
'''权限''': <code>worldedit.anvil.remapall</code><br />
 +
'''说明''': 将世界在MCPE和PC的存档格式之间转换<br />
 +
* <code>/anvil deletealloldregions &lt;folder&gt; &lt;time&gt;</code>  
 +
'''权限''': <code>worldedit.anvil.deletealloldregions</code><br />
 +
'''说明''': 移除一段时间内没有人进入的区域<br />你可以使用秒 (s), 分钟 (m), 小时 (h), 天 (d), 周 (w),和 年 (y) 来计算时间<br />(请注意:月份不是计算时间的单位)<br />举个例子: 8h5m12s<br />
 +
* <code>/anvil replaceallpattern &lt;folder&gt; [from-block] &lt;to-pattern&gt; [-d] [-m]</code>  
 +
'''权限''': <code>worldedit.anvil.replaceall</code><br />
 +
'''说明''': 将选区中所有的方块替换成另一种方块样式<br />
 +
* <code>/anvil deleteallunvisited &lt;folder&gt; &lt;age-ticks&gt; [file-age=60000]</code>  
 +
'''权限''': <code>worldedit.anvil.deleteallunvisited</code><br />
 +
'''说明''': 会将满足以下条件之一的全部区块移除:
 +
加载时间没有到指定整数游戏刻的区块(20t = 1s)<br />
 +
在创建后,持续时间 <code>file-duration</code> (ms) 内没有被玩家访问的;<br />
 +
在过去的 <code>chunk-inactivity</code> (ms)时间中没有被使用的。
 +
因此,我们推荐的自动保存时间间隔便是 <code>file-duration</code> 和 <code>chunk-inactivity</code> 的值。
  
 
+
=== '''Super Pickaxe 命令''' ===
-----
 
 
 
=== '''Super Pickaxe 命令''' <code>[</code>[https://github.com/c7w/FastAsyncWorldedit/edit/master/core/src/main/java/com/sk89q/worldedit/command/SuperPickaxeCommands.java <code>编辑</code>]<code>|</code>[[#总览|<code>回到顶部</code>]]<code>]</code> ===
 
  
 
<blockquote>(超级镐子相关命令: [https://goo.gl/aBtGHo 更多信息])
 
<blockquote>(超级镐子相关命令: [https://goo.gl/aBtGHo 更多信息])
 
</blockquote>
 
</blockquote>
  
-----
+
* <code>/sp recur &lt;radius&gt;</code>
 
 
==== <code>/sp recur &lt;radius&gt;</code> ====
 
  
 
'''权限''': <code>worldedit.superpickaxe.recursive</code><br />
 
'''权限''': <code>worldedit.superpickaxe.recursive</code><br />
'''描述''': 启用递归超级镐子模式<br />
+
'''说明''': 启用递归超级镐子模式<br />
* <code>/sp area &lt;radius&gt;</code> '''权限''': <code>worldedit.superpickaxe.area</code><br />
+
* <code>/sp area &lt;radius&gt;</code>  
'''描述''': 启用区域超级镐子模式<br />
+
'''权限''': <code>worldedit.superpickaxe.area</code><br />
* <code>/sp single</code> '''权限''': <code>worldedit.superpickaxe</code><br />
+
'''说明''': 启用区域超级镐子模式<br />
'''描述''': 启用单个方块的超级镐子模式
+
* <code>/sp single</code>  
 
+
'''权限''': <code>worldedit.superpickaxe</code><br />
 +
'''说明''': 启用单个方块的超级镐子模式
  
-----
 
  
=== '''Navigation 命令''' <code>[</code>[https://github.com/c7w/FastAsyncWorldedit/edit/master/core/src/main/java/com/sk89q/worldedit/command/NavigationCommands.java <code>编辑</code>]<code>|</code>[[#总览|<code>回到顶部</code>]]<code>]</code> ===
+
=== '''Navigation 命令''' ===
  
<blockquote>(关于玩家在地面上移动的相关命令: [https://goo.gl/uQTUiT 更多信息])
+
<blockquote>(关于玩家在地图上移动的相关命令: [https://goo.gl/uQTUiT 更多信息])
 
</blockquote>
 
</blockquote>
  
-----
+
* <code>/descend [# of floors]</code>
 
 
==== <code>/descend [# of floors]</code> ====
 
 
 
 
'''权限''': <code>worldedit.navigation.descend</code><br />
 
'''权限''': <code>worldedit.navigation.descend</code><br />
'''描述''': 向下降一层<br />
+
'''说明''': 向下降一层<br />
* <code>/ascend [# of levels]</code> '''权限''': <code>worldedit.navigation.ascend</code><br />
+
* <code>/ascend [# of levels]</code>  
'''描述''': 向上升一层<br />
+
'''权限''': <code>worldedit.navigation.ascend</code><br />
* <code>/thru</code> '''权限''': <code>worldedit.navigation.thru.command</code><br />
+
'''说明''': 向上升一层<br />
'''描述''': 穿过墙壁<br />
+
* <code>/thru</code>  
* <code>/jumpto [world,x,y,z]</code> '''权限''': <code>worldedit.navigation.jumpto.command</code><br />
+
'''权限''': <code>worldedit.navigation.thru.command</code><br />
'''描述''': 传送到某一位置<br />
+
'''说明''': 穿过面前的墙壁<br />
* <code>/ceil [clearance] [-f] [-g]</code> '''权限''': <code>worldedit.navigation.ceiling</code><br />
+
* <code>/jumpto [world,x,y,z]</code>  
'''描述''': 去天花板上<br />
+
'''权限''': <code>worldedit.navigation.jumpto.command</code><br />
* <code>/up &lt;block&gt; [-f] [-g]</code> '''权限''': <code>worldedit.navigation.up</code><br />
+
'''说明''': 传送到某一位置<br />
'''描述''': 向上移动一段距离<br />
+
* <code>/ceil [clearance] [-f] [-g]</code>  
* <code>/unstuck</code> '''权限''': <code>worldedit.navigation.unstuck</code><br />
+
'''权限''': <code>worldedit.navigation.ceiling</code><br />
'''描述''': 在卡在方块中的情况下逃脱
+
'''说明''': 前往当前的最顶层,即“天花板”上<br />
 +
* <code>/up &lt;block&gt; [-f] [-g]</code>  
 +
'''权限''': <code>worldedit.navigation.up</code><br />
 +
'''说明''': 向上移动一段距离,并在脚下生成方块<br />
 +
* <code>/unstuck</code>
 +
'''权限''': <code>worldedit.navigation.unstuck</code><br />
 +
'''说明''': 在卡在方块中的情况下逃脱
  
 
+
=== '''Snapshot 命令''' ===
-----
 
 
 
=== '''Snapshot 命令''' <code>[</code>[https://github.com/c7w/FastAsyncWorldedit/edit/master/core/src/main/java/com/sk89q/worldedit/command/SnapshotCommands.java <code>编辑</code>]<code>|</code>[[#总览|<code>回到顶部</code>]]<code>]</code> ===
 
  
 
<blockquote>(列出,读取快照以及查看跟快照有关的信息)
 
<blockquote>(列出,读取快照以及查看跟快照有关的信息)
 
</blockquote>
 
</blockquote>
  
-----
+
* <code>/snapshotlist [num]</code>
 
 
==== <code>/snapshotlist [num]</code> ====
 
  
 
'''权限''': <code>worldedit.snapshots.list</code><br />
 
'''权限''': <code>worldedit.snapshots.list</code><br />
'''描述''': 列出某一快照<br />
+
'''说明''': 列出快照列表的对应页数<br />
* <code>/snapshotafter &lt;date&gt;</code> '''权限''': <code>worldedit.snapshots.restore</code><br />
+
* <code>/snapshotafter &lt;date&gt;</code>  
'''描述''': 选择距离一个时间最近的快照,快照发布时间在该时间之后<br />
+
'''权限''': <code>worldedit.snapshots.restore</code><br />
* <code>/snapshotbefore &lt;date&gt;</code> '''权限''': <code>worldedit.snapshots.restore</code><br />
+
'''说明''': 选择发布时间在该时间之后,距离时间最近的一个快照<br />
'''描述''': 选择距离一个时间最近的快照,快照发布时间在该时间之前<br />
+
* <code>/snapshotbefore &lt;date&gt;</code>  
* <code>/snapshotuse &lt;snapshot&gt;</code> '''权限''': <code>worldedit.snapshots.restore</code><br />
+
'''权限''': <code>worldedit.snapshots.restore</code><br />
'''描述''': 选择要使用的快照<br />
+
'''说明''': 选择发布时间在该时间之前,距离时间最近的一个快照<br />
* <code>/snapshotsel &lt;index&gt;</code> '''权限''': <code>worldedit.snapshots.restore</code><br />
+
* <code>/snapshotuse &lt;snapshot&gt;</code>  
'''描述''': 选择根据列表ID排序的某一快照
+
'''权限''': <code>worldedit.snapshots.restore</code><br />
 +
'''说明''': 选择要使用的快照<br />
 +
* <code>/snapshotsel &lt;index&gt;</code>  
 +
'''权限''': <code>worldedit.snapshots.restore</code><br />
 +
'''说明''': 选择根据列表ID排序的某一快照
  
 
+
==== '''Snapshot Util 命令''' ====
-----
 
 
 
=== '''Snapshot Util 命令''' <code>[</code>[https://github.com/c7w/FastAsyncWorldedit/edit/master/core/src/main/java/com/sk89q/worldedit/command/SnapshotUtilCommands.java <code>编辑</code>]<code>|</code>[[#总览|<code>回到顶部</code>]]<code>]</code> ===
 
  
 
<blockquote>([http://wiki.sk89q.com/wiki/WorldEdit/Snapshots 更多信息])
 
<blockquote>([http://wiki.sk89q.com/wiki/WorldEdit/Snapshots 更多信息])
 
</blockquote>
 
</blockquote>
  
-----
+
* <code>/restore [snapshot]</code>
 
 
==== <code>/restore [snapshot]</code> ====
 
 
 
 
'''权限''': <code>worldedit.snapshots.restore</code><br />
 
'''权限''': <code>worldedit.snapshots.restore</code><br />
'''描述''': 从某一快照恢复选区
+
'''说明''': 从某一快照恢复选区
 
 
 
 
-----
 
  
=== '''Scripting 命令''' <code>[</code>[https://github.com/c7w/FastAsyncWorldedit/edit/master/core/src/main/java/com/sk89q/worldedit/command/ScriptingCommands.java <code>编辑</code>]<code>|</code>[[#总览|<code>回到顶部</code>]]<code>]</code> ===
+
=== '''Scripting 命令''' ===
  
 
<blockquote>(执行 CraftScript 脚本 [https://goo.gl/dHDxLG 更多信息])
 
<blockquote>(执行 CraftScript 脚本 [https://goo.gl/dHDxLG 更多信息])
 
</blockquote>
 
</blockquote>
  
-----
+
* <code>/cs &lt;filename&gt; [args...]</code>
 
 
==== <code>/cs &lt;filename&gt; [args...]</code> ====
 
  
 
'''权限''': <code>worldedit.scripting.execute</code><br />
 
'''权限''': <code>worldedit.scripting.execute</code><br />
'''描述''': 执行一个 CraftScript 脚本<br />
+
'''说明''': 执行一个 CraftScript 脚本<br />
* <code>/.s [args...]</code> '''权限''': <code>worldedit.scripting.execute</code><br />
+
* <code>/.s [args...]</code>  
'''描述''': 执行上一个 CraftScript 脚本
+
'''权限''': <code>worldedit.scripting.execute</code><br />
 
+
'''说明''': 执行上一个 CraftScript 脚本
 
 
-----
 
  
=== '''Chunk 命令''' <code>[</code>[https://github.com/c7w/FastAsyncWorldedit/edit/master/core/src/main/java/com/sk89q/worldedit/command/ChunkCommands.java <code>编辑</code>]<code>|</code>[[#总览|<code>回到顶部</code>]]<code>]</code> ===
+
=== '''Chunk 命令''' ===
  
<blockquote>([旧版] 检索区块: [http://wiki.sk89q.com/wiki/WorldEdit/Chunk_tools 更多信息])
+
<blockquote>([旧版使用] 检索区块: [http://wiki.sk89q.com/wiki/WorldEdit/Chunk_tools 更多信息])
 
</blockquote>
 
</blockquote>
  
-----
+
* <code>/chunkinfo</code>
 
 
==== <code>/chunkinfo</code> ====
 
 
 
 
'''权限''': <code>worldedit.chunkinfo</code><br />
 
'''权限''': <code>worldedit.chunkinfo</code><br />
'''描述''': 获得你当前所在的区块的有关信息<br />
+
'''说明''': 获得你当前所在的区块的有关信息<br />
* <code>/listchunks</code> '''权限''': <code>worldedit.listchunks</code><br />
+
* <code>/listchunks</code>  
'''描述''': 列出你的选取包括的区块<br />
+
'''权限''': <code>worldedit.listchunks</code><br />
* <code>/delchunks</code> '''权限''': <code>worldedit.delchunks</code><br />
+
'''说明''': 列出你的选区所在的所有区块<br />
'''描述''': 已过期,请使用 anvil 命令
+
* <code>/delchunks</code>  
 
+
'''权限''': <code>worldedit.delchunks</code><br />
 +
'''说明''': 已过期,请使用 anvil 命令来执行对应操作
  
-----
+
=== '''Options 命令''' ===
 
 
=== '''Options 命令''' <code>[</code>[https://github.com/c7w/FastAsyncWorldedit/edit/master/core/src/main/java/com/sk89q/worldedit/command/OptionsCommands.java <code>编辑</code>]<code>|</code>[[#总览|<code>回到顶部</code>]]<code>]</code> ===
 
  
 
<blockquote>(玩家切换设置和物品信息)
 
<blockquote>(玩家切换设置和物品信息)
 
</blockquote>
 
</blockquote>
  
-----
+
* <code>//searchitem &lt;query&gt; [-b] [-i]</code>
 
 
==== <code>//searchitem &lt;query&gt; [-b] [-i]</code> ====
 
 
 
'''描述''': 搜索某个物品。<br />Flags:<br /> -b 仅搜索方块<br /> -i 仅搜索物品<br />
 
* <code>//gtransform [transform]</code> '''权限''': <code>worldedit.global-trasnform</code><br />
 
'''描述''': 获取全局变换式<br />
 
* <code>//toggleplace</code> '''描述''': 在你当前位置和第一个选取点直接切换位置<br />
 
* <code>//tips</code> '''描述''': 切换FAWE提示是否开启<br />
 
* <code>//gsmask [mask]</code> '''权限''': <code>worldedit.global-mask</code><br />
 
'''描述''': 能够应用给你的所有编辑的全局资源蒙版,你做出的资源性更改符合本蒙版(例如:剪切板中的方块)<br />
 
* <code>//gmask [mask]</code> '''权限''': <code>worldedit.global-mask</code><br />
 
'''描述''': 能够应用给你的所有编辑的全局目标蒙版,你所有的目标性更改都符合本蒙版(例如:世界中的方块)<br />
 
* <code>//fast [on|off]</code> '''权限''': <code>worldedit.fast</code><br />
 
'''描述''': 切换FAWE插件能否进行撤销操作
 
 
 
  
-----
+
'''说明''': 搜索某个物品。<br />Flags:<br /> -b 仅搜索方块<br /> -i 仅搜索物品<br />
 +
* <code>//gtransform [transform]</code>
 +
'''权限''': <code>worldedit.global-trasnform</code><br />
 +
'''说明''': 获取全局变换式<br />
 +
* <code>//toggleplace</code>
 +
'''说明''': 在你当前位置和第一个选取点之间切换位置<br />
 +
* <code>//tips</code>
 +
'''说明''': 切换FAWE提示是否开启<br />
 +
* <code>//gsmask [mask]</code>
 +
'''权限''': <code>worldedit.global-mask</code><br />
 +
'''说明''': 设置应用到你所有编辑的全局资源蒙版,任何作为源资源存储的方块数据均需要经过本蒙版判定(例如:判定方块能否被复制到剪切板中)<br />
 +
* <code>//gmask [mask]</code>
 +
'''权限''': <code>worldedit.global-mask</code><br />
 +
'''说明''': 设置应用给你所有编辑的全局目标蒙版,与上面一个指令相对的,所有你的目标性更改均需通过本蒙版的判定(例如:判定能否修改世界中的方块)<br />
 +
* <code>//fast [on|off]</code>
 +
'''权限''': <code>worldedit.fast</code><br />
 +
'''说明''': 切换FAWE插件是否进入快速模式,在该模式下你的操作不会记录到相关历史记录中,即无法进行撤销操作
  
=== '''Brush Options 命令''' <code>[</code>[https://github.com/c7w/FastAsyncWorldedit/edit/master/core/src/main/java/com/sk89q/worldedit/command/BrushOptionsCommands.java <code>编辑</code>]<code>|</code>[[#总览|<code>回到顶部</code>]]<code>]</code> ===
+
=== '''Brush Options 命令''' ===
  
 
<blockquote>(工具命令)
 
<blockquote>(工具命令)
 
</blockquote>
 
</blockquote>
  
-----
+
* <code>/target [mode]</code>
 
 
==== <code>/target [mode]</code> ====
 
 
 
'''描述''': 在不同的目标模式之间切换<br />
 
* <code>/size [pattern]</code> '''权限''': <code>worldedit.brush.options.size</code><br />
 
'''描述''': 设置笔刷大小<br />
 
* <code>//listbrush [mine|&lt;filter&gt;] [page=1] [-d] [-n] [-p]</code> '''权限''': <code>worldedit.brush.list</code><br />
 
'''描述''': 列出所有笔刷路径下的笔刷<br /> -p <页码数> 会列出指定页面<br />
 
* <code>/mask [mask]</code> '''权限''': <code>worldedit.brush.options.mask</code><br />
 
'''描述''': 设置笔刷的目标蒙版<br />
 
* <code>/range [pattern]</code> '''权限''': <code>worldedit.brush.options.range</code><br />
 
'''描述''': 设置笔刷的范围<br />
 
* <code>/transform [transform]</code> '''权限''': <code>worldedit.brush.options.transform</code><br />
 
'''描述''': 设置笔刷的变换式<br />
 
* <code>/mat [pattern]</code> '''权限''': <code>worldedit.brush.options.material</code><br />
 
'''描述''': 设置笔刷的材料<br />
 
* <code>/patterns [page=1|search|pattern]</code> '''描述''': 模型可以决定哪些方块被放置<br /> - 使用[括号]来输入参数<br /> - 使用 , 来代表 或 的分割<br />举个例子: #surfacespread[10][#existing],andesite<br />更多信息: https://git.io/vSPmA<br />
 
* <code>/savebrush [name]</code> '''权限''': <code>worldedit.brush.save</code><br />
 
'''描述''': 保存你当前的笔刷<br />使用 -g 标记来做出全局储存<br />
 
* <code>/loadbrush [name]</code> '''权限''': <code>worldedit.brush.load</code><br />
 
'''描述''': 读取笔刷<br />
 
* <code>/transforms [page=1|search|transform]</code> '''描述''': 变换方块被放置的方式<br /> - 使用[括号]来输入参数<br /> - 使用 , 来代表 或 的分割<br /> - 使用 &amp; 来表示 和 的分割<br />更多信息: https://git.io/v9KHO<br />
 
* <code>/primary [brush arguments]</code> '''描述''': 设置右键点击激活的笔刷<br />
 
* <code>// [on|off]</code> '''权限''': <code>worldedit.superpickaxe</code><br />
 
'''描述''': 切换超级镐子功能<br />
 
* <code>/targetmask [mask]</code> '''描述''': 设置目标蒙版<br />
 
* <code>/none</code> '''描述''': 从当前物品上解除绑定功能<br />
 
* <code>/visualize [mode=0]</code> '''描述''': 在不同的预览模式之间进行切换<br />0 = 没有预览<br />1 = 预览单个目标方块<br />2 = 用玻璃预览所有将会改变的方块<br />
 
* <code>/scroll [none|clipboard|mask|pattern|range|size|visual|target]</code> '''描述''': 在不同的目标模式之间进行切换<br />
 
* <code>/secondary [brush arguments]</code> '''描述''': 设置左键点击激活的笔刷<br />
 
* <code>/smask [mask]</code> '''权限''': <code>worldedit.brush.options.mask</code><br />
 
'''描述''': 设置笔刷的资源蒙版<br />
 
* <code>/masks [page=1|search|mask]</code> '''描述''': 能够决定方块能否被放置的蒙版<br /> - 使用[括号]来输入参数<br /> - 使用 , 来代表 或 的分割<br /> - 使用 &amp; 来表示 和 的分割<br />举个例子: &gt;[stone,dirt],#light[0][5],$jungle<br />更多信息: https://git.io/v9r4K
 
 
 
  
-----
+
'''说明''': 在不同的目标模式之间切换<br />
 +
* <code>/size [pattern]</code>
 +
'''权限''': <code>worldedit.brush.options.size</code><br />
 +
'''说明''': 设置笔刷大小<br />
 +
* <code>//listbrush [mine|&lt;filter&gt;] [page=1] [-d] [-n] [-p]</code>
 +
'''权限''': <code>worldedit.brush.list</code><br />
 +
'''说明''': 列出或搜索所有你能使用的笔刷<br /> -p <页码数> 列出指定页面<br />
 +
* <code>/mask [mask]</code>
 +
'''权限''': <code>worldedit.brush.options.mask</code><br />
 +
'''说明''': 设置笔刷的目标蒙版<br />
 +
* <code>/range [pattern]</code>
 +
'''权限''': <code>worldedit.brush.options.range</code><br />
 +
'''说明''': 设置笔刷的范围<br />
 +
* <code>/transform [transform]</code>
 +
'''权限''': <code>worldedit.brush.options.transform</code><br />
 +
'''说明''': 设置笔刷的变换式<br />
 +
* <code>/mat [pattern]</code>
 +
'''权限''': <code>worldedit.brush.options.material</code><br />
 +
'''说明''': 设置笔刷的填充方块样式<br />
 +
* <code>/patterns [page=1|search|pattern]</code>
 +
'''说明''': 决定被放置的方块样式<br />
 +
使用[括号]来输入参数<br />
 +
使用 , 来代表 或 的分割<br />
 +
例如: #surfacespread[10][#existing],andesite<br />
 +
更多信息: https://git.io/vSPmA<br />
 +
* <code>/savebrush [name]</code>
 +
'''权限''': <code>worldedit.brush.save</code><br />
 +
'''说明''': 保存你当前的笔刷<br />使用 -g 标记以储存到全局<br />
 +
* <code>/loadbrush [name]</code>
 +
'''权限''': <code>worldedit.brush.load</code><br />
 +
'''说明''': 读取笔刷<br />
 +
* <code>/transforms [page=1|search|transform]</code>
 +
'''说明''': 变换方块被放置的方式<br />
 +
使用[括号]来输入参数<br />
 +
使用 , 来代表 或 的分割<br />
 +
使用 &amp; 来表示 和 的分割<br />
 +
更多信息: https://git.io/v9KHO<br />
 +
* <code>/primary [brush arguments]</code>
 +
'''说明''': 设置右键点击激活的笔刷<br />
 +
* <code>// [on|off]</code>
 +
'''权限''': <code>worldedit.superpickaxe</code><br />
 +
'''说明''': 切换是否开启超级镐子功能<br />
 +
* <code>/targetmask [mask]</code>
 +
'''说明''': 设置目标蒙版<br />
 +
* <code>/none</code>
 +
'''说明''': 从当前物品上解除绑定功能<br />
 +
* <code>/visualize [mode=0]</code>
 +
'''说明''': 在不同的预览模式之间进行切换<br />0 = 没有预览<br />1 = 预览单个目标方块<br />2 = 用玻璃预览所有将会改变的方块<br />
 +
* <code>/scroll [none|clipboard|mask|pattern|range|size|visual|target]</code>
 +
'''说明''': 在不同的目标模式之间进行切换<br />
 +
* <code>/secondary [brush arguments]</code>
 +
'''说明''': 设置左键点击激活的笔刷<br />
 +
* <code>/smask [mask]</code>
 +
'''权限''': <code>worldedit.brush.options.mask</code><br />
 +
'''说明''': 设置笔刷的资源蒙版<br />
 +
* <code>/masks [page=1|search|mask]</code>
 +
'''说明''': 查看所有用来决定方块能否被放置的蒙版<br />
 +
使用[括号]来输入参数<br />
 +
使用 , 来代表 或 的分割<br />
 +
使用 &amp; 来表示 和 的分割<br />
 +
举个例子: &gt;[stone,dirt],#light[0][5],$jungle<br />
 +
更多信息: https://git.io/v9r4K
  
=== '''Tool 命令''' <code>[</code>[https://github.com/c7w/FastAsyncWorldedit/edit/master/core/src/main/java/com/sk89q/worldedit/command/ToolCommands.java <code>编辑</code>]<code>|</code>[[#总览|<code>回到顶部</code>]]<code>]</code> ===
+
=== '''Tool 命令''' ===
  
 
<blockquote>(将某些功能绑定到持有的物品之上: [https://goo.gl/xPnPxj 更多信息])
 
<blockquote>(将某些功能绑定到持有的物品之上: [https://goo.gl/xPnPxj 更多信息])
 
</blockquote>
 
</blockquote>
  
-----
+
* <code>/tool tree [type]</code>
 
 
==== <code>/tool tree [type]</code> ====
 
 
 
 
'''权限''': <code>worldedit.tool.tree</code><br />
 
'''权限''': <code>worldedit.tool.tree</code><br />
'''描述''': 生成树的工具<br />
+
'''说明''': 生成树的工具<br />
* <code>/tool repl &lt;block&gt;</code> '''权限''': <code>worldedit.tool.replacer</code><br />
+
* <code>/tool repl &lt;block&gt;</code>  
'''描述''': 方块替换工具<br />
+
'''权限''': <code>worldedit.tool.replacer</code><br />
* <code>/tool info</code> '''权限''': <code>worldedit.tool.info</code><br />
+
'''说明''': 方块替换工具<br />
'''描述''': 方块信息工具<br />
+
* <code>/tool info</code>  
* <code>/tool lrbuild &lt;leftclick block&gt; &lt;rightclick block&gt;</code> '''权限''': <code>worldedit.tool.lrbuild</code><br />
+
'''权限''': <code>worldedit.tool.info</code><br />
'''描述''': 大范围建筑工具<br />
+
'''说明''': 方块信息工具<br />
* <code>/tool cycler</code> '''权限''': <code>worldedit.tool.data-cycler</code><br />
+
* <code>/tool lrbuild &lt;leftclick block&gt; &lt;rightclick block&gt;</code>  
'''描述''': 方块数据值循环工具<br />
+
'''权限''': <code>worldedit.tool.lrbuild</code><br />
* <code>/tool deltree</code> '''权限''': <code>worldedit.tool.deltree</code><br />
+
'''说明''': 大范围建筑工具<br />
'''描述''': 移除漂浮的树的工具<br />
+
* <code>/tool cycler</code>  
* <code>/tool inspect</code> '''权限''': <code>worldedit.tool.inspect</code><br />
+
'''权限''': <code>worldedit.tool.data-cycler</code><br />
'''描述''': 选择检查笔刷<br />
+
'''说明''': 方块数据值循环工具<br />
* <code>/tool floodfill &lt;pattern&gt; &lt;range&gt;</code> '''权限''': <code>worldedit.tool.flood-fill</code><br />
+
* <code>/tool deltree</code>  
'''描述''': 池塘填充工具<br />
+
'''权限''': <code>worldedit.tool.deltree</code><br />
* <code>/tool farwand</code> '''权限''': <code>worldedit.tool.farwand</code><br />
+
'''说明''': 移除漂浮的树的工具<br />
'''描述''': 远程选区工具
+
* <code>/tool inspect</code>  
 
+
'''权限''': <code>worldedit.tool.inspect</code><br />
 
+
'''说明''': 选择检查笔刷<br />
-----
+
* <code>/tool floodfill &lt;pattern&gt; &lt;range&gt;</code>  
 +
'''权限''': <code>worldedit.tool.flood-fill</code><br />
 +
'''说明''': 池塘填充工具<br />
 +
* <code>/tool farwand</code>  
 +
'''权限''': <code>worldedit.tool.farwand</code><br />
 +
'''说明''': 远程选区工具
  
=== '''Brush 命令''' <code>[</code>[https://github.com/c7w/FastAsyncWorldedit/edit/master/core/src/main/java/com/sk89q/worldedit/command/BrushCommands.java <code>编辑</code>]<code>|</code>[[#总览|<code>回到顶部</code>]]<code>]</code> ===
+
=== '''Brush 命令''' ===
  
 
<blockquote>(从远程建筑与涂画的工具。 [https://git.io/vSPYf 更多信息])
 
<blockquote>(从远程建筑与涂画的工具。 [https://git.io/vSPYf 更多信息])
 
</blockquote>
 
</blockquote>
  
-----
+
* <code>/brush copypaste [depth=5]</code>
 
 
==== <code>/brush copypaste [depth=5]</code> ====
 
 
 
 
'''权限''': <code>worldedit.brush.copy</code><br />
 
'''权限''': <code>worldedit.brush.copy</code><br />
'''描述''': 左键点击一个物体的底座来复制。<br />右键点击来粘贴<br /> -r 标记能够在粘贴时应用随机旋转<br />注意:能和剪切板滚动一起搭配使用<br />视频: https://www.youtube.com/watch?v=RPZIaTbqoZw<br />
+
'''说明''': 左键点击一个物体的底座来复制。<br />右键点击来粘贴<br /> -r 标记能够在粘贴时应用随机旋转<br />注意:能和剪切板滚动一起搭配使用<br />
* <code>/brush command &lt;radius&gt; [cmd1;cmd2...]</code> '''权限''': <code>worldedit.brush.command</code><br />
+
视频: https://www.youtube.com/watch?v=RPZIaTbqoZw<br />
'''描述''': 在点击的位置执行一条命令。<br /> - 你的选区会延展到包括该点<br /> - 可用的变量: {x}, {y}, {z}, {world}, {size}<br />
+
* <code>/brush command &lt;radius&gt; [cmd1;cmd2...]</code>  
* <code>/brush populateschematic &lt;mask&gt; &lt;file|folder|url&gt; [radius=30] [points=5] [-r]</code> '''权限''': <code>worldedit.brush.populateschematic</code><br />
+
'''权限''': <code>worldedit.brush.command</code><br />
'''描述''': 选择分散型schematic笔刷。<br /> -r 标记能够应用随机旋转<br />
+
'''说明''': 在点击的位置执行一条命令。<br />  
* <code>/brush scmd &lt;scatter-radius&gt; &lt;points&gt; &lt;cmd-radius=1&gt; &lt;cmd1;cmd2...&gt;</code> '''权限''': <code>worldedit.brush.scattercommand</code><br />
+
你的选区会延展到包括该点<br />  
'''描述''': 在表面的随机一点执行命令<br /> - 分散的半径是每个点之间的最小距离<br /> - 你的选区会延展到包括该点<br /> - 可用的变量: {x}, {y}, {z}, {world}, {size}<br />
+
可用的变量: {x}, {y}, {z}, {world}, {size}<br />
* <code>/brush erode [radius=5]</code> '''权限''': <code>worldedit.brush.erode</code><br />
+
* <code>/brush populateschematic &lt;mask&gt; &lt;file|folder|url&gt; [radius=30] [points=5] [-r]</code>  
'''描述''': 侵蚀地形<br />
+
'''权限''': <code>worldedit.brush.populateschematic</code><br />
* <code>/brush pull [radius=5]</code> '''权限''': <code>worldedit.brush.pull</code><br />
+
'''说明''': 选择分散型schematic笔刷。<br /> -r 标记能够应用随机旋转<br />
'''描述''': 将地形推向你<br />
+
* <code>/brush scmd &lt;scatter-radius&gt; &lt;points&gt; &lt;cmd-radius=1&gt; &lt;cmd1;cmd2...&gt;</code>  
* <code>/brush blendball [radius=5]</code> '''权限''': <code>worldedit.brush.blendball</code><br />
+
'''权限''': <code>worldedit.brush.scattercommand</code><br />
'''描述''': 平滑化,混合化地形<br />图片: https://i.imgur.com/cNUQUkj.png -&gt; https://i.imgur.com/hFOFsNf.png<br />
+
'''说明''': 在表面的随机一点执行命令<br />  
* <code>/brush stencil &lt;pattern&gt; [radius=5] [file|#clipboard|imgur=null] [rotation=360] [yscale=1.0]</code> '''权限''': <code>worldedit.brush.stencil</code><br />
+
分散的半径是每个点之间的最小距离<br />  
'''描述''': 使用高度图来画出地形表面。<br /> -w 标记仅会应用于最大饱和度<br /> -r 标记会应用随机旋转<br />
+
你的选区会延展到包括该点<br />  
* <code>/brush splatter &lt;pattern&gt; [radius=5] [seeds=1] [recursion=5] [solid=true]</code> '''权限''': <code>worldedit.brush.splatter</code><br />
+
可用的变量: {x}, {y}, {z}, {world}, {size}<br />
'''描述''': 设置物体表面为随机方块。<br />图片: https://i.imgur.com/hMD29oO.png<br />使用示例: /br splatter stone,dirt 30 15<br />注意:种子决定着会有多少斑点,递归次数决定着其大小,solid决定着模型是按照每个种子应用还是每个方块应用。<br />
+
* <code>/brush erode [radius=5]</code>  
* <code>/brush cylinder &lt;block&gt; [radius=2] [height=1] [-h]</code> '''权限''': <code>worldedit.brush.cylinder</code><br />
+
'''权限''': <code>worldedit.brush.erode</code><br />
'''描述''': 创建圆柱体。<br /> -h 标记会创建空心的圆柱体。<br />
+
'''说明''': 侵蚀地形<br />
* <code>/brush shatter &lt;pattern&gt; [radius=10] [count=10]</code> '''权限''': <code>worldedit.brush.shatter</code><br />
+
* <code>/brush pull [radius=5]</code>  
'''描述''': 创建将地形分成多个部分的不均匀的线<br />图片: https://i.imgur.com/2xKsZf2.png<br />
+
'''权限''': <code>worldedit.brush.pull</code><br />
* <code>/brush circle &lt;pattern&gt; [radius=5]</code> '''权限''': <code>worldedit.brush.sphere</code><br />
+
'''说明''': 将地形朝着你所在的方向隆起<br />
'''描述''': 围绕着你看向的方向创建一个圆。<br />注意:无视笔刷的半径,并且启用预览可以帮助你看到将要放置的东西<br />
+
* <code>/brush blendball [radius=5]</code>  
* <code>/brush smooth [size=2] [iterations=4] [-n]</code> '''权限''': <code>worldedit.brush.smooth</code><br />
+
'''权限''': <code>worldedit.brush.blendball</code><br />
'''描述''': 选择地形平滑化笔刷。<br /> -n 标记会只让它更改自然生成的方块。<br />
+
'''说明''': 平滑化,混合化地形<br />
* <code>/brush ex [radius=5]</code> '''权限''': <code>worldedit.brush.ex</code><br />
+
图片: https://i.imgur.com/cNUQUkj.png -&gt; https://i.imgur.com/hFOFsNf.png<br />
'''描述''': 火焰熄灭笔刷的快捷方式<br />
+
* <code>/brush stencil &lt;pattern&gt; [radius=5] [file|#clipboard|imgur=null] [rotation=360] [yscale=1.0]</code>  
* <code>/brush gravity [radius=5] [-h]</code> '''权限''': <code>worldedit.brush.gravity</code><br />
+
'''权限''': <code>worldedit.brush.stencil</code><br />
'''描述''': 这个笔刷会模仿重力的作用。<br /> -h 标记能够让它从世界的最大Y坐标开始计算,而不是点击方块的Y坐标。<br />
+
'''说明''': 使用高度图来绘制出地形表面。<br /> -w 标记仅会应用于最大饱和度<br /> -r 标记会应用随机旋转<br />
* <code>/brush sspl &lt;pattern&gt; [size=0] [tension=0] [bias=0] [continuity=0] [quality=10]</code> '''权限''': <code>worldedit.brush.surfacespline</code><br />
+
* <code>/brush splatter &lt;pattern&gt; [radius=5] [seeds=1] [recursion=5] [solid=true]</code>  
'''描述''': 在地面上创建一条曲线。<br />视频: https://www.youtube.com/watch?v=zSN-2jJxXlM<br />
+
'''权限''': <code>worldedit.brush.splatter</code><br />
* <code>/brush spline &lt;pattern&gt;</code> '''权限''': <code>worldedit.brush.spline</code><br />
+
'''说明''': 设置物体表面为随机方块。<br />图片: https://i.imgur.com/hMD29oO.png<br />使用示例: /br splatter stone,dirt 30 15<br />注意:种子决定着会有多少斑点,递归次数决定着其大小,solid决定着模型是按照每个种子应用还是按照每个方块应用。<br />
'''描述''': 点击一些物体,然后再次点击相同的方块来让你的物体之间进行连接。<br />笔刷半径设置过小,或是点击位置错误或导致变形。形状必须是简单的线条或者封闭的环形。<br />图片: http://i.imgur.com/CeRYAoV.jpg -&gt; http://i.imgur.com/jtM0jA4.png<br />图片2: http://i.imgur.com/bUeyc72.png -&gt; http://i.imgur.com/tg6MkcF.png<br />
+
* <code>/brush cylinder &lt;block&gt; [radius=2] [height=1] [-h]</code>  
* <code>/brush surface &lt;pattern&gt; [radius=5]</code> '''权限''': <code>worldedit.brush.surface</code><br />
+
'''权限''': <code>worldedit.brush.cylinder</code><br />
'''描述''': 使用高度图来画出表面。<br /> -w 标记仅会应用于最大饱和度<br /> -r 标记会应用随机旋转<br />
+
'''说明''': 创建圆柱体。<br /> -h 标记会创建中空的圆柱体。<br />
* <code>/brush layer &lt;radius&gt; [color|&lt;pattern1&gt; &lt;patern2&gt;...]</code> '''权限''': <code>worldedit.brush.layer</code><br />
+
* <code>/brush shatter &lt;pattern&gt; [radius=10] [count=10]</code>  
'''描述''': 使用覆盖层来替换地形。<br />示例:/br layer 5 95:1 95:2 35:15 - 会在地面上放置一些覆盖层<br />图片: https://i.imgur.com/XV0vYoX.png<br />
+
'''权限''': <code>worldedit.brush.shatter</code><br />
* <code>/brush sphere &lt;pattern&gt; [radius=2] [-h]</code> '''权限''': <code>worldedit.brush.sphere</code><br />
+
'''说明''': 创建将地形分成多个部分的不均匀的线<br />图片: https://i.imgur.com/2xKsZf2.png<br />
'''描述''': 创建一个球体。<br /> -h 标记能够创建中空的球体。<br />
+
* <code>/brush circle &lt;pattern&gt; [radius=5]</code>  
* <code>/brush clipboard</code> '''权限''': <code>worldedit.brush.clipboard</code><br />
+
'''权限''': <code>worldedit.brush.sphere</code><br />
'''描述''': 选择剪切板笔刷。<br /> -a 标记会使其不会粘贴空气方块。<br />不输入 -p 标记,粘贴后的内容的中心会出现在目标位置。输入该标记后,粘贴内容所在的位置就会根据你在复制内容时所站的位置而定义了。<br />
+
'''说明''': 围绕着你看向的方向创建一个圆。<br />注意:无视笔刷的半径,并且启用预览可以帮助你操作的可能结果<br />
* <code>/brush recursive &lt;pattern-to&gt; [radius=5]</code> '''权限''': <code>worldedit.brush.recursive</code><br />
+
* <code>/brush smooth [size=2] [iterations=4] [-n]</code>  
'''描述''': 设置所有连接起来的方块。<br /> -d 标记会应用深度优先的顺序<br />注意:设置蒙版可以递归指定的方块<br />
+
'''权限''': <code>worldedit.brush.smooth</code><br />
* <code>/brush scatter &lt;pattern&gt; [radius=5] [points=5] [distance=1] [-o]</code> '''权限''': <code>worldedit.brush.scatter</code><br />
+
'''说明''': 选择地形平滑化笔刷。<br /> -n 标记会只更改自然生成的方块。<br />
'''描述''': 在地面上随机放置方块,每两个方块之间有某种距离的联系。<br /> -o 标记会覆盖原方块<br />视频: https://youtu.be/RPZIaTbqoZw?t=34s<br />
+
* <code>/brush ex [radius=5]</code>  
* <code>/brush line &lt;pattern&gt; [radius=0] [-h] [-s] [-f]</code> '''权限''': <code>worldedit.brush.line</code><br />
+
'''权限''': <code>worldedit.brush.ex</code><br />
'''描述''': 创建线段。<br /> -h 标记仅会创建外壳<br /> -s 标记在创建之后会选择点击的点。<br /> -f 标记会创建平坦的线段。<br />
+
'''说明''': 火焰熄灭笔刷的简写<br />
* <code>/brush height [radius=5] [file|#clipboard|imgur=null] [rotation=0] [yscale=1.00] [-h]</code> '''权限''': <code>worldedit.brush.height</code><br />
+
* <code>/brush gravity [radius=5] [-h]</code>  
'''描述''': 这个笔刷可以使地形上升或下降。<br /> - <code>-r</code> 标记启用随机坐标旋转<br /> - <code>-l</code> 标记也会在某些雪层中工作<br /> - <code>-s</code> 标记禁用平滑<br />注意!注意!如果你要降低地形的话请将yscale的值设置为负数<br />雪的图片: https://i.imgur.com/Hrzn0I4.png<br />
+
'''权限''': <code>worldedit.brush.gravity</code><br />
* <code>/brush butcher [radius=5] [-p] [-l] [-a] [-n] [-g] [-b] [-t] [-f] [-r]</code> '''权限''': <code>worldedit.brush.butcher</code><br />
+
'''说明''': 这个笔刷会模仿重力的作用。<br /> -h 标记能够让它从世界的最大Y坐标开始计算,而不是点击方块的Y坐标。<br />
'''描述''': 击杀在指定的半径内的怪物。<br />可用的标记:<br /> -p 也击杀宠物<br /> -n 也击杀 NPC<br /> -g 也击杀铁傀儡<br /> -a 也击杀动物。<br /> -b 也击杀中立生物<br /> -t 也击杀带有名字的怪物<br /> -f 相当于这以前所有标记的混合<br /> -r 也击杀盔甲架<br /> -l 目前啥都不能干<br />
+
* <code>/brush sspl &lt;pattern&gt; [size=0] [tension=0] [bias=0] [continuity=0] [quality=10]</code>  
* <code>/brush flatten [radius=5] [file|#clipboard|imgur=null] [rotation=0] [yscale=1.00] [-h]</code> '''权限''': <code>worldedit.brush.height</code><br />
+
'''权限''': <code>worldedit.brush.surfacespline</code><br />
'''描述''': 平坦笔刷,可以使地形平坦<br /> - <code>-r</code> 标记启用随机坐标旋转<br /> - <code>-l</code> 标记也会在某些雪层中工作<br /> - <code>-s</code> 标记禁用平滑<br />
+
'''说明''': 在地面上创建一条曲线。<br />视频: https://www.youtube.com/watch?v=zSN-2jJxXlM<br />
* <code>/brush cliff [radius=5] [file|#clipboard|imgur=null] [rotation=0] [yscale=1.00] [-h]</code> '''权限''': <code>worldedit.brush.height</code><br />
+
* <code>/brush spline &lt;pattern&gt;</code>  
'''描述''': 这个笔刷可以平坦地形且创建悬崖。<br /> - <code>-r</code> 标记启用随机坐标旋转<br /> - <code>-l</code> 标记也会在某些雪层中工作<br /> - <code>-s</code> 标记禁用平滑
+
'''权限''': <code>worldedit.brush.spline</code><br />
 
+
'''说明''': 点击一些物体,然后再次点击相同的方块来让你的物体之间进行连接。<br />笔刷半径设置过小,或是点击位置错误或导致变形。形状必须是简单的线条或者封闭的环形。<br />图片: http://i.imgur.com/CeRYAoV.jpg -&gt; http://i.imgur.com/jtM0jA4.png<br />图片2: http://i.imgur.com/bUeyc72.png -&gt; http://i.imgur.com/tg6MkcF.png<br />
 +
* <code>/brush surface &lt;pattern&gt; [radius=5]</code>  
 +
'''权限''': <code>worldedit.brush.surface</code><br />
 +
'''说明''': 使用高度图来画出表面。<br /> -w 标记仅会应用于最大饱和度<br /> -r 标记会应用随机旋转<br />
 +
* <code>/brush layer &lt;radius&gt; [color|&lt;pattern1&gt; &lt;patern2&gt;...]</code>  
 +
'''权限''': <code>worldedit.brush.layer</code><br />
 +
'''说明''': 使用覆盖层来替换地形。<br />示例:/br layer 5 95:1 95:2 35:15 - 会在地面上放置一些覆盖层<br />图片: https://i.imgur.com/XV0vYoX.png<br />
 +
* <code>/brush sphere &lt;pattern&gt; [radius=2] [-h]</code>  
 +
'''权限''': <code>worldedit.brush.sphere</code><br />
 +
'''说明''': 创建一个球体。<br /> -h 标记能够创建中空的球体。<br />
 +
* <code>/brush clipboard</code>  
 +
'''权限''': <code>worldedit.brush.clipboard</code><br />
 +
'''说明''': 选择剪切板笔刷。<br /> -a 标记会使其不会粘贴空气方块。<br />不输入 -p 标记,粘贴后的内容的中心会出现在目标位置。输入该标记后,粘贴内容所在的位置就会根据你在复制内容时所站的位置而定义了。<br />
 +
* <code>/brush recursive &lt;pattern-to&gt; [radius=5]</code>  
 +
'''权限''': <code>worldedit.brush.recursive</code><br />
 +
'''说明''': 设置所有连接起来的方块。<br /> -d 标记会应用深度优先的顺序<br />注意:设置蒙版可以递归指定的方块<br />
 +
* <code>/brush scatter &lt;pattern&gt; [radius=5] [points=5] [distance=1] [-o]</code>  
 +
'''权限''': <code>worldedit.brush.scatter</code><br />
 +
'''说明''': 在地面上随机散布方块。<br /> -o 标记会覆盖原方块<br />视频: https://youtu.be/RPZIaTbqoZw?t=34s<br />
 +
* <code>/brush line &lt;pattern&gt; [radius=0] [-h] [-s] [-f]</code>  
 +
'''权限''': <code>worldedit.brush.line</code><br />
 +
'''说明''': 创建线段。<br /> -h 标记仅会创建其外壳<br /> -s 标记在创建之后会选择点击的点。<br /> -f 标记会创建平坦的线段。<br />
 +
* <code>/brush height [radius=5] [file|#clipboard|imgur=null] [rotation=0] [yscale=1.00] [-h]</code>  
 +
'''权限''': <code>worldedit.brush.height</code><br />
 +
'''说明''': 这个笔刷可以使地形上升或下降。<br /> - <code>-r</code> 标记启用随机坐标旋转<br /> - <code>-l</code> 标记使得该笔刷也会在雪层中工作<br /> - <code>-s</code> 标记禁用平滑<br />注意!注意!如果你要降低地形的话请将yscale的值设置为负数!<br />在雪层中应用的图片: https://i.imgur.com/Hrzn0I4.png<br />
 +
* <code>/brush butcher [radius=5] [-p] [-l] [-a] [-n] [-g] [-b] [-t] [-f] [-r]</code>  
 +
'''权限''': <code>worldedit.brush.butcher</code><br />
 +
'''说明''': 击杀在指定的半径内的怪物。<br />可用的标记:<br /> -p 也击杀宠物<br /> -n 也击杀 NPC<br /> -g 也击杀铁傀儡<br /> -a 也击杀动物。<br /> -b 也击杀中立生物<br /> -t 也击杀带有名字的怪物<br /> -f 相当于这以前所有标记的混合<br /> -r 也击杀盔甲架<br /> -l 目前无任何作用<br />
 +
* <code>/brush flatten [radius=5] [file|#clipboard|imgur=null] [rotation=0] [yscale=1.00] [-h]</code>  
 +
'''权限''': <code>worldedit.brush.height</code><br />
 +
'''说明''': 平坦笔刷,可以使地形平坦<br /> - <code>-r</code> 标记启用随机坐标旋转<br /> - <code>-l</code> 标记使得该笔刷也会在雪层中工作<br /> - <code>-s</code> 标记禁用平滑<br />
 +
* <code>/brush cliff [radius=5] [file|#clipboard|imgur=null] [rotation=0] [yscale=1.00] [-h]</code>  
 +
'''权限''': <code>worldedit.brush.height</code><br />
 +
'''说明''': 这个笔刷可以平坦地形且创建悬崖。<br /> - <code>-r</code> 标记启用随机坐标旋转<br /> - <code>-l</code> 标记使得该笔刷也会在雪层中工作<br /> - <code>-s</code> 标记禁用平滑
  
-----
+
== 蒙版 '''/Masks'''  ==
  
=== '''/Masks''' <code>[</code>[https://github.com/c7w/FastAsyncWorldedit/edit/master/core/src/main/java/com/sk89q/worldedit/command/MaskCommands.java <code>编辑</code>]<code>|</code>[[#总览|<code>回到顶部</code>]]<code>]</code> ===
+
<blockquote>(关于蒙版方面的帮助 [https://git.io/v9r4K 更多信息])<br />
 
+
蒙版决定了方块能否被放置 <br />
<blockquote>(Help for the various masks. [https://git.io/v9r4K 更多信息])<br />
+
- 使用 [brackets] 来输入参数 - 使用 , 来代表 或 的分割 <br />
蒙版决定了方块能否被放置 - 使用 [brackets] 来输入参数 - 使用 , 来代表 或 的分割 - 使用 &amp; 来代表 的分割 例如: &gt;[stone,dirt],#light[0][5],$jungle 更多信息: https://git.io/v9r4K
+
- 使用 &amp; 来代表 的分割 <br />
 +
例如: &gt;[stone,dirt],#light[0][5],$jungle 更多信息: https://git.io/v9r4K
 
</blockquote>
 
</blockquote>
  
-----
+
* <code>#offset &lt;dx&gt; &lt;dy&gt; &lt;dz&gt; &lt;mask&gt;</code>
 
+
'''说明''': 使蒙版偏移对应坐标值<br />
==== <code>#offset &lt;dx&gt; &lt;dy&gt; &lt;dz&gt; &lt;mask&gt;</code> ====
+
* <code>% &lt;chance&gt;</code>  
 
+
'''说明''': 百分比几率<br />
'''描述''': 使蒙版偏移<br />
+
* <code>#id</code>  
* <code>% &lt;chance&gt;</code> '''描述''': 百分比的几率<br />
+
'''说明''': 限制初始ID<br />
* <code>#id</code> '''描述''': 限制初始ID<br />
+
* <code>#data</code>  
* <code>#data</code> '''描述''': 限制初始数据值<br />
+
'''说明''': 限制初始数据值<br />
* <code>{ &lt;min&gt; &lt;max&gt;</code> '''描述''': 限制方块与初始方块的距离范围<br />
+
* <code>{ &lt;min&gt; &lt;max&gt;</code>  
* <code>#existing</code> '''描述''': 设置为非空气方块<br />
+
'''说明''': 限制方块与初始方块的距离范围<br />
* <code>$ &lt;biome&gt;</code> '''描述''': 在特殊的生物群系中,要想列出所有的生物群系请使用 //biomelist<br />
+
* <code>#existing</code>  
* <code>#surface</code> '''描述''': 限制为地面(任何接触空气的固体方块<br />
+
'''说明''': 设置限制为非空气方块<br />
* <code>! &lt;mask&gt;</code> '''描述''': 使其他蒙版反向<br />
+
* <code>$ &lt;biome&gt;</code>  
* <code>= &lt;expression&gt;</code> '''描述''': 表达式蒙版<br />
+
'''说明''': 限制操作在特殊的生物群系中,要想列出所有的生物群系请使用 //biomelist<br />
* <code>#region</code> '''描述''': 在某个提供的选取内部<br />
+
* <code>#surface</code>  
* <code>\ &lt;min&gt; &lt;max&gt;</code> '''描述''': 限制为特殊的地形角度<br /> -o 标记仅仅会覆盖,举个例子: /[0d][45d]<br />作用解释:能够选出任何对角线在0-45度之间的方块<br />示例:/[3][20]<br />作用解释:能够选出任何对角线在3-20度之间的方块<br />
+
'''说明''': 限制操作在表面方块上(任何接触空气的固体方块)<br />
* <code>#dregion</code> '''描述''': 在玩家的选取之中<br />
+
* <code>! &lt;mask&gt;</code>  
* <code>#xaxis</code> '''描述''': 限制为特殊的x轴位置<br />
+
'''说明''': 取对应蒙版的“非”值<br />
* <code>#yaxis</code> '''描述''': 限制为特殊的y轴位置<br />
+
* <code>= &lt;expression&gt;</code>  
* <code>#opacity &lt;min&gt; &lt;max&gt;</code> '''描述''': 限制为指定的不透明度等级<br />
+
'''说明''': 表达式蒙版<br />
* <code>#light &lt;min&gt; &lt;max&gt;</code> '''描述''': 限制为指定的光亮等级<br />
+
* <code>#region</code>  
* <code>#blocklight &lt;min&gt; &lt;max&gt;</code> '''描述''': 限制为指定的方块亮度等级<br />
+
'''说明''': 在某个提供的区域内部<br />
* <code>#haslight</code> '''描述''': 限制为方块是否拥有光照(天空或环境)<br />
+
* <code>\ &lt;min&gt; &lt;max&gt;</code>  
* <code>~ &lt;mask&gt; [min=1] [max=8]</code> '''描述''': 邻近的其他方块的数量<br />
+
'''说明''': 限制为特殊的地形坡度<br /> -o 标记仅仅会覆盖,举个例子: /[0d][45d]<br />作用解释:能够选出任何坡度在0-45度之间的方块<br />示例:/[3][20]<br />作用解释:能够选出任何坡度在3-20度之间的方块<br />
* <code>#brightness &lt;min&gt; &lt;max&gt;</code> '''描述''': 限制指定的方块光照等级<br />
+
* <code>#dregion</code>  
* <code>#nolight</code> '''描述''': 限制方块需要没有光亮(天空或环境)<br />
+
'''说明''': 在玩家的选取之中<br />
* <code>#skylight &lt;min&gt; &lt;max&gt;</code> '''描述''': 限制需要指定天空光亮等级<br />
+
* <code>#xaxis</code>  
* <code>#simplex &lt;scale=10&gt; &lt;min=0&gt; &lt;max=100&gt;</code> '''描述''': 使用噪声算法作为蒙版<br />
+
'''说明''': 限制为特殊的x轴坐标位置<br />
* <code>#zaxis</code> '''描述''': 限制为特殊的z轴位置<br />
+
* <code>#yaxis</code>  
* <code>&gt; &lt;mask&gt;</code> '''描述''': 在某一指定方块的上面<br />
+
'''说明''': 限制为特殊的y轴坐标位置<br />
* <code>#wall</code> '''描述''': 限制为墙壁(任意方块,东西南北任意一面为空气)<br />
+
* <code>#opacity &lt;min&gt; &lt;max&gt;</code>  
* <code>| &lt;mask&gt; &lt;min&gt; &lt;max&gt;</code> '''描述''': 旁边位置拥有指定数量的其他方块<br />
+
'''说明''': 限制为指定的不透明度等级<br />
* <code>#iddata</code> '''描述''': 限制指定的方块ID与数据值<br />
+
* <code>#light &lt;min&gt; &lt;max&gt;</code>  
* <code>&lt; &lt;mask&gt;</code> '''描述''': 在某一指定方块之下<br />
+
'''说明''': 限制为指定的光亮等级<br />
* <code>#solid</code> '''描述''': 如果是固体方块
+
* <code>#blocklight &lt;min&gt; &lt;max&gt;</code>  
 
+
'''说明''': 限制为指定的方块亮度等级<br />
 
+
* <code>#haslight</code>  
-----
+
'''说明''': 限制为方块是否拥有光照(天空或环境)<br />
 +
* <code>~ &lt;mask&gt; [min=1] [max=8]</code>  
 +
'''说明''': 邻近的其他方块的数量<br />
 +
* <code>#brightness &lt;min&gt; &lt;max&gt;</code>  
 +
'''说明''': 限制指定的方块光照等级<br />
 +
* <code>#nolight</code>  
 +
'''说明''': 限制方块需要没有光亮(天空或环境)<br />
 +
* <code>#skylight &lt;min&gt; &lt;max&gt;</code>  
 +
'''说明''': 限制需要指定天空光亮等级<br />
 +
* <code>#simplex &lt;scale=10&gt; &lt;min=0&gt; &lt;max=100&gt;</code>  
 +
'''说明''': 使用噪声算法作为蒙版<br />
 +
* <code>#zaxis</code>  
 +
'''说明''': 限制为特殊的z轴坐标位置<br />
 +
* <code>&gt; &lt;mask&gt;</code>  
 +
'''说明''': 限制在某一指定方块的上面<br />
 +
* <code>#wall</code>  
 +
'''说明''': 限制为墙壁(任意方块,东西南北任意一面为空气)<br />
 +
* <code>| &lt;mask&gt; &lt;min&gt; &lt;max&gt;</code>  
 +
'''说明''': 限制旁边位置拥有指定数量的其他方块<br />
 +
* <code>#iddata</code>  
 +
'''说明''': 限制指定的方块ID与数据值<br />
 +
* <code>&lt; &lt;mask&gt;</code>  
 +
'''说明''': 在某一指定方块之下<br />
 +
* <code>#solid</code>  
 +
'''说明''': 限制仅操作固体方块
  
=== '''/Patterns''' <code>[</code>[https://github.com/c7w/FastAsyncWorldedit/edit/master/core/src/main/java/com/sk89q/worldedit/command/PatternCommands.java <code>编辑</code>]<code>|</code>[[#总览|<code>回到顶部</code>]]<code>]</code> ===
+
== 样式 '''/Patterns''' ==
  
<blockquote>(对于某些模板信息的帮助。 [https://git.io/vSPmA 更多信息])<br />
+
<blockquote>(对于某些方块样式信息的帮助。 [https://git.io/vSPmA 更多信息])<br />
模板决定着放置什么方块 - 使用 [brackets] 输入参数 - 使用 , 来代表 或 的分割 举个例子: #surfacespread[10][#existing],andesite 更多信息: https://git.io/vSPmA
+
样式决定放置什么方块 <br />
 +
- 使用 [brackets] 输入参数 <br />
 +
- 使用 , 来代表 或 的分割 <br />
 +
举个例子: #surfacespread[10][#existing],andesite <br />
 +
更多信息: https://git.io/vSPmA
 
</blockquote>
 
</blockquote>
 +
* <code>#offset &lt;dx&gt; &lt;dy&gt; &lt;dz&gt; &lt;pattern&gt;</code>
 +
'''说明''': 使样式偏移对应坐标值<br />
 +
* <code>#mask &lt;mask&gt; &lt;pattern-true&gt; &lt;pattern-false&gt;</code>
 +
'''说明''': 根据蒙版应用样式<br />
 +
* <code>#id &lt;pattern&gt;</code>
 +
'''说明''': 只改变方块ID<br />
 +
* <code>#spread &lt;dx&gt; &lt;dy&gt; &lt;dz&gt; &lt;pattern&gt;</code>
 +
'''说明''': 随机扩散方块<br />
 +
* <code>#buffer &lt;pattern&gt;</code>
 +
'''说明''': 只有当样式在使用时才放置方块<br />如果你不想点击某些地方两次时,用它和笔刷搭配<br />
 +
* <code>#clipboard</code>
 +
'''说明''': 使用你剪切板中的方块作为样式<br />
 +
* <code>#relative &lt;pattern&gt;</code>
 +
'''说明''': 将样式偏移到你所点击的位置<br />
 +
* <code>#data &lt;pattern&gt;</code>
 +
'''说明''': 只会改变方块的数据值<br />
 +
* <code>#biome &lt;biome&gt;</code>
 +
'''说明''': 设置生物群系<br />
 +
* <code>#existing</code>
 +
'''说明''': 仅更改已经存在的方块<br />
 +
* <code>= &lt;expression&gt;</code>
 +
'''说明''': 样式表达式: http://wiki.sk89q.com/wiki/WorldEdit/Expression_syntax<br />
 +
* <code>#simplex &lt;scale=10&gt; &lt;pattern&gt;</code>
 +
'''说明''': 使用噪声算法来随机放置方块<br />
 +
* <code>#averagecolor &lt;color&gt; [randomize=true] [max-complexity=100]</code>
 +
'''说明''': 在已经存在的方块和颜色之间平均化<br />
 +
* <code>#desaturate [percent=100] [randomize=true] [max-complexity=100]</code>
 +
'''说明''': 减小已经存在的方块的饱和度<br />
 +
* <code>#darken [randomize=true] [max-complexity=100]</code>
 +
'''说明''': 减小已经存在的方块的亮度<br />
 +
* <code>#fullcopy [schem|folder|url=#copy] [rotate=false] [flip=false]</code>
 +
'''说明''': 将你完整的剪切板填充到方块上<br />
 +
* <code>#buffer2d &lt;pattern&gt;</code>
 +
'''说明''': 只有在一列中的样式被使用时才会放置方块<br />
 +
* <code>#lighten [randomize=true] [max-complexity=100]</code>
 +
'''说明''': 增大已存在的方块的亮度<br />
 +
* <code>#saturate &lt;color&gt; [randomize=true] [max-complexity=100]</code>
 +
'''说明''': 增加已经存在的方块的饱和度<br />
 +
* <code>#anglecolor [randomize=true] [max-complexity=100]</code>
 +
'''说明''': 根据坡度角的大小,计算出的较正常方块暗的方块<br />
 +
* <code>#iddatamask &lt;bitmask=15&gt; &lt;pattern&gt;</code>
 +
'''说明''': 使用样式的ID和目的方块的数据值放置方块<br /> - 用于替换半砖或其他方块数据值需要修改的方块<br />
 +
* <code>#angledata</code>
 +
'''说明''': 根据坡度角提供方块数据值<br />
 +
* <code>#!x &lt;pattern&gt;</code>
 +
'''说明''': 本样式不会提供z轴的信息。<br />举个例子: #!x[#!z[#~[#l3d[pattern]]]]<br />
 +
* <code>#!y &lt;pattern&gt;</code>
 +
'''说明''': 本样式不会提供y轴的信息<br />
 +
* <code>#linear &lt;pattern&gt;</code>
 +
'''说明''': 循环从样式列表中读取并设置方块<br />
 +
* <code>#!z &lt;pattern&gt;</code>
 +
'''说明''': 本样式不会提供z轴的信息<br />
 +
* <code>#surfacespread &lt;distance&gt; &lt;pattern&gt;</code>
 +
'''说明''': 随机改变地面上一个方块的位置<br />
 +
* <code>#linear3d &lt;pattern&gt;</code>
 +
'''说明''': 使用 x,y,z 坐标选定一个来自列表中的方块<br />
 +
* <code>#solidspread &lt;dx&gt; &lt;dy&gt; &lt;dz&gt; &lt;pattern&gt;</code>
 +
'''说明''': 随机传播固体方块<br />
 +
* <code>#color &lt;color&gt;</code>
 +
'''说明''': 使用接近于指定颜色的方块
  
-----
+
== 变换式 '''/Transforms''' ==
 
 
==== <code>#offset &lt;dx&gt; &lt;dy&gt; &lt;dz&gt; &lt;pattern&gt;</code> ====
 
 
 
'''描述''': 使模板偏移<br />
 
* <code>#mask &lt;mask&gt; &lt;pattern-true&gt; &lt;pattern-false&gt;</code> '''描述''': 根据蒙版应用模板<br />
 
* <code>#id &lt;pattern&gt;</code> '''描述''': 只改变方块ID<br />
 
* <code>#spread &lt;dx&gt; &lt;dy&gt; &lt;dz&gt; &lt;pattern&gt;</code> '''描述''': 随机扩散方块<br />
 
* <code>#buffer &lt;pattern&gt;</code> '''描述''': 只有当模板在使用时才放置方块<br />如果你不想点击某些地方两次时,用它和笔刷搭配<br />
 
* <code>#clipboard</code> '''描述''': 使用你剪切板中的方块作为模板<br />
 
* <code>#relative &lt;pattern&gt;</code> '''描述''': 将模板偏移到你所点击的位置<br />
 
* <code>#data &lt;pattern&gt;</code> '''描述''': 只会改变方块的数据值<br />
 
* <code>#biome &lt;biome&gt;</code> '''描述''': 设置生物群系<br />
 
* <code>#existing</code> '''描述''': 使用已经存在的方块<br />
 
* <code>= &lt;expression&gt;</code> '''描述''': 表达式模板: http://wiki.sk89q.com/wiki/WorldEdit/Expression_syntax<br />
 
* <code>#simplex &lt;scale=10&gt; &lt;pattern&gt;</code> '''描述''': 使用噪声算法来随机放置方块<br />
 
* <code>#averagecolor &lt;color&gt; [randomize=true] [max-complexity=100]</code> '''描述''': 在已经存在的方块和颜色之间平均化<br />
 
* <code>#desaturate [percent=100] [randomize=true] [max-complexity=100]</code> '''描述''': 减小已经存在的方块的颜色的饱和度<br />
 
* <code>#darken [randomize=true] [max-complexity=100]</code> '''描述''': 使已经存在的方块变暗<br />
 
* <code>#fullcopy [schem|folder|url=#copy] [rotate=false] [flip=false]</code> '''描述''': 将你全部的剪切板放置在每个方块上<br />
 
* <code>#buffer2d &lt;pattern&gt;</code> '''描述''': 只有在一列中的模板在使用时才会放置方块<br />
 
* <code>#lighten [randomize=true] [max-complexity=100]</code> '''描述''': 使已存在的方块变亮<br />
 
* <code>#saturate &lt;color&gt; [randomize=true] [max-complexity=100]</code> '''描述''': 增加已经存在的方块的颜色的饱和度<br />
 
* <code>#anglecolor [randomize=true] [max-complexity=100]</code> '''描述''': 依靠于地形偏角的较暗的方块<br />
 
* <code>#iddatamask &lt;bitmask=15&gt; &lt;pattern&gt;</code> '''描述''': 使用模板的ID和提供的蒙版的已存在的方块数据<br /> - 用于替换半砖,数据值需要换挡而不是设置<br />
 
* <code>#angledata</code> '''描述''': 根据已存在的地形偏角的方块数据<br />
 
* <code>#!x &lt;pattern&gt;</code> '''描述''': 本模板不会提供z轴的信息。<br />举个例子: #!x[#!z[#~[#l3d[pattern]]]]<br />
 
* <code>#!y &lt;pattern&gt;</code> '''描述''': 本模板不会提供y轴的信息<br />
 
* <code>#linear &lt;pattern&gt;</code> '''描述''': 从列表的模板中循序设置方块<br />
 
* <code>#!z &lt;pattern&gt;</code> '''描述''': 本模板不会提供z轴的信息<br />
 
* <code>#surfacespread &lt;distance&gt; &lt;pattern&gt;</code> '''描述''': 随机改变地面上一个方块的位置<br />
 
* <code>#linear3d &lt;pattern&gt;</code> '''描述''': 使用 x,y,z 坐标选定一个来自列表中的方块<br />
 
* <code>#solidspread &lt;dx&gt; &lt;dy&gt; &lt;dz&gt; &lt;pattern&gt;</code> '''描述''': 随机传播固体方块<br />
 
* <code>#color &lt;color&gt;</code> '''描述''': 使用接近于指定颜色的方块
 
  
 
+
<blockquote>(变换式的有关帮助。 [https://git.io/v9KHO 更多信息])<br />
-----
+
变换式会在放置方块之前,对其作出某种变化 <br />
 
+
- [brackets] 中输入参数 <br />
=== '''/Transforms''' <code>[</code>[https://github.com/c7w/FastAsyncWorldedit/edit/master/core/src/main/java/com/sk89q/worldedit/command/TransformCommands.java <code>编辑</code>]<code>|</code>[[#总览|<code>回到顶部</code>]]<code>]</code> ===
+
- 使用 , 来代表 或 的分割 <br />
 
+
- 使用 &amp; 来代表 的分割 <br />
<blockquote>(Help for the various transforms. [https://git.io/v9KHO 更多信息])<br />
+
更多信息: https://git.io/v9KHO
变换式会修改方块怎么被放置 - 使用 [brackets] 来输入参数 - 使用 , 来代表 或 的分割 - 使用 &amp; 来代表 的分割 更多信息: https://git.io/v9KHO
 
 
</blockquote>
 
</blockquote>
  
-----
 
 
==== <code>#offset &lt;dx&gt; &lt;dy&gt; &lt;dz&gt; [transform]</code> ====
 
 
'''描述''': 偏移变换式<br />
 
* <code>#rotate &lt;rotateX&gt; &lt;rotateY&gt; &lt;rotateZ&gt; [transform]</code> '''描述''': 所有的变化都会被绕着指定位置旋转<br />
 
* <code>#scale &lt;dx&gt; &lt;dy&gt; &lt;dz&gt; [transform]</code> '''描述''': 所有的变化都会依比例决定<br />
 
* <code>#pattern &lt;pattern&gt; [transform]</code> '''描述''': 总是使用给定的模板<br />
 
* <code>#spread &lt;dx&gt; &lt;dy&gt; &lt;dz&gt; [transform]</code> '''描述''': 随机偏移变换式<br />
 
* <code>#linear &lt;transform&gt;</code> '''描述''': 从变换式列表中顺序选择变换式<br />
 
* <code>#linear3d &lt;transform&gt;</code> '''描述''': 使用 x,y,z 坐标选定一个来自列表中的变换式
 
  
 +
* <code>#offset &lt;dx&gt; &lt;dy&gt; &lt;dz&gt; [transform]</code>
 +
'''说明''': 偏移变换式,将方块偏移指定坐标后放置<br />
 +
* <code>#rotate &lt;rotateX&gt; &lt;rotateY&gt; &lt;rotateZ&gt; [transform]</code>
 +
'''说明''': 所有的变化都会被绕着指定位置旋转<br />
 +
* <code>#scale &lt;dx&gt; &lt;dy&gt; &lt;dz&gt; [transform]</code>
 +
'''说明''': 所有的变化都会按比例进行缩放<br />
 +
* <code>#pattern &lt;pattern&gt; [transform]</code>
 +
'''说明''': 使用给定的方块样式<br />
 +
* <code>#spread &lt;dx&gt; &lt;dy&gt; &lt;dz&gt; [transform]</code>
 +
'''说明''': 随机偏移变换式<br />
 +
* <code>#linear &lt;transform&gt;</code>
 +
'''说明''': 从变换式列表中循环选择变换式<br />
 +
* <code>#linear3d &lt;transform&gt;</code>
 +
'''说明''': 使用 x,y,z 坐标选定一个来自列表中的变换式
  
-----
+
== 配置 ==
 +
FAWE 安装后,即使不经过配置,也已经非常高效了,但是在配置或微调操作限制和队列操作的相关设置后,FAWE的效率还会有一定的提升。请参阅下列的内容以及默认配置文件中的注释行。
  
= 配置 =
+
如果你在修改了配置之后,发现之后插件不正常工作,那么请把你微调的那一项设置改回默认。
FAWE 开箱即用,非常高效,但是在限制和队列操作方面的配置设置对于对你的 FAWE 插件进行微调也很有用。请参考下列的内容以及默认配置文件中的注释行。
 
  
如果你将配置更改后发现编辑操作有问题的话,请在进行其他微调操作之前将那一项改成默认设置。
+
要想重置 config.yml 文件的话,请删除它,然后重启服务器或使用 '''<code>/fawe</code>''' 命令重新载入 FAWE 插件。
  
要想重置 config.yml 文件的话,请删除它然后重启服务器或使用 '''<code>/fawe</code>''' 命令重新载入 FAWE 插件。
+
=== 异步操作 ===
  
== 异步操作 ==
+
WorldEdit 插件会在放置方块之前,尝试将所有编辑操作全部储存在内存之中。
  
WorldEdit 自己会在放置方块之前尝试将每个编辑操作完全储存在内存之中。
+
WorldEdit 也会在内存中储存撤销方块等等历史记录,在大型编辑时这会增加内存的需求,甚至会导致服务器内存溢出崩溃,或导致编辑失败。
  
WorldEdit 也会在内存中储存撤销(历史)方块,在大型编辑时这会增加内存的需求,甚至会导致服务器内存溢出崩溃,或导致编辑失败。
+
FAWE 则对速度有极大的提升,它将每个编辑操作都分割到了异步线程上进行。
  
FAWE 提供了大量的速度改善,它将每个编辑操作都分割成了异步的线程。
+
本插件会在计算完成之前,部分计算完成之后就开始放置方块。
  
并且只要可以放置方块之时,方块就会开始放置,而不是等待操作完成。
+
这让全局编辑的整体速度得到有效提升。
  
这让全局编辑的整体速度更快。
+
同时,因为方块在有关计算完毕之后就开始放置,它们不会占用内存的空间。
  
同时,因为方块在准备完毕之时就放置完成,它们不会占用内存空间。
+
FAWE 也能够通过配置将撤销方块(等有关历史记录)储存在硬盘之上,这可以与其他性能的改善搭配使用,最终使 FAWE 插件能够在极小占用的情况下完成数倍于 Worldedit 插件的编辑内容。
  
FAWE 也能够配置将撤销(历史)方块储存在硬盘之上,这可以与其他性能的改善搭配使用,最终使 FAWE 近乎可以在最小的影响的情况下完成无限大小的编辑。
+
=== 操作限制设置 ===
  
== 限制设置 ==
+
这些设置能够让你控制某些用户组单次编辑可以放置的方块数目。
  
这些设置能够让你控制一些用户组一次编辑可以放置的 WorldEdit 方块的数目。“default”(默认)小节就是为非管理组用户和没有权限跳过限制的用户所准备的。
+
“default”(默认)小节就是为非管理组用户和没有权限跳过限制的用户所准备的。
  
 
查看 '''fawe.bypass''' 和 '''fawe.admin''' 权限来获取更多信息。
 
查看 '''fawe.bypass''' 和 '''fawe.admin''' 权限来获取更多信息。
Line 913: Line 1,049:
 
你也能通过使用权限节点来定义某些特定用户组的限制,请查看下方的默认配置文件中的注释行。
 
你也能通过使用权限节点来定义某些特定用户组的限制,请查看下方的默认配置文件中的注释行。
  
== 队列设置 ==
+
=== 队列设置 ===
  
 
这小节中的设置能够让你微调异步队列操作,影响内存的使用情况与编辑速度。
 
这小节中的设置能够让你微调异步队列操作,影响内存的使用情况与编辑速度。
  
=== 本地队列 ===
+
==== 本地队列 ====
  
FAWE 会将每个编辑命令放在分割的异步线程之中,而不是服务器主线程,队列中的方块由每个玩家的本地队列来处理。
+
FAWE 会将每个编辑命令放在分割的异步线程之中,以此来代替把操作塞进服务器主线程的做法,队列中的方块由每个玩家的本地队列来处理。
  
 
在队列中,方块按照区域来排序,这能够让 FAWE 使用更高效的优化算法,最终将方块放置(分配)进世界之中。
 
在队列中,方块按照区域来排序,这能够让 FAWE 使用更高效的优化算法,最终将方块放置(分配)进世界之中。
  
举个例子,WorldEdit会使用插件本体来执行光照和物理效果,然后发包,每个方块都会改变。
+
举个例子,WorldEdit会使用插件本体来执行光照和物理效果,然后发包,最后改变每一个方块。
  
但是另一方面,FAWE将它队列中的方块按照区块分开检测,使用更高效的优化算法,将方块放置进世界中。
+
但是取而代之的是,FAWE将它队列中的方块按照区块分开检测,使用更高效的优化算法,将方块放置进世界中。
  
 
在编辑开始时,本地队列进入未完成阶段。
 
在编辑开始时,本地队列进入未完成阶段。
Line 931: Line 1,067:
 
当需要处理的队列方块为简单的 //set 或者是 //copy 这种类型的命令时,方块已经直接准备好放置了。
 
当需要处理的队列方块为简单的 //set 或者是 //copy 这种类型的命令时,方块已经直接准备好放置了。
  
当使用其他命令(例如 //smooth //deform)来编辑方块时,变化的方块会根据世界上的其他方块的位置决定,并且相关联的方块可能要改变好几次。(代表性地,所有本地更改都会在64个值得方块变化的区块之中完成)
+
当使用其他命令(例如 //smooth //deform)来编辑方块时,方块的变化要依赖于世界中的其他方块,并且编辑所涉及的方块可能要改变好几次。
 +
 
 +
(一般来说,本地化队列的所有编辑都能够在涉及64个区块内完成)
 +
 
 +
当编辑全部完成之后,本地队列变化成完成状态。
  
当编辑完全完成之后,本地队列变化成完成状态。
+
==== 全局队列 ====
  
=== 全局队列 ===
+
FAWE 使用全局队列来放置当前激活的本地队列中的编辑内容。
  
FAWE 使用全局队列来真正将所有激活的本地队列的编辑方块放置。
+
全局队列按照编辑的优先级来处理编辑顺序,所以提交时间最长的编辑会首先开始进行。全局队列中的方块放置是在服务器的主线程上工作的。
  
全局队列的处理顺序是按照编辑的优先级的,所以提交时间较长的编辑会首先放置其中的方块。全局队列中的方块放置在世界中是在服务器的主线程上工作的。
+
FAWE 首先会放置完成状态的本地队列中的方块。因此,在放置未完成状态的本地队列中的方块之前,完成状态的本地队列列表必须是空的。
  
FAWE 总是会放置在本地队列中完成的方块。同时,在放置未完成的本地队列中的方块之前,完成的本地队列的列表必须是空的。
+
全局队列和本地队列相互连接配合,便实现了编辑的成功进行。
  
全局队列和本地队列连接起来以后编辑正在开发中。(在代码内部这是作为两个队列而执行的,——一个是完成的本地队列,另一个是未完成的)
+
(从内部代码实现的角度来说,我们使用两个队列<queue>来存储相关队列内容,一个是完成状态的本地队列,另一个是未完成状态的)
  
=== 效率改善 ===
+
==== 效率改善 ====
  
FAWE 也尝试通过“在没有完成的本地队列时,放置未完成的本地队列中的方块”的方式来改善插件的效率。
+
FAWE 也尝试通过“在没有完成状态的本地队列时,放置未完成状态的本地队列中的方块”的方式来改善插件的效率。
  
 
* '''target–size'''
 
* '''target–size'''
  
FAWE 使用 '''target–size''' 来控制放置未完成队列中的方块数目,同时确保拥有放置的方块稳定不会再次改变的可能。
+
FAWE 使用 '''target–size''' 来控制放置未完成队列中的方块数目,同时确保将要被放置的方块将不再因后续的计算而改变。
  
一些例如 //smooth //deform 的命令,如果它们在命令仍然在处理中分配方块的话结果可能不会按照你想象的那样平滑或变形(虽然这些通常不会修改周围64个区块内的东西)。
+
虽说在大多数情况下,类似于 //smooth //deform 的这些命令,它们涉及的区块数目远小于64个区块,但是,如果在指令仍在计算方块更改时,涉及的方块数目便已经超过了本选项设置的限度,这些指令的最终实现效果便可能不是那么理想。
  
这些方块的改变会依照世界上其他方块的位置,并且一些方块可能要多次改变。
+
这是因为,这些命令所涉及的方块改变会参考世界中其他位置方块的情况,并且所涉及的一些方块可能要经历多次改变。
  
在这种情况下,在64个区块进入队列之后任何单个方块都会被不会被重新修改了。
+
而在这种设置的情况下,在附近的64个区块进入处理队列之后,其他方块被重新计算、修改的可能性便被抹除了。
  
但是对于简单的操作来说不会有这种问题,例如 //copy 和 //set,因为这些方块不会进行多次的改变。
+
但是对于简单的操作来说,不会存在这种问题,例如 //copy 和 //set,因为这些命令涉及的方块不会进行多次的改变。
  
如果没有完成的本地队列等候放置方块,且target–size已设置更多在处理中的编辑区块进入队列的话,全局队列会直接开始处理仍然在处理中的可放置的方块。
+
如果队列中不存在完成的本地队列正等待放置方块,且队列中排队的区块数目大于等于target-size选项所设置的值的话,全局队列会直接开始处理仍然在计算中的可放置方块。
  
这项设置能够确保像 //smooth 和 //deform 这样的命令稳定,同时它也能确保全局队列保持放置可用的方块,而不是闲置。
+
调高这项设置能够确保像 //smooth 和 //deform 这样的命令稳定,但调低这项设置也能确保全局队列一直在放置可用的方块,而不是处于闲置状态。
  
 
默认的 '''target–size''' 的值是64.
 
默认的 '''target–size''' 的值是64.
  
如果不设置 '''target–size''' 的话,使用 /fastmode 运行巨大的编辑会导致未完成的队列的填充速度比 '''max–wait–ms''' 设置的清空速度更快。
+
如果没有 '''target–size''' 选项的话,使用 /fastmode 运行巨大的编辑会导致未完成的队列的填充速度比 '''max–wait–ms''' 的清空队列速度更快。
  
减少 '''target–size''' 可能会削弱像 //smooth 和 //deform 这样的命令的表现情况,因为花费在重新改变方块上的时间没了,方块已经放置了。
+
减小 '''target–size''' 选项的值,可能会使例如 //smooth 和 //deform 这些命令的成效变差,因为在方块确定被放置之后,将花费在计算重新改变方块上的时间被取消了。
  
同时,也因为这些命令会依赖于其他方块的位置,如果 '''target–size''' 设置不够大的话,来自未完成队列中的方块会首先放置,但会晚些再改变,方块放置的最终结果和先处理完成再改变的最终结果会有所不同。
+
同时,也正因为这些命令会依赖于其他位置的方块,如果 '''target–size''' 设置不够大的话,与先经过完全计算,再开始放置方块的模式相比,直接从未完成队列中放置方块这种模式最后所表现出的效果可能有一些差异。
  
这会导致命令的表现不正确。
+
这可能会导致命令的最终效果不正确。
  
所以请将 '''target–size''' 选项的值设定的足够大来避免这个问题。
+
所以请将 '''target–size''' 选项的值设定的适当大,来避免这个问题。
  
增加 '''target–size''' 的值可能不是很有帮助,因为大多数相关联的变更都是在64个区块的处理时间内完成的。
+
'''target–size''' 的值设置的过大可能收效不大,因为大多数涉及的方块编辑操作都能限制在64个区块之中。
  
同时如果将它设置的很大的话,就会减少 FAWE 能够阻止大型编辑使服务器内存溢出的能力。
+
同时如果将它设置的很大的话,就会降低 FAWE 阻止大型编辑使服务器内存溢出的能力。
  
 
* '''max–wait–ms'''
 
* '''max–wait–ms'''
  
FAWE 对于放置已经完成处理的编辑的方块是非常高效的。
+
FAWE 对于放置已经完成计算的相关编辑方块来说,也是非常高效的。
  
但是,等待完成既耗费时间,也占用内存,因此,本设置就是用来尝试将全局队列中的方块分配,而不是让它在编辑还没有完成,但有能放置的方块时闲置的。
+
但是,等待计算完成既耗费时间,也占用内存。
  
全局队列会在没有完成的本地队列,且全局队列空闲时间比 '''max–wait–ms''' 所设置的时间长(单位为毫秒)时开始放置仍然在处理中的方块。
+
因此,本设置就是用来避免编辑计算没有完全完成时,部分已经完成计算的方块一直闲置在内存中的问题。
  
'''max–wait–ms''' 设置也能解决区块读取连接超时的问题。区块通常的读取速度都是小于一秒的,所以默认的 '''max–wait–ms''' 的值是 1000,用于避免编辑冻结或是区块读取错误。
+
本选项主要用来保持全局队列持续处于放置方块的状态之中。
  
如果区块没有及时加载的话请增加这个数值。
+
全局队列会在队列中没有处于完成的本地队列,并且全局队列处于空闲状态时间的比 '''max–wait–ms''' 所设置的时间长(单位为毫秒)时,开始放置仍然在处理中的方块。
  
== 默认配置文件 ==
+
'''max–wait–ms''' 设置也能解决区块读取连接超时的问题。通常区块的读取速度都是小于一秒的,所以默认的 '''max–wait–ms''' 的值是 1000,用于避免编辑冻结或是区块读取错误。
  
默认的配置文件展示在了下面。
+
如果区块没有及时加载的话,请尝试将这个数值调大。
  
请注意服务器生成的配置文件是不带注释的。
+
=== 默认配置文件 ===
 +
默认的配置文件如下面的代码所示。
 +
 
 +
请注意,服务器文件夹内生成的配置文件是不带注释的。
  
 
<pre class="yml"># 前六项是不能配置的
 
<pre class="yml"># 前六项是不能配置的
Line 1,007: Line 1,150:
 
platform: &quot;&lt;platform&gt;&quot;
 
platform: &quot;&lt;platform&gt;&quot;
 
# 可用选项:de
 
# 可用选项:de
# 请创建pull request来贡献翻译: https://github.com/boy0001/FastAsyncWorldedit/new/master/core/src/main/resources
+
# 请发起pull request来贡献翻译: https://github.com/boy0001/FastAsyncWorldedit/new/master/core/src/main/resources
 
language: ''
 
language: ''
# 允许插件更新
+
# 是否允许插件自动更新
 
update: true
 
update: true
# 将使用的统计发送到 mcstats.org
+
# 是否将插件的使用统计发送到 mcstats.org
 
metrics: true
 
metrics: true
# FAWE 在没有足够的可用内存时会跳过处理区块
+
# FAWE 在没有足够的可用内存时,是否会跳过处理相关区块以防止崩溃
 
prevent-crashes: false
 
prevent-crashes: false
# 设置为 true 来启用 WorldEdit 对每个区域的限制。(例如: PlotSquared 或 WorldGuard)
+
# 设置为 true 来启用支持 WorldEdit 的相关插件对区域的限制。(例如: PlotSquared 或 WorldGuard)
# 要想在区域中启用 WorldEdit 的话,用户需要许可:
+
# 要想在区域中启用 WorldEdit 的话,用户需要相关权限:
# fawe.&lt;plugin&gt;  权限。查看权限页面来获取支持的区域插件。
+
# fawe.&lt;plugin&gt;  权限。查看权限页面来获取所有目前支持的区域插件。
 
region-restrictions: true
 
region-restrictions: true
 
# FAWE 在内存占用超过这个百分比时会取消非管理员做出的编辑
 
# FAWE 在内存占用超过这个百分比时会取消非管理员做出的编辑
#  - 使用 `/wea` 或 `//fast` 或 `fawe.bypass` 跳过检测
+
#  - 使用 `/wea` 或 `//fast` 或 `fawe.bypass` 命令跳过检测
#  - 写入 100 或 -1 禁用本项。
+
#  - 设置为 100 或 -1 禁用本设置。
 
max-memory-percent: 95
 
max-memory-percent: 95
  
 
clipboard:
 
clipboard:
   # 替代储存到内存中,将剪切板储存到硬盘上
+
   # 是否将用户剪切板内容储存到硬盘上,而非储存在内存中
   #  - 速度些许变慢
+
   #  - 执行剪切板操作相关命令的速度将会有一定程度的下降
   #  - 每方块占用 2 字节
+
   #  - 剪切板中每个方块占用 2 字节的存储空间
 
   use-disk: true
 
   use-disk: true
   # 压缩剪切板减少文件大小:
+
   # 是否将剪切板压缩,以减少文件大小:
 
   #  - TODO: 目前还没有实现在硬盘上的压缩随机访问
 
   #  - TODO: 目前还没有实现在硬盘上的压缩随机访问
 
   #  - 0 = 不进行压缩
 
   #  - 0 = 不进行压缩
Line 1,035: Line 1,178:
 
   #  - 2-17 = 较慢速度压缩
 
   #  - 2-17 = 较慢速度压缩
 
   compression-level: 1
 
   compression-level: 1
   # 在删除之前储存在硬盘上的时间,单位为天
+
   # 用户剪切板信息在删除之前,储存在硬盘上的时间,单位为天
 
   delete-after-days: 1
 
   delete-after-days: 1
  
Line 1,052: Line 1,195:
 
   # 是否启用限制
 
   # 是否启用限制
 
   enabled: true
 
   enabled: true
   # 间隔,单位游戏刻
+
   # 限制间隔,单位游戏刻
 
   interval: 20
 
   interval: 20
 
   # 在每个间隔间最大的掉落方块数目(每区块)
 
   # 在每个间隔间最大的掉落方块数目(每区块)
Line 1,076: Line 1,219:
 
   #  - 如果你需要改变本选项时你会在控制台收到提示信息
 
   #  - 如果你需要改变本选项时你会在控制台收到提示信息
 
   allowed-plugins: []
 
   allowed-plugins: []
   # 当第三方延展插件安装后应该显示调试信息吗?
+
   # 第三方延展插件安装后是否应该显示调试信息
 
   debug: true
 
   debug: true
  
# 实验中的选项,你可以冒险试试
+
# 仍在开发实验中的选项,你可以试着用用
 
experimental:
 
experimental:
 
   # [不安全] 直接修改区域文件(已过期——请使用Anvil命令)
 
   # [不安全] 直接修改区域文件(已过期——请使用Anvil命令)
Line 1,091: Line 1,234:
 
   dynamic-chunk-rendering: false
 
   dynamic-chunk-rendering: false
  
# 这跟 FAWE 怎么放置区块相关联
+
# 队列相关配置,与 FAWE 放置区块的方法相关联
 
queue:
 
queue:
   # 这个数值应该和你拥有的处理器的核数相同
+
   # 这个数值应该和你处理器拥有的核数相同
   #  - 将此项设置为1,如果你需要可信的 `/timings` 的话
+
   #  - 如果你需要可信度高的 `/timings` 的话,将此选项设置为1
 
   parallel-threads: 8
 
   parallel-threads: 8
 
   progress:
 
   progress:
     # 显示一位用户的编辑的进度的恒定title
+
     # 显示一位用户的编辑的进度的恒定 title
 
     #  - false = 禁用
 
     #  - false = 禁用
 
     #  - title = 显示进度title
 
     #  - title = 显示进度title
Line 1,104: Line 1,247:
 
     # 编辑进度多久显示一次
 
     # 编辑进度多久显示一次
 
     interval: 1
 
     interval: 1
     # 发送进度的延迟,单位毫秒(快些的话编辑不会刷屏)
+
     # 发送进度的延迟,单位毫秒(防止编辑进度刷屏的情况发生)
 
     delay: 5000
 
     delay: 5000
 
   # 在编辑比这数目还多的区块时:
 
   # 在编辑比这数目还多的区块时:
Line 1,110: Line 1,253:
 
   #  - 大些的值会些微减少CPU的运算时间
 
   #  - 大些的值会些微减少CPU的运算时间
 
   #  - 小写的值可以减少内存使用
 
   #  - 小写的值可以减少内存使用
   #  - 太小的值会导致一些操作坏掉(例如 deform)
+
   #  - 太小的值会导致一些命令执行效果变差(例如 deform)
 
   target-size: 64
 
   target-size: 64
   # 强制 FAWE 开始放置区块,不管一项编辑是否完成处理
+
   # 不管一项编辑是否计算处理完成,强制 FAWE 开始放置区块
   #  - 大些的值会些微减少CPU的运算时间
+
   #  - 大些的值会在一定程度上减少CPU的运算时间
   #  - 小写的值可以减少内存使用
+
   #  - 小些的值可以减少内存使用
   #  - 太小的值会导致一些操作坏掉(例如 deform)
+
   #  - 太小的值会导致一些操作执行效果变差(例如 deform)
 
   max-wait-ms: 1000
 
   max-wait-ms: 1000
 
   # 增加或减少队列强度(毫秒) [-50,50]:
 
   # 增加或减少队列强度(毫秒) [-50,50]:
 
   #    0 = 平衡性能与稳定性
 
   #    0 = 平衡性能与稳定性
 
   #    -10 = 为区块放置少分配 10ms
 
   #    -10 = 为区块放置少分配 10ms
   # 值太大的话会造成卡顿(你可能感觉没关系)
+
   # 值太大的话会造成卡顿(可能你感觉不到)
 
   # 值太小的话编辑进度会很慢
 
   # 值太小的话编辑进度会很慢
 
   extra-time-ms: 0
 
   extra-time-ms: 0
 
   # 在提速操作之前读取多少数量的区块
 
   # 在提速操作之前读取多少数量的区块
 
   #  - 值太小的话会导致FAWE等待主线程的请求
 
   #  - 值太小的话会导致FAWE等待主线程的请求
   #  - 值太大的话会占用更多内存也不会感觉变快
+
   #  - 值太大的话会占用更多内存,但并不会感觉变快
 
   preload-chunks: 32
 
   preload-chunks: 32
   # 抛弃已经闲置了一段时间(ms)的编辑
+
   # 放弃已经闲置了一段时间(ms)的编辑
 
   #  - 例如:一款插件创建了 EditSession 但没有使用它做任何事
 
   #  - 例如:一款插件创建了 EditSession 但没有使用它做任何事
 
   #  - 这只会对不正确使用 WorldEdit 的旧版 API 的插件起作用
 
   #  - 这只会对不正确使用 WorldEdit 的旧版 API 的插件起作用
Line 1,135: Line 1,278:
 
   # 历史记录是否应储存在硬盘上:
 
   # 历史记录是否应储存在硬盘上:
 
   #  - 空闲大量的内存
 
   #  - 空闲大量的内存
   #  - 服务器重启可以存留
+
   #  - 服务器重启可以存留历史记录
   #  - 可以无限撤销
+
   #  - 可以无限次撤销
 
   #  - 不会影响编辑的性能,依照 `combine-stages`
 
   #  - 不会影响编辑的性能,依照 `combine-stages`
 
   use-disk: true
 
   use-disk: true
Line 1,171: Line 1,314:
 
   # 会使用上个区块作为过滤器,这会出现大量复制出的方块。
 
   # 会使用上个区块作为过滤器,这会出现大量复制出的方块。
 
   # 每个读取区块的操作在读取区块时通常都需要25-50ms,在服务器卡顿时甚至更多。
 
   # 每个读取区块的操作在读取区块时通常都需要25-50ms,在服务器卡顿时甚至更多。
   # 所以100ms的等待时间如果区块在10ms内加载完毕了的话也不需要等待100ms。
+
   # 所以即使设置100ms的等待时间,如果区块在10ms内加载完毕了的话,也不需要等待100ms。
 
   #  
 
   #  
 
   # 本值也可以作为万一区块无法读取时(不管是什么原因)操作超时的值
 
   # 本值也可以作为万一区块无法读取时(不管是什么原因)操作超时的值
Line 1,177: Line 1,320:
 
   # 然后显示出一条错误信息,在这种情况下,你需要要么将选区调整的更小,
 
   # 然后显示出一条错误信息,在这种情况下,你需要要么将选区调整的更小,
 
   # 要么将本项的值设置的大一些。
 
   # 要么将本项的值设置的大一些。
   # 输入 0 这个值的速度会很快因为它即不会阻止读取区块也不会等待。
+
   # 如果设置为 0,这个值的处理速度会很快,因为它既不会阻止读取区块,也不会等待。
 
   chunk-wait-ms: 1000
 
   chunk-wait-ms: 1000
 
   # 在几天之后删除硬盘上的历史记录
 
   # 在几天之后删除硬盘上的历史记录
Line 1,205: Line 1,348:
 
   # 是否分离每个玩家schematic文件的路径
 
   # 是否分离每个玩家schematic文件的路径
 
   per-player-schematics: true
 
   per-player-schematics: true
# &quot;default&quot; 限制组会影响没有特殊限制权限的用户。
+
# &quot;default&quot; 权限组会影响没有特殊限制权限的用户。
# 要想给某人不同的限制,请复制默认限制组
+
# 要想给某人不同的权限配置,请复制默认限制组
# 然后重新给他命个名(例如:newbie)。然后给予用户限制的
+
# 然后重新给这个权限组命个名(例如:newbie)。然后给予用户限制的
 
# 权限节点,使用该限制名(例如: fawe.limit.newbie  )
 
# 权限节点,使用该限制名(例如: fawe.limit.newbie  )
 
limits:
 
limits:
 
   default:
 
   default:
     # 能够同时运行的操作(例如:命令)
+
     # 能够最多同时运行的操作(例如:命令)
 
     max-actions: 1
 
     max-actions: 1
 
     # 每次最大改变的方块数量(例如:使用 `//set stone` )。
 
     # 每次最大改变的方块数量(例如:使用 `//set stone` )。
Line 1,221: Line 1,364:
 
     # 最大允许的笔刷递归次数(例如: `//brush smooth` )
 
     # 最大允许的笔刷递归次数(例如: `//brush smooth` )
 
     max-iterations: 1000
 
     max-iterations: 1000
     # 一次最大能够允许的实体数目(例如:牛)
+
     # 一次操作最大能够允许的实体数目(例如:牛)
 
     max-entities: 1337
 
     max-entities: 1337
 
     # 包括 Banner, Beacon, BrewingStand, Chest, CommandBlock,  
 
     # 包括 Banner, Beacon, BrewingStand, Chest, CommandBlock,  
Line 1,248: Line 1,391:
 
     confirm-large: true</pre>
 
     confirm-large: true</pre>
  
= Anvil-API =
+
== Bukkit API ==
Anvil API 是用来修改未读取的 MCA 文件的。( <code>&lt;world&gt;/region</code> )
+
插件开发相关,暂略
 
 
有关的包: https://github.com/boy0001/FastAsyncWorldedit/tree/master/core/src/main/java/com/boydti/fawe/jnbt/anvil # 使用 FaweQueue
 
 
 
<source lang="java">String worldName = "world";
 
boolean hasSky = true;
 
File root = new File(worldName + File.separator + "region");
 
MCAWorld world = new MCAWorld(worldName, root, hasSky);
 
MCAQueue queue = world.getQueue();
 
// 在这里使用FaweQueue来做些什么</source>
 
== 创建 MCA 文件 ==
 
 
 
请查看 [https://github.com/boy0001/FastAsyncWorldedit/blob/master/core/src/main/java/com/boydti/fawe/jnbt/anvil/HeightMapMCAGenerator.java HeightMapMCAGenerator]
 
 
 
<source lang="java">File dir = new File("TestWorld/region");
 
// 从高度图创建新生成器
 
// 注意:如果你不想使用图片的话,请使用另一个构造函数
 
BufferedImage heightMap = ImageIO.read(new URL("https://i.imgur.com/plFXYiI.png"));
 
// 我们的新生成器
 
HeightMapMCAGenerator gen = new HeightMapMCAGenerator(heightMap, dir);
 
// 加入一些峭壁
 
BufferedImage cliffHeightMap = ImageIO.read(new URL("https://i.imgur.com/wx5oiA7.png"));
 
boolean onlyWhite = false; // Only use the white parts of the heightmap
 
gen.setColumn(cliffHeightMap, new BaseBlock(BlockID.STONE), onlyWhite);
 
// 加入一些高草
 
gen.setOverlay(new BlockMask(gen, new BaseBlock(BlockID.GRASS)), new BaseBlock(BlockID.LONG_GRASS));
 
// 加入一些洞穴
 
gen.addCaves();
 
// 加入一些矿石
 
gen.addDefaultOres(new BlockMask(gen, new BaseBlock(BlockID.STONE)));
 
// 加入一些树
 
World world = WorldEdit.getInstance().getServer().getWorlds().get(0);
 
WorldData worldData = world.getWorldData();
 
File treeFolder = new File("trees");
 
ClipboardHolder[] trees = ClipboardFormat.SCHEMATIC.loadAllFromDirectory(treeFolder, worldData);
 
Mask flat = new AngleMask(gen, 0, 0); // Only flat terrain
 
boolean randomRotate = true;
 
gen.addSchems(flat, worldData, trees, 50, randomRotate);
 
// 你也能获得/设置指定的方块
 
// 注意:使用独特的方块的话,速度会比上面提供的方法更慢
 
gen.setBlock(0, 255, 0, new BaseBlock(BlockID.SPONGE)); // Set a specific block
 
System.out.println(gen.getLazyBlock(0, 255, 0)); // Get a specific block
 
// 好了,让我们创建世界吧!
 
gen.generate();</source>
 
== 使用 EditSession ==
 
 
 
<source lang="java">String worldName = "world";
 
boolean hasSky = true;
 
File root = new File(worldName + File.separator + "region");
 
MCAWorld world = new MCAWorld(worldName, root, hasSky);
 
EditSession editSession = new EditSessionBuilder(world)
 
    .checkMemory(false)
 
    .allowedRegionsEverywhere()
 
    .fastmode(true)
 
    .changeSetNull()
 
    .limitUnlimited()
 
    .build();
 
// 在这里使用 editSession 来做些什么(世界中没有被创建的区域不能被修改)</source>
 
== 替换方块 ==
 
 
 
<source lang="java">String worldName = "world";
 
File root = new File(worldName + File.separator + "region");
 
MCAQueue queue = new MCAQueue(worldName, root, true);
 
MCAFilterCounter counter = queue.filterWorld(new MCAFilterCounter() {
 
    @Override
 
    public void applyBlock(int x, int y, int z, BaseBlock block, MutableLong ignore) {
 
        if (block.getId() == 5) { // Change the id if it's 5
 
            block.setId(7);
 
        }
 
    }
 
});
 
// 看: FaweBlockMatcher.fromBlocks(...) 会在方块与指定类型匹配时返回 true
 
// 看: FaweBlockMatcher.setBlocks(...) 能够修改指定方块的类型</source>
 
== 删除指定半径外的区块 ==
 
 
 
<source lang="java">MCAQueue queue = new MCAQueue(worldName, root, true);
 
 
 
final int radius = 4000;
 
final int radiusSquared = radius * radius;
 
 
 
queue.filterWorld(new MCAFilter() {
 
    @Override
 
    public MCAFile applyFile(MCAFile mca) {
 
        int distanceX = Math.abs((mca.getX() << 9) + 256) - 256;
 
        int distanceZ = Math.abs((mca.getZ() << 9) + 256) - 256;
 
        int distanceSquared = distanceX * distanceX + distanceZ * distanceZ;
 
        if (distanceSquared > radiusSquared) {
 
            // 因为这个区块超出半径,删除这个文件
 
            mca.close();
 
            mca.getFile().delete();
 
            return null;
 
        } else if (distanceSquared + 512 < radiusSquared) {
 
            // 因为这个 MCA 文件在指定半径内,不修改这个文件
 
            return null;
 
        } else {
 
            return mca;
 
        }
 
    }
 
 
 
    @Override
 
    public boolean appliesChunk(int cx, int cz) {
 
        int distanceX = Math.abs((cx << 9) + 8) - 8;
 
        int distanceZ = Math.abs((cz << 9) + 8) - 8;
 
        int distanceSquared = distanceX * distanceX + distanceZ * distanceZ;
 
        if (distanceSquared > radiusSquared) {
 
            // 区块在半径外
 
            return true;
 
        } else {
 
            // 我们不关心在半径内的区块
 
            return false;
 
        }
 
    }
 
 
 
    @Override
 
    public MCAChunk applyChunk(MCAChunk chunk) {
 
        chunk.setDeleted(true);
 
        // 我们不想修改方块
 
        return null;
 
    }
 
});</source>
 
 
 
= API =
 
== 需要帮助? ==
 
 
 
如果你在写代码这方面需要帮助的话,请随意在 [http://webchat.esper.net/?nick=&channels=IntellectualCrafters&fg_color=000&fg_sec_color=000&bg_color=FFF IRC] 这里询问。
 
 
 
== 移植 WorldEdit API 的代码到 FAWE 中 ==
 
 
 
首先,FAWE 不会修改 WorldEdit API 的表现,不过安装 FAWE 之后已经存在的代码会运行的更快。
 
 
 
使代码(使用 WorldEdit API的相关代码)异步工作和将它放入异步线程中一样简单(例如:使用Bukkit 的 scheduler)。
 
 
 
即便如此,FAWE API 也提供了目前 WorldEdit 所不能做到的一些额外功能。下面是一些 WorldEdit 和 FAWE 的例子:
 
 
 
== Maven ==
 
 
 
储存库(Repository): <code>http://ci.athion.net/job/FastAsyncWorldEdit/ws/mvn/</code><br />
 
前置(Dependency): <code>com.boydti:fawe-api:&lt;version&gt;</code> 或 <code>com.boydti:fawe-api:latest</code><br />
 
# Gradle 你能够使用Gradle来为FAWE编码,它已经在本储存库中了:
 
 
 
<pre>$ gradlew setupDecompWorkspace
 
$ gradlew build</pre>
 
=== 线程 ===
 
 
 
* [https://github.com/c7w/FastAsyncWorldedit/wiki/Some-tips-when-using-the-FAWE-API FAWE 的性能提示]
 
* [https://github.com/c7w/FastAsyncWorldedit/wiki/Fawe-TaskManager#sync-task 使用 FAWE TaskManager 来运行同步/异步任务]
 
* [https://github.com/c7w/FastAsyncWorldedit/wiki/TaskBuilder 使用 FAWE TaskBuilder 来分离复杂任务]
 
 
 
=== 玩家 ===
 
 
 
* [https://github.com/c7w/FastAsyncWorldedit/wiki/FawePlayer FawePlayer]
 
* [https://github.com/c7w/FastAsyncWorldedit/wiki/WorldEdit-World-Player WorldEdit 玩家]
 
* [https://github.com/c7w/FastAsyncWorldedit/wiki/Jobs-API 玩家任务 API]
 
* [https://github.com/c7w/FastAsyncWorldedit/wiki/Progress-API 玩家进度 API]
 
* [https://github.com/c7w/FastAsyncWorldedit/wiki/Region-restriction-API 玩家区域限制]
 
 
 
=== 异步修改世界(或是读取世界) ===
 
 
 
* [https://github.com/c7w/FastAsyncWorldedit/wiki/Anvil-API Anvil API]
 
* [https://github.com/c7w/FastAsyncWorldedit/wiki/WorldEdit-World-Player WorldEdit 世界]
 
* [https://github.com/c7w/FastAsyncWorldedit/wiki/WorldEdit-EditSession EditSession]
 
* [https://github.com/c7w/FastAsyncWorldedit/wiki/AsyncWorld Bukkit API 封包器]
 
* [https://github.com/c7w/FastAsyncWorldedit/wiki/FaweQueue FaweQueue]
 
 
 
=== NBT 与格式 ===
 
 
 
* [https://github.com/c7w/FastAsyncWorldedit/wiki/Pasting-a-schematic 剪切板的粘贴]
 
* [https://github.com/c7w/FastAsyncWorldedit/wiki/NBT-stream-API NBT 代码相关 API]
 
* [https://github.com/c7w/FastAsyncWorldedit/wiki/Clipboard-API 自定义剪切板格式]
 
* [https://github.com/c7w/FastAsyncWorldedit/wiki/Recovering-corrupt-NBT-files-(MCA-Schematic-etc.) 恢复错误的 NBT]
 
 
 
=== NMS 相关概念 ===
 
 
 
* [https://github.com/c7w/FastAsyncWorldedit/wiki/Light-API Light API]
 
* [https://github.com/c7w/FastAsyncWorldedit/wiki/FaweQueue#nms-methods NMSMappedFaweQueue]<br />
 
 
 
* [https://github.com/c7w/FastAsyncWorldedit/wiki/Packet-sending 发包]
 
 
 
=== 网页 ===
 
 
 
* [https://github.com/c7w/FastAsyncWorldedit/wiki/Web-API 网页 API]
 
 
 
=== 其他功能 ===
 
 
 
* [https://github.com/c7w/FastAsyncWorldedit/wiki/TextureUtil---block-and-biome-coloring 方块和生物群系的颜色]
 
 
 
=== 延展特性 ===
 
 
 
* [https://github.com/c7w/FastAsyncWorldedit/wiki/Registering-Custom-Masks,-Patterns-and-Transforms 增加自定义的任务,模型或变换参数]
 
* [https://github.com/c7w/FastAsyncWorldedit/wiki/Registering-custom-brushes-or-commands 增加自定义笔刷和命令]
 
* [https://github.com/c7w/FastAsyncWorldedit/wiki/Clipboard-API 增加自定义剪切板格式]
 
 
 
== FaweAPI 的类 ==
 
 
 
https://github.com/boy0001/FastAsyncWorldedit/blob/master/core/src/main/java/com/boydti/fawe/FaweAPI.java
 
 
 
 
 
= AsyncWorld =
 
AsyncWorld 实现了 Bukkit 世界接口,这能够让你异步访问世界或做出改变。 - 很多对象都能从接口中获得,可以被异步使用(坐标,方块,区块等等) - 只有对方块和生物群系的操控才能优化队列 - 其他操作在使用异步时只会变得更慢 - 你可以使用 <code>AsyncWorld.create(...)</code> 来异步读取某个世界
 
 
 
请注意: AsyncWorld 类只存在于 <code>FastAsyncWorldEdit-bukkit</code> ,而不是 API 中。
 
 
 
<source lang="java">TaskManager.IMP.async(new Runnable() {
 
    @Override
 
    public void run() {
 
        // 使用给定的世界创建设定异步创建或读取世界
 
        AsyncWorld world = AsyncWorld.create(new WorldCreator("MyWorld"));
 
        // AsyncWorld world = AsyncWorld.wrap(bukkitWorld); // 或是封包已存在的世界
 
        Block block = world.getBlockAt(0, 0, 0);
 
        block.setType(Material.BEDROCK);
 
        // 在你完成更改之后,请写入
 
        world.commit();
 
    }
 
});</source>
 
资源文件: https://github.com/boy0001/FastAsyncWorldedit/tree/master/bukkit0/src/main/java/com/boydti/fawe/bukkit/wrapper
 
 
 
=== 一些关于异步性能的相关提示 ===
 
 
 
https://github.com/c7w/FastAsyncWorldedit/wiki/Notes-on-async-performance 以及: https://github.com/c7w/FastAsyncWorldedit/wiki/Fawe-TaskManager#sync-task
 
 
 
= 笔刷 =
 
=== 总览 ===
 
 
 
FAWE 拥有能够让你在远处建筑或涂画的笔刷工具。当你启用了一个笔刷之后,笔刷就会绑定在你当前持有的物品上,你可以将不同的工具绑定在不同类型的物品上,单个物品最多绑定两个笔刷。
 
 
 
=== 装备上你的笔刷: ===
 
 
 
绑定到任意点击上: <code>/br &lt;brush&gt;</code><br />
 
绑定到右键点击上: <code>/br primary &lt;brush&gt;</code><br />
 
绑定到左键点击上: <code>/br secondary &lt;brush&gt;</code>
 
 
 
=== 修改笔刷设置 ===
 
 
 
* [https://github.com/c7w/FastAsyncWorldedit/wiki/WorldEdit-and-FAWE-patterns <code>/mat &lt;pattern&gt;</code>] - 修改放置方块的模型
 
* [https://github.com/c7w/FastAsyncWorldedit/wiki/WorldEdit---FAWE-mask-list <code>/mask &lt;mask&gt;</code>] - 修改应该改变的方块的蒙版类型
 
* [https://github.com/c7w/FastAsyncWorldedit/wiki/WorldEdit---FAWE-mask-list <code>/smask &lt;mask&gt;</code>] - 如果方块可以放置的话源模板的改变
 
* [https://github.com/c7w/FastAsyncWorldedit/wiki/WorldEdit---FAWE-mask-list <code>/targetmask &lt;mask&gt;</code>] - 能够被笔刷作为目标的方块,默认值是 <code>!air</code><br />
 
 
 
* [https://github.com/c7w/FastAsyncWorldedit/wiki/Transforms <code>/transform &lt;transform&gt;</code>] - 放置方块处的变换式
 
* <code>/range &lt;range&gt;</code> - 你能够使用笔刷的距离
 
* <code>/size &lt;size&gt;</code> - 你的笔刷的大小(如:半径为10的球体)<br />
 
 
 
* <code>/none</code> - 取消工具的绑定 使用 <code>-h</code> 标志来改变你副手中笔刷的相关设定。
 
 
 
=== 改变笔刷的目标位置 ===
 
 
 
你可以改变笔刷对目标定位的相关设置来符合在不同区域建筑的需要(空气,墙,地面等等) 改变 <code>//brush range</code> 也会很有用。 <code>/br target &lt;0-3&gt;</code><br />
 
- 0 = 定位方块 - 1 = 定位直接指向的方块,距离由 Pitch 决定 - 2 = 定位一点,距离由自地面算起的高度决定 - 3 = 定位方块的面
 
 
 
=== 增加笔刷行为 ===
 
 
 
使用你的鼠标滚轮来改变笔刷表现 - <code>/br scroll clipboard &lt;file|folder|asset url&gt;</code><br />
 
- <code>/br scroll mask &lt;mask1&gt; &lt;mask2...&gt;</code><br />
 
- <code>/br scroll pattern &lt;mat1&gt; &lt;mat2...&gt;</code><br />
 
- <code>/br scroll range</code><br />
 
- <code>/br scroll size</code><br />
 
- <code>/br scroll target</code>
 
 
 
=== 重设笔刷 ===
 
 
 
潜行(<code>shift</code>)然后点击来重设笔刷。 这将会,举个例子,清除你的粘贴笔刷的剪切板,或者重设你的曲线笔刷的相关点。
 
 
 
=== 显现笔刷的范围 ===
 
 
 
使用 FAWE 你能够显现出笔刷将会怎么改变方块: <code>/br vis &lt;0-2&gt;</code><br />
 
- 0 = 不显现 - 1 = 显现单个点 - 2 = 所有将会改变的方块全部显现
 
 
 
视频: https://www.youtube.com/watch?v=xX-MTSLoNXw<br />
 
图片: https://i.imgur.com/J2g6Qfn.jpg
 
 
 
=== 笔刷: ===
 
 
 
[https://github.com/c7w/FastAsyncWorldedit/wiki/Commands#brush-commands- 要想列出所有笔刷的话,请查看命令页面。]
 
 
 
 
 
= 剪切板-API =
 
FAWE 安装之后,你就能使用 API 来注册一个新的 ClipboardFormat 了
 
 
 
<source lang="java"> // (格式的名字,别名……)
 
ClipboardFormat.addFormat(new AbstractClipboardFormat("CUSTOM", "custom") {
 
    @Override
 
    public ClipboardReader getReader(InputStream inputStream) throws IOException {
 
        return new yourCustomClipboardReader();
 
    }
 
 
 
    @Override
 
    public ClipboardWriter getWriter(OutputStream outputStream) throws IOException {
 
        return new yourCustomClipboardWriter();
 
    }
 
 
 
    @Override
 
    public boolean isFormat(File file) {
 
        // 如果这个文件使用这个格式的话就返回 true (通常只会检查扩展名)
 
        return file.getName().endsWith(".custom");
 
    }
 
 
 
    @Override
 
    public String getExtension() {
 
        return "custom";
 
    }
 
});</source>
 
然后格式就可以在游戏中使用了: <code>//schem load &lt;format&gt; &lt;file&gt;</code>
 
 
 
= 将区域复制到另一个世界 =
 
一些关于将一个世界中的区域复制到另一个世界的代码。
 
 
 
如果世界没有在使用中的话,Anvil API 处理的速度比这更快: - https://github.com/c7w/FastAsyncWorldedit/wiki/Anvil-API - 但是使用起来可能会很困难
 
 
 
<source lang="java">EditSession copyWorld = new EditSessionBuilder("world").autoQueue(false).build(); // 请查看 https://github.com/boy0001/FastAsyncWorldedit/wiki/WorldEdit-EditSession
 
EditSession pasteWorld = new EditSessionBuilder("newWorld").build(); // 请查看 https://github.com/boy0001/FastAsyncWorldedit/wiki/WorldEdit-EditSession
 
Vector pos1 = new Vector(10, 3, 10);
 
Vector pos2 = new Vector(50, 90, 50);
 
CuboidRegion copyRegion = new CuboidRegion(pos1, pos2);
 
 
 
BlockArrayClipboard lazyCopy = copyWorld.lazyCopy(copyRegion);
 
 
 
Schematic schem = new Schematic(lazyCopy);
 
boolean pasteAir = true;
 
Vector to = new Vector(30, 10, 30);
 
schem.paste(pasteWorld, to, pasteAir);
 
pasteWorld.flushQueue();</source>
 
 
 
= 从图片中创建地形 =
 
== 总览 ==
 
 
 
从图片中创建 命令可以用于从大型的高度图中生成地形。
 
 
 
高度图可以使用 WorldMachine 生成,或在网上找到。
 
 
 
示例: [https://i.imgur.com/qUjm3hv.jpg [[文件:FAWE-1.jpg|320px]]]
 
 
 
视频: - https://www.youtube.com/watch?v=pPR-w6cRNTc - https://www.youtube.com/watch?v=cJZk1GTig7A
 
 
 
前置插件: - PlotSquared (dev 构建版本)配置文件中 <code>enabled-components.worlds</code> 项设置为 true - 将任何带有你想要的材质的 jar 文件(例如你的 Minecraft 核心文件: <code>.minecraft/versions/&lt;version&gt;/&lt;version&gt;.jar</code>)放入 <code>FastAsyncWorldEdit/textures</code> 之中
 
 
 
== 命令用法 ==
 
 
 
* <code>&lt;arg&gt;</code> - 一个必需参数<br />
 
 
 
* <code>[arg]</code> - 一个可选参数<br />
 
 
 
* <code>&lt;arg1|arg2&gt;</code> - 提供的多选一选项<br />
 
 
 
* <code>&lt;arg=value&gt;</code> - 默认或建议你使用的值
 
 
 
== 开始 ==
 
 
 
要想开始你需要指定想要的高度图(图床链接)和你想要使用的世界。 - 使用高度图: <code>/2 cfi &lt;url&gt;</code> - 使用固定大小: <code>/2 cfi &lt;width&gt; &lt;length&gt;</code>
 
 
 
查看下面这两条命令,在你完成之后请使用其中的一条: - /2 cfi done - /2 cfi cancel
 
 
 
== 修改世界 ==
 
 
 
=== 调色板 ===
 
 
 
* 地形能够通过使用图像染色。
 
* 如果你想要使用颜色的话,你需要预先调整好调色板和其他设置。 ##### <code>/2 cfi paletteComplexity &lt;min=0&gt; &lt;max=100&gt;</code>
 
* 根据它们的对比度来过滤方块,测量材质中有多少适合那个方块的对比度的颜色。
 
* 使用 <code>0 50</code> 分别作为最小值与最大值会使用最简单的方块的50%来染色。 ##### <code>/2 cfi paletteRandomization &lt;enabled=true&gt;</code>
 
* 默认是启用的,随机会为方块增加一些随机的颜色来匹配接近于给定图像上的颜色。
 
* 如果禁用了的话,最接近于方块的颜色总是会被使用。 ##### <code>/2 cfi paletteBlocks &lt;block-list|#clipboard&gt;</code>
 
* 仅允许某些方块能够用于染色 ##### <code>/2 cfi paletteBiomePriority &lt;percent=50&gt;</code>
 
* 在使用 <code>blockBiomeColor</code> 时你可以增加或减少生物群系的优先级。
 
* 默认的值是 50 。 ### 染色命令 ##### <code>/2 cfi color &lt;image-url&gt;</code>
 
* 仅使用方块为地形染色 ##### <code>/2 cfi glass &lt;image-url&gt;</code>
 
* 使用玻璃为地形染色(很奇特,但是从另一个角度来看也很奇怪) ##### <code>/2 cfi biomeColor &lt;image-url&gt;</code>
 
* 使用生物群系为地形染色。
 
 
 
注意:使用生物群系染色不会改变方块: - 如果你将方块更改为除了草方块之外的别的方块你就什么都看不到了。
 
 
 
* <code>/2 cfi blockBiomeColor &lt;image-url&gt;</code> - 使用方块和生物群系来为地形染色。
 
 
 
* <code>/2 cfi biome [url|mask] &lt;biome&gt; [white=false]</code> 设置地图某些部分的生物群系。
 
 
 
- 如果使用图片了的话,生物群系有几率被设置,取决于像素点的色彩中白的程度(白色 #FFF = 100% 的几率)
 
 
 
- 是否仅为白色参数决定着是否仅设置图片上的白色值 - 如果使用了蒙版的话,生物群系在任何蒙版应用的地方都会被设置
 
 
 
'''高度设置 '''
 
 
 
* <code>/2 cfi height &lt;url|height&gt;</code>
 
 
 
- 设置地形的高度,取决于高度图图片或数值。
 
 
 
* <code>/2 cfi waterHeight &lt;height=0&gt;</code>
 
 
 
- 改变水平面的生成高度。 - 默认水平面是禁用的(即值为0)
 
 
 
* <code>/2 cfi waterId &lt;number-id&gt;</code> - 使用另外一种方块来代替水方块,例如你可能想使用岩浆。
 
 
 
'''杂项设定 '''
 
 
 
* <code>/2 cfi overlay [url|mask] &lt;pattern&gt; [white=false]</code>
 
 
 
- 改变作为覆盖层的方块(默认:none)
 
 
 
* <code>/2 cfi main [url|mask] &lt;pattern&gt; [white=false]</code>
 
 
 
- 改变作为填充层的方块(默认:stone)
 
 
 
* <code>/2 cfi floor [url|mask] &lt;pattern&gt; [white=false]</code>
 
 
 
- 改变作为顶层的方块(默认:grass)
 
 
 
* <code>/2 cfi column [url|mask] &lt;pattern&gt; [white=false]</code>
 
 
 
- 改变顶层和主方块。
 
 
 
''' 其他选项'''
 
 
 
* <code>/2 cfi caves</code>
 
 
 
- 生成洞穴
 
 
 
* <code>/2 cfi ore[s]</code>
 
 
 
* <code>/2 cfi addores</code>
 
 
 
- 增加默认的 Minecraft 原版矿石。
 
 
 
* <code>/2 cfi ore &lt;mask&gt; &lt;pattern&gt; &lt;size&gt; &lt;frequency&gt; &lt;rarity&gt; &lt;min-Y&gt; &lt;max-Y&gt;</code>
 
 
 
- 使用给定的模板和设置来生成矿石。
 
 
 
* <code>/2 cfi schem  [url] &lt;mask&gt; &lt;file|folder|url&gt; &lt;rarity&gt; &lt;distance&gt; &lt;rotate&gt;</code>
 
 
 
- 在地形上使用schematic文件。
 
 
 
- 改变蒙版(例如:角蒙版)来仅在某些特殊的位置放置schematic文件中的内容。
 
 
 
- 稀有程度是一个在 0 到 100 之间的值。
 
 
 
* <code>/2 cfi blockBiomeColor &lt;image-url&gt;</code>
 
 
 
- 使用方块和生物群系来为地形染色。
 
 
 
* <code>/2 cfi biome [url|mask] &lt;biome&gt; [white=false]</code> 设置地图某些部分的生物群系。
 
 
 
- 如果使用图片了的话,生物群系有几率被设置,取决于像素点的色彩中白的程度(白色 #FFF = 100% 的几率)
 
 
 
- 是否仅为白色参数决定着是否仅设置图片上的白色值 - 如果使用了蒙版的话,生物群系在任何蒙版应用的地方都会被设置
 
 
 
''' 高度设置'''
 
 
 
* <code>/2 cfi height &lt;url|height&gt;</code>
 
 
 
- 设置地形的高度,取决于高度图图片或数值。
 
 
 
* <code>/2 cfi waterHeight &lt;height=0&gt;</code>
 
 
 
- 改变水平面的生成高度。
 
 
 
- 默认水平面是禁用的(即值为0)
 
 
 
* <code>/2 cfi waterId &lt;number-id&gt;</code>
 
 
 
- 使用另外一种方块来代替水方块,例如你可能想使用岩浆。
 
 
 
''' 杂项设定'''
 
 
 
* <code>/2 cfi overlay [url|mask] &lt;pattern&gt; [white=false]</code>
 
 
 
- 改变作为覆盖层的方块(默认:none)
 
 
 
* <code>/2 cfi main [url|mask] &lt;pattern&gt; [white=false]</code>
 
 
 
- 改变作为填充层的方块(默认:stone)
 
 
 
* <code>/2 cfi floor [url|mask] &lt;pattern&gt; [white=false]</code>
 
 
 
- 改变作为顶层的方块(默认:grass)
 
 
 
* <code>/2 cfi column [url|mask] &lt;pattern&gt; [white=false]</code>
 
 
 
- 改变顶层和主方块。
 
 
 
'''其他选项'''
 
 
 
* <code>/2 cfi caves</code>
 
 
 
- 生成洞穴 * <code>/2 cfi ore[s]</code>
 
 
 
* <code>/2 cfi addores</code>
 
 
 
- 增加默认的 Minecraft 原版矿石。
 
 
 
* <code>/2 cfi ore &lt;mask&gt; &lt;pattern&gt; &lt;size&gt; &lt;frequency&gt; &lt;rarity&gt; &lt;min-Y&gt; &lt;max-Y&gt;</code>
 
 
 
- 使用给定的模板和设置来生成矿石。
 
 
 
* <code>/2 cfi schem  [url] &lt;mask&gt; &lt;file|folder|url&gt; &lt;rarity&gt; &lt;distance&gt; &lt;rotate&gt;</code>
 
 
 
- 在地形上使用schematic文件。
 
 
 
- 改变蒙版(例如:角蒙版)来仅在某些特殊的位置放置schematic文件中的内容。
 
 
 
- 稀有程度是一个在 0 到 100 之间的值。
 
 
 
= FawePlayer =
 
要想得到new Player的话请使用 <code>FawePlayer.wrap(玩家, uuid, 用户名, 等等)</code>
 
 
 
这里是方法 - getWorld - getLocation - sendTitle - resetTitle - getLimit - getName - getUUID - hasPermission - setPermission - sendMessage - executeCommand - getPlayer - getSession - getSelection - setSelection - getCurrentRegions - getLargestRegion - hasWorldEditBypass - setMeta - getMeta - deleteMeta - getNewEditSession - runIfFree - runAsyncIfFree
 
 
 
请查看: https://github.com/boy0001/FastAsyncWorldedit/blob/master/core/src/main/java/com/boydti/fawe/object/FawePlayer.java
 
 
 
= FaweQueue =
 
=== 免责声明 ===
 
 
 
FaweQueue 是修改世界最基础的类,当正确使用时处理速度很快。但替代使用这个,我推荐使用 Operations 或[https://github.com/boy0001/FastAsyncWorldedit/wiki/WorldEdit-EditSession EditSession],因为它们可以将很抽象的任务简化,并且相对于FaweQueue的普通方法而言,它们可以提供更好的表现。如果你想让更能适应 Bukkit API 的话,你也可以使用 [https://github.com/boy0001/FastAsyncWorldedit/wiki/AsyncWorld AsyncWorld] 。
 
 
 
=== FaweQueue ===
 
 
 
FaweQueue 是从异步线程中修改世界的基础队列 - 使用它有效率地修改整个区块或其中的个别方块 - 查看 EditSession 或 AsyncWorld ,这些使用起来更简单,但是速度会慢些 - 如果你想控制更多的话,队列(queue)能够强制转换为 NMSMappedFaweQueue.
 
 
 
<source lang="java">// 自动进入队列意味着方块会在它们被刷新之前开始放置
 
FaweQueue queue = FaweAPI.createQueue(worldName, autoQueue);
 
queue.setBlock(0, 0, 0, id, data);
 
queue.setBiome(0, 0, biome);
 
// 设置整个区块
 
FaweChunk<?> chunk = queue.getFaweChunk(5, 5);
 
chunk.fill(id, data);
 
chunk.addToQueue();
 
// 为位置重复相同任务
 
chunk = chunk.copy(true);
 
chunk.setLoc(queue, 5, 6);
 
chunk.addToQueue();</source>
 
=== NMS 方法 ===
 
 
 
对于一些支持的平台也有更多方法。你可以通过将 <code>FaweQueue</code> 类型来强制转换为 <code>NMSMappedFaweQueue</code> 来访问这些。 更多信息: https://github.com/c7w/FastAsyncWorldedit/wiki/Light-API
 
 
 
=Fawe-TaskManager =
 
=== 异步任务 ===
 
 
 
很基础的东西,但这是你可以使用 FAWE TaskManager 来运行异步任务的方法。
 
 
 
<source lang="java">TaskManager.IMP.async(new Runnable() {
 
    @Override
 
    public void run() {
 
        // Do stuff here?
 
    }
 
});</source>
 
=== 同步任务 ===
 
 
 
使用 FAWE TaskManager 你可以切换使用主线程(原来为异步处理)然后执行任务。
 
 
 
<source lang="java">// 从异步线程中获得玩家背包内容
 
// 例如:方法异步处理不安全的话
 
PlayerInventory inventory = TaskManager.IMP.sync(new RunnableVal<PlayerInventory>() {
 
    @Override
 
    public void run(PlayerInventory value) {
 
        this.value = player.getInventory();
 
    }
 
});</source>
 
'''''什么时候使用这个?''''' - 你想调用的方法使用异步处理不安全 - 使用异步处理任务会有性能问题
 
 
 
= Jobs-API =
 
一些类似于 Job API 的东西。
 
 
 
=== [https://github.com/boy0001/FastAsyncWorldedit/blob/master/core/src/main/java/com/boydti/fawe/util/SetQueue.java SetQueue] ===
 
 
 
这个类中有成队列的本地队列。每个本地队列都是由成队列的区块改变组成的可能与 EditSession 相关联,它可能与一个玩家有关。
 
 
 
SetQueue 会检测激活和未激活的队列:
 
 
 
<source lang="java">// 激活的队列已经完成了等候
 
Collection<FaweQueue> active = SetQueue.IMP.getActiveQueues();
 
// 未激活的队列可能还在等候其他区块改变或其他任务
 
Collection<FaweQueue> inactive = SetQueue.IMP.getInactiveQueues();
 
Collection<FaweQueue> all = SetQueue.IMP.getAllQueues();</source>
 
=== 示例:获得一名玩家等候队列中的方块! ===
 
 
 
你可以从这里获得一名玩家当前运行的 EditSessions :[https://github.com/boy0001/FastAsyncWorldedit/blob/master/core/src/main/java/com/boydti/fawe/object/FawePlayer.java#L443 <code>FawePlayer#getTrackedSessions</code>]。<br />
 
在每个 EditSession 中你能获得改变的方块: [https://github.com/boy0001/FastAsyncWorldedit/blob/master/core/src/main/java/com/sk89q/worldedit/EditSession.java#L327 <code>EditSession#getLimitUsed</code>],但是这不会一定对应于当前队列中的方块(当队列任务完成后才能分配)。
 
 
 
你也可以通过使用 FaweQueue ([https://github.com/boy0001/FastAsyncWorldedit/blob/master/core/src/main/java/com/sk89q/worldedit/EditSession.java#L417 <code>EditSession#getQueue</code>]), 你可以获得激活的区块: [https://github.com/boy0001/FastAsyncWorldedit/blob/master/core/src/main/java/com/boydti/fawe/object/FaweQueue.java#L137 <code>FaweQueue#getFaweChunks</code>], 然后每个激活的区块都可以强制转换类型为 [https://github.com/boy0001/FastAsyncWorldedit/blob/master/core/src/main/java/com/boydti/fawe/example/CharFaweChunk.java <code>CharFaweChunk</code>] 然后使用 [https://github.com/boy0001/FastAsyncWorldedit/blob/master/core/src/main/java/com/boydti/fawe/example/CharFaweChunk.java#L86 <code>CharFaweChunk#getTotalCount</code>]
 
 
 
=== 撤销一次修改 ===
 
 
 
在获取当前的 EditSession 之后,只要使用 [https://github.com/boy0001/FastAsyncWorldedit/blob/master/core/src/main/java/com/sk89q/worldedit/EditSession.java#L365 <code>EditSession#cancel</code>] 就好了。
 
 
 
= Light-API =
 
与 [https://github.com/boy0001/FastAsyncWorldedit/wiki/FaweQueue FaweQueue] 有关联
 
 
 
=== 获取当前的 NMS 队列 ===
 
 
 
<source lang="java">boolean autoQueue = false;
 
NMSMappedFaweQueue nmsQueue = (NMSMappedFaweQueue) SetQueue.IMP.getNewQueue("worldName", true, autoQueue);</source>
 
相关联的方法 - relight(int x, int y, int z) - relightBlock(int x, int y, int z) - relightSky(int x, int y, int z) - setSkyLight(int x, int y, int z, int value) - setBlockLight(int x, int y, int z, int value)
 
 
 
相关联的类 - [https://github.com/boy0001/FastAsyncWorldedit/blob/master/core/src/main/java/com/boydti/fawe/object/FaweQueue.java FaweQueue] - [https://github.com/boy0001/FastAsyncWorldedit/blob/master/core/src/main/java/com/boydti/fawe/example/MappedFaweQueue.java MappedFaweQueue] - [https://github.com/boy0001/FastAsyncWorldedit/blob/master/core/src/main/java/com/boydti/fawe/example/NMSMappedFaweQueue.java NMSMappedFaweQueue]
 
 
 
= NBT-stream-API =
 
安装 FAWE 以后,你能够在不将schem文件(schematic)或NBT不整体储存在内存中即可编辑它们。 - 如果文件太大而不适合装入内存的话,你就需要这样做 - 如果你想要从其中获得某些信息的话,你就需要这样做
 
 
 
<source lang="java">// 让我们不将schematic文件加载到内存中,但从中读取一些信息吧
 
// Schematics 文件是被压缩储存的,所以在使用 NBTInputStream 之前我们首先需要使用 GZIPInputStream
 
File file = new File("blah.schematic");
 
NBTInputStream is = new NBTInputStream(new GZIPInputStream(new FileInputStream(file)));
 
NBTStreamer streamer = new NBTStreamer(is);
 
 
 
// 获得长,宽,高
 
final Map<String, Short> dimensions = new HashMap<>();
 
// 你需要了解NBT文件的结构储存方式,这些特殊值都是用缩写储存的
 
streamer.addReader(new NBTStreamer.NBTStreamReader<Integer, Short>() {
 
    @Override
 
    public void run(Integer index, Short value) {
 
        // Index对这个来说是不那么重要的,但是如果想要做列表或数组的话它就很有用了
 
        dimensions.put(getNode(), value); // Put e.g. Schematic.Width -> 53
 
    }
 
}, "Schematic.Width", "Schematic.Height", "Schematic.Length");
 
 
 
// 让我们从其中获取实体吧,我知道它们将会是 CompoundTag 类型
 
streamer.addReader("Schematic.Entities.#", new NBTStreamer.NBTStreamReader<Integer, CompoundTag>() {
 
    @Override
 
    public void run(Integer index, CompoundTag entity) {
 
        // 对于 .# 和普通加载方式来说,它将会是 Index 和 Value
 
        // 在这里我们可以对每个实体进行不同的操作
 
    }
 
});
 
 
 
// 关于方块小节获得信息(也包括ID)(也可以使用 AddBlocks 和 Data)
 
streamer.addReader("Schematic.Blocks.?", new NBTStreamer.NBTStreamReader<Integer, Integer>() {
 
    @Override
 
    public void run(Integer length, Integer type) {
 
        Class<? extends Tag> clazz = NBTConstants.getClassFromType(type);
 
        // 这里我们可以做一些能够知道小节的长度和它的类型的事情
 
    }
 
});
 
 
 
// 现在我们就写好了我们想要的加载方式了,我们就可以读取文件了
 
streamer.readFully();
 
// 同时如果你想要 FAWE 在你找到你想找的东西之后停止读取的话,你也可以:
 
// streamer.readQuick();
 
 
 
System.out.println("Dimensions are: " + dimensions);</source>
 
使用本 API 的类: - [https://github.com/boy0001/FastAsyncWorldedit/blob/master/core/src/main/java/com/sk89q/worldedit/extent/clipboard/io/SchematicWriter.java SchematicWriter 直接可写入压缩后的 schematic 文件的数据中] - [https://github.com/boy0001/FastAsyncWorldedit/blob/master/core/src/main/java/com/boydti/fawe/jnbt/SchematicStreamer.java The SchematicStreamer 会将一个 schematic 文件直接读取到剪切板上]
 
 
 
 
 
= 发包 =
 
FAWE 能够在刷新区块或发送单独的方块变化时发送方块变化信息。
 
 
 
笔刷的预览就是后者的一个例子,这些方块改变只会发送给一个玩家(注意:服务器上的方块不需要改变)。
 
 
 
这就是用于优化仅发送 1 个方块(玻璃),然后稍后重置改变的 VisualExtent 。
 
 
 
<source lang="java">VisualExtent extent = new VisualExtent(editSession.getExtent(), editSession.getQueue());
 
// 设置方块
 
extent.visualize(player);
 
// 一段时间后,重置所有方块
 
// 如果你同时也启用了另外一个预览效果的话,这个方法不会重置那其中的方块。
 
extent.clear(VisualExtent or null);</source>
 
要想将指定的方块变化发送给一群玩家的话请使用 FaweQueue。
 
 
 
你可以使用任何 FaweChunk 中的类,例如 CharFaweChunk, VisualChunk 等等。
 
 
 
<source lang="java">FaweQueue.sendBlockUpdate(FaweChunk, FawePlayer...);</source>
 
 
 
= 粘贴 schematic 文件 =
 
粘贴 schematic 文件
 
 
 
<source lang="java">File file = new File("path/to/schematic");
 
boolean noAir = false;
 
boolean entities = true;
 
Vector position = new Vector(0, 0, 0);
 
SchematicFormat.getFormat(file).load(file).paste(editSession, position, noAir, entities);
 
editSession.flushQueue();
 
 
 
// 如果你安装了 FAWE 的话作为替代你也能使用这个:
 
boolean allowUndo = true;
 
EditSession editSession = ClipboardFormat.SCHEMATIC.load(file).paste(world, position, allowUndo, !noAir, (Transform) null);</source>
 
保存为 schematic 文件
 
 
 
<source lang="java">File file = new File("mySchem.schematic");
 
Vector bot = new Vector(0, 0, 0);
 
Vector top = new Vector(50, 255, 50);
 
CuboidRegion region = new CuboidRegion(new BukkitWorld(world), bot, top);
 
Schematic schem = new Schematic(region);
 
schem.save(file, ClipboardFormat.SCHEMATIC);</source>
 
 
 
= 权限 =
 
要想获得跟指令相关的权限请: [https://github.com/c7w/FastAsyncWorldedit/wiki/Commands 查看这里]
 
 
 
 
 
=== 管理员权限: ===
 
 
 
* <code>fawe.admin</code> (允许通过使用 <code>/wea</code> 命令来跳过检测)
 
* <code>fawe.bypass</code> (自动跳过 WorldEdit 的区域限制)
 
* <code>worldedit.anyblock</code> (跳过 WorldEdit 插件的 <code>disallowed-blocks</code> 的限制)
 
* <code>worldedit.inventory.unrestricted</code> (当背包限制启用时,跳过该限制)
 
 
 
=== 用户权限: ===
 
 
 
* <code>fawe.limit.&lt;限制组名&gt;</code> (给予玩家给定组的限制)
 
* [https://github.com/c7w/FastAsyncWorldedit/blob/master/bukkit/src/main/resources/plugin.yml#L29 <code>fawe.permpack.basic</code>] (对于创造服来说可以使用的一堆 WorldEdit 权限)
 
* <code>worldedit.navigation.jumpto.tool</code> (能够使用 jumpto 魔杖的权限)
 
* <code>worldedit.navigation.thru.tool</code> (能够使用 thru 魔杖的权限)
 
 
 
=== 区域权限: ===
 
 
 
<blockquote>FAWE 模式是被区域所限制的,这对于想给予普通玩家 WorldEdit 权限的服务器来说是很有用的。要想起用区域限制,将配置文件中的 <code>region-restrictions</code> 设置设置为 true,然后给予玩家对应的区域权限。如果你想让管理员在任何地方都可以使用 WorldEdit 的话,请使用 <code>//wea</code> 命令,给予他们 <code>fawe.admin</code> 权限。
 
</blockquote>
 
* <code>fawe.factions</code>
 
* <code>fawe.plotsquared</code>
 
* <code>fawe.plotsquared.member</code> - 允许地皮的成员(<code>/plot add</code>)使用 WorldEdit
 
* <code>fawe.griefprevention</code>
 
* <code>fawe.plotme</code>
 
* <code>fawe.preciousstones</code>
 
* <code>fawe.residence</code>
 
* <code>fawe.towny</code>
 
* <code>fawe.towny.*</code>
 
* <code>fawe.worldguard</code>
 
* <code>fawe.worldguard.member</code>
 
 
 
=== 延展的 WorldEdit 命令: ===
 
 
 
* <code>worldedit.schematic.load.other</code> (在每个玩家的schematic储存文件分离时,允许玩家读取主schematic文件夹下的所有文件)
 
* <code>worldedit.schematic.save.other</code> (在每个玩家的schematic储存文件分离时,允许玩家储存文件到主schematic文件夹下)
 
 
 
= 进度API =
 
<blockquote>请注意:如果你想查看 EditSession 的工作进度的话,请使用下面这个 EditSession 事件作为代替: - wiki.sk89q.com/wiki/WorldEdit/API/Hooking_EditSession - 这样以后你需要在 FAWE 插件的配置文件中的 <code>extent.allowed-plugins</code> 项目添加 <code>Settings.EXTENT.ALLOWED_PLUGINS</code> 你的插件。
 
</blockquote>
 
要想检测 EditSession 的工作进度或是队列的工作进度很简单:
 
 
 
<source lang="java">editSession.getQueue().setProgressTracker(new RunnableVal2<ProgressType, Integer>() {
 
    @Override
 
    public void run(ProgressType type, Integer amount) {
 
        // FAWE 能够在完整尺寸知晓前就开始操作
 
        switch (type) {
 
            case QUEUE:
 
                // <amount> 正在队列中的区块
 
            case DISPATCH:
 
                // <amount> 已离开队列的区块
 
            case DONE:
 
                // 队列为空(已完成)
 
        }
 
    }
 
});</source>
 
要想使用默认的进度追踪器(title标题)请查看: https://github.com/c7w/FastAsyncWorldedit/blob/master/core/src/main/java/com/boydti/fawe/object/progress/DefaultProgressTracker.java
 
 
 
默认只有当队列中的区块数目大于64时消息才会提示(最大数目为 4,194,304 区块),不然的话它完成的太快了,但是你可以用这个自定义示踪器做你喜欢的事情。
 
 
 
= 恢复错误的 NBT 文件 =
 
注意:如果你需要帮助恢复文件的话请联系我(ticket,IRC等等)
 
 
 
如果一个NBT格式的文件部分损坏的话,还是能恢复部分数据的——只要压缩文件的开头还是完整的(如果它是压缩文件),且NBT TAG的名字还是完整的。
 
 
 
对于 GZIP 而言,不需要出现压缩格式。
 
 
 
[https://github.com/boy0001/FastAsyncWorldedit/blob/master/core/src/main/java/com/boydti/fawe/jnbt/CorruptSchematicStreamer.java CorruptSchematicReader] 已经包括在 FAWE 插件中了,它可以恢复错误的schematic文件,但是它所使用的方法对于格式相似的MCA文件和其他以NBT为基础格式的文件也同样适用。
 
 
 
这是一段匹配 <code>Width</code> 标签且能够设置 width 变量的值的片段。
 
 
 
<source lang="java">match("Width", new CorruptSchematicStreamer.CorruptReader() {
 
    @Override
 
    public void run(DataInputStream in) throws IOException {
 
        width.set(in.readShort());
 
    }
 
});</source>
 
也有另外一种方法,能够猜出schematic文件所在的维度,它需要了解某些数据值的程度来了解是否缺少了维度标签: <code>Vector guessDimensions(int volume, int width, int height, int length)</code>
 
 
 
= 区域限制API =
 
FAWE 可以限制玩家对 WorldEdit 的使用,需要配置文件中设置 <code>Settings.REGION_RESTRICTIONS</code>=<code>true</code>
 
 
 
=== 注册提供器 ===
 
 
 
<source lang="java">FaweAPI.addMaskManager(new PlotSquaredFeature());</source>
 
查看:https://github.com/boy0001/FastAsyncWorldedit/blob/master/core/src/main/java/com/boydti/fawe/regions/general/plot/PlotSquaredFeature.java
 
 
 
= 注册自定义笔刷和命令 =
 
安装 FAWE 插件之后你可以注册你自己的笔刷和命令:
 
 
 
<source lang="java">/**
 
* 使用提供的别称创建一条命令以及注册类的所有方法作为子命令。<br>
 
*  - 你应该尝试在安装时注册命令
 
*  - 如果没有指定别称的话,所有的方法都会变成根命令
 
* @param clazz 类中包含了所有的子命令方法
 
* @param aliases 给予本命令的别称(也可以不设置)
 
*/
 
FaweAPI.registerCommands(Object clazz, String... aliases);</source>
 
来自 [https://github.com/boy0001/FastAsyncWorldedit/blob/master/core/src/main/java/com/sk89q/worldedit/command/BrushCommands.java <code>BrushCommands</code>] 类的片段,注册圆柱体笔刷
 
 
 
<source lang="java">@Command(
 
        aliases = { "cylinder", "cyl", "c" },
 
        usage = "<block> [radius] [height]",
 
        flags = "h",
 
        desc = "Choose the cylinder brush",
 
        help =
 
                "Chooses the cylinder brush.\n" +
 
                        "The -h flag creates hollow cylinders instead.",
 
        min = 1,
 
        max = 3
 
)
 
@CommandPermissions("worldedit.brush.cylinder")
 
public void cylinderBrush(Player player, LocalSession session, Pattern fill,
 
                          @Optional("2") double radius, @Optional("1") int height, @Switch('h') boolean hollow) throws WorldEditException {
 
    worldEdit.checkMaxBrushRadius(radius);
 
    worldEdit.checkMaxBrushRadius(height);
 
    BrushTool tool = session.getBrushTool(player);
 
    tool.setFill(fill);
 
    tool.setSize(radius);
 
    if (hollow) {
 
        tool.setBrush(new HollowCylinderBrush(height), "worldedit.brush.cylinder", player);
 
    } else {
 
        tool.setBrush(new CylinderBrush(height), "worldedit.brush.cylinder", player);
 
    }
 
    player.print(BBC.getPrefix() + BBC.BRUSH_SPHERE.f(radius, height));
 
}</source>
 
圆柱体笔刷:
 
 
 
<source lang="java">public class CylinderBrush implements Brush {
 
 
 
    private int height;
 
 
 
    public CylinderBrush(int height) {
 
        this.height = height;
 
    }
 
 
 
    @Override
 
    public void build(EditSession editSession, Vector position, Pattern pattern, double size) throws MaxChangedBlocksException {
 
        if (pattern == null) {
 
            pattern = new BlockPattern(new BaseBlock(BlockID.COBBLESTONE));
 
        }
 
        editSession.makeCylinder(position, Patterns.wrap(pattern), size, size, height, true);
 
    }
 
 
 
}</source>
 
 
 
= 注册自定义蒙版,模板和变换式 =
 
安装 FAWE 插件后你能够注册你自己的蒙版,模板和变换式
 
 
 
<source lang="java">FaweAPI.registerMasks(maskMethods);
 
FaweAPI.registerPatterns(patternMethods);
 
FaweAPI.registerTransforms(transformMethods);</source>
 
将其中替换 - <code>maskMethods</code> 是像如下内容的类 [https://github.com/boy0001/FastAsyncWorldedit/blob/master/core/src/main/java/com/sk89q/worldedit/command/MaskCommands.java 这个] - <code>patternMethods</code> 是像如下内容的类 [https://github.com/boy0001/FastAsyncWorldedit/blob/master/core/src/main/java/com/sk89q/worldedit/command/PatternCommands.java 这个] - <code>transformMethods</code> 是像如下内容的类 [https://github.com/boy0001/FastAsyncWorldedit/blob/master/core/src/main/java/com/sk89q/worldedit/command/TransformCommands.java 这个]
 
 
 
= 回滚API =
 
如果你没有使用 WorldEdit 第三方的记录插件,例如 BlocksHub 的话,FAWE 插件内置了明显更快,且占用硬盘空间更少(压缩)的记录器。
 
 
 
==== 需求 ====
 
 
 
* Settings.HISTORY.USE_DISK=true
 
* Settings.HISTORY.USE_DATABASE=true
 
 
 
=== 实现一次查找 ===
 
 
 
数据库中只包含了编辑的列表和影响的区域,不是所有改变的方块。
 
 
 
要想执行一次完全回滚你需要读取每一次潜在的编辑的内容。
 
 
 
<source lang="java">RollbackDatabase db = DBHandler.IMP.getDatabase(worldName);
 
boolean deleteAfterLookup = false;
 
// 搜索所有没有提供uuid的玩家
 
// 全部时间搜索,使用 0 为最小时间
 
// pos1 和 pos2 可以指定为单个点
 
db.getPotentialEdits(uuid, minTime, pos1, pos2, new RunnableVal<DiskStorageHistory>() {
 
    @Override
 
    public void run(DiskStorageHistory potentialEdit) {
 
        try {
 
            UUID uuid = potentialEdit.getUUID();
 
            String name = Fawe.imp().getName(uuid);
 
            int index = potentialEdit.getIndex();
 
            long age = System.currentTimeMillis() - potentialEdit.getBDFile().lastModified();
 
            String ageFormatted = MainUtil.secToTime(age / 1000);
 
            // 我现在想要读取编辑中每个方块的变化
 
            // 注意:也会有关于实体和掉落物的迭代器的变化
 
            //  - 或是使用 `potentialEdit.getIterator(dir)` 来检测所有变化
 
            Iterator<MutableFullBlockChange> iter = potentialEdit.getFullBlockIterator(false);
 
            while (iter.hasNext()) {
 
                MutableFullBlockChange change = iter.next();
 
                /* Maybe you only want to do something if the block is in a certain position?
 
                if (change.x != x || change.y != y || change.z != z) {
 
                    continue;
 
                }
 
                */
 
                // combinedId (查看 FaweCache#getId(combined), FaweCache#getData(combined))
 
                int from = change.from;
 
                int to = change.to;
 
                // 用这个信息来做些什么?
 
            }
 
        } catch (IOException e) {
 
            e.printStackTrace();
 
        }
 
    }
 
}, new Runnable() {
 
    @Override
 
    public void run() {
 
        // 在查阅完成之后会运行这个
 
    }
 
}, deleteAfterLookup);</source>
 
 
 
= 在使用FAWE API 的一些小提示 =
 
== 使用 FAWE API 的一些性能提示: ==
 
 
 
=== 1. 使用 EditSessionBuilder ,同时请不要启用你用不到的东西。 ===
 
 
 
[https://github.com/boy0001/FastAsyncWorldedit/wiki/WorldEdit-EditSession 查看这里。]
 
 
 
=== 2. 在可能时使用内置的迭代器: ===
 
 
 
<source lang="java">// 幼稚的做法:
 
for (Vector pt : region) {
 
    BaseBlock block = editSession.getBlock(pt);
 
    // 做些什么
 
}
 
// 不错的做法:
 
// - 执行区块预读取
 
for (Vector pt : new FastIterator(region, editSession)) {
 
    BaseBlock block = editSession.getBlock(pt);
 
    // 做些什么
 
}</source>
 
下列的类会执行区块预读取: - FastIterator - Fast2DIterator - FastChunkIterator - BreadFirstSearch - RegionVisitor
 
 
 
=== 3. 使用已存在的功能或操作而不是设置单个方块: ===
 
 
 
<source lang="java">// 幼稚的做法:单个方块改变
 
for (int x = 0; x <= 100; x++) {
 
    for (int z = 0; z <= 100; z++) {
 
        editSession.setBlock(x, 64, z, block); 
 
    }
 
}
 
// 不错的做法:
 
//  - 执行区块预读取
 
//  - 执行整个区块而不是单个方块
 
//  - 并行处理一些东西
 
Region region = new CuboidRegion(new Vector(0, 64, 0), new Vector(100, 64, 100));
 
editSession.setBlocks(region, block);</source>
 
=== 4. 使用 FAWE 带来的 Sets 与 Collections ===
 
 
 
<source lang="java">// 幼稚的做法:储存单个位置
 
Set<Vector> positions = new HashSet<>(); // 然后在这里储存一些方块的位置
 
 
 
// 不错的做法:
 
// - 更快速,仅仅占用八百分之一的内存
 
positions = new BlockVectorSet(); </source>
 
=== 5. 避免调用 AsyncWorld 或 Actor 类中一些与非方块或生物群系相关联的方法: ===
 
 
 
FAWE 还没有将这些进行异步优化。尝试使用 [https://github.com/boy0001/FastAsyncWorldedit/wiki/TaskBuilder TaskBuilder] 来将它在主线程上分解。
 
 
 
= TaskBuilder =
 
=== 总览 ===
 
 
 
TaskBuilder 能够创建相继的同步或异步任务的简化版。 https://github.com/boy0001/FastAsyncWorldedit/blob/master/core/src/main/java/com/boydti/fawe/util/task/TaskBuilder.java ### 方法: - sync([Runnable|ReturnTask|ReceiveTask|Task]) - 在主线程上执行任务 - async([Runnable|ReturnTask|ReceiveTask|Task]) - 在主线程外执行任务 - delay([int|DelayedTask]) - 延迟几个游戏刻,然后再进行下个任务 - syncParallel([Runnable|ReturnTask|ReceiveTask|Task]) - 执行所有并行的下个 syncParallel 任务 - asyncParallel([Runnable|ReturnTask|ReceiveTask|Task]) - 执行所有并行的下个 asyncParallel 任务 - syncWhenFree([SplitTask|ReturnTask|ReceiveTask|Task]) - 在主线程空闲时执行任务 - abortIfTrue(Task<Boolean,Object>) - 如果为 true 停止所有进程 - build() - 开始执行 - buildAsync() - 从某一异步线程开始执行
 
 
 
=== 多任务 ===
 
 
 
输出数字 6
 
 
 
<source lang="java">new TaskBuilder()
 
.async((ReturnTask<Integer>) () -> 5 + 1)
 
.sync((ReceiveTask) input -> System.out.println(input))
 
.build();</source>
 
=== SplitTask 的示例 ===
 
 
 
分离一个任务并且在主线程空闲时运行它。
 
 
 
<source lang="java">// 在现实中你需要使用 EditSession, AsyncWorld,与 FaweQueue 的其中之一作为代替。
 
// 但这仅仅是你怎么使用 FAWE API 分离一个任务的示例
 
 
 
final World world = Bukkit.getWorld("world");
 
new TaskBuilder()
 
// 执行任务会被分成多个 20ms 的任务
 
.syncWhenFree(new TaskBuilder.SplitTask(20) {
 
    @Override
 
    public Object exec(Object previous) {
 
        for (int x = 0; x < 100; x++) {
 
            for (int y = 0; y < 100; y++) {
 
                for (int z = 0; z < 100; z++) {
 
                    world.getBlockAt(x, y, z).setType(Material.STONE);
 
                    // FAWE 会使用这个点来分离任务
 
                    // 你可以设置多个分离点
 
                    split();
 
                }
 
            }
 
        }
 
        // 我们不需要对于下个任务的结果
 
        return null;
 
    }
 
})
 
.build();</source>
 
=== 任务元数据 ===
 
 
 
TaskBuilder 继承 Metadatable,所以你可以使用它储存临时数据: https://github.com/boy0001/FastAsyncWorldedit/blob/master/core/src/main/java/com/boydti/fawe/object/Metadatable.java
 
 
 
<source lang="java">final TaskBuilder task = new TaskBuilder();
 
task.sync(() -> {
 
    task.setMeta("blah", 5);
 
    return task.<Integer>getMeta("blah") + 56;
 
});</source>
 
 
 
= TextureUtil =
 
=== 注意: ===
 
 
 
* 将带有你想要的材质的 jar 文件(例如 <code>.minecraft/versions/&lt;version&gt;/&lt;version&gt;.jar</code>)放入 FastAsyncWorldEdit/textures 文件夹中<br />
 
 
 
* 颜色使用 RGB(A) 颜色整数来表示,它可以通过使用 Color#getRGB() 获得。
 
 
 
=== 构造函数 ===
 
 
 
randomization = 方块会随机化拥有更加棒的本地颜色而不是照搬像素 Complexity 是一个方块的材质有多少种颜色,例如:石英方块就很低,TNT就很高 minComplexity, maxComplexity 是百分比值,对于 mc:1.11 我找到了 0, 73 为合适的值 &gt; TextureUtil tu = Fawe.get().getCachedTextureUtil(randomization, minComplexity, maxComplexity)
 
 
 
要想指定方块我们可以使用 FilteredTextureUtil,它封包在 CachedTextureUtil 之中<br />
 
&gt; TextureUtil tu = new CachedTextureUtil(new FilteredTextureUtil(Fawe.get().getTextureUtil(), blocks))
 
 
 
=== 方法 ===
 
 
 
获得一个方块的平均颜色<br />
 
&gt; tu.getColor(BaseBlock block)
 
 
 
获取距离一个颜色最近的方块<br />
 
&gt; tu.getNearestBlock(int color)
 
 
 
getNextNearestBlock(getColor(block)) 的别称<br />
 
&gt; tu.getNearestBlock(BaseBlock block)
 
 
 
获取距离一个颜色最近的方块 —— 如果没有精准匹配的话,它会返回下面的最近的方块 &gt; tu.getNextNearestBlock(int color)
 
 
 
为一种颜色获取最接近的玻璃+方块搭配。 它会返回 char { int glassCombinedId, int blockCombinedId }<br />
 
combinedId 为 (id &lt;&lt; 4) + 数据值,请查看 FaweCache.getId(combined), FaweCache.getData(combined)<br />
 
&gt; tu.getNearestLayer(int color)
 
 
 
获取比这亮的最近的方块<br />
 
&gt; tu.getLighterBlock(BaseBlock block)
 
 
 
获取比这暗的最近的方块<br />
 
&gt; tu.getDarkerBaseBlock block)
 
 
 
从一个生物群系ID获得 BiomeColor 对象<br />
 
从 biomeRegistry 中获得生物群系ID<br />
 
BiomeRegistry biomeRegistry = FaweAPI.getWorld(worldName).getWorldData().getBiomeRegistry()<br />
 
&gt; tu.getBiome(int biome)
 
 
 
获得对一个颜色来说最接近的 BiomeColor 对象<br />
 
&gt; tu.getNearestBiome(int color)
 
 
 
= 变换式 =
 
 
 
变换式能够应用在笔刷上或在全局中,它可以修改方块变化的位置和方式。
 
 
 
又见: http://wiki.sk89q.com/wiki/WorldEdit/Region_operations#Deforming_regions
 
 
 
 
 
-----
 
 
 
=== 用法 ===
 
 
 
==== 多个变换式 ====
 
 
 
使用半角逗号 (<code>,</code>) 来随机从列表中使用一个变换式,例如: <code>#offset[0][1][0],#pattern[wood]</code> (将方块向上偏移一个位置,或是将它变成木头)
 
 
 
使用这个符号 (<code>&amp;</code>) 来为一个方块使用多个变换式,例如: <code>#offset[0][1][0]&amp;#pattern[wood]</code> (将方块向上偏移一个位置,且将它变成木头) #### 参数 变换式的参数应该写在方括号之中,例如: <code>#offset[0][1][0]</code>
 
 
 
 
 
-----
 
 
 
=== 设置变换式 ===
 
 
 
==== <code>//gtransform [transforms...]</code> ====
 
 
 
权限: <code>worldedit.global-transform</code><br />
 
描述: 设置全局变换式 #### <code>//transform [transform...]</code> 权限: <code>worldedit.brush.options.transform</code><br />
 
描述: 设置笔刷的变换式(将多个变换式用空格 <code>` 或者半角冒号</code>:` 分割)
 
 
 
=== [https://github.com/c7w/FastAsyncWorldedit/wiki/Commands#transform-commands- <code>&gt;&gt; 点这里查看变换式的列表……</code>] ===
 
 
 
= 网页接口API =
 
FAWE 能够让你从一个兼容且配置过的网页服务器中上传或下载 schematic 文件。
 
 
 
=== 有关的配置选项 ===
 
 
 
<pre class="yml">web:
 
  # 我已经在这里为你配置好了一个网页接口了
 
  url: &quot;http://empcraft.com/fawe/&quot;</pre>
 
=== 网页软件 ===
 
 
 
https://github.com/boy0001/plotupload + custom style
 
 
 
=== 上传剪切板 ===
 
 
 
如果返回了 null 的话,那就是指示上传失败了。
 
 
 
<source lang="java">URL url = FaweAPI.upload(clipboard, format);</source>
 
=== 下载: ===
 
 
 
<source lang="java">URL base = new URL(Settings.WEB.URL);
 
URL url = new URL(base, "uploads/" + uuid + ".schematic");
 
ReadableByteChannel rbc = Channels.newChannel(url.openStream());
 
InputStream in = Channels.newInputStream(rbc);
 
// 读取并粘贴字符(假设它是 schematic 格式)等等
 
EditSession editSession = ClipboardFormat.SCHEMATIC.load(in).paste(world, position, allowUndo, !noAir, (Transform) null);</source>
 
 
 
= WorldEdit 和 FAWE 的模板 =
 
 
 
某些变换方块的命令就用到了模板。举个例子: <code>//set &lt;模板&gt;</code> 和 <code>//material &lt;模板&gt;</code>
 
 
 
 
 
-----
 
 
 
=== 用法 ===
 
 
 
==== 方块 ====
 
 
 
使用方块的名字或者ID (举个例子: <code>stone</code>)。要想查看更多信息请查看 [http://wiki.sk89q.com/wiki/WorldEdit/Block_data_syntax 方块数据用法页面] #### 多模板 使用半角逗号 (<code>,</code>) 来随机使用一个模板。要想指定几率你可以使用 <code>%</code> ,举个例子: <code>80%stone,20%planks</code> #### 参数 模板的参数应该放入方括号之中,举个例子: <code>#simplex[10][stone,wood]</code>
 
 
 
=== [https://github.com/c7w/FastAsyncWorldedit/wiki/Commands#pattern-commands- <code>&gt;&gt; 点这里查看模板列表……</code>] ===
 
 
 
= WorldEdit-EditSession =
 
EditSession 是 WorldEdit 用来在世界中制造并记录变化的。EditSessionBuilder 能够让你你完全控制它。 - 你必须提供世界,查看 <code>FaweAPI.getWorld(...)</code>
 
 
 
示例:
 
 
 
<source lang="java">EditSession editSession = new EditSessionBuilder(world).fastmode(true).build();</source>
 
不设置参数会使用它们的默认值: - player: 做出编辑的玩家(默认是 null) - limit: 方块,实体或操作限制(默认是玩家的限制或无限制) - changeSet: 存储变更(默认是 config.yml 中的值) - allowedRegions: 允许可编辑的区域(默认是玩家能够编辑的区域,或是所有地方) - autoQueue: 在 flushQueue() 之前的改变(默认是 true) - fastmode: 跳过记录历史(默认是玩家的快速模式或是 config.yml 中设置不记录历史) - checkMemory: 是否启用内存剩余过低检查(默认是玩家的快速模式是否启用或 true) - combineStages: 历史记录是否结合分配(默认是配置文件中的配置) - blockBag: 使用的 blockbag (默认是 null) - eventBus: 使用的 eventBus (默认是 null) - event: 要调用的事件 (默认是 null)
 
 
 
请查看:https://github.com/boy0001/FastAsyncWorldedit/blob/master/core/src/main/java/com/boydti/fawe/util/EditSessionBuilder.java
 
 
 
这是非 FAWE 插件的示例:
 
 
 
<source lang="java">// 如果没有玩家做出变更
 
EditSession editSession = WorldEdit.getInstance().getEditSessionFactory().getEditSession(worldEditWorld, -1);
 
// 指定特殊玩家
 
editSession = WorldEdit.getInstance().getEditSessionFactory().getEditSession(worldEditWorld, -1, actor);
 
 
 
// 用 EditSession 做些什么
 
editSession.setBlock(new Vector(x, y, z), new BaseBlock(id, data));
 
// 在调用 flushQueue 之后就会开始变更
 
editSession.flushQueue();</source>
 
这是一个结合 FAWE 插件的示例:
 
 
 
<source lang="java">EditSession editSession = new EditSessionBuilder(world).fastmode(true).build();
 
editSession.setBlock(new Vector(x, y, z), new BaseBlock(id, data));
 
editSession.flushQueue();</source>
 
=== 撤销 EditSession 的修改 ===
 
 
 
Where <code>editSession</code> is what you are undoing.
 
 
 
<source lang="java">// 用你喜欢的方式创建 EditSession
 
EditSession newEditSession = WorldEdit.getInstance().getEditSessionFactory().getEditSession(editSession.getWorld(), -1, null, null);
 
// 撤销操作
 
editSession.undo(newEditSession);
 
editSession.flushQueue();</source>
 
 
 
= WorldEdit Fawe 蒙版列表 =
 
= <code>蒙版</code> =
 
 
 
蒙版是限制方块什么时候能够放置出来的,举个例子:只在石头下方放置方块。
 
 
 
全局蒙版会应用于所有编辑中,笔刷蒙版只会应用于当前笔刷上。
 
 
 
 
 
-----
 
 
 
=== 用法 ===
 
 
 
==== 方块 ====
 
 
 
使用方块的名字或ID(例如: <code>stone</code>)。要想获得更多信息请查看 [http://wiki.sk89q.com/wiki/WorldEdit/Block_data_syntax 方块数据用法] #### 多个蒙版 使用 <code>,</code>(或) 或者 <code>&amp;</code>(和) 来分割多个蒙版,举个例子: <code>grass,$desert</code> #### 参数 蒙版的参数应该写在方括号之中,例如: <code>#offset[0][5][3]</code>
 
 
 
 
 
-----
 
 
 
=== 设置蒙版 ===
 
 
 
==== <code>//gmask [masks...]</code> ====
 
 
 
权限: <code>worldedit.global-mask</code> 描述: 全局目标蒙版,应用到你做的所有编辑中,蒙版跟目标方块有关(即世界中的方块)。 #### <code>//gsmask [masks...]</code> 权限: <code>worldedit.global-mask</code><br />
 
描述: 全局资源蒙版,应用到你做的所有编辑中,蒙版跟资源方块有关(例如:你剪切板中的方块)<br />
 
#### <code>//mask [masks...]</code> 权限: <code>worldedit.brush.options.mask</code><br />
 
描述: 设置笔刷的目标蒙版 #### <code>//smask [masks...]</code> 权限: <code>worldedit.brush.options.mask</code><br />
 
描述: 设置笔刷的资源蒙版
 
 
 
=== [https://github.com/c7w/FastAsyncWorldedit/wiki/Commands#mask-commands- <code>&gt;&gt; 点这里来查看所有蒙版……</code>] ===
 
 
 
= WorldEdit World 与 Player =
 
WorldEdit 拥有插件自己提供的 Player 和 World 的类,一些方法就需要这个。
 
 
 
获得 WE 的 World 对象:
 
 
 
<source lang="java">WorldEdit.getInstance().getServer().getWorlds();
 
// 或者特别使用 Bukkit
 
BukkitUtil.getLocalWorld(bukkitWorld);</source>
 
获取玩家对象
 
  
<source lang="java">// Bukkit
+
==参考资料==
WorldEditPlugin worldEdit = (WorldEditPlugin) Bukkit.getServer().getPluginManager().getPlugin("WorldEdit");
+
* [https://github.com/boy0001/FastAsyncWorldedit/wiki Legacy Wiki(Primary)]
worldedit.wrapPlayer(bukkitPlayer);
+
* [https://wiki.intellectualsites.com/en/FastAsyncWorldEdit New Wiki]
// Forge
 
ForgeWorldEdit.inst.wrap(entityPlayer);
 
// FAWE 的变更
 
FawePlayer.wrap(uuid or username or actor or player object here).getPlayer();</source>
 
要想异步使用请查看,例如: <code>PlayerWrapper.wrap(player)</code> - [https://github.com/boy0001/FastAsyncWorldedit/blob/master/core/src/main/java/com/boydti/fawe/wrappers/PlayerWrapper.java PlayerWrapper (WorldEdit Player)] - [https://github.com/boy0001/FastAsyncWorldedit/blob/master/core/src/main/java/com/boydti/fawe/wrappers/WorldWrapper.java WorldWrapper (WorldEdit World)]
 

Latest revision as of 20:39, 21 October 2020

FastAsyncWorldEdit

FAWE 是 WorldEdit 的一款附属插件,它通过改变大量 WorldEdit 中的核心类,在大幅度提升原插件的性能的同时,也为其大量增添了新功能。

相关链接:

目前支持的平台

  • CraftBukkit
  • Spigot
  • Paper
  • Forge
  • Sponge

目前停止更新的旧平台:

  • Nukkit
  • Thermos

汉化

  • Jenkins 上从#1209号构建开始已经内置中文
  • 汉化文件的修改 Github

区域限制:

当前支持下列区域插件:

  • WorldGuard
  • Towny
  • GriefPrevention
  • PreciousStones
  • Factions (mcore, uuid, one)
  • Residence
  • Regios
  • PlotSquared
  • PlotMe

你可以在配置中禁用本项,也可以使用 /wea 或者 fawe.bypass 来跳过检查

记录与回滚操作

请在 config.yml 中启用 use-diskuse-database 两个选项来开启 FAWE 插件提供的记录与回滚操作。为了实现记录的功能,首先请安装 BlocksHub 插件,随后你就能使用以下记录插件之一来记录了:

  • CoreProtect
  • LogBlock
  • Prism
  • HawkEye

给予普通玩家使用 FAWE 回滚操作的权限并不危险,要想跳过记录请使用 //fast 命令

命令

总览

要想在游戏中查看这些命令的话,请使用 //help [类型|命令] ## 命令的用法
- <arg> - 一个必需参数
- [arg] - 一个可选参数
- <arg1|arg2> - 在这些选项中选择
- <arg=value> - 缺省值
- -a - 一条命令的标记,如 //<command> -a [命令的标记的值]

    1. 详阅
  • 未分类的命令
别称 权限 标记 使用方法
//cancel fawe.cancel 取消你当前正在进行的任务
/plot replaceall plots.replaceall 替换地皮世界中所有的方块
/plot createfromimage plots.createfromimage 从一张高度图图片开始世界生成: 更多信息


World Edit 命令

  • /we threads

权限worldedit.threads
说明: 显示出目前插件使用的所有线程

  • /we version

说明: 获取当前 WorldEdit / FAWE 插件的版本信息

  • /we help [<command>]

权限worldedit.help
说明: 显示 FAWE 插件的命令帮助信息

  • /we debugpaste

权限worldedit.debugpaste
说明: 将调试信息上传到 hastebin.com

  • /we changelog

权限worldedit.changelog
说明: 查看 FAWE 插件的更新日志

  • /we reload

权限worldedit.reload
说明: 重载插件配置

  • /we tz [timezone]

说明: 设定时区,方便为快照命名

  • /we cui

说明: 完成 CUI 信息交换(内部开发使用)

Utility 命令

(一些实用性的命令: 更多信息)

  • /remove <type> <radius>

权限worldedit.remove
描述: 移除所有指定类型的实体

  • //fill <block> <radius> [depth]

权限worldedit.fill
描述: 填充一块洞

  • //help [<command>]

描述: 显示 WorldEdit 插件的帮助命令

  • //drain <radius>

权限worldedit.drain
描述: 移除一片池塘内的水

  • //removenear <block> [size]

权限worldedit.removenear
描述: 移除你附近的方块

  • //fillr <block> <radius> [depth]

权限worldedit.fill.recursive
描述: 递归填充周围的洞

  • //removeabove [size] [height]

权限worldedit.removeabove
描述: 移除你头上方的方块

  • //fixlava <radius>

权限worldedit.fixlava
描述: 让岩浆静止

  • //removebelow [size] [height]

权限worldedit.removebelow
描述: 移除你脚下方的方块

  • //fixwater <radius>

权限worldedit.fixwater
描述: 让水静止

  • //green [radius] [-f]

权限worldedit.green
描述: 绿化半径中的区域

  • //replacenear <size> <from-id> <to-id> [-f]

权限worldedit.replacenear
描述: 替换附近的方块

  • //snow [radius]

权限worldedit.snow
描述: 模仿下雪

  • /butcher [radius] [-p] [-l] [-a] [-n] [-g] [-b] [-t] [-f] [-r]

权限worldedit.butcher
描述: 击杀附近的怪物,根据半径,如果没有特别给出半径的话则使用配置文件中的默认半径。
可用的标记:
-p 也击杀宠物
-n 也击杀 NPC
-g 也击杀铁傀儡
-a 也击杀动物。
-b 也击杀中立生物
-t 也击杀带有名字的怪物
-f 相当于这以前所有标记的混合
-r 也击杀盔甲架
-l 目前没有具体作用

  • //ex [radius]

权限worldedit.extinguish
描述: 熄灭周围的火

  • //thaw [radius]

权限worldedit.thaw
描述: 移除周围的区域中的雪与冰

  • //calc <expression>

权限worldedit.calc
描述: 求一个数学表达式的值

  • //confirm

描述: 确认一条命令

Region 命令

(一些对区域起作用的命令: 更多信息)

  • //replace [from-mask] <to-pattern> [-f]

权限worldedit.region.replace
说明: 用给定的方块替换选区中所有另一给定的方块

  • //stack [count] [direction] [-s] [-a] [-m]

权限worldedit.region.stack
说明: 堆叠复制选区中的内容
标记:
-s 将选区移动到最后一次被堆叠复制的区域
-a 跳过空气方块

  • //set [pattern]

权限worldedit.region.set
说明: 将选区填充为给定方块

  • //fall [replace] [-m]

权限worldedit.region.fall
说明: 让选区中的方块自然掉落
-m 标记仅会让方块在垂直方向上下落

  • //faces <block>

权限worldedit.region.faces
说明: 建造出选区的墙壁,天花板和地板

  • //center <block>

权限worldedit.region.center
说明: 填充出选区的中心方块

  • //hollow [<thickness>[ <block>]]

权限worldedit.region.hollow
说明: 将本区域设置为中空
可以设置“中空”的部分用什么方块来填充
厚度用[曼哈顿距离]来计算。

  • //smooth [iterations] [-n]

权限worldedit.region.smoothsnow
说明: 将区域平滑化
-n 标记仅更改自然生成的方块。
-s 标记只更改雪方块。

  • //nbtinfo

权限worldedit.nbtinfo
说明: 查看一个方块的NBT信息

  • //setskylight

权限worldedit.light.set
说明: 设置一个选区的天空亮度

  • //line <block> [thickness] [-h]

权限worldedit.region.line
说明: 以长方体选择区域的两个对角绘制出一条对角线线段。
仅能够在长方体选区中使用。
可用的标记:
-h 仅会生成外壳

  • //getlighting

权限worldedit.light.fix
说明: 获取某位置的亮度信息

  • //overlay <block>

权限worldedit.region.overlay
说明: 在给定区域的顶层方块上方覆盖给定方块

  • //wea

权限fawe.admin
说明: 跳过区域的权限检测限制

  • //wer

权限fawe.worldeditregion
说明: 将当前你有权限更改的区域设为选区

  • //fixlighting

权限worldedit.light.fix
说明: 修复某位置的光照

  • //removelight

权限worldedit.light.remove
说明: 移除选区中的光照

  • //curve <block> [thickness] [-h]

权限worldedit.region.curve
说明: 过选择的点画一条曲线。
只能在使用凸多面体选区类型时才能使用。
Flags:
-h 仅会生成外壳

  • //naturalize

权限worldedit.region.naturalize
说明: 顶层覆盖3层泥土,下面填充为石头

  • //walls <block>

权限worldedit.region.walls
说明: 围上选区的四边,即将选区用墙围起来

  • //setblocklight

权限worldedit.light.set
说明: 设置选区中的方块亮度

  • //lay <block>

权限worldedit.region.overlay
说明: 设置选区的顶层方块

  • //move [count] [direction] [leave-id] [-s]

权限worldedit.region.move
说明: 将选区中的内容移动。.
-s 标记会将选区设定到目标位置。
-b 也会复制生物群系
-e 忽略实体
-a 忽略空气
自动使用 <leave-id> 填充被移动区域。

  • //forest [type] [density]

权限worldedit.region.forest
说明: 在区域内生成森林

  • //flora [density]

权限worldedit.region.flora
说明: 在区域内生成植物群

  • //deform <expression> [-r] [-o]

权限worldedit.region.deform
说明: 使用给定的表达式使区域变形
表达式对每个方块都会执行,它可以
将方块的x,y,z修改到新方块的位置
来实现。详阅 tinyurl.com/wesyntax。

  • //regen [biome] [seed]

权限worldedit.regen
说明: 重新生成当前选区中的地图。
注意:这条命令会按照区块为单位来执行,
即会自动将选区内的所有区块自动重新生成。

Selection 命令

(改变你的选区位置,选区的模式或是查看关于你的选区的信息: 更多信息)

  • //count <block> [-d]

权限worldedit.analysis.count
说明: 为当前选区中某种类型的方块计数

  • //size [-c]

权限worldedit.selection.size
说明: 获取当前选区的信息

  • //expand <amount> [reverse-amount] <direction>

权限worldedit.selection.expand
说明: 延展选区区域

  • //shift <amount> [direction]

权限worldedit.selection.shift
说明: 移动选区区域

  • //sel [cuboid|extend|poly|ellipsoid|sphere|cyl|convex] [-d]

说明: 选择选区类型

  • //contract <amount> [reverse-amount] [direction]

权限worldedit.selection.contract
说明: 缩小选区区域

  • //pos1 [coordinates]

权限worldedit.selection.pos
说明: 设置选取点1

  • //pos2 [coordinates]

权限worldedit.selection.pos
说明: 设置选取点2

  • //chunk [x,z coordinates] [-s] [-c]

权限worldedit.selection.chunk
说明: 将选取范围设置为当前你所在的区块。
使用 -s 标记,则你目前选区范围会扩展到包含目前选区范围的全部区块
也可以使用给定的坐标,这会替代你的
当前位置。使用-c来指定区块坐标,
否则将自动使用全局坐标。
(举个例子,全局坐标5,5和 -c 0,0 所指代的位置是相同的)

  • //hpos1

权限worldedit.selection.hpos
说明: 将选取点1设置为看向的方块

  • //wand

权限worldedit.wand
说明: 获取魔杖物品

  • /toggleeditwand

权限worldedit.wand.toggle
说明: 切换编辑魔杖功能的启用与否

  • //hpos2

权限worldedit.selection.hpos
说明: 将选取点2设置为看向的方块

  • //outset <amount> [-h] [-v]

权限worldedit.selection.outset
说明: 使用给定的数值,在所有方向上延展选区。
可用标记:
-h 仅会延展横向
-v 仅会延展纵向

  • //distr [-c] [-d]

权限worldedit.analysis.distr
说明: 获得选区内方块的分布情况。
-c 标记会获得你剪切板内容的分布情况。
-d 标记会将数据值不同的方块分开统计

  • //inset <amount> [-h] [-v]

权限worldedit.selection.inset
说明: 使用给定的数值,在所有方向上缩小选区。
可用标记:
-h 仅会缩小横向
-v 仅会缩小纵向

History 命令

(能够撤销操作,反撤销操作,清除历史的相关命令: 更多信息)

  • //redo [times] [player]

权限worldedit.history.redo
说明: (从历史记录中)反撤销上个操作

  • //clearhistory

权限worldedit.history.clear
说明: 清除你的历史记录

  • //undo [times] [player]

权限worldedit.history.undo
说明: 撤销上个操作

  • //frb <user=Empire92> <radius=5> <time=3d4h>

权限worldedit.history.rollback
说明: 撤销某个给定的操作。 - 时间使用以下单位: s(秒), m(分钟), h(小时), d(天), y(年)。
- 从硬盘中导入: /frb #import

Schematic 命令

(跟 schematic 文件有关的命令)

  • /schematic load [<format>] <filename>

权限worldedit.clipboard.load, worldedit.schematic.load, worldedit.schematic.upload, worldedit.schematic.load.other
说明: 将某个schematic文件导入到你的剪切板中

  • /schematic delete <filename>

权限worldedit.schematic.delete
说明: 将某个schematic文件从文件列表中移除

  • /schematic list [mine|<filter>] [page=1] [-d] [-n] [-p]

权限worldedit.schematic.list
说明: 列出所有schematic路径下的可用文件
-p <页码数> 能够列出指定页面的文件
-f <format> 启用格式限制

  • /schematic save [<format>] <filename>

权限worldedit.clipboard.save, worldedit.schematic.save, worldedit.schematic.save.other
说明: 将你的剪切板中的内容储存到schematic文件中

  • /schematic remap

权限worldedit.schematic.remap
说明: 将剪切板在MCPE/PC的格式间进行转换

  • /schematic formats

权限worldedit.schematic.formats
说明: 列出所有可用的格式

  • /schematic loadall [<format>] <filename|url>

权限worldedit.clipboard.load, worldedit.schematic.load, worldedit.schematic.upload
说明: 读取多个剪切板
-r 标记可以启用随机位置旋转

Clipboard 命令

(跟复制和粘贴方块有关的命令: 更多信息)

  • //copy [-e] [-m]

权限worldedit.clipboard.copy
说明: 将选区中的内容复制到剪切板中
可用标记:
-e 跳过复制实体
-m 设置资源蒙版,蒙版外的方块会作为空气复制
-b 也会复制生物群系
警告:实体的粘贴不能通过命令撤销!

  • //flip [<direction>]

权限worldedit.clipboard.flip
说明: 以复制点为基点,对剪切板中的内容进行镜面翻转。

  • //rotate <y-axis> [<x-axis>] [<z-axis>]

权限worldedit.clipboard.rotate
说明: 在不产生破坏的情况下,旋转剪切板中的内容。
角度需要输入度数,正数代表进行顺时针旋转。你也可以堆叠进行多次旋转。我们并不接受非90度倍数的值,否则将不会起任何作用,所以输入的度数应该是90的倍数。

  • //lazycopy [-e] [-m]

权限worldedit.clipboard.lazycopy
说明: 将选区中的内容延迟复制到剪切板中
可用标记:
-e 跳过复制实体
-m 设置资源蒙版,蒙版外的方块会作为空气复制
-b 也会复制生物群系
警告:实体的粘贴不能通过命令撤销!

  • //place [-s] [-a] [-o]

权限worldedit.clipboard.place
说明: 在不应用任何变化(如旋转)的前提下,直接放置剪切板中的内容。
可用参数:
-a 跳过空气方块
-o 粘贴在原位置
-s 粘贴之后将选区设定在粘贴区域

  • //cut [leave-id] [-e] [-m]

权限worldedit.clipboard.cut
说明: 将选区剪切到粘贴板之中
可用参数:
-e 跳过复制实体
-m 设置资源蒙版,蒙版外的方块会作为空气复制
-b 也会复制生物群系
警告:实体的粘贴不能通过命令撤销!

  • /download

权限worldedit.clipboard.download
说明: 通过配置的网页接口下载剪切板的内容

  • /asset [category]

权限worldedit.clipboard.asset
说明: 将你的剪切板的内容保存到网页资源接口中

  • //paste [-s] [-a] [-o]

权限worldedit.clipboard.paste
说明: 粘贴剪切板的内容。
可用参数:
-a 跳过空气方块
-b 跳过粘贴生物群系
-e 跳过粘贴实体
-o 粘贴到原位置
-s 在粘贴之后将选区设定在粘贴区域

  • //lazycut [-e] [-m]

权限worldedit.clipboard.lazycut
说明: 将选区中的内容延迟剪切到剪切板之中
可用参数:
-e 跳过复制实体
-m 设置资源蒙版,蒙版外的方块会作为空气复制
-b 也会复制生物群系
警告:实体的粘贴不能通过命令撤销!

  • /clearclipboard

权限worldedit.clipboard.clear
说明: 清除你的剪切板

Generation 命令

(创建特殊结构或更多有关特性: 更多信息)

  • //image <imgur> [randomize=true] [complexity=100]

权限worldedit.generation.image
说明: 创建一张图片

  • //generate <block> <expression> [-h] [-r] [-o] [-c]

权限worldedit.generation.shape
说明: 根据表达式创建结构,表达式返回的值
应该是正数(返回true,如果选择点在结构内的话)
作为可选项,你可以设置目标方块的类型或数据。
可选参数:
-h 创建凹下去的结构
-r 使用原版Minecraft坐标
-o 与 -r 相似,但使用相对坐标。
-c 与 -r 相似,但相对坐标的中心不同。
如果你既没有没有输入 -r ,也没有输入 -o 的话,选区会自动映射为 -1..1
详见 tinyurl.com/wesyntax。

  • //cyl <block> <radius>[,<radius>] [height] [-h]

权限worldedit.generation.cylinder
说明: 生成圆柱体。
通过指定用逗号分隔的两个半径,
你能够创建椭圆体。
第一个参数指定南北距离,第二个参数指定东西距离。

  • //sphere <block> <radius>[,<radius>,<radius>] [raised?] [-h]

权限worldedit.generation.sphere
说明: 生成实心球。
通过指定用逗号分隔的三个半径,
你能够创建椭球体。椭球体半径的距离的指定顺序为:
南北,上下,东西。

  • //ore <mask> <pattern> <size> <freq> <rarity> <minY> <maxY>

权限worldedit.generation.ore
说明: 生成矿物

  • //caves [size=8] [freq=40] [rarity=7] [minY=8] [maxY=127] [sysFreq=1] [sysRarity=25] [pocketRarity=0] [pocketMin=0] [pocketMax=3]

权限worldedit.generation.caves
说明: 生成网状的洞穴结构

  • //hcyl <pattern> <radius>[,<radius>] [height]

权限worldedit.generation.cylinder
说明: 生成中空的圆柱体。
通过指定用逗号分隔的两个半径,
你能够创建椭圆体。
第一个参数指定南北距离,第二个参数指定东西距离。

  • //ores

权限worldedit.generation.ore
说明: 生成矿物

  • //hsphere <block> <radius>[,<radius>,<radius>] [raised?]

权限worldedit.generation.sphere
说明: 生成中空的球体。
通过指定用逗号分隔的三个半径,
你能够创建椭球体。椭球体半径的距离的指定顺序为:
南北,上下,东西。

  • /forestgen [size] [type] [density]

权限worldedit.generation.forest
说明: 生成森林

  • //hpyramid <block> <size>

权限worldedit.generation.pyramid
说明: 生成中空的金字塔

  • /pumpkins [size]

权限worldedit.generation.pumpkins
说明: 生成南瓜群

  • //pyramid <block> <size> [-h]

权限worldedit.generation.pyramid
说明: 生成填充过的金字塔

  • //generatebiome <biome> <expression> [-h] [-r] [-o] [-c]

权限worldedit.generation.shape, worldedit.biome.set
说明: 根据表达式创建结构,表达式返回的值
应该是正数(返回true,如果选择点在结构内的话)
作为选择项,你可以设置目标方块的类型或数据。
可选参数:
-h 创建凹下去的结构
-r 使用原版Minecraft坐标
-o 与 -r 相似,但使用相对坐标。
-c 与 -r 相似,但相对坐标的中心不同。
如果你既没有没有输入 -r ,也没有输入 -o 的话,选区会自动映射为 -1..1
详见 tinyurl.com/wesyntax。

Biome 命令

(更改当前生物群系,或查看当前或所有生物群系)

  • //setbiome <biome> [-p]

权限worldedit.biome.set
说明: 设置区域的生物群系。
默认来说,我们会将你选区中的所有方块直接设置为对应生物群系。
-p 标记则将选区所在区块设置为对应生物群系。

  • /biomeinfo [-p] [-t]

权限worldedit.biome.info
说明: 获取当前位置的生物群系。
默认来说,我们会检测你选区中所有的方块,列出所有包含的生物群系。
-t 则检测你目光指向的那个区块。
-p 会检查你当前所在的区块。

  • /biomelist [page]

权限worldedit.biome.list
说明: 获取所有可用的生物群系。

Anvil 命令

(操纵大量方块:更多信息)


  • /anvil count <ids> [-d]

权限worldedit.anvil.count
说明: 为选区中的方块计数

  • /anvil replace [from-block] <to-block>

权限worldedit.anvil.replace
说明: 用一种方块替换选区中的所有另一种方块

  • /anvil replaceall <folder> [from-block] <to-block> [-d] [-f]

权限worldedit.anvil.replaceall
说明: 用另一种方块替换选区中的所有方块
-d 标记会禁用通配符的匹配

  • /anvil copy

权限worldedit.anvil.copychunks
说明: 将区块延迟复制到你的anvil剪切板中

  • /anvil paste [-c]

权限worldedit.anvil.pastechunks
说明: 从anvil剪切板将内容粘贴出来。
-c 标记会调整将内容粘贴到区块中。

  • /anvil distr

权限worldedit.anvil.distr
说明: 用另一种方块替换选区中的所有方块

  • /anvil trimallplots

权限worldedit.anvil.trimallplots
说明: 修剪地皮世界中的区块
未认领的区块会被删除
未修改的区块会被删除
使用 -v 来删除没有人去过的区块

  • /anvil countall <folder> [hasSky] <id> [-d]

权限worldedit.anvil.countall
说明: 为世界中的方块计数

  • /anvil clear

权限worldedit.anvil.clear
说明: 清除选区的区块(不整理磁盘碎片,直接删除)

  • /anvil removelayers <id>

权限worldedit.anvil.removelayer
说明: 如果某一区块的顶层方块全部都与提供的方块类型匹配成功的话,就移除顶层方块。

  • /anvil replacepattern [from-mask] <to-pattern>

权限worldedit.anvil.replace
说明: 移除选区内所有匹配对应样式模板的方块

  • /anvil remapall <folder>

权限worldedit.anvil.remapall
说明: 将世界在MCPE和PC的存档格式之间转换

  • /anvil deletealloldregions <folder> <time>

权限worldedit.anvil.deletealloldregions
说明: 移除一段时间内没有人进入的区域
你可以使用秒 (s), 分钟 (m), 小时 (h), 天 (d), 周 (w),和 年 (y) 来计算时间
(请注意:月份不是计算时间的单位)
举个例子: 8h5m12s

  • /anvil replaceallpattern <folder> [from-block] <to-pattern> [-d] [-m]

权限worldedit.anvil.replaceall
说明: 将选区中所有的方块替换成另一种方块样式

  • /anvil deleteallunvisited <folder> <age-ticks> [file-age=60000]

权限worldedit.anvil.deleteallunvisited
说明: 会将满足以下条件之一的全部区块移除: 加载时间没有到指定整数游戏刻的区块(20t = 1s);
在创建后,持续时间 file-duration (ms) 内没有被玩家访问的;
在过去的 chunk-inactivity (ms)时间中没有被使用的。 因此,我们推荐的自动保存时间间隔便是 file-durationchunk-inactivity 的值。

Super Pickaxe 命令

(超级镐子相关命令: 更多信息)

  • /sp recur <radius>

权限worldedit.superpickaxe.recursive
说明: 启用递归超级镐子模式

  • /sp area <radius>

权限worldedit.superpickaxe.area
说明: 启用区域超级镐子模式

  • /sp single

权限worldedit.superpickaxe
说明: 启用单个方块的超级镐子模式


Navigation 命令

(关于玩家在地图上移动的相关命令: 更多信息)

  • /descend [# of floors]

权限worldedit.navigation.descend
说明: 向下降一层

  • /ascend [# of levels]

权限worldedit.navigation.ascend
说明: 向上升一层

  • /thru

权限worldedit.navigation.thru.command
说明: 穿过面前的墙壁

  • /jumpto [world,x,y,z]

权限worldedit.navigation.jumpto.command
说明: 传送到某一位置

  • /ceil [clearance] [-f] [-g]

权限worldedit.navigation.ceiling
说明: 前往当前的最顶层,即“天花板”上

  • /up <block> [-f] [-g]

权限worldedit.navigation.up
说明: 向上移动一段距离,并在脚下生成方块

  • /unstuck

权限worldedit.navigation.unstuck
说明: 在卡在方块中的情况下逃脱

Snapshot 命令

(列出,读取快照以及查看跟快照有关的信息)

  • /snapshotlist [num]

权限worldedit.snapshots.list
说明: 列出快照列表的对应页数

  • /snapshotafter <date>

权限worldedit.snapshots.restore
说明: 选择发布时间在该时间之后,距离时间最近的一个快照

  • /snapshotbefore <date>

权限worldedit.snapshots.restore
说明: 选择发布时间在该时间之前,距离时间最近的一个快照

  • /snapshotuse <snapshot>

权限worldedit.snapshots.restore
说明: 选择要使用的快照

  • /snapshotsel <index>

权限worldedit.snapshots.restore
说明: 选择根据列表ID排序的某一快照

Snapshot Util 命令

(更多信息)

  • /restore [snapshot]

权限worldedit.snapshots.restore
说明: 从某一快照恢复选区

Scripting 命令

(执行 CraftScript 脚本 更多信息)

  • /cs <filename> [args...]

权限worldedit.scripting.execute
说明: 执行一个 CraftScript 脚本

  • /.s [args...]

权限worldedit.scripting.execute
说明: 执行上一个 CraftScript 脚本

Chunk 命令

([旧版使用] 检索区块: 更多信息)

  • /chunkinfo

权限worldedit.chunkinfo
说明: 获得你当前所在的区块的有关信息

  • /listchunks

权限worldedit.listchunks
说明: 列出你的选区所在的所有区块

  • /delchunks

权限worldedit.delchunks
说明: 已过期,请使用 anvil 命令来执行对应操作

Options 命令

(玩家切换设置和物品信息)

  • //searchitem <query> [-b] [-i]

说明: 搜索某个物品。
Flags:
-b 仅搜索方块
-i 仅搜索物品

  • //gtransform [transform]

权限worldedit.global-trasnform
说明: 获取全局变换式

  • //toggleplace

说明: 在你当前位置和第一个选取点之间切换位置

  • //tips

说明: 切换FAWE提示是否开启

  • //gsmask [mask]

权限worldedit.global-mask
说明: 设置应用到你所有编辑的全局资源蒙版,任何作为源资源存储的方块数据均需要经过本蒙版判定(例如:判定方块能否被复制到剪切板中)

  • //gmask [mask]

权限worldedit.global-mask
说明: 设置应用给你所有编辑的全局目标蒙版,与上面一个指令相对的,所有你的目标性更改均需通过本蒙版的判定(例如:判定能否修改世界中的方块)

  • //fast [on|off]

权限worldedit.fast
说明: 切换FAWE插件是否进入快速模式,在该模式下你的操作不会记录到相关历史记录中,即无法进行撤销操作

Brush Options 命令

(工具命令)

  • /target [mode]

说明: 在不同的目标模式之间切换

  • /size [pattern]

权限worldedit.brush.options.size
说明: 设置笔刷大小

  • //listbrush [mine|<filter>] [page=1] [-d] [-n] [-p]

权限worldedit.brush.list
说明: 列出或搜索所有你能使用的笔刷
-p <页码数> 列出指定页面

  • /mask [mask]

权限worldedit.brush.options.mask
说明: 设置笔刷的目标蒙版

  • /range [pattern]

权限worldedit.brush.options.range
说明: 设置笔刷的范围

  • /transform [transform]

权限worldedit.brush.options.transform
说明: 设置笔刷的变换式

  • /mat [pattern]

权限worldedit.brush.options.material
说明: 设置笔刷的填充方块样式

  • /patterns [page=1|search|pattern]

说明: 决定被放置的方块样式
使用[括号]来输入参数
使用 , 来代表 或 的分割
例如: #surfacespread[10][#existing],andesite
更多信息: https://git.io/vSPmA

  • /savebrush [name]

权限worldedit.brush.save
说明: 保存你当前的笔刷
使用 -g 标记以储存到全局

  • /loadbrush [name]

权限worldedit.brush.load
说明: 读取笔刷

  • /transforms [page=1|search|transform]

说明: 变换方块被放置的方式
使用[括号]来输入参数
使用 , 来代表 或 的分割
使用 & 来表示 和 的分割
更多信息: https://git.io/v9KHO

  • /primary [brush arguments]

说明: 设置右键点击激活的笔刷

  • // [on|off]

权限worldedit.superpickaxe
说明: 切换是否开启超级镐子功能

  • /targetmask [mask]

说明: 设置目标蒙版

  • /none

说明: 从当前物品上解除绑定功能

  • /visualize [mode=0]

说明: 在不同的预览模式之间进行切换
0 = 没有预览
1 = 预览单个目标方块
2 = 用玻璃预览所有将会改变的方块

  • /scroll [none|clipboard|mask|pattern|range|size|visual|target]

说明: 在不同的目标模式之间进行切换

  • /secondary [brush arguments]

说明: 设置左键点击激活的笔刷

  • /smask [mask]

权限worldedit.brush.options.mask
说明: 设置笔刷的资源蒙版

  • /masks [page=1|search|mask]

说明: 查看所有用来决定方块能否被放置的蒙版
使用[括号]来输入参数
使用 , 来代表 或 的分割
使用 & 来表示 和 的分割
举个例子: >[stone,dirt],#light[0][5],$jungle
更多信息: https://git.io/v9r4K

Tool 命令

(将某些功能绑定到持有的物品之上: 更多信息)

  • /tool tree [type]

权限worldedit.tool.tree
说明: 生成树的工具

  • /tool repl <block>

权限worldedit.tool.replacer
说明: 方块替换工具

  • /tool info

权限worldedit.tool.info
说明: 方块信息工具

  • /tool lrbuild <leftclick block> <rightclick block>

权限worldedit.tool.lrbuild
说明: 大范围建筑工具

  • /tool cycler

权限worldedit.tool.data-cycler
说明: 方块数据值循环工具

  • /tool deltree

权限worldedit.tool.deltree
说明: 移除漂浮的树的工具

  • /tool inspect

权限worldedit.tool.inspect
说明: 选择检查笔刷

  • /tool floodfill <pattern> <range>

权限worldedit.tool.flood-fill
说明: 池塘填充工具

  • /tool farwand

权限worldedit.tool.farwand
说明: 远程选区工具

Brush 命令

(从远程建筑与涂画的工具。 更多信息)

  • /brush copypaste [depth=5]

权限worldedit.brush.copy
说明: 左键点击一个物体的底座来复制。
右键点击来粘贴
-r 标记能够在粘贴时应用随机旋转
注意:能和剪切板滚动一起搭配使用
视频: https://www.youtube.com/watch?v=RPZIaTbqoZw

  • /brush command <radius> [cmd1;cmd2...]

权限worldedit.brush.command
说明: 在点击的位置执行一条命令。
你的选区会延展到包括该点
可用的变量: {x}, {y}, {z}, {world}, {size}

  • /brush populateschematic <mask> <file|folder|url> [radius=30] [points=5] [-r]

权限worldedit.brush.populateschematic
说明: 选择分散型schematic笔刷。
-r 标记能够应用随机旋转

  • /brush scmd <scatter-radius> <points> <cmd-radius=1> <cmd1;cmd2...>

权限worldedit.brush.scattercommand
说明: 在表面的随机一点执行命令
分散的半径是每个点之间的最小距离
你的选区会延展到包括该点
可用的变量: {x}, {y}, {z}, {world}, {size}

  • /brush erode [radius=5]

权限worldedit.brush.erode
说明: 侵蚀地形

  • /brush pull [radius=5]

权限worldedit.brush.pull
说明: 将地形朝着你所在的方向隆起

  • /brush blendball [radius=5]

权限worldedit.brush.blendball
说明: 平滑化,混合化地形
图片: https://i.imgur.com/cNUQUkj.png -> https://i.imgur.com/hFOFsNf.png

  • /brush stencil <pattern> [radius=5] [file|#clipboard|imgur=null] [rotation=360] [yscale=1.0]

权限worldedit.brush.stencil
说明: 使用高度图来绘制出地形表面。
-w 标记仅会应用于最大饱和度
-r 标记会应用随机旋转

  • /brush splatter <pattern> [radius=5] [seeds=1] [recursion=5] [solid=true]

权限worldedit.brush.splatter
说明: 设置物体表面为随机方块。
图片: https://i.imgur.com/hMD29oO.png
使用示例: /br splatter stone,dirt 30 15
注意:种子决定着会有多少斑点,递归次数决定着其大小,solid决定着模型是按照每个种子应用还是按照每个方块应用。

  • /brush cylinder <block> [radius=2] [height=1] [-h]

权限worldedit.brush.cylinder
说明: 创建圆柱体。
-h 标记会创建中空的圆柱体。

  • /brush shatter <pattern> [radius=10] [count=10]

权限worldedit.brush.shatter
说明: 创建将地形分成多个部分的不均匀的线
图片: https://i.imgur.com/2xKsZf2.png

  • /brush circle <pattern> [radius=5]

权限worldedit.brush.sphere
说明: 围绕着你看向的方向创建一个圆。
注意:无视笔刷的半径,并且启用预览可以帮助你操作的可能结果

  • /brush smooth [size=2] [iterations=4] [-n]

权限worldedit.brush.smooth
说明: 选择地形平滑化笔刷。
-n 标记会只更改自然生成的方块。

  • /brush ex [radius=5]

权限worldedit.brush.ex
说明: 火焰熄灭笔刷的简写

  • /brush gravity [radius=5] [-h]

权限worldedit.brush.gravity
说明: 这个笔刷会模仿重力的作用。
-h 标记能够让它从世界的最大Y坐标开始计算,而不是点击方块的Y坐标。

  • /brush sspl <pattern> [size=0] [tension=0] [bias=0] [continuity=0] [quality=10]

权限worldedit.brush.surfacespline
说明: 在地面上创建一条曲线。
视频: https://www.youtube.com/watch?v=zSN-2jJxXlM

  • /brush spline <pattern>

权限worldedit.brush.spline
说明: 点击一些物体,然后再次点击相同的方块来让你的物体之间进行连接。
笔刷半径设置过小,或是点击位置错误或导致变形。形状必须是简单的线条或者封闭的环形。
图片: http://i.imgur.com/CeRYAoV.jpg -> http://i.imgur.com/jtM0jA4.png
图片2: http://i.imgur.com/bUeyc72.png -> http://i.imgur.com/tg6MkcF.png

  • /brush surface <pattern> [radius=5]

权限worldedit.brush.surface
说明: 使用高度图来画出表面。
-w 标记仅会应用于最大饱和度
-r 标记会应用随机旋转

  • /brush layer <radius> [color|<pattern1> <patern2>...]

权限worldedit.brush.layer
说明: 使用覆盖层来替换地形。
示例:/br layer 5 95:1 95:2 35:15 - 会在地面上放置一些覆盖层
图片: https://i.imgur.com/XV0vYoX.png

  • /brush sphere <pattern> [radius=2] [-h]

权限worldedit.brush.sphere
说明: 创建一个球体。
-h 标记能够创建中空的球体。

  • /brush clipboard

权限worldedit.brush.clipboard
说明: 选择剪切板笔刷。
-a 标记会使其不会粘贴空气方块。
不输入 -p 标记,粘贴后的内容的中心会出现在目标位置。输入该标记后,粘贴内容所在的位置就会根据你在复制内容时所站的位置而定义了。

  • /brush recursive <pattern-to> [radius=5]

权限worldedit.brush.recursive
说明: 设置所有连接起来的方块。
-d 标记会应用深度优先的顺序
注意:设置蒙版可以递归指定的方块

  • /brush scatter <pattern> [radius=5] [points=5] [distance=1] [-o]

权限worldedit.brush.scatter
说明: 在地面上随机散布方块。
-o 标记会覆盖原方块
视频: https://youtu.be/RPZIaTbqoZw?t=34s

  • /brush line <pattern> [radius=0] [-h] [-s] [-f]

权限worldedit.brush.line
说明: 创建线段。
-h 标记仅会创建其外壳
-s 标记在创建之后会选择点击的点。
-f 标记会创建平坦的线段。

  • /brush height [radius=5] [file|#clipboard|imgur=null] [rotation=0] [yscale=1.00] [-h]

权限worldedit.brush.height
说明: 这个笔刷可以使地形上升或下降。
- -r 标记启用随机坐标旋转
- -l 标记使得该笔刷也会在雪层中工作
- -s 标记禁用平滑
注意!注意!如果你要降低地形的话请将yscale的值设置为负数!
在雪层中应用的图片: https://i.imgur.com/Hrzn0I4.png

  • /brush butcher [radius=5] [-p] [-l] [-a] [-n] [-g] [-b] [-t] [-f] [-r]

权限worldedit.brush.butcher
说明: 击杀在指定的半径内的怪物。
可用的标记:
-p 也击杀宠物
-n 也击杀 NPC
-g 也击杀铁傀儡
-a 也击杀动物。
-b 也击杀中立生物
-t 也击杀带有名字的怪物
-f 相当于这以前所有标记的混合
-r 也击杀盔甲架
-l 目前无任何作用

  • /brush flatten [radius=5] [file|#clipboard|imgur=null] [rotation=0] [yscale=1.00] [-h]

权限worldedit.brush.height
说明: 平坦笔刷,可以使地形平坦
- -r 标记启用随机坐标旋转
- -l 标记使得该笔刷也会在雪层中工作
- -s 标记禁用平滑

  • /brush cliff [radius=5] [file|#clipboard|imgur=null] [rotation=0] [yscale=1.00] [-h]

权限worldedit.brush.height
说明: 这个笔刷可以平坦地形且创建悬崖。
- -r 标记启用随机坐标旋转
- -l 标记使得该笔刷也会在雪层中工作
- -s 标记禁用平滑

蒙版 /Masks  

(关于蒙版方面的帮助 更多信息)

蒙版决定了方块能否被放置
- 使用 [brackets] 来输入参数 - 使用 , 来代表 或 的分割
- 使用 & 来代表 与 的分割
例如: >[stone,dirt],#light[0][5],$jungle 更多信息: https://git.io/v9r4K

  • #offset <dx> <dy> <dz> <mask>

说明: 使蒙版偏移对应坐标值

  • % <chance>

说明: 百分比几率

  • #id

说明: 限制初始ID

  • #data

说明: 限制初始数据值

  • { <min> <max>

说明: 限制方块与初始方块的距离范围

  • #existing

说明: 设置限制为非空气方块

  • $ <biome>

说明: 限制操作在特殊的生物群系中,要想列出所有的生物群系请使用 //biomelist

  • #surface

说明: 限制操作在表面方块上(任何接触空气的固体方块)

  • ! <mask>

说明: 取对应蒙版的“非”值

  • = <expression>

说明: 表达式蒙版

  • #region

说明: 在某个提供的区域内部

  • \ <min> <max>

说明: 限制为特殊的地形坡度
-o 标记仅仅会覆盖,举个例子: /[0d][45d]
作用解释:能够选出任何坡度在0-45度之间的方块
示例:/[3][20]
作用解释:能够选出任何坡度在3-20度之间的方块

  • #dregion

说明: 在玩家的选取之中

  • #xaxis

说明: 限制为特殊的x轴坐标位置

  • #yaxis

说明: 限制为特殊的y轴坐标位置

  • #opacity <min> <max>

说明: 限制为指定的不透明度等级

  • #light <min> <max>

说明: 限制为指定的光亮等级

  • #blocklight <min> <max>

说明: 限制为指定的方块亮度等级

  • #haslight

说明: 限制为方块是否拥有光照(天空或环境)

  • ~ <mask> [min=1] [max=8]

说明: 邻近的其他方块的数量

  • #brightness <min> <max>

说明: 限制指定的方块光照等级

  • #nolight

说明: 限制方块需要没有光亮(天空或环境)

  • #skylight <min> <max>

说明: 限制需要指定天空光亮等级

  • #simplex <scale=10> <min=0> <max=100>

说明: 使用噪声算法作为蒙版

  • #zaxis

说明: 限制为特殊的z轴坐标位置

  • > <mask>

说明: 限制在某一指定方块的上面

  • #wall

说明: 限制为墙壁(任意方块,东西南北任意一面为空气)

  • | <mask> <min> <max>

说明: 限制旁边位置拥有指定数量的其他方块

  • #iddata

说明: 限制指定的方块ID与数据值

  • < <mask>

说明: 在某一指定方块之下

  • #solid

说明: 限制仅操作固体方块

样式 /Patterns

(对于某些方块样式信息的帮助。 更多信息)

样式决定放置什么方块
- 使用 [brackets] 输入参数
- 使用 , 来代表 或 的分割
举个例子: #surfacespread[10][#existing],andesite
更多信息: https://git.io/vSPmA

  • #offset <dx> <dy> <dz> <pattern>

说明: 使样式偏移对应坐标值

  • #mask <mask> <pattern-true> <pattern-false>

说明: 根据蒙版应用样式

  • #id <pattern>

说明: 只改变方块ID

  • #spread <dx> <dy> <dz> <pattern>

说明: 随机扩散方块

  • #buffer <pattern>

说明: 只有当样式在使用时才放置方块
如果你不想点击某些地方两次时,用它和笔刷搭配

  • #clipboard

说明: 使用你剪切板中的方块作为样式

  • #relative <pattern>

说明: 将样式偏移到你所点击的位置

  • #data <pattern>

说明: 只会改变方块的数据值

  • #biome <biome>

说明: 设置生物群系

  • #existing

说明: 仅更改已经存在的方块

  • = <expression>

说明: 样式表达式: http://wiki.sk89q.com/wiki/WorldEdit/Expression_syntax

  • #simplex <scale=10> <pattern>

说明: 使用噪声算法来随机放置方块

  • #averagecolor <color> [randomize=true] [max-complexity=100]

说明: 在已经存在的方块和颜色之间平均化

  • #desaturate [percent=100] [randomize=true] [max-complexity=100]

说明: 减小已经存在的方块的饱和度

  • #darken [randomize=true] [max-complexity=100]

说明: 减小已经存在的方块的亮度

  • #fullcopy [schem|folder|url=#copy] [rotate=false] [flip=false]

说明: 将你完整的剪切板填充到方块上

  • #buffer2d <pattern>

说明: 只有在一列中的样式被使用时才会放置方块

  • #lighten [randomize=true] [max-complexity=100]

说明: 增大已存在的方块的亮度

  • #saturate <color> [randomize=true] [max-complexity=100]

说明: 增加已经存在的方块的饱和度

  • #anglecolor [randomize=true] [max-complexity=100]

说明: 根据坡度角的大小,计算出的较正常方块暗的方块

  • #iddatamask <bitmask=15> <pattern>

说明: 使用样式的ID和目的方块的数据值放置方块
- 用于替换半砖或其他方块数据值需要修改的方块

  • #angledata

说明: 根据坡度角提供方块数据值

  • #!x <pattern>

说明: 本样式不会提供z轴的信息。
举个例子: #!x[#!z[#~[#l3d[pattern]]]]

  • #!y <pattern>

说明: 本样式不会提供y轴的信息

  • #linear <pattern>

说明: 循环从样式列表中读取并设置方块

  • #!z <pattern>

说明: 本样式不会提供z轴的信息

  • #surfacespread <distance> <pattern>

说明: 随机改变地面上一个方块的位置

  • #linear3d <pattern>

说明: 使用 x,y,z 坐标选定一个来自列表中的方块

  • #solidspread <dx> <dy> <dz> <pattern>

说明: 随机传播固体方块

  • #color <color>

说明: 使用接近于指定颜色的方块

变换式 /Transforms

(变换式的有关帮助。 更多信息)

变换式会在放置方块之前,对其作出某种变化
- 在 [brackets] 中输入参数
- 使用 , 来代表 或 的分割
- 使用 & 来代表 与 的分割
更多信息: https://git.io/v9KHO


  • #offset <dx> <dy> <dz> [transform]

说明: 偏移变换式,将方块偏移指定坐标后放置

  • #rotate <rotateX> <rotateY> <rotateZ> [transform]

说明: 所有的变化都会被绕着指定位置旋转

  • #scale <dx> <dy> <dz> [transform]

说明: 所有的变化都会按比例进行缩放

  • #pattern <pattern> [transform]

说明: 使用给定的方块样式

  • #spread <dx> <dy> <dz> [transform]

说明: 随机偏移变换式

  • #linear <transform>

说明: 从变换式列表中循环选择变换式

  • #linear3d <transform>

说明: 使用 x,y,z 坐标选定一个来自列表中的变换式

配置

FAWE 安装后,即使不经过配置,也已经非常高效了,但是在配置或微调操作限制和队列操作的相关设置后,FAWE的效率还会有一定的提升。请参阅下列的内容以及默认配置文件中的注释行。

如果你在修改了配置之后,发现之后插件不正常工作,那么请把你微调的那一项设置改回默认。

要想重置 config.yml 文件的话,请删除它,然后重启服务器或使用 /fawe 命令重新载入 FAWE 插件。

异步操作

WorldEdit 插件会在放置方块之前,尝试将所有编辑操作全部储存在内存之中。

WorldEdit 也会在内存中储存撤销方块等等历史记录,在大型编辑时这会增加内存的需求,甚至会导致服务器内存溢出崩溃,或导致编辑失败。

FAWE 则对速度有极大的提升,它将每个编辑操作都分割到了异步线程上进行。

本插件会在计算完成之前,部分计算完成之后就开始放置方块。

这让全局编辑的整体速度得到有效提升。

同时,因为方块在有关计算完毕之后就开始放置,它们不会占用内存的空间。

FAWE 也能够通过配置将撤销方块(等有关历史记录)储存在硬盘之上,这可以与其他性能的改善搭配使用,最终使 FAWE 插件能够在极小占用的情况下完成数倍于 Worldedit 插件的编辑内容。

操作限制设置

这些设置能够让你控制某些用户组单次编辑可以放置的方块数目。

“default”(默认)小节就是为非管理组用户和没有权限跳过限制的用户所准备的。

查看 fawe.bypassfawe.admin 权限来获取更多信息。

你也能通过使用权限节点来定义某些特定用户组的限制,请查看下方的默认配置文件中的注释行。

队列设置

这小节中的设置能够让你微调异步队列操作,影响内存的使用情况与编辑速度。

本地队列

FAWE 会将每个编辑命令放在分割的异步线程之中,以此来代替把操作塞进服务器主线程的做法,队列中的方块由每个玩家的本地队列来处理。

在队列中,方块按照区域来排序,这能够让 FAWE 使用更高效的优化算法,最终将方块放置(分配)进世界之中。

举个例子,WorldEdit会使用插件本体来执行光照和物理效果,然后发包,最后改变每一个方块。

但是取而代之的是,FAWE将它队列中的方块按照区块分开检测,使用更高效的优化算法,将方块放置进世界中。

在编辑开始时,本地队列进入未完成阶段。

当需要处理的队列方块为简单的 //set 或者是 //copy 这种类型的命令时,方块已经直接准备好放置了。

当使用其他命令(例如 //smooth 或 //deform)来编辑方块时,方块的变化要依赖于世界中的其他方块,并且编辑所涉及的方块可能要改变好几次。

(一般来说,本地化队列的所有编辑都能够在涉及64个区块内完成)

当编辑全部完成之后,本地队列变化成完成状态。

全局队列

FAWE 使用全局队列来放置当前激活的本地队列中的编辑内容。

全局队列按照编辑的优先级来处理编辑顺序,所以提交时间最长的编辑会首先开始进行。全局队列中的方块放置是在服务器的主线程上工作的。

FAWE 首先会放置完成状态的本地队列中的方块。因此,在放置未完成状态的本地队列中的方块之前,完成状态的本地队列列表必须是空的。

全局队列和本地队列相互连接配合,便实现了编辑的成功进行。

(从内部代码实现的角度来说,我们使用两个队列<queue>来存储相关队列内容,一个是完成状态的本地队列,另一个是未完成状态的)

效率改善

FAWE 也尝试通过“在没有完成状态的本地队列时,放置未完成状态的本地队列中的方块”的方式来改善插件的效率。

  • target–size

FAWE 使用 target–size 来控制放置未完成队列中的方块数目,同时确保将要被放置的方块将不再因后续的计算而改变。

虽说在大多数情况下,类似于 //smooth 或 //deform 的这些命令,它们涉及的区块数目远小于64个区块,但是,如果在指令仍在计算方块更改时,涉及的方块数目便已经超过了本选项设置的限度,这些指令的最终实现效果便可能不是那么理想。

这是因为,这些命令所涉及的方块改变会参考世界中其他位置方块的情况,并且所涉及的一些方块可能要经历多次改变。

而在这种设置的情况下,在附近的64个区块进入处理队列之后,其他方块被重新计算、修改的可能性便被抹除了。

但是对于简单的操作来说,不会存在这种问题,例如 //copy 和 //set,因为这些命令涉及的方块不会进行多次的改变。

如果队列中不存在完成的本地队列正等待放置方块,且队列中排队的区块数目大于等于target-size选项所设置的值的话,全局队列会直接开始处理仍然在计算中的可放置方块。

调高这项设置能够确保像 //smooth 和 //deform 这样的命令稳定,但调低这项设置也能确保全局队列一直在放置可用的方块,而不是处于闲置状态。

默认的 target–size 的值是64.

如果没有 target–size 选项的话,使用 /fastmode 运行巨大的编辑会导致未完成的队列的填充速度比 max–wait–ms 的清空队列速度更快。

减小 target–size 选项的值,可能会使例如 //smooth 和 //deform 这些命令的成效变差,因为在方块确定被放置之后,将花费在计算重新改变方块上的时间被取消了。

同时,也正因为这些命令会依赖于其他位置的方块,如果 target–size 设置不够大的话,与先经过完全计算,再开始放置方块的模式相比,直接从未完成队列中放置方块这种模式最后所表现出的效果可能有一些差异。

这可能会导致命令的最终效果不正确。

所以请将 target–size 选项的值设定的适当大,来避免这个问题。

target–size 的值设置的过大可能收效不大,因为大多数涉及的方块编辑操作都能限制在64个区块之中。

同时如果将它设置的很大的话,就会降低 FAWE 阻止大型编辑使服务器内存溢出的能力。

  • max–wait–ms

FAWE 对于放置已经完成计算的相关编辑方块来说,也是非常高效的。

但是,等待计算完成既耗费时间,也占用内存。

因此,本设置就是用来避免编辑计算没有完全完成时,部分已经完成计算的方块一直闲置在内存中的问题。

本选项主要用来保持全局队列持续处于放置方块的状态之中。

全局队列会在队列中没有处于完成的本地队列,并且全局队列处于空闲状态时间的比 max–wait–ms 所设置的时间长(单位为毫秒)时,开始放置仍然在处理中的方块。

max–wait–ms 设置也能解决区块读取连接超时的问题。通常区块的读取速度都是小于一秒的,所以默认的 max–wait–ms 的值是 1000,用于避免编辑冻结或是区块读取错误。

如果区块没有及时加载的话,请尝试将这个数值调大。

默认配置文件

默认的配置文件如下面的代码所示。

请注意,服务器文件夹内生成的配置文件是不带注释的。

# 前六项是不能配置的
issues: "https://github.com/boy0001/FastAsyncWorldedit/issues"
wiki: "https://github.com/boy0001/FastAsyncWorldedit/wiki/"
date: "27 Aug 2017 14:00:00 GMT"
build: "https://ci.athion.net/job/FastAsyncWorldEdit/<build>"
commit: "https://github.com/boy0001/FastAsyncWorldedit/commit/<hash>"
platform: "<platform>"
# 可用选项:de
# 请发起pull request来贡献翻译: https://github.com/boy0001/FastAsyncWorldedit/new/master/core/src/main/resources
language: ''
# 是否允许插件自动更新
update: true
# 是否将插件的使用统计发送到 mcstats.org
metrics: true
# FAWE 在没有足够的可用内存时,是否会跳过处理相关区块以防止崩溃
prevent-crashes: false
# 设置为 true 来启用支持 WorldEdit 的相关插件对区域的限制。(例如: PlotSquared 或 WorldGuard)
# 要想在区域中启用 WorldEdit 的话,用户需要相关权限:
# fawe.<plugin>  权限。查看权限页面来获取所有目前支持的区域插件。
region-restrictions: true
# FAWE 在内存占用超过这个百分比时会取消非管理员做出的编辑
#  - 使用 `/wea` 或 `//fast` 或 `fawe.bypass` 命令跳过检测
#  - 设置为 100 或 -1 禁用本设置。
max-memory-percent: 95

clipboard:
  # 是否将用户剪切板内容储存到硬盘上,而非储存在内存中
  #  - 执行剪切板操作相关命令的速度将会有一定程度的下降
  #  - 剪切板中每个方块占用 2 字节的存储空间
  use-disk: true
  # 是否将剪切板压缩,以减少文件大小:
  #  - TODO: 目前还没有实现在硬盘上的压缩随机访问
  #  - 0 = 不进行压缩
  #  - 1 = 快速压缩
  #  - 2-17 = 较慢速度压缩
  compression-level: 1
  # 用户剪切板信息在删除之前,储存在硬盘上的时间,单位为天
  delete-after-days: 1

lighting:
  # 是否应该在重新计算光照完成后再发包
  delay-packet-sending: true
  async: true
  # 重新计算光照的模式:
  #  - 0 = 无(不重新计算光照)
  #  - 1 = 优化(重新计算光源和改变的方块的光照)
  #  - 2 = 全局(缓慢重新计算每个方块的光照)
  mode: 1

# 一般的游戏刻限制(对 WorldEdit 来说不必要,但是可以防止滥用)
tick-limiter:
  # 是否启用限制
  enabled: true
  # 限制间隔,单位游戏刻
  interval: 20
  # 在每个间隔间最大的掉落方块数目(每区块)
  falling: 64
  # 每个间隔中最大执行的物理效果数目(每区块)
  physics: 8192
  # 每间隔最大生成的物品数目(每区块)
  items: 256

web:
  # 剪切板的网页接口
  #  - 所有的剪切板都匿名私有储存
  #  - 下载可以被用户删除
  #  - 支持剪切板的上传,下载和保存
  url: "http://empcraft.com/fawe/"
  # 资源的网页接口
  #  - 所有剪切板都是组织好后公开的
  #  - 资源能够被搜索,选择和下载
  assets: "http://empcraft.com/assetpack/"

extent:
  # 当这些插件拖慢了 WorldEdit 的操作速度时不要提示控制台
  #  - 如果你需要改变本选项时你会在控制台收到提示信息
  allowed-plugins: []
  # 第三方延展插件安装后是否应该显示调试信息
  debug: true

# 仍在开发实验中的选项,你可以试着用用
experimental:
  # [不安全] 直接修改区域文件(已过期——请使用Anvil命令)
  #  - 使用不当会导致世界错误!
  anvil-queue-mode: false
  # [安全] 动态增加渲染的区块的数目
  #  - 需要 Paper 服务端: ci.destroystokyo.com/job/PaperSpigot/
  #  - 将你的服务器视距上设置为 1 (spigot.yml, server.properties)
  #  - 取决于服务器的 tps 和玩家的移动
  #  - 请给我们提供反馈信息
  dynamic-chunk-rendering: false

# 队列相关配置,与 FAWE 放置区块的方法相关联
queue:
  # 这个数值应该和你处理器拥有的核数相同
  #  - 如果你需要可信度高的 `/timings` 的话,将此选项设置为1
  parallel-threads: 8
  progress:
    # 显示一位用户的编辑的进度的恒定 title
    #  - false = 禁用
    #  - title = 显示进度title
    #  - chat = 在聊天栏中显示进度
    display: "false"
    # 编辑进度多久显示一次
    interval: 1
    # 发送进度的延迟,单位毫秒(防止编辑进度刷屏的情况发生)
    delay: 5000
  # 在编辑比这数目还多的区块时:
  #  - FAWE 会在所有运算完成之前直接开始放置方块
  #  - 大些的值会些微减少CPU的运算时间
  #  - 小写的值可以减少内存使用
  #  - 太小的值会导致一些命令执行效果变差(例如 deform)
  target-size: 64
  # 不管一项编辑是否计算处理完成,强制 FAWE 开始放置区块
  #  - 大些的值会在一定程度上减少CPU的运算时间
  #  - 小些的值可以减少内存使用
  #  - 太小的值会导致一些操作执行效果变差(例如 deform)
  max-wait-ms: 1000
  # 增加或减少队列强度(毫秒) [-50,50]:
  #     0 = 平衡性能与稳定性
  #     -10 = 为区块放置少分配 10ms
  # 值太大的话会造成卡顿(可能你感觉不到)
  # 值太小的话编辑进度会很慢
  extra-time-ms: 0
  # 在提速操作之前读取多少数量的区块
  #  - 值太小的话会导致FAWE等待主线程的请求
  #  - 值太大的话会占用更多内存,但并不会感觉变快
  preload-chunks: 32
  # 放弃已经闲置了一段时间(ms)的编辑
  #  - 例如:一款插件创建了 EditSession 但没有使用它做任何事
  #  - 这只会对不正确使用 WorldEdit 的旧版 API 的插件起作用
  discard-after-ms: 60000

history:
  # 历史记录是否应储存在硬盘上:
  #  - 空闲大量的内存
  #  - 服务器重启可以存留历史记录
  #  - 可以无限次撤销
  #  - 不会影响编辑的性能,依照 `combine-stages`
  use-disk: true
  # 使用数据库来储存硬盘储存的概要:
  #  - 启用检测和回档
  #  - 不会影响性能
  use-database: true
  # 在分配时记录到历史中:
  #  - 速度更快,因为它避免了重复的方块检查
  #  - 压缩可能会糟糕一些,因为分配顺序不同
  combine-stages: true
  # 大些的压缩等级减少历史记录的大小,但以占用 CPU 使用率为代价
  # 0 = 不压缩字节数组(最快)
  # 1 = 1 级快速压缩(默认)
  # 2 = 2 x 快速
  # 3 = 3 x 快速
  # 4 = 1 x 中速, 1 x 快速
  # 5 = 1 x 中速, 2 x 快速
  # 6 = 1 x 中速, 3 x 快速
  # 7 = 1 x 慢速, 1 x 中速, 1 x 快速
  # 8 = 1 x 慢速, 1 x 中速, 2 x 快速
  # 9 = 1 x 慢速, 1 x 中速, 3 x 快速 (最佳压缩文件)
  # 注意:如果你使用硬盘的话,请最好使用压缩,因为较小的文件可以储存的更快
  compression-level: 3
  # 压缩的缓冲大小:
  #  - 较大 = 更好的比率,但是占用更多内存
  #  - 必须在以下范围中 [64, 33554432]
  buffer-size: 531441
  # 编辑时最大等待一个区块加载的时间,单位是毫秒。
  #  (50ms = 1 游戏刻, 0 = 最快).
  #  默认值 100 应该对大多数情况来说都是安全的。
  # 
  # 需要读取区块的操作(例如:复制)在没有及时读取区块时
  # 会使用上个区块作为过滤器,这会出现大量复制出的方块。
  # 每个读取区块的操作在读取区块时通常都需要25-50ms,在服务器卡顿时甚至更多。
  # 所以即使设置100ms的等待时间,如果区块在10ms内加载完毕了的话,也不需要等待100ms。
  # 
  # 本值也可以作为万一区块无法读取时(不管是什么原因)操作超时的值
  # 如果操作超时了的话,操作就会使用上个区块作为过滤器,
  # 然后显示出一条错误信息,在这种情况下,你需要要么将选区调整的更小,
  # 要么将本项的值设置的大一些。
  # 如果设置为 0,这个值的处理速度会很快,因为它既不会阻止读取区块,也不会等待。
  chunk-wait-ms: 1000
  # 在几天之后删除硬盘上的历史记录
  delete-after-days: 7
  # 在玩家登出时是否删除内存中的历史记录(不影响硬盘存储)
  delete-on-logout: true
  # 对于一些使用 WorldEdit 的插件来说,历史记录是否默认启用:
  #  - 禁用本项速度会更快
  #  - 使用 FAWE API 的插件不会受影响
  enable-for-console: true
  # 是否储存反撤销的相关信息:
  #  - 历史记录文件要大大约 20%
  #  - 允许使用 /redo 命令
  store-redo: true
  # 仅记录所有比 4096x256x256 小的编辑:
  #  - 减少历史记录文件的大小大概10%
  small-edits: false

# 一些路径的文件夹名
paths:
  # 将任何Minecraft或Mod的Jar文件放在这里来使用方块的材质
  textures: "textures"
  heightmap: "heightmap"
  history: "history"
  # 群组服务器可以使用相同的剪切板
  clipboard: "clipboard"
  # 是否分离每个玩家schematic文件的路径
  per-player-schematics: true
# "default" 权限组会影响没有特殊限制权限的用户。
# 要想给某人不同的权限配置,请复制默认限制组
# 然后重新给这个权限组命个名(例如:newbie)。然后给予用户限制的
# 权限节点,使用该限制名(例如: fawe.limit.newbie  )
limits:
  default:
    # 能够最多同时运行的操作(例如:命令)
    max-actions: 1
    # 每次最大改变的方块数量(例如:使用 `//set stone` )。
    max-changes: 50000000
    # 每次最大检测的方块数量(例如:使用 `//count stone` 不会改变方块的命令)
    max-checks: 50000000
    # 一次更改失败的最大次数(例如:玩家没有访问该区域的权限)
    max-fails: 50000000
    # 最大允许的笔刷递归次数(例如: `//brush smooth` )
    max-iterations: 1000
    # 一次操作最大能够允许的实体数目(例如:牛)
    max-entities: 1337
    # 包括 Banner, Beacon, BrewingStand, Chest, CommandBlock, 
    # CreatureSpawner, Dispenser, Dropper, EndGateway, Furnace, Hopper, Jukebox, 
    # NoteBlock, Sign, Skull, Structure 的最大方块状态
    max-blockstates: 1337
    # 玩家历史文件的最大尺寸,单位是MB:
    #  - 超过这个尺寸的历史文件,不管是在硬盘上还是内存中都会被删除
    max-history-mb: -1
    # //calc 能够执行的每次操作的最大时间,单位毫秒 
    max-expression-ms: 50
    # 动画化方块放置:
    #  - 为方块放置增加延迟(ms/方块)
    #  - 使用虚伪的延迟会导致使用更多CPU与内存
    speed-reduction: 0
    # 放置区块,而不是单个方块:
    #  - 禁用本项会大幅度降低性能
    #  - 只有在与动画化方块放置冲突时才禁用本项
    fast-placement: true
    # WorldEdit 应该使用玩家的物品栏放置物品吗?
    # 0 = 不使用物品栏(创造模式)
    # 1 = 移除和放置都使用物品栏(免费建筑区)
    # 2 = 仅放置使用物品栏(生存模式)
    inventory-mode: 0
    # 大型的编辑是否需要确认(需要区块数目大于16384)
    confirm-large: true

Bukkit API

插件开发相关,暂略

参考资料