• 欢迎来到Minecraft插件百科!
  • 对百科编辑一脸懵逼?帮助:快速入门带您快速熟悉百科编辑!
  • 因近日遭受攻击,百科现已限制编辑,有意编辑请加入插件百科企鹅群:223812289

WorldEdit:修订间差异

来自Minecraft插件百科
跳转到导航 跳转到搜索
→‎剪贴板:​ 指令格式规范化
无编辑摘要
 
(未显示11个用户的180个中间版本)
第1行: 第1行:
{{模板:待完善}}
{{急需改进|页面冗长,需要拆分子页面(例如[[WorldEdit/命令]])|部分内容过时,需要更新}}
{{Bukkit Plugin Infobox
{{Bukkit Plugin Infobox
|版本=6.1
|图标=[[文件:WorldEdit Logo.png]]
|兼容服务端版本=1.8.8
|版本=7.2.11或者更新
|网址=http://dev.bukkit.org/bukkit-plugins/worldedit/}}
|兼容服务端版本=1.12、1.13、1.14、1.15、1.16等
[[Category:整地]][[Category:管理]][[Category:创世]][[Category:传送]][[Category:信息]]
|网址=http://dev.bukkit.org/bukkit-plugins/worldedit/
[[文件:WorldEdit Logo.png|缩略图|右|WorldEdit图标]]
}}
<br />
'''WorldEdit''',简称'''WE''',常被称为'''创世神''',是Minecraft的常用插件和mod,且已兼容Forge和Fabric。本页参照官方文档,对WorldEdit(创世神)的命令(指令)进行了详细的介绍。
 
== 安装 ==
 
=== Bukkit / Spigot / Paper ===
这些是用于服务器的。
# 下载WorldEdit 您可以在官网下载,也可在网页查找,官网下载:http://dev.bukkit.org/bukkit-plugins/worldedit/files/
# 解压压缩包(如果为压缩文件)
# 将jar文件放进plugins文件夹
# 重启服务器
 
=== Forge和Fabric ===
对于Forge或Fabric版本,直接将mod包放在mods文件夹下即可。具体方法,同安装其他模组方法相同,在此不赘述。
 
=== 如何显示选区? ===
如要显示你选择的选区的边界,你需要安装WorldEditCUI,该模组需要Fabric。对于1.12.2以前的版本,你需要安装WorldEditCUI,该模组基于LiteLoader(也有Forge版的)。
 
== 配置 ==
 
{{info|本段内容需要更新与整理。}}
=== 会话 ===
在你创建选区或者在游戏内改变你的首选项时,你的相关信息会被储存在一个临时会话中,这个会话在你在线期间一直会处于激活状态。当你断开连接时,你的会话会在被保留10分钟被删除,你可以重新登录来保留你的会话,每个人连接到服务器时的会话是互相分离的(仅限多人游戏)。
 
会话包括:
 
* 你的当前选区
* 你的操作历史
* 你的方块修改上限
* 你选择的用于恢复的快照
 
=== 历史 ===
你的前15个操作会被保存在你的操作历史中。操作历史会记录WorldEdit改变的方块和之前的方块。如果你希望撤销一个修改,在聊天框中输入//undo。如果你改变了想法,你可以使用//redo来重做上一个操作。


=安装=
如果你需要清除你的历史记录,使用/clearhistory命令。
<br />
# 下载WorldEdit http://dev.bukkit.org/bukkit-plugins/worldedit/files/ <br />
# 解压压缩包(如果为压缩文件) <br />
# 将jar文件放进plugins文件夹 <br />
# 重启服务器 <br />
<br />


=命令=
=== 方块支持 ===
WorldEdit对于不同平台,不同版本以及你的不同配置有不同的方块支持等级。


====参数格式对照====
如果WorldEdit不支持你的平台,你会注意到一些问题:
为便于理解命令写法,每种参数使用特定的格式表示
{| class="wikitable"
|-
! 参数 !! 例子 !! 说明
|-
| <''参数''> || <''数量''> || 必须填写的参数,内容为参数中说明的,如数量可以为1,2,3等
|-
| [''参数''] || [''数量''] || 非必须填写的参数,内容为参数中说明的,如数量可以为1,2,3等,如不填写会由插件进行判定或使用默认值
|-
|
<参数A|参数B>
|| <cuboid|extend>
|| 需要从给出的多个参数中选择一个填写,必须性依情况不同
|-
| 参数'
|| cuboid'
|| 参数为给出的字符串,使用时须原样输入
|-
| [-参数A参数B]
|| [-hb]
|| 参数为可以使用的标签,从多个单字符中选择需要一个或多个输入,可以输入在命令的任何位置,如[-hb]可以输入-h,-b或者-h -b
|}


===限制===
* 如果没有正确的支持,箱子,熔炉等在复制时不会保存他们的库存
{| class="wikitable"
* 如果没有正确的支持,在撤销对于箱子,熔炉等的改变时有可能使他们的内容丢失
|-
! 命令 !! 参数 !! 介绍
|-
| //limit || <''限制''> || 设置大部分操作方块修改数量的最大上限,只对使用者有效,你可以使用这个命令来避免严重后果的错误,如果在配置文件中设置了最大上限,此命令设置的上限不会覆盖配置文件中设定的的上限
|}


===历史===
{| class="wikitable"
{| class="wikitable"
! width="160"| 平台
! 状态
|-
|-
! 命令 !! 参数 !! 介绍
| Bukkit
|-
| Bukkit平台支持需要你使用与你CraftBukkit相对应版本的WorldEdit。WorldEdit 拥有需要特定版本的Bukkit来使用的“NMS 方块”或“适配器”(较新版本中)代码。 每个WorldEdit版本会有一个对应最新Bukkit版本的它们的列表。
| //undo || [''步数''] || 撤销你的上一个(或几个)操作
|-
| //redo || [''步数''] || 重做你上一个(或几个)被撤销的操作
|-
| /clearhistory ||  || 清除你的历史记录
|}


===选区===
如果出现问题,你可能需要升级或降级你的WorldEdit。
{| class="wikitable"
|-
|-
! 命令 !! 参数 !! 介绍
| Spigot
| 见 Bukkit。
|-
|-
| //wand ||  || 给予你编辑工具(默认为木斧)使用这个工具左键点击来选择第一个位置,右键点击来选择第二个位置
| Minecraft Forge
| 在WorldEdit 6及以上完全支持。
|-
|-
| /toggleeditwand ||  || 切换选择工具模式,使你可以正常使用作为选择工具的物品
| Fabric Loader
| 完全支持。
|-
|-
| //sel ||
| MinecraftEdu
<cuboid|extend|poly|ellipsoid|sphere|cyl>
| MinecraftEdu 是 Forge 版 WorldEdit的修改,平台支持随MCEdu提供的版本而改变。
|| 设置选区使用的形状
|-
|-
| //desel ||  || 清除当前的选区
| MCPC+
| 大部分版本支持。
|-
|-
| //pos1 ||  || 将你站立的方块上方的方块的位置设置为第一个选区位置
| Cauldron
| WorldEdit 5 尚未支持。WorldEdit 6 及以上如果安装Forge版本的WorldEdit即可以完全支持。推荐在使用 WorldEdit 6 及以上时同时安装 Forge 与 Bukkit 版 WorldEdit。
|-
|-
| //pos2 ||  || 将你站立的方块上方的方块的位置设置为第二个选区位置
| LiteLoader
| 这是一个非官方平台的 WorldEdit,暂时没有关于支持的相关信息。
|-
|-
| //hpos1 ||  || 将你指针所指的方块的位置设置为第一个选区位置
| Canary
|-
| 这是一个非官方平台的 WorldEdit,暂时没有关于支持的相关信息。
| //hpos2 ||  || 将你指针所指的方块的位置设置为第二个选区位置
|-
| //expand || <''数量''> || 向你所看的方向扩大选区范围
|-
| //expand || <''数量''> <''方向''> || 向指定方向扩大选区范围 (可用方向有 north,south,east,west,up,down)
|-
| //expand || <''数量''> <''反方向数量''> [''方向''] || 同时向两个方向扩大选区范围
|-
| //expand || vert || 将选区扩大到从天空到基岩
|-
| //contract || <''数量''> || 向你所看的方向缩小选区范围
|-
| //contract || <''数量''> <''方向''> || 向指定方向缩小选区范围 (可用方向有 north,south,east,west,up,down)
|-
| //contract || <''数量''> <''反方向数量''> [''方向''] || 同时向两个方向缩小选区范围
|-
| //outset || [-hv] <''数量''> || 向所有方向扩大选区范围
|-
| //inset || [-hv] <''数量''> || 向所有方向缩小选区范围
|-
| //shift || <''数量''> [''方向''] || 移动选区范围,不移动选区中的内容
|-
| //size ||  || 得到当前选区的大小
|-
| //count || <''方块ID''> || 计算选区内指定方块的数量
|-
| //distr || [-c] || 计算选区内的方块分布比例
|}
|}


===选区操作===
=== 物品支持 ===
{| class="wikitable"
在版本5.4及以上,所有支持自定义方块的平台(主要Bukkit)会支持储存在方块内的物品。
|-
 
! 命令 !! 参数 !! 介绍
之前的版本仅有粗略的物品支持,但仅限于第三方修改添加并放置在箱子内的物品(第三方自定义方块完全不被支持)。
|-
 
| //set || <''方块ID''> || 将选区内的所有方块设定为指定方块
=== 服务器配置 ===
|-
在你安装WorldEdit后第一次运行服务器时,在'''plugins/WorldEdit/config.yml'''下会生成 config.yml 文件。你可以使用这个文件来配置WorldEdit的各个设置。
| //replace || <''到方块ID''> || 替换所有非空气方块为指定方块
 
|-
==== 格式 ====
| //replace || <''从方块ID''> <''到方块ID''> || 将所有指定方块替换成另一个指定方块
 
|-
文件使用的是YAML格式,所以你必须遵守这些规则:
| //overlay || <''方块ID''> || 将指定方块放在选区内所有方块上方
* '''不要使用制表符''' 你必须使用空格否则Bukkit会报错。如果你使用像Notepad++(推荐Windows用户使用)等编辑器,你必须将它设置成“使用空格替换制表符”。在Notepad++中,这一项可以在 设置>首选项>语言菜单 中修改。
|-
* 不要去掉缩进。某些项目因为是其他项目的子项目因此才有缩进(如“max-blocks-changed”是“limits”分类下的一项)
| //walls || <''方块ID''> || 用指定方块在选区四周建立墙壁(不包括屋顶与地面)
* 如果你想在将文件正式放进WorldEdit之前检查一下,可以将它粘贴到 http://yaml-online-parser.appspot.com/ 来看一下是否提示“ERROR:”。
|-
* <nowiki>#</nowiki> 开头的行是注释所以可以被忽略。
| //outline || <''方块ID''> || 用指定方块在选区周围建立墙壁,屋顶与地面
 
|-
==== 配置项目 ====
| //smooth || [''迭代次数''] || 平滑化选区的高度图
|-
| //deform ||  || 按照几何表达式使选区内容变形
|-
| //hollow ||  || 使选区内部的物体空心
|-
| //regen ||  || 重新生成选择区域
|-
| //move || [''数量''] [''方向''] [''留存方块ID''] || 移动选区内容,可以指定一个方块来填充移动后留空的区域
|-
| //stack || [''数量''] [''方向''] || 叠加选区内容
|-
| //naturalize ||  || 将选区表面3格设定为泥土,下面设定为原石
|}


===剪贴板===
注意:以下的配置项目中每多一个点,说明你需要将它比上一项缩进更多一层。


{| class="wikitable"
{| class="wikitable"
! width="240"| 配置项
! width="100"| 数据种类
! width="80"| 默认
! 介绍
|-
|-
! 命令 !! 参数 !! 介绍
| wand-item || integer || 271 || 魔杖工具,即使用左键与右键点击来选择选区的工具,使用的物品ID。默认为木斧。
|-
|-
| //copy || || 复制当前选区内容,注意你与选区的相对位置将被储存
| shell-save-type || ''bash'' 或 ''bat'' || || 使用的脚本文件格式。'''/delchunks'''指令会使用这项。
|-
|-
| //cut || || 剪切当前选区内容
| debug || true/false || false || 如果开启,每个指令完成使用的时间会被在每个指令使用后显示。
|-
|-
| //paste || [-ao] || 粘贴剪贴板内容。如果你使用-a标签,空气方块将会被忽略
! class="hl2" colspan="4"| 限制
|-
|-
| //rotate || <''角度''> || 旋转剪贴板内容
| limits.max-blocks-changed.maximum || integer || -1 || 每次操作可以改变的方块数上限。这一项的上限是一个用户不能自行设定超过的上限。如果你想设定默认值(对单个用户的),使用''default-max-blocks-changed''。-1的数值表示无上限。
|-
|-
| //flip || [''方向''] || 翻转剪贴板内容
| limits.max-blocks-changed.default || integer || -1 || 默认方块修改数上限。如果这个数值比''max-blocks-changed''设定的数值高,该上限会覆盖此上限。-1的数值表示无上限。
|-
|-
| //schematic 或 //schem || save [''格式''] <''文件名''> || 将剪贴板内容保存为schematic文件(mcedit是目前唯一格式)
| limits.max-radius || integer || -1 || 使用半径参数的指令可以使用的最大上限。使用-1来设定无上限。
|-
|-
| //schematic 或 //schem || load [''格式''] <''文件名''> || 将schematic文件加载到剪贴板
| limits.max-super-pickaxe-size || integer || 5 || 超级镐子最大可以使用的范围。
|-
|-
| //schematic 或 //schem || list || 显示所有schematic文件列表
| limits.disallowed-blocks || 方块ID列表 || (一个列表) || 一个不能被使用的方块和物品的列表。注意''//stack''指令不遵守这个配置。
|-
|-
| //schematic 或 //schem || formats || 显示所有可用的schematic格式
! class="hl2" colspan="4"| 使用背包
|-
| /clearclipboard || || 清空你的剪贴板内容
|}
 
===生成===
 
{| class="wikitable"
|-
|-
! 命令 !! 参数 !! 介绍
| use-inventory.enable || true/false || false || 从玩家的背包得到所有需要的方块。
|-
|-
| //generate || <方块ID> <方程> || 根据给出的方程生成形状
| use-inventory.override || true/false || true || 启用'''worldedit.inventory.unrestricted'''权限,使一个玩家可以越过''use-inventory''开启时的限制。
|-
|-
| //hcyl || <方块ID> <半径> [高度] || 生成一个竖直的空心圆柱体
! class="hl2" colspan="4"| 记录
|-
|-
| //cyl || <方块ID> <半径> [高度] || 生成一个竖直的实心圆柱体
| logging.log-commands || true/false || false || 选择是否在后台记录使用的指令。
|-
|-
| //sphere || <方块ID> <半径> [""yes""(是否生成在上方)] || 生成一个球体
| logging.file || string || || 放置记录命令使用的文件的路径。使用时''log-commands''必须开启。
|-
|-
| //hsphere || <方块ID> <半径> [""yes""(是否生成在上方)] || 生成一个空心球体
! class="hl2" colspan="4"| 超级镐子
|-
|-
| //pyramid || <方块ID> <大小> || 生成一座金字塔
| super-pickaxe.drop-items || true/false || true || 使用单方块超级镐子时是否掉落方块。
|-
|-
| //hpyramid || <方块ID> <大小> || 生成一座空心金字塔
| super-pickaxe.many-drop-items || true/false || false || 使用非单方块镐子时是否掉落方块。注意这些模式下可能会有大量方块被破坏并且掉落过多的方块物品。
|-
|-
| //forestgen || [大小] [种类] [密度] || 生成一片森林
! class="hl2" colspan="4"| 快照
|-
|-
| //pumpkins || [大小] || 生成一片南瓜地
| snapshots.directory || string || || 读取快照的路径。除非使用了绝对路径,这个路径是与服务jar所在路径相对的。
|}
 
===效用性===
 
{| class="wikitable"
|-
|-
! 命令 !! 参数 !! 介绍
! class="hl2" colspan="4"| 导航魔杖
|-
|-
| /toggleplace || || 在第一个选择点与你的位置之间切换
| navigation-wand.item || integer || 345 || 绑定/jumpto(左键)和/thru(右键),使用的工具。默认物品为指南针。
|-
|-
| //fill || <方块> <半径> [深度] || 填充一个洞
| navigation-wand.max-distance || integer || 100 || 导航工具可以使用的最大距离。
|-
|-
| //fillr || <方块> <半径> || 以递归模式填充完全一个洞
! class="hl2" colspan="4"| 脚本
|-
|-
| //drain || <半径> || 吸干附近的水或岩浆
| scripting.timeout || integer || 3000 || CraftScript运行的最大时长(毫秒)。
|-
|-
| /fixwater || <半径> || 平整附近的水面
| scripting.dir || string || craftscripts || 存放脚本的路径。
|-
|-
| /fixlava || <半径> || 平整附近的岩浆表面
! class="hl2" colspan="4"| 保存
|-
|-
| /removeabove || [大小] [高度] || 移除你上方的方块
| saving.dir || string || schematics || 保存schematic文件的位置。
|-
|-
| /removebelow || [大小] [高度] || 移除你下方的方块
! class="hl2" colspan="4"| 历史
|-
|-
| /replacenear || <大小> <从方块ID> <到方块ID> || 替换附近的方块
| history.Size || integer || 15 || 撤销历史存储数
|-
|-
| /removenear || [方块] [范围] || 移除附近的方块
| history.expiration || integer || 10 || 撤销历史过期时间
|-
|-
| /snow || [半径] || 模拟降雪
! class="hl2" colspan="4"| 屠杀
|-
|-
| /thaw || [半径] || 融化附近的积雪
| butcher.butcher-default-radius || integer || -1 || 杀死怪物的范围,-1为无上限。
|-
|-
| //ex || [范围] || 扑灭附近的火焰
|-
| /butcher || [半径] || 杀死附近的生物
|-
| /remove || <种类> <范围> || 清除附近的实体,种类有"items"(物品),"arrows"(箭),"boats"(船),"minecarts(矿车)","tnt"或"xp"(经验球)
|-
| //green ||  || 绿化附近
|}
|}


===区块工具===
如果需要在游戏内重置WorldEdit的配置,可以使用<code>/reloadwe</code>来重载插件。


{| class="wikitable"
=== 使用背包 ===
|-
!  命令 !! 参数 !! 介绍
|-
| /chunkinfo ||  || 得到你目前所在区块的文件名
|-
| /listchunks ||  || 显示使用的区块的列表
|-
| /delchunks ||  || 生成一个删除区块的脚本
|}


===超级镐子===
开启背包使用模式会使WorldEdit强制只从玩家的背包提取方块。此外,如果玩家的背包有空间,方块在被替换或破坏时会被“采集”并放置进玩家的背包中。


{| class="wikitable"
如果一个方块不能被找到(比如玩家没有更多的那种方块了),操作会继续执行单并不能放置更多的方块(至少那一种)。玩家在最后会收到缺少的方块列表。如果一个方块需要被放置在另一个方块上(比如火把)但并不能放置支撑方块,操作会在放置支撑方块被放置之前被打断。在失败的情况下,//undo和//redo可以用来重复一个操作。当一个方块因为被破坏而被放置到玩家背包时,它会是一个被采集过的方块,或者有些情况下,没有方块。玻璃和书架会被给予,水方块和岩浆方块不会,并且在放置时不需要提供。注意箱子不会被正确复制,并在被移除时掉落里面的物品,如此可以防止利用复制与粘贴来复制物品。背包使用功能被编译在WorldEdit的很深层,所以所有指令都能使用。
|-
! 命令 !! 参数 !! 介绍
|-
| // ||  || 调整超级镐子状态
|-
| /sp single ||  || 切换至单方块超级镐子模式
|-
| /sp area || <范围> || 切换至范围性超级镐子模式
|-
| /sp recur || <范围> || 切换至范围性递归超级镐子模式
|}


===工具===
如果你想一些用户不使用他们的背包,可以在配置中启用背包使用豁免权限的设置并给出'''worldedit.inventory.unrestricted'''权限。
== 选区用法及命令 ==
详见 [[WorldEdit/命令]]


{| class="wikitable"
== 从快照恢复 ==
|-
! 命令 !! 参数 !! 介绍
|-
| /tool
|| <''repl''|''cycler''|''floodfill''|''brush''|''lrbuild''|''tree''|''deltree''|''farward''|''info''>
|| 选择要绑定的工具
|-
| /none ||  || 切换至无工具
|-
| /info ||  || 切换至信息工具
|-
| /tree || [种类] || 切换至树木工具,可用树木种类 [''tree'', ''regular'', ''big'', ''bigtree'', ''redwood'', ''sequoia'', ''tallredwood'', ''tallsequoia'', ''birch'', ''white'', ''whitebark'', ''pine'', ''randredwood'', ''randomredwood'', ''anyredwood'', ''rand'', ''random'']
|-
| //repl || <方块ID> || 切换至方块替换器工具
|-
| //cycler ||  || 切换到数据值滚动工具
|-
| //tool brush
|| <''sphere''|''smooth''|''gravity''|''cylinder''|''clipboard''|''ex''>
|| 用/tool 命令选择刷子 (见 /brush)
|}


===刷子===
WorldEdit一个非常强大的功能是它可以将你选区定义的范围加载,并在不关闭服务器或使用外部编辑器的情况下从一个备份恢复它。很多问题都可以使用这个方法轻易解决,从撤销熊孩子的破坏到修复地图存储故障甚至回滚一个你放弃的作品都能使用这个方法完成。


{| class="wikitable"
=== 配置快照 ===
|-
! 命令 !! 参数 !! 介绍
|-
| /brush sphere || [-h] <方块ID> <范围> || 切换至球体刷子工具
|-
| /brush cylinder || [-h] <方块ID> <范围> [高度] || 切换至圆柱体刷子工具
|-
| /brush clipboard ||  || 切换至剪贴板刷子工具
|-
| /brush smooth || <范围> [迭代次数] || 切换至平滑刷子工具
|-
| /size || <范围> || 修改当前刷子的范围
|-
| //mat || <方块ID> || 修改当前刷子使用的材料
|-
| //mask ||  || 清除蒙版
|-
| //mask || <蒙版> || 设置蒙版
|-
| //gmask || <蒙版> || 设置全局蒙版
|}


===传送===
提示:Minecraft 1.3 加入的新世界格式从WorldEdit 4.1开始被支持。


{| class="wikitable"
为了能让WorldEdit读取你的备份,你需要选择一个存放备份文件的路径。设置完成后,把地图的副本或压缩过的地图副本放进备份文件夹即可。以下是一个整理备份文件夹方法的例子。
|-
! 命令 !! 参数 !! 介绍
|-
| /unstuck ||  || 传送至最近的空位
|-
| /ascend ||  || 向上传送一层
|-
| /descend ||  || 向下传送一层
|-
| /ceil || [''clearance''] || 传送至顶部
|-
| /thru ||  || 穿过所指的墙壁
|-
| /jumpto ||  || 传送至所指的方块
|-
| /up || [距离] || 向上传送一段距离
|}


===快照===
* backups/ (这个是存储备份的文件夹)
** world/ (这个是地图名)
*** 2010-06-23-12-00-00.zip
*** 2010-06-22-12-00-00/
*** 2010-06-21-12-00-00.zip
*** 2010-06-20-12-00-00/
** world_nether/ (另一个地图)
*** 2011-09-21-01-59-00.zip
*** 2011-09-28-18-30-00/


{| class="wikitable"
;例子:配置文件条目示例
|-
:directory: backups/world
! 命令 !! 参数 !! 介绍
|-
| //restore || [快照名] || 从指定的快照恢复
|-
| //snapshot use || <快照名> || 使用特定的快照
|-
| //snapshot list || [数量] || 显示最新的几个快照
|-
| //snapshot before || <日期> || 找到给出日期之前的第一个快照
|-
| //snapshot after || <日期> || 找到给出日期之后的第一个快照
|}


===脚本===
你可以混合或者组合不同种类的备份,WorldEdit都可以读取。你需要在配置文件中设置存储备份的文件夹的路径参数来使WorldEdit知道快照文件夹的位置。注意冒号与路径之间需要留出一个空格,否则你会收到"Snapshot/backup restore not configured." 的错误消息。你可以使用相对路径也可以使用绝对路径。相对路径使用你的server.jar文件所在的位置作为起始点。


{| class="wikitable"
如果你想让WorldEdit恢复的越快越好,你可能需要考虑将备份放到一个高速硬盘上。
|-
! 命令 !! 参数 !! 介绍
|-
| /cs || <脚本名> [参数...] || 执行一个脚本
|-
| /.s || [参数...] || 用新的参数执行最后执行的脚本
|-
| /<脚本名>.js || [参数...] || 执行一个JS脚本
|}


===普命令===
==== 文件名 ====


{| class="wikitable"
WorldEdit需要一个特定的文件夹与文件的命名方式。因为它会使用文件名来确定哪个备份是新的,哪个备份是旧的。目前WorldEdit不会使用文件的修改日期因为这个日期不是一直准确的(尤其是当你开始大批复制文件的时候),所以WorldEdit会以文件名倒序排列(Z到A)并选出最上方的一项。所以最好的命名方法是在名字里包扩用零填充的数字,比如YYYY-MM-DD。
|-
! 命令 !! 参数 !! 介绍
|-
| /searchitem ||  || 用名字搜索一个物品
|-
| /worldedit ||  || WorldEdit命令表
|-
| /worldedit help || [命令] || 显示给出的命令的介绍,或在没有给出命令时列出所有可用命令(同//help)
|-
| //worldedit reload ||  || 重新载入WorldEdit配置文件
|-
| //worldedit version ||  || 显示WorldEdit版本
|-
| //worldedit tz ||  || 暂时性设置你的时区
|-
| //fast ||  || 切换高速性能模式
|}


===生物群系===
提示:如果你使用的是 *nix 或 BSA ,你可以使用以下指令来创建有符合规则文件名的ZIP文件
<code>zip -v backups/`date "+%Y-%m-%d-%H-%M-%S"`.zip -r world</code>


{| class="wikitable"
==== 支持的存储档格式 ====
|-
! 命令 !! 参数 !! 介绍
|-
| /biome || || 显示你所在位置的生物群系
|-
| /biomelist || || 显示所有可用的生物群系
|-
| /biomeinfo || [-pt] || 显示所指方块所在位置的生物群系
|-
| //setbiome || [-p] <生物群系> || 设置选区为指定生物群系 -p 参数设置你所在位置的生物群系
|}


=权限=
目前WorldEdit仅支持ZIP文件。TAR文件不会被支持因为TAR格式没有中央索引,这样WorldEdit就必须通读整个压缩文件来找到一个特定的文件。因为Minecraft将每个区块储存在单独的文件中,而且一个地图有许多区块,使用像ZIP这样支持随机访问的格式是必须的。


<pre style="color: red">此列表与上部分列表有些出入(命令数量,标示)且有可能略过期,需要进一步检查</pre>
提示:压缩你的地图会使它需要更多CPU计算,所以你应该考虑创建没有压缩的存储档(仅作为存储用)。
每个命令可以使用的标示以及介绍见'''命令'''部分


==命令权限节点==
===== ZIP =====
{| class="wikitable"
|-
! 命令 !! 权限 !! 其他写法
|-
| /biomeinfo || worldedit.biome.info || //biomeinfo
|-
| //setbiome || worldedit.biome.set || //setbiome
|-
| /biomelist || worldedit.biome.list || /biomelist<br />/biomels
|-
| /chuckinfo || worldedit.chunkinfo || /chunkinfo
|-
| /listchunks || worldedit.listchunks || /listchunks
|-
| /delchunks || worldedit.delchunks || /delchunks
|-
| //cut || worldedit.clipboard.cut || //cut
|-
| //paste || worldedit.clipboard.paste || //paste
|-
| //schematic ||  || //schematic<br />//schem
|-
|  //schematic formats|| worldedit.schematic.formats || //schematic formats<br />//schematic listformats<br />//schematic f
|-
| //schematic load || worldedit.clipboard.load<br />worldedit.schematic.load || //schematic load <br /> //schematic l
|-
| //schematic list || worldedit.schematic.list || //schematic list<br />//schematic all<br />//schematic ls
|-
| //schematic save || worldedit.clipboard.save<br />worldedit.schematic.save || //schematic save<br />//schematic s
|-
| /clearclipboard || worldedit.clipboard.clear || /clearclipboard
|-
| //load || worldedit.clipboard.load || //load
|-
| //save || worldedit.clipboard.save || //save
|-
| //copy || worldedit.clipboard.copy || //copy
|-
| //flip || worldedit.clipboatd.flip || //flip
|-
| //rotate || worldedit.clipboard.rotate || //rotate
|-
| /we ||  || //we<br />/worldedit
|-
| /we reload || worldedit.reload || /we reload
|-
| /we cui ||  || /we cui
|-
| /we tz ||  || /we tz
|-
| /we version ||  || /we version<br />/we ver
|-
| /we help || worldedit.help || /we help
|-
| //fast || worldedit.fast || //fast
|-
| //gmask || worldedit.global-mask || //gmask<br />/gmask
|-
| /toggleplace ||  || //toggleplace<br />/toggleplace
|-
| //searchitem ||  || //searchitem<br />//l<br />//search<br />/searchitem
|-
| //limit || worldedit.limit || //limit
|-
| //hcyl || worldedit.generation.cylinder || //hcyl
|-
| //cyl || worldedit.generation.cylinder || //cyl
|-
| //hsphere || worldedit.generation.sphere || //hsphere
|-
| //sphere || worldedit.generation.sphere || //sphere
|-
| /forestgen || worldedit.generation.forest || /forestgen
|-
| /pumpkins || worldedit.generation.pinpkins || /pumpkins
|-
| //pyramid || worldedit.generation.pyramid || //pyramid
|-
| //hpyramid || worldedit.generation.pyramid || //hpyramid
|-
| //generate || worldedit.generation.shape || //generate<br />//gen<br />//g
|-
| //generatebiome || worldedit.generation.shape<br />worldedit.biome.set || //generatebiome<br />//genbiome<br />//gb
|-
| //undo || worldedit.history.undo || //undo<br />/undo
|-
| //redo || worldedit.history.redo || //redo<br />/redo
|-
| //clearhistory || worldedit.history.clear || //clearhistory<br />/clearhistory
|-
| /unstuck || worldedit.navigation.unstuck || /unstuck<br/>/!
|-
| /ascend || worldedit.navigation.ascend || /ascend<br />/asc
|-
| /descend || worldedit.navigation.descend || /descend<br />/desc
|-
| /ceil || worldedit.navigation.ceiling || /ceil
|-
| /thru || worldedit.navigation.thru.command || /thru
|-
| /jumpto || worldedit.navigation.jumpto.command || /jumpto<br />/j
|-
| /up || worldedit.navigation.up || /up
|-
| //hollow || worldedit.region.hollow || //hollow
|-
| //line || worldedit.region.line || //line
|-
| //curve || worldedit.region.curve || //curve
|-
| //overlay || worldedit.region.overlay || //overlay
|-
| //center || worldedit.region.center || //center<br />//middle
|-
| //naturalize || worldedit.region.naturalize || //naturalize
|-
| //walls || worldedit.region.walls || //walls
|-
| //faces || worldedit.region.faces || //faces<br />//outline
|-
| //smooth || worldedit.region.smooth || //smooth
|-
| //move || worldedit.region.move || //move
|-
| //regen || worldedit.regen || //regen
|-
| //deform || worldedit.region.deform || //deform
|-
| //forest || worldedit.region.forest || //forest
|-
| //replace || worldedit.region.replace || //replace<br />//re<br />//rep
|-
| //stack || worldedit.region.stack || //stack
|-
| //set || worldedit.region.set || //set
|-
| /.s || worldedit.scripting.execute || /.s
|-
| /cs || worldedit.scripting.execute || /cs
|-
| //pos1 || worldedit.selection.pos || //pos1
|-
| //pos2 || worldedit.selection.pos || //pos1
|-
| //hpos1 || worldedit.selection.hpos || //hpos1
|-
| //hpos2 || worldedit.selection.hpos || //hpos2
|-
| //wand || worldedit.wand || //wand
|-
| /toggleeditwand || worldedit.wand.toggle || /toggleeditwand
|-
| //contract || worldedit.selection.contract || //contract
|-
| //outset || worldedit.selection.outset || //outset
|-
| //inset || worldedit.selection.inset || //inset
|-
| //distr || worldedit.analysis.distr || //distr
|-
| //sel ||  || //sel<br />/;
|-
| //desel ||  || //desel<br />//deselect
|-
| //count || worldedit.analysis.count || //count
|-
| //size || worldedit.selection.size || //size
|-
| //expand || worldedit.selection.expand || //expand
|-
| //shift || worldedit.selection.shift || //shift
|-
| /snapshot ||  || /snapshot<br />/snap || 
|-
| /snapshot use || worldedit.snapshots.restore || /snapshot use
|-
| /snapshot sel || worldedit.snapshots.restore || /snapshot sel
|-
| /snapshot list || worldedit.snapshots.list || /snapshot list
|-
| /snapshot after || worldedit.snapshots.restore || /snapshot after
|-
| /snapshot before || worldedit.snapshots.restore || /snapshot before
|-
| /restore || worldedit.snapshots.restore || /restore<br />//restore
|-
| // || worldedit.superpickaxe || //<br />/,
|-
| /superpickaxe ||  || /superpickaxe<br />/pickaxe<br />/sp
|-
| /superpickaxe single || worldedit.superpickaxe || /superpickaxe single
|-
| /superpickaxe area || worldedit.superpickaxe.area || /superpickaxe area
|-
| /superpickaxe recur || worldedit.superpickaxe.recursive || /superpickaxe recur<br />/superpickaxe recursive
|-
| /tool ||  || /tool
|-
| /tool none ||  || /tool none
|-
| /tool tree || worldedit.tool.tree || /tool tree
|-
| /tool repl || worldedit.tool.replacer || /tool repl
|-
| /tool cycler || worldedit.tool.data-cycler || /tool cycler
|-
| /tool floodfill || worldedit.tool.flood-fill || /tool floodfill<br />/tool flood
|-
| /tool brush ||  || /tool brush<br />/tool br
|-
| /tool brush sphere || worldedit.brush.sphere || /tool brush sphere<br />/tool brush s
|-
| /tool brush cylinder || worldedit.brush.cylinder || /tool brush cylinder<br />/tool brush cyl<br />/tool brush c
|-
| /tool brush clipboard || worldedit.brush.clipboard || /tool brush clipboard<br />/tool brush copy
|-
| /tool brush smooth || worldedit.brush.smooth || /tool brush smooth
|-
| /tool brush ex || worldedit.brush.ex || /tool brush ex<br />/tool brush extinguish
|-
| /tool brush gravity || worldedit.brush.gravity || /tool brush gravity<br />/tool brush grav
|-
| /tool brush butcher || worldedit.brush.butcher || /tool brush butcher<br />/tool brush kill
|-
| /tool deltree || worldedit.tool.deltree || /tool deltree
|-
| /tool farwand || worldedit.tool.farwand || /tool farwand
|-
| /tool lrbuild || worldedit.tool.lrbuild || /tool lrbuild<br />/tool /lrbuild
|-
| /tool info || worldedit.tool.info || /tool info
|-
| /mat || worldedit.brush.options.material || /mat<br />/material
|-
| /range || worldedit.brush.options.range || /range
|-
| /size || worldedit.brush.options.size || /size
|-
| /mask || worldedit.brush.options.mask || /mask
|-
| /none ||  || /none
|-
| /tree || worldedit.tool.tree || /tree
|-
| /repl || worldedit.tool.replacer || /repl
|-
| /cycler || worldedit.tool.data-cycler || /cycler
|-
| /floodfill || worldedit.tool.flood-fill || /floodfill<br />/flood
|-
| /brush ||  || /brush<br />/br
|-
| /brush sphere || worldedit.brush.sphere || /brush sphere<br />/brush s
|-
| /brush cylinder || worldedit.brush.cylinder || /brush cylinder<br />/brush cyl<br />/brush c
|-
| /brush clipboard || worldedit.brush.clipboard || /brush clipboard<br />/brush copy
|-
| /brush smooth || worldedit.brush.smooth || /brush smooth
|-
| /brush ex || worldedit.brush.ex || /brush ex<br />/brush extinguish
|-
| /brush gravity || worldedit.brush.gravity || /brush gravity<br />/brush grav
|-
| /brush butcher || worldedit.brush.butcher || /brush butcher<br />/brush kill
|-
| /deltree || worldedit.tool.deltree || /deltree
|-
| /farwand || worldedit.tool.farwand || /farwand
|-
| /lrbuild || worldedit.tool.lrbuild || /lrbuild<br />//lrbuild
|-
| /info || worldedit.tool.info || /info
|-
| //fillr || worldedit.fill.recursive || //fillr
|-
| //drain || worldedit.drain || //drain
|-
| //fixlava || worldedit.fixlava || //fixlava<br />/fixlava
|-
| //fixwater || worldedit.fixwater || //fixwater<br />/fixwater
|-
| //removeabove || worldedit.removeabove || //removeabove<br />/removeabove
|-
| //removebelow || worldedit.removebelow || //removebelow<br />/removebelow
|-
| //removenear || worldedit.removenear || //removenear<br />/removenear
|-
| //replacenear || worldedit.replacenear || //replacenear<br />/replacenear
|-
| //snow || worldedit.snow || //snow<br />/snow
|-
| //thaw || worldedit.thaw || //thaw<br />/thaw
|-
| //green || worldedit.green || //green<br />/green
|-
| //ex || worldedit.extinguish || //ex<br />//ext<br />//extinguish<br />/ex<br />/ext<br />/extinguish
|-
| /butcher || worldedit.butcher || /butcher || plangbf
|-
| /remove || worldedit.remove || /remove<br />/rem<br />/rement
|-
| //fill || worldedit.fill || //fill
|-
| //help || worldedit.help || //help
|}
 
==非命令权限节点==
{| class="wikitable"
|-
! 权限节点 !! 介绍
|-
| worldedit.limit.unrestricted || 拥有这个权限的用户可以无视设置的<code>//limit</code>命令的最大上限
|-
| worldedit.inventory.unrestricted || 如果使用了<code>use-inventory</code>项,拥有这个权限的用户可以无视这个限制
|-
| worldedit.anyblock || 拥有这个权限的用户可以无视<code>disallowed-blocks</code>设置的限制
|-
| worldedit.override.bedrock || 一般情况下超级镐子无法破坏基岩,拥有这个权限的用户可以无视这个限制
|-
| worldedit.navigation.jumpto.tool<br />worldedit.navigation.thru.tool || 使用传送工具的权限
|}


=特性=
WorldEdit会自动使用Java的ZIP库来打开ZIP文件,但它不能处理所有种类的ZIP文件。如果你使用ZIP文件作为快照时收到了奇怪的错误,你应该安装TrueZIP。WorldEdit会在可以的情况下自动使用TrueZIP。
了解比如操作历史等WorldEdit的基础特性。
==会话==
在你创建选区或者在游戏内改变你的首选项时,你的相关信息会被储存在一个临时会话中,这个会话在你在线期间一直会处于激活状态。当你断开连接时,你的会话会在被保留10分钟被删除,你可以重新登录来保留你的会话,每个人连接到服务器时的会话是互相分离的。


会话包括:
<span style=”color:red”>注意:一段时间前添加的代码损坏了WorldEdit在ZIP文件中找到地图文件夹的能力。很遗憾,因为这个ZIP文件必须要拥有以下结构:
* 2010-06-23-12-00-00.zip
** 世界名/
*** region/
*** level.dat
*** 等等...
</span>


* 你的当前选区
=== 恢复 ===
* 你的操作历史
* 你的方块修改上限
* 你选择的用于恢复的快照
==历史==
你的前15个操作会被保存在你的操作历史中。操作历史会记录WorldEdit改变的方块和之前的方块。如果你希望撤销一个修改,在聊天框中输入 //undo 。如果你改变了想法,你可以使用 //redo 来重做上一个操作。


如果你需要清除你的历史记录,使用 /clearhistory 命令。
* //restore [''快照名'']
* /snap use <''快照名''>
* /snap use latest
* /snap list [''数量'']
* /snap sel <''列表数字''>


==方块支持==
从备份恢复很简单!使用<code>//restore [''快照名'']</code>来恢复选区(在选择之后)。
WorldEdit对于不同平台,不同版本以及你的不同配置有不同的方块支持等级。


如果WorldEdit不支持你的平台,你会注意到一些问题:
默认WorldEdit会自动选择使用最新的备份,除非你给出一个指定的快照。


* 如果没有正确的支持,箱子,熔炉等在复制时不会保存他们的库存
你可以使用''//restore'',<code>/snap use <''快照名''></code>或<code>/snap sel <''列表数字''></code>来选择一个不同的快照。如果你使用''/use'',你就不需要在使用''/restore''时不停地写出快照的名称。使用<code>/snap use latest</code>来让WorldEdit选择最新的快照。使用<code>/snap list [''数量'']</code>来显示最新的可用的快照。
* 如果没有正确的支持,在撤销对于箱子,熔炉等的改变时有可能使他们的内容丢失


== 用法说明 ==
=== 本页的命令用法说明 ===
<!-- 本段内容应与[[WorldEdit/命令列表#参数格式对照]]一致。 -->
为便于理解命令写法,每种参数使用特定的格式表示。
{| class="wikitable"
{| class="wikitable"
! width="160"| 平台
! 状态
|-
|-
| Bukkit
! 参数 !! 例子 !! 说明
| Bukkit平台支持需要你使用与你CraftBukkit相对应版本的WorldEdit。WorldEdit 拥有需要特定版本的Bukkit来使用的“NMS 方块”或“适配器”(较新版本中)代码。 每个WorldEdit版本会有一个对应最新Bukkit版本的它们的列表。
 
如果出现问题,你可能需要升级或降级你的WorldEdit。
|-
|-
| Spigot
| <''参数''> || <''数量''> || 必须填写的参数,内容为参数中说明的,如数量可以为1,2,3等
| 见 Bukkit。
|-
|-
| Minecraft Forge
| [''参数''] || [''数量''] || 非必须填写的参数,内容为参数中说明的,如数量可以为1,2,3等,如不填写会由插件进行判定或使用默认值
| 在WorldEdit 6及以上完全支持。
|-
|-
| MinecraftEdu
|  
| MinecraftEdu 是 Forge 版 WorldEdit的修改,平台支持随MCEdu提供的版本而改变。
<参数A|参数B>
|| <cuboid|extend>
|| 需要从给出的多个参数中选择一个填写,必须性依情况不同
|-
|-
| MCPC+
| 参数'
| 大部分版本支持。
|| cuboid'
|| 参数为给出的字符串,使用时须原样输入
|-
|-
| Cauldron
| [-参数A参数B]
| WorldEdit 5 尚未支持。WorldEdit 6 及以上如果安装Forge版本的WorldEdit即可以完全支持。推荐在使用 WorldEdit 6 及以上时同时安装 Forge 与 Bukkit 版 WorldEdit。
|| [-hb]
|-
|| 参数为可以使用的标签,从多个单字符中选择需要一个或多个输入,可以输入在命令的任何位置,如[-hb]可以输入-h,-b或者-h -b
| LiteLoader
| 这是一个非官方平台的 WorldEdit,暂时没有关于支持的相关信息。
|-
| Canary
| 这是一个非官方平台的 WorldEdit,暂时没有关于支持的相关信息。
|}
|}
=== 方块样式 ===


==物品支持==
你可能注意到了,上述的命令中,经常出现<方块样式>这个参数。
在版本 5.4 及以上,所有支持自定义方块的平台 (主要 Bukkit) 会支持储存在方块内的物品。
在使用所有使用方块作为参数的WorldEdit指令中,你可以指定一个方块数据。比如庄稼使用数据来表示他们的生长进度,你可以使用这个功能来设置庄稼的生长进度。


之前的版本仅有粗略的物品支持,但仅限于第三方修改添加并放置在箱子内的物品 (第三方自定义方块完全不被支持)。
==== 随机样式 ====


=选区=
比起设定一种方块,一个图案允许你使用更复杂的方块。举个例子,可以使用一个每个方块有10%几率是砖方块,90%几率是原石方块的图案。
==选择选区==
<br/>
<span style="color:red">本部分需要进一步检查</span><br/><br/>
WorldEdit的一个最基本的部分是使用选区进行的操作。举个例子,如果你想把一个方形区域内的草方块换成泥土,你需要告诉WorldEdit这个方形在哪。<br />
WorldEdit提供了多种选择一个要进行修改的选区的方法,这个部分将会向你介绍选择选区和你可以对选区进行的操作。
''提示:你可以选择其他形状如2D多边形,椭球,球体,圆柱体以及其他形状。其他形状的选择方式接下来在这部分会讲到。''


===选择长方体===
* 例:将所有方块设定为由百分比指定的随机图案
** <code>//set 5%diamond_ore,95%dirt</code>


WorldEdit允许你以选择长方体的两个角上的点的方式来选择长方体(想象一个3D的长方形)。<br />
如果需要一个完全随机的图案,则不需要提供百分比。
下方的图展示了如何用两点形成一个长方体。你选择的长方体必须与地图对齐(他们不能被以一个角度旋转)。<br />


[[文件:WorldEdit Cuboid.png|居中]]
* 例子:使用一个无百分比列表将所有方块设定为一个随机图案
<br />
** <code>//set obsidian,stone</code>
有许多方法可以用来选择这两个点,你可以混合使用这些方法。


====使用法杖选择 ====
[[文件:WorldEdit block probability.jpg|center|frame|使用随机图案的//replace指令]]


* //wand
==== 随机状态 ====
<br />


最直观的选择选区的方式是使用法杖。使用 //wand可以得到法杖 (默认为木斧)。用法杖左键点击一个方块会把这个方块位置设定为你要选择的长方体的第一个角。右键点击会选择第二个角 。
使用星号(<code>*</code>)作为方块的带有命名空间的ID的前缀,可以表示其随机的各种状态(states)。
<br/>
* 例子:将选区内容设为随机各种方向的橡木原木
====选择你的当前位置 ====
** //set *oak_log


* //pos1
==== 剪贴板样式 ====
* //pos2
<br/>
使用这些命令可以将你所站的方块上方一个方块的位置分别设定为第一个和第二个角。一般使用魔杖可以完成大部分操作,所以一般不会使用到这些命令。
<br/>
====使用指针选择====


* //hpos1
<code>#clipboard</code>样式可以设置相同排列的剪贴板内容。你也可以通过<code>@[x,y,z]</code>来偏移其内容。
* //hpos2
<br/>
这两个命令会将你指针所指的位置分别设置为第一个和第二个顶点。通过这个方式可以选择远处的点以及方便地选择非常大的长方体选区。


====选择所在区块 ====
* 例子:将所有存在的方块设为剪贴板内容:
** //replace #existing #clipboard
* 对剪贴板内容进行偏移:
** //set #clipboard@[2,0,1]


* //chunk
[[文件:WorldEdit_clipboard_pattern.jpg|center|frame|使用剪贴板图案的//replace指令]]
<br/>
这个命令会选择你所站区块的所有方块。区块是16x16, 256格高的范围。


===调整选区 ===
==== 样式的状态 ====


==== 扩大选区 ====
带有<code>^</code>前缀,可以对方块状态进行调整,可以修改方块而不改变状态。例如:


* //expand <数量> [方向]
* 将橡木楼梯替换为金合欢楼梯,但是不改变其方向:
* //expand <数量> <反方向数量> [方向]
** //replace oak_stairs ^acacia_stairs
* //expand vert
* 除去所有含水方块中的水:
<br/>
** //set ^[waterlogged=false]
这些命令可以简单地以许多方式扩大选区:
* 将所有半砖台阶设为双台阶:
* 给出一个方向 (north, south, west, east, up, down)
** //replace ##slabs ^[type=double]
* 看向一个方向 (仅north, south, west, east)
* 扩大选区到基岩和天空
<br/>
使用 "N", "S", "W", "E", "U" (上), 或 "D" (下) 来指定方向。如果你想看向一个方向,使用"me" 或不输入方向参数来指定那个方向。 你可以指定两个数字来使选区同时向两个方向扩大选区。


;例子:向上收缩
==== 方块标签样式 ====
:使用//expand 10 up将选区向上扩大
如图,选区向上扩大
[[文件:WorldEdit Cuboid expansion up.png]]
<br/>
<br/>
使用//expand vert将选区扩展到基岩和天空


====缩小选区 ====
这种样式可以设置特定标签内的随机方块。标签允许将多种方块看做一种,比如,橡木原木、桦木原木、金合欢原木等,它们都是“原木”。标签可以由数据包定义。


* //contract <数量> [方向]
方块标签的语法:<code>##[标签名称]</code>,表示该标签内所有的默认状态的随机方块。或者与随机状态样式混合:<code>##*[标签名称]</code>来表示所有状态,而非默认状态。
* //contract <数量> <反方向数量> [方向]
<br/>
这个命令与 '''//expand'''类似。
<br/>
;例子:向下收缩
:选区会向哪边收缩?如果使用了//contract 10 down 选区会从上进行收缩。
[[文件:WorldEdit Cuboid contraction down.png]]
<br/>
=====在两轴同时收缩 =====


这个命令会将选区向内缩小。
* 将选区内所有存在的方块设为彩虹羊毛(随机颜色的羊毛):
<br/>
** //replace #existing ##wool
* //inset <数量> [方向]
* 将选区设为随机的各种台阶,包括上半砖、下半砖、双台阶:
* //inset <数量> <反方向数量> [方向]
** //set ##*slabs


==== 移动选区位置 ====
==== 特殊的方块数据语法 ====


* //shift <数量> [方向]
所有使用方块作为参数的命令都会使用这个语法。
<br/>
===== 告示牌文字 =====
移动选区。这个命令的效果类似与向两个相反方向分别进行相同移动量的//expand与//contract。如此会将选区移动一段距离。这个命令不会移动选区中的内容;如果要达到该效果需要使用//move命令。


=== 选区信息 ===
牌子上的每行文字须被管道符(|)分隔。如果文字有空格,需要将整个用半角引号(<code>""</code>)包住。


WorldEdit提供了一些可以得到选择的区域的信息的命令。
* 例:设置告示牌文字
** <code>//set oak_sign|Line1|Line2</code>
* 例:设置告示牌朝向与文字
** <code>//set "oak_wall_sign[facing=north]|Hello world|Second|Third line"</code>


==== 获得选区大小 ====
===== 刷怪笼生物种类 =====
刷怪笼(刷怪箱)生成的生物种类可以在一个管道符号(|)之后来指令。


* //size [-c]
* 例:设定生物种类
** <code>//set spawner<nowiki>|squid</nowiki></code>


显示选区内的方块数量。空气方块不会被计算。
===== 头颅种类 =====
<br/>
<code>v.5.5以上</code>使用 -c 标签会对剪贴板进行计算


==== 获取一种方块的数量 ====
<code>v.5.4.6以上</code>头颅的种类和旋转方向可以在管道符(|)之后指定。种类可以是一个玩家的名称。旋转数值是0至15(包括两端)之间的数字。Minecraft 1.13之后的版本可以使用扁平化之后的名称,如skeleton_skull。


* //count [-d] <方块种类>
* 例:
** <code>//set skeleton_skull</code>
** //set player_head|dinnerbone


显示一种指定方块在选区内的数量。
=== 蒙版 ===
'''蒙版(masks)''',就像方块样式一样,在WorldEdit中非常常用。和样式不同,蒙版决定了只有哪些方块才会受到命令、刷子等的影响。蒙版控制会被影响的方块,效果就像方块过滤器。


<code>v.5.5.1 以上</code> 使用 -d 标签可以支持不同附加值的方块。注意使用-d标签是需要给出一个附加值。
'''注意:'''通过不同方式设置的蒙版会叠加应用。如果你将全局蒙版设为//gmask dirt,而将刷子蒙版设为/mask stone,则这个刷子不起任何作用,因为没有任何方块既是泥土又是石头。


例子:
'''提示:'''使用//gmask不加参数可以清楚全局蒙版。
<pre>//count  torch
Counted: 34
//count -d torch
Counted: 0
//count -d torch:1
Counted: 3</pre>


====获取方块分布率====
==== 组合蒙版 ====
如需筛选同时符合多个匹配条件的方块,使用空格将其隔开。只有当所有蒙版都符合时,方块才会被选中。


* //distr [-cd]
; 示例:组合蒙版
* 使用蒙版组合,将空气下方的石头改成泥土:
** //replace "stone <air" dirt
* 设置一个刷子,使其只影响当前选区内的方块:
** /mask "air #sel"


显示选区内的方块分布。
==== 可用蒙版 ====


例子:
{| class="wikitable"
<pre># total blocks: 6
! 例子
1  (16.667%) Stone #1
! 介绍
2  (33.333%) Cobblestone #4
|-
3  (50.000%) Air #0</pre>
| rock,glass || 只影响的方块列表(白名单)
|-
|!rock,glass || 不影响的方块(黑名单)
|-
| #existing || 已存在的方块(非空气方块),等同于<code>!0</code>
|-
| >rock,glass || 只在某些方块之上
|-
| <rock,glass || 只在某些方块之下
|-
| #region || 只限于你的当前选区中
|}


注意不同的蒙版可以被组合使用来形成一个只有满足其中所有蒙版才能满足的蒙版。在使用/mask或/gmask设定蒙版时用空格分隔多个蒙版可以创建组合蒙版。


<code>v.5.5以上</code> 使用 -c 标签会对剪贴板内容进行计算。
===== 方块蒙版 =====
最简单的蒙版,方块蒙版匹配一个或更多个方块或方块状态。就像单个方块蒙版,你也可以指定一个单纯的方块类型,或者指定了状态的方块类型。与样式不同,蒙版不会对未指定的方块状态应用默认值,而是会匹配未指定的状态的所有值。


<code>v.5.5.1以上</code> 使用 -d 标签会对不同附加值的方块进行区分。
可以通过逗号来匹配多种方块。
; 示例:使用方块蒙版
* 移除选区内的所有橡木栅栏:
**//replace oak_fence air
* 移除所有东侧相连的橡木栅栏以及橡木栅栏门:
** //replace oak_fence[east=true],oak_fence_gate air
===== 否定蒙版 =====
<code>!</code>可以用于否定其后的任何东西,也就是说,匹配不能被这个蒙版匹配的方块。任何其他的蒙版都可以被否定。


;例子: //distr 与 //distr -d 的区别(为比较省略了部分结果输出)
; 示例:否定蒙版
* 将所有不是泥土、石头、草方块的方块替换为石头:
** //replace !dirt,stone,grass_block stone
===== 存在的方块的蒙版 =====
蒙版#existing会匹配所有不是空气的方块。注意这与!air不同,因为游戏实际上有多种类型的空气。
===== 固体方块蒙版 =====
蒙版#solid会匹配所有的“固体”方块,也就是会阻挡实体(如玩家)移动的方块。
===== 偏移蒙版 =====
在蒙版前使用>或<会匹配位于匹配特定蒙版的方块上方/下方的方块。可以叠用,如>dirt表示位于泥土上方一格的方块,>>dirt表示位于泥土上方两格的方块。
; 示例:偏移蒙版
* 在选区内,在所有木板上方创建一层平滑石英台阶:
** //replace >##planks smooth_stone_slab
===== 选区蒙版 =====
选区蒙版可以使刷子只影响选区之内的方块。比如,你只想刷你的墙外面的泥土,你可以选择墙,然后否定选取蒙版,这样泥土不会影响到墙(但仍会影响到附近的地面)。第一种选区蒙版为#region,也可以写成#sel或#selection,它会在你运行此命令时记住选区的位置,以用于蒙版。第二种选区蒙版为#dregion(d表示动态),也可以写成#dsel或#dselection,它所表示的选区总是与当前的选区保持一致。
===== 方块标签蒙版 =====
方块标签也可以用于蒙版。一个方块标签蒙版会匹配该标签内的所有方块。和样式一样,语法为##<标签名称>,标签由数据包定义。
; 示例:方块标签蒙版
* 将所有颜色的地毯替换为一层雪:
** //replace ##carpets snow


<pre>//distr
===== 随机噪点蒙版 =====
...
噪点蒙版可以创建随机噪点。指定%<百分比>会匹配特定百分比的方块。与方块样式中的方块权重不同。%50就是表示50%的方块。
34      (0.386%) Torch #50
===== 方块状态蒙版 =====
500    (5.682%) Stone brick stairs #109
就像方块蒙版,方块状态蒙版匹配方块状态。和方块蒙版不同,你不必指定一个方块类型。这就意味着,你可以匹配任何拥有特定属性的方块。
</pre>
<pre>//distr -d
...
3      (0.034%) Torch #50:1
4      (0.045%) Torch #50:3
7      (0.080%) Torch #50:2
7      (0.080%) Torch #50:4
13      (0.148%) Torch #50:5
46      (0.523%) Stone brick stairs #109:2
48      (0.545%) Stone brick stairs #109:3
62      (0.705%) Stone brick stairs #109:0
64      (0.727%) Stone brick stairs #109:1
68      (0.773%) Stone brick stairs #109:6
69      (0.784%) Stone brick stairs #109:5
71      (0.807%) Stone brick stairs #109:7
72      (0.818%) Stone brick stairs #109:4
</pre>


===选择模式===
方块状态蒙版拥有两种模式:粗略和严格模式。粗略模式(^[state=value,...])会匹配拥有与给定的值相同的方块状态的方块,或者没有这些属性的方块。严格模式(^=[state=value])中,只会匹配拥有与指定的方块状态相等的方块状态的方块。
; 示例:方块状态蒙版
* 移除所有关上的门、栅栏门、活板门:
** //replace ^=[open=false] air
===== 表达式蒙版 =====
表达式蒙版会对每个方块计算数学表达式。蒙版以=开头,并且必须有能够使用变量x、y、z的表达式。只有表达式返回正值时,这个方块才会被蒙版匹配。
; 示例:表达式蒙版
* 只编辑位于特定y轴位置的方块:
** //gmask =y<64
* 只编辑位于空气两格下方的方块:
** //gmask =queryRel(0,-2,0,0,0)
===== 生物群系蒙版 =====
生物群系蒙版匹配位于指定生物群系内的方块。语法为$<生物群系ID>。生物群系ID必须是带有命名空间的ID(namespaced id),其中原版生物群系的命名空间前缀minecraft:可选,模组中的生物群系的命名空间前缀必须加上。


====长方体选择模式====
=== 树木种类 ===
* //sel cuboid
==== 树木种类列表 ====


左键点击选择第一个点,右键点击选择第二个点。选区为两个点形成的长方体。
你可以使用的树木种类有:


====长方体扩大选择模式====
{| class="wikitable"
* //sel extend
! 种类
! 介绍
! ID
|-
| Regular || 正常Minecraft小树 || tree, regular
|-
| Big || Minecraft大树|| big, big tree
|-
| Dark Oak || 黑森林生物群系树(深色橡木)|| darkoak
|-
| Sequoia ||红衫木|| redwood, sequoia
|-
| Tall sequoia || 高红衫木 || tallredwood, tallsequoia
|-
| Mega-Tall sequoia || 超高2x2红衫木|| megaredwood
|-
| Birch || 桦木(白树皮) || birch
|-
| Tall Birch || 高桦木(白树皮) || tallbirch
|-
| Pine || 内置松树 || pine
|-
| Random sequoia || 随机高或不高的红衫木 || randredwood
|-
| Jungle || 2x2树干丛林木 || jungle
|-
| Small jungle || 1x1树干丛林木 || smalljungle
|-
| Jungle Bush || 无树干丛林树|| junglebush
|-
| Swamp || 带有藤蔓的树|| swamp
|-
| Acacia || 稀树草原生物群系树(金合欢) || acacia
|-
| Red Giant Mushroom || 巨型红队蘑菇 || redmushroom
|-
| Brown Giant Mushroom || 巨型棕色蘑菇 || brownmushroom
|-
| Random || 任何树木种类 || random, rand
|}


<code>v.4.8-SNAPSHOT以上</code> 左键点击选择第一个点。之后的选择点使用右键选择。每次右键选择都会将选区扩大以包含新的选择点。
此外,Minecraft 1.16更新中加入的诡异菌、绯红菌也是支持的。


====多边形选择模式====
这里可能会有其他树木种类,欢迎添加!
* //sel poly


左键点击选择第一个选择点。之后所有的选择点使用右键点击。每次右键点击选择都会增加一个新的点。
==== 例子 ====


;例子:生成高红衫木森林
:<code>/forestgen 20 tallredwood</code>


====椭球选择模式====
;例子:复制粘贴用列表
* //sel ellipsoid
:<code>/tree [tree, big, redwood, tallredwood, megaredwood, randredwood, birch, tallbirch, pine, jungle, smalljungle, acacia, darkoak, random]</code>


左键点击选择中心,右键点击扩大选区。
== CraftScript脚本 ==
脚本可以让你在不需要学习Java,明白如何编译WorldEdit,或者重造轮子的情况下完成一些简单的任务。
CraftScript是使用JavaScript编写的。


你可以水平右键点击来选择一个水平椭圆,也可以垂直右键点击来选择一个垂直椭圆。
WorldEdit版本 0.8之前的脚本支持是不同的。
但如果需要选择一个椭球选区至少需要邮件点击两次。


<span style="color:red">注意:你必须要安装Rhino脚本运行库来使用这个功能。</span>


====球体选择模式====
=== 安装脚本 ===
* //sel sphere
左键点击选择中心,右键点击扩大选区。


====圆柱体选择模式====
在你的服务器根目录创建一个'''plugins/WorldEdit/craftscripts/''' 路径(如果是单人模式,'''.minecraft''' 路径) 并将CraftScript脚本放入该目录。脚本文件一般拥有'''.js'''扩展名。
* //sel cyl


左键点击选择中心点,右键点击扩大选区。
<span style="color:red">注意:不要运行来源不可信的脚本。</span>
<br/>
第一次右键点击可以扩大圆柱体的底面,第二次右键点击可以提升圆柱体的高度。


==== 内置脚本 ====


====多面体选择模式====
下载WorldEdit时会自带四个脚本(如果需要使用记得将它们从下载文件夹复制至 '''plugins/WorldEdit/craftscripts/''' 文件夹)。


* //sel convex
{| class="wikitable"
<code>v6.0以上</code> 左键点击选择第一个点,其余的点使用右键点击选择。<br/>
! 文件名
//原wiki未更新部分
! width="150"| 参数
! 介绍
|-
| [http://github.com/sk89q/worldedit/blob/master/contrib/craftscripts/maze.js maze.js]
| <''方块''> [''宽度''] [''长度'']
| 生成一个2格高,由指定方块作为墙的迷宫。
|-
| [http://github.com/sk89q/worldedit/blob/master/contrib/craftscripts/draw.js draw.js]
| <''图像文件''> [v]
| 将一个图像使用彩色羊毛在游戏内渲染,使用v参数来使它垂直生成。图像文件必须要放置在 '''plugins/WorldEdit/drawings/''' 路径。
|-
| [http://github.com/sk89q/worldedit/blob/master/contrib/craftscripts/quickshot.js quickshot.js]
| <''音符1''> [''音符2''] ...
| 创建一个简单的用红石连接的音符盒序列。使用示例:<code>quickshot.js 1a# 1c 2f</code>
|-
| [http://github.com/sk89q/worldedit/blob/master/contrib/craftscripts/roof.js roof.js]
| <''方块''>
| 在你的选区之上创建一个金字塔形屋顶。
|}


==选区操作==
=== 运行脚本 ===


选择了选区之后,真正有趣的部分就要开始了。
* /cs <''脚本名''> [''参数''...]
=== 设定方块  ===
* /.s [''参数''...] (再次运行上一个脚本)
* /<''脚本名''>.js [''参数''...] (快捷方式)


*//set <方块种类>
这个命令会运行脚本。不要忘记.js扩展名。如果脚本使用它们,可以加上附加的参数。
<br/>
方块的列表可以在 [http://www.minecraftwiki.net/wiki/Data_values Minecraft wiki] 上找到
<br/>
;例子:设定选区为玻璃方块
:<code>//set glass</code>
;例子:删除选区内方块
:<code>//set 0</code>
<br/>
==== 复杂方块图案 ====
<br/>
除使用一种方块之外,可以使用不同方块构成的图案。例如,你可以将一个区域设定为由不同方块按照设定的百分比放置。
<br/>
;例子:设定选区的方块百分比
:<code>//set 25%stone,50%ironore,25%coalore</code>
<br/>
注意要使用''','''否则指令不会生效。
<br/>
如果你要填充一个区域,使用 ''//replace'' 或者 ''//fill''效果更好(接下来会提到)
<br/>
这里描述的百分比格式只是支持的方块图案中的一种。关于其他可以使用的方块图案见'方块图案'部分。
<br/>
=== 替换方块 ===
<br/>
* //replace ''<要替换掉的方块>'' ''<用于替换的方块>''
<br/>
虽然设定方块很有用,但是有时你需要根据一些规则替换一些已有的方块。WorldEdit有三种替换方块的方法:
<br/>
* 将所有非空气方块替换为另一种方块
* 将一种特定方块替换为另一种特定方块
* 将一系列指定方块替换为另一种方块
<br/>
使用''//replace''命令就可以完成这三种操作,让我们来看几个例子。
<br/>
;例子:将所有非空气方块替换为草方块
:<code>//replace grass</code>
<br/>
如果你想选择需要替换掉哪些方块,将它放在最后一个参数之前。
<br/>
;例子:将所有原石方块替换为羊毛方块
:<code>//replace stone cloth</code>
<br/>
如果你想替换掉一系列方块,在它们之间加上逗号即可。
<br/>
;例子:将泥土和草方块都替换为钻石矿
:<code>//replace grass,dirt diamondore</code>
<br/>
自己试试吧!记住你也可以通过替换空气方块的方式填充一个区域(虽然有一个对应的命令,后面会提到)。
<br/>
;例子:将空气方块替换为红石矿
:<code>//replace 0 redstoneore</code>
<br/>
注意''0''代表空气方块,但是你也可以使用''air''。
你可以使用这个命令将空气方块替换为水或岩浆来达到填充区域的效果,但是''//fill''命令更加适合。
<br/>
本命令支持方块图案。
<br/>
=== 修建墙壁 ===
<br/>
有时你需要在你的选区周围建起围墙,包括或不包括房顶。你有两个可以使用的命令:''//outline''和''//walls''。
<br/>
====在正方体四周建立墙壁 ====
<br/>
* //walls <墙体方块>
<br/>
''//walls'' 命令只会在你的选区四周创建墙壁,即会忽略房顶与地板。
<br/>
=== 表面覆盖 ===
<br/>
* //overlay <方块种类>
<br/>
''//overlay''命令允许你在选区内的方块表面覆盖一层另一种方块。<br/>
只有选区内最上方的方块会被覆盖;如果你的选区内有一个洞穴,它不会被覆盖,除非它是开放的,或者你的选区范围没有延伸到洞穴之上。你可以使用这个命令来创建积雪,(虽然WorldEdit有一个可以更好地完成这个操作的命令,会顾及到积雪不应该覆盖所有方块,比如火把上的问题),或者将栅栏覆盖到一个平坦过不平坦的表面。
<br/>
;例子:在选区上覆盖草方块
:<code>//overlay grass</code>
<br/>
<code>v.3.0以上</code> 本命令支持方块图案。
<br/>
=== 堆叠 ===
<br/>
* //stack <次数> [方向]
<br/>
这个命令会向你所看的方向重复放置你的选区内容。
<br/>
使用方法包括
<br/>
* 延长桥梁
* 制作隧道
* 重复一种结构
<br/>
;例子:将选区内容堆叠50次
:<code>//stack 50</code>
<br/>
你也可以指定一个方向,例如"north","up" 或 "down"。
<br/>
;例子:将选区内容向上堆叠5次
:<code>//stack 5 up</code>
<br/>
[[文件:WorldEdit Bridge stack.jpg|WorldEdit Bridge stack.jpg]]<br/>
利用WorldEdit延长桥梁
<br/>
//stack命令允许你复制任何方块,无论WorldEdit的方块配置是怎样的。
<br/>
[[文件:WorldEdit Tunnel stack.jpg|WorldEdit Tunnel stack.jpg]]<br/>
简单地延长一个隧道。注意将房顶与地板包括在选区内。
<br/>


=== 移动 ===
=== 安装 Rhino ===
<br/>
* //move ''<距离>'' [方向] [填充方块]
<br/>
如果你建了一些东西,然后发现你需要把它向一边移动一点,这个命令十分好用,因为它可以魔法般地移动整个选择区域。<br/>
这个命令接受一个需要移动的距离,一个可选的方向,和一个填充移动后留下的空白的方块种类。方向参数的使用方法''//stack''的相同:你可以使用一个基本的方向 (north, south, west, east), "up","down",或"me" 来指定你朝向的方向。你不一定需要指定一个方向,因为''me''会被默认使用。
<br/>
;例子:将选区向上移动2格
:<code>//move 2 up</code>
<br/>
默认情况下,你不需要提供一个填充用方块,留下的区域将会是空气方块。如果你需要,可以指定另一种方块。
<br/>
;例子:将选择区域内容向朝向方向移动2方块,原位置留下原石方块
:<code>//move 2 me stone</code>
<br/>
;例子:将选区内容向下移动2方块,复制空气方块
:<code>//move 2 down</code>
<br/>
如果你需要移动一个物体且并不想每次重新选择它,可以使用//move -s <数量> [方向]
<br/>
;例子:将选区内容向下移动2方块,同时移动选区,复制空气方块
:<code>//move -s 2 down</code>
<br/>
复制受WorldEdit的特殊方块支持影响。注意这个因为某些修改操作无法还原,撤销操作也受相同的规则影响。
<pre style="color:red">?</pre>
<br/>
=== 平滑化 ===
<br/>
* //smooth [迭代次数]
<br/>
如果你需要平滑化一个粗糙的物体(如粗糙的山),这个指令可以做到。首先确认你选择了整个区域的选区,之后再使用命令。此外可以额外著名迭代次数,以达到连续多次进行算法计算来使结果成为更加平滑的表面。
<br/>
=== 重新生成 ===
<br/>
* //regen
<br/>
<code>v.4.2以上</code>这个命令会将你的选区重新生成为第一次生成地图时的状态。它会使用地图的种子,所以每次生成总会生成同样的地形。
<br/>
<span style="color:red">注意:如果你的地图是通过外部地图生成器预生成的,或者该地区是在地形生成器修改之前生成的,这个指令不会正常运行</span>
<br/>
===自然化===
<br/>
* //naturalize
<br/>
这个指令会使用原石,泥土与草方块“自然化”选区内容,以顶层草方块,下方3格泥土方块,泥土方块下方原石方块的构造对选区内方块进行替换。这个命令是一个需要使一个区域“看起来自然”
时可以使用的简单指令。
<br/>
[[文件:WorldEdit Naturalize.jpg]]<br/>
使地形看起来自然。
<br/>
=== 放置植物群 ===
<br/>
* //flora
<br/>
这个命令会将草丛与花以及仙人掌分散放置在选区内的草方块和沙子方块上。
<br/>


=== 选区变形 ===
在你的Java版本不带有需要的部件时(你会收到 "Failed to find an installed script engine."),你需要手动安装[https://developer.mozilla.org/en-US/docs/Rhino Rhino JavaScript Engine]。如果你收到 "ReferenceError," ,安装Rhino应该可以解决你的问题。
<br/>
* //deform ''<表达式>''
<br/>
<code>v.4.8-SNAPSHOT以上</code> 对选区内容进行一个由用户指定的形变:


* 旋转
你应该在 '''可以的情况下安装Rhino''' 因为Java自带的Rhino版本一般很低。
* 把你心爱的教堂变成达利风格作品
* 其他任何你能想象的东西
<br/>
标签:
* -r 使用原始坐标,即debug屏(F3)上出现的坐标
* -o 使用原点(0,0,0)位置设定为玩家位置或选区第一选择点的原始坐标,依设置而定
* 如果不使用标签,坐标会被正常化至-1..1
<br/>
变量:
* x, y, z (输入/输出) - 坐标
<br/>
;例子:使地形变得颠簸
:<code><nowiki>//deform y+=0.2*sin(x*10)</nowiki></code>
<br/>


本命令使用表达式解析器。
=== 编写脚本 ===
<br/>


=剪贴板=
请查看[[WorldEdit/CraftScript|脚本开发页]]
<br/>
WorldEdit提供了一个非常强大的剪贴板功能,允许你复制一个区域,粘贴它,甚至将其保存为文件或从文件导入。剪贴板内容现在仅支持长方体并且复制时会使用你的选区范围。<br/>
<br/>
=== 复制与剪切 ===
<br/>
* //copy
* //cut [填充方块]
<br/>
这个简单的命令可以复制你的选区内容到你的会话的剪贴板,'''同时记录你与被复制物体的相对距离。'''这句话的第二部分十分重要;举个例子,如果你之后要在你脚下粘贴一座桥,复制时你需要站在桥上的一个位置。这个方法允许你方便地对齐你的粘贴因为你可以提前计划;你需要一定的空间感来了解复制的过程,但是一旦学会你会觉得这个方法非常好用。<br/>
<br/>
''//cut'' 和 ''//copy'' 指令的效果十分相似,除了它也会删除选区的内容。默认情况下它会留下空气方块,但你也可以指定一个其他方块。<br/>


<span style="color:red">注意:这个命令同样会记录你与被复制物体的相对位置。这个概念十分重要,否则你将不能控制你的复制和粘贴的位置!</span><br/>
脚本是使用JavaScript编写的。


=== 粘贴 ===
=== 可能依赖性 ===
<br/>
* //paste [-aso]
<br/>
在你的剪贴板有东西了之后,你可以将它粘贴到地图上。最后一个参数是选择性的:如果你想把它粘贴到它被复制时相同的位置,输入<code>//paste -o</code>,不然被粘贴的物体会被放置在与你相对的位置。'''记住如果你在相对性粘贴,被粘贴的物体与你的相对位置和复制时的相同。'''举例来说,如果你复制时站在你的城堡顶上,粘贴时城堡就会出现在你的下面。<br/>
[[文件:WorldEdit paste.png]]<br/>
<br/>
比如你需要复制一堵墙并且要把它放到别处。如果你现在几格之外,复制,然后尝试粘贴它,因为Minecraft储存位置的方法,有可能你会在一个方向上差一格(可能不会包括上下)。以下这个方法可以帮助你在正确的位置完成复制与粘贴:标出要复制的墙壁。在距离你的墙壁中心3格远的地方任何一个方块。对着那个方块,走得越近越好。复制。在粘贴之前在你需要被粘贴物体中心的位置3和距离的地方放下一个方块。对着方块走得越近越好。粘贴。注意你面向的方向不重要。如果你想你的墙朝另一个方向,旋转它,然后做同样的放置方块,走向方块并粘贴的操作。<br/>
<br/>
你可以使用<code>//paste -a</code> 来粘贴所有非空气方块。<br/>
<br/>
<code>v.5.6以上</code>你可以使用<code>//paste -s</code>来选择粘贴生效的区域。
<br/>
=== 旋转 ===
<br/>
* //rotate <角度>
<br/>
有时你需要旋转你的副本。目前这个命令允许你沿Y轴(上下)旋转90度或90度的倍数。确切地说,这个命令其实可以以你复制时与物体相对的点作为中心来旋转你的副本。如果你想沿中心点旋转你的副本,复制时就需要站在它的中心点上。
<br/>
[[文件:WorldEdit rotate.png]]|<br/>
<br/>
=== 翻转 ===
<br/>
* //flip [-p] [方向]
<br/>
按一个给出的方向翻转剪贴板。可用方向有North, South, East, West, up 和 down;东南西北方向可以以朝向这些方向的模式选择,上下方向则不行。剪贴板会延一个与给出的方向垂直,位于剪贴板中间位置的平面翻转(非玩家位置)。一共有三个平面,一个水平的(xz)和两个竖直的(xy, yz)。水平平面xz以上下向量定义,xz平面以东/西定义,yz以南/北定义。<br/>
<br/>
[[文件:WorldEdit flip2.png]]|<br/>
<br/>
使用-p标签可以使选区在玩家周围翻转,而不是在选区中心。<br/>


=== 导入与导出 ===
如果你安装了某些Java库,WorldEdit会自动使用它们来提供更多功能。安装这些库的过程是在下载后找到需要的文件(下面的列表)并将它放进你的'''plugins/WorldEdit/'''路径中。在重启服务器之后,WorldEdit应该可以找到这些库。


<br/>
{| class="wikitable"
WorldEdit可以使用''.schematic''文件来保存和加载副本。''.schematic''文件的好处是它与例如MCEdit, NBTedit和Redatone Simulator等程序兼容。这个格式也支持所有的Minecraft方块数据并有相关的支持文档让你可以在你自己的程序中使用它。
! 库
<br/>
! 作用
*//<nowiki><schematic|schem> <save|load></nowiki> [<格式>] <文件名>
! 需要安装的文件
<br/>
|-
Single Player Commands不支持''//schem''简写,需要使用''//schematic''。可以使用的格式有mcedit和mce;如果没有给出WorldEdit会尝试确定格式。所有build #1134-c76f119 (WorldEdit 5.3) 之前保存的.schematic文件均为mcedit格式。文件名不需要包括.schematic后缀。<br/>
| [http://repo1.maven.org/maven2/de/schlichtherle/truezip/6.8.1/truezip-6.8.1.jar TrueZIP]
<br/>
| 快照功能对ZIP文件的更好支持
| 保存为 '''truezip.jar'''
|-
| [http://www.mozilla.org/rhino/download.html Rhino] (JavaScript engine)
| 使用脚本功能的必须项
| 提取 '''js.jar'''
|}


'''你的副本的原点和你的相对位置都会被保存在文件中''',这样你可以在之后加载它并以它原来的远点位置和你复制时的相对距离粘贴。你应该已经熟悉了''//copy''和''//paste''储存你的相对距离的方法了。<br/>
注意文件名必须与表格中的完全相同。


==== 文件保存位置 ====
== 源码 ==
<br/>
源代码 : https://github.com/sk89q/worldedit
文件会被保存在你的Minecraft服务器的'''\plugins\WorldEdit\schematics'''文件夹下并从这里被加载。如果你使用的是Single Player Commands,路径为'''\mods\spc\schematics'''。WorldEdit因为安全性原因将导入导出路径限制在这个文件夹。文件名会自动被添加''.schematic''扩展名。路径系统也是可以支持的,并且在需要的情况下可以创建新的子文件夹。目前不可以改变这个使用的文件夹位置。<br/>
=== 其他平台 ===
<br/>
; WorldEdit MOD
两个命令都会检查schematic文件的路径来确认名字的有效性。路径只能含有字母和数字字符以及一些符号。检查使用的正则表达式为^[A-Za-z0-9_\ \./\\'\$@~!%\^\*\(\)\[\]\+\{\},\?]+$。如果路径长度大于系统支持的上限,Java会报错并且用户会收到通知。<br/>
* MinecraftForum: http://www.minecraftforum.net/forums/mapping-and-modding/minecraft-mods/1272389-worldedit-in-game-map-editor-testing-tool-for
<br/>
* CurseForge: http://minecraft.curseforge.com/projects/worldedit
<span style="color:red">注意:每个用户没有自己的个人文件夹。</span><br/>
<br/>
==== 显示可用的schematic文件列表 ====
<br/>


* //<nowiki><schematic|schem> <''list''></nowiki> [-dn]
; WorldEditWrapper (LiteMod)
<br/>
MinecraftForum: http://www.minecraftforum.net/forums/mapping-and-modding/minecraft-mods/1294341-worldeditwrapper-use-worldedit-in-single-player
<code>v.5.5以上</code>使用 -d 和 -n 参数会分别按日期顺序和倒序排列。
<br/>
=== 清空剪贴板 ===
<br/>
* /clearclipboard
<br/>
清空你的剪贴板会删除它的内容,释放少量的内存。<br/>


=生成=
== 授权声明 ==
<br/>
本页内容翻译/搬运自[http://wiki.sk89q.com/wiki/WorldEdit SKWiki](已失效)和[https://worldedit.enginehub.org/en/latest/ 官方文档]
有时你可能需要自动生成森林或者球体,因为手动做这些太乏味了。WorldEdit有一系列可以完成这些操作的工具。这些指令不需要一个选区;他们使用你所站的位置的方块。<br/>
===圆柱体与圆形===
<br/>
* //cyl <方块> <半径> [高度]
* //hcyl <方块> <半径> [高度]
<br/>
WorldEdit可以既可以生成空心圆柱,也可以生成实心的,同样也可以生成空心和实心的圆形。生成物体时使用的是一个快速的算法,并且这个算法会创建美观和对称的边缘。<br/>
圆柱体会在你的脚下被创建并会向上扩展。如果你需要一个圆形,创建一个高度1的圆柱即可。<br/>
<br/>
;例子:创建一个半径5高度10的实心玻璃圆柱体
:<code>//cyl glass 5 10</code>
<br/>
;例子:创建一个半径为5的空心玻璃圆形
:<code>//hcyl glass 5 1</code>
<br/>
=== 椭圆形圆柱体和椭圆形 ===
<br/>
* //cyl <方块> <东西半径>'',''<南北半径> [高度]
* //hcyl <方块> <东西半径>'',''<南北半径> [高度]
<br/>
用指定两个半径,并用逗号隔开的方式,可以生成椭圆形圆柱体。<br/>
第一个半径是东西方向,第二个是南北方向。<br/>
<br/>
=== 球体 ===
<br/>
* //sphere <方块> <半径> [是否升高?]
* //hsphere <方块> <半径> [是否升高?]
<br/>
实心和空心球体都可以创建。默认情况下,球体的中心会是你所站位置的上方一格但是如果你将''yes''作为最后一个参数,球体会被升高,它的底部会在你的脚下。<br/>


<br/>
授权方式为CC BY-NC-SA 3.0
;例子:生成一个半径为4的玻璃球体
:<code>//sphere glass 4</code>
<br/>
;例子:生成一个升高的半径为4的玻璃球体
:<code>//sphere glass 4 yes</code>
<br/>
=== 椭球 ===
<br/>
* //sphere <方块> <半径>'',''<半径>'',''<半径> [是否升高?]
* //hsphere <方块> <半径>'',''<半径>'',''<半径> [是否升高?]
<br/>
椭球半径的顺序是南北,上下,东西。创建椭球时,所有三个半径都必须提供。
<br/>
=== 金字塔 ===
<br/>
* //pyramid <方块> <大小>
* //hpyramid <方块> <大小>
<br/>
按给出的方块图案和大小生成一个空心或者实心的金字塔。<br/>
<br/>
;例子:生成一个高度5,边长10的空心玻璃金字塔
:<code>//hpyramid glass 5</code>
<br/>
=== 森林 ===
<br/>
* /forestgen [范围] [种类] [密度]
<br/>
使用这个命令可以生成森林。范围参数表示生成森林的正方形范围的宽度和高度。密度可以是从0至100的数字,0.1这类的数字也可以使用。需要注意的是100%的密度(每个位置都有树)是不能达到的因为Notch的树木算法不能允许这样的生成,默认的5%已经可以生成一个很茂密的森林。最后,这个指令会按照给出的范围参数在你周围寻找可以生成的位置,并且搜索范围会向下扩展一两格以找到草方块或泥土方块(树木只会在这两个方块上生成),但是不会向上搜索。所以如果你想填满一片区域,最好站在一个稍高的平台上进行生成。查阅树木种类的部分来了解可以使用的树木种类。
<br/>
<span style="color:red">注意:如果你使用的是单人模式版本,这些树木不能被撤销。</span>
<br/>
;例子:在10x10范围内生成森林
:<code>/forestgen 10</code>
<br/>
;例子:在10x10范围生成0.5%密度的森林
:<code>/forestgen 10 tree 0.5</code>
[[File:WorldEdit Forestgen.png]]<br/>
<br/>
===南瓜丛===
<br/>
* /pumpkins [范围]
<br/>
WorldEdit可以生成带有叶子的南瓜丛(Notch的南瓜丛没有叶子)。范围参数是生成南瓜丛的方形区域的宽度和高度,从当前位置放射。目前不能调节南瓜丛的密度。
<br/>
;例子:在5x5范围生成南瓜丛
:<code>/pumpkins 5</code>
<br/>
=== 任意形状(表达式生成) ===
<br/>
* //g[en[erate] <方块> <表达式>
<br/>
<code>v.5.0以上</code>生成任何可以用数学公式表达的形状
<br/>
* 环面
* 旋转过的圆柱体
* 锯齿状峡谷
* 任何你能想到并且用表达式表示的形状
<br/>
标签:<br/>
* -r 使用原始坐标,即debug屏(F3)上出现的坐标
* -o 使用原点(0,0,0)位置设定为玩家位置或选区第一选择点的原始坐标,依设置而定
* 如果不使用标签,坐标会被正常化至-1..1
* 使用 -h 标签会生成空心形状。只有与不属于形状的方块相邻的方块会被放置。
<br/>
变量:<br/>
* x, y, z (输入) - 坐标
* type, data (输入/输出) - 使用的材料,默认为输入的方块/图案
<br/>
返回值:
true (>0) - 这个方块属于形状范围
false (<=0) - 这个方块不属于形状范围
<br/>
表达式解析器的逻辑和比较的运算都会返回0(假)或1(真),所以可以给出一个只返回真值的方程。<br/>


;例子:生成一个外半径0.75,内半径0.25的环面
{{Cc-by-nc-sa-3.0}}
:<code><nowiki>//g stone (0.75-sqrt(x^2+y^2))^2+z^2 < 0.25^2</nowiki></code>
[[Category:整地]][[Category:管理]][[Category:创世]][[Category:传送]][[Category:信息]]
<br/>
;例子:粗糙的空心树
:<code><nowiki>//g -h log (0.5+sin(atan2(x,z)*8)*0.2)*(sqrt(x*x+z*z)/0.5)^(-2)-1.2 < y</nowiki></code>
<br/>
;例子:彩虹环面
:<code><nowiki>//g wool data=(32+15/2/pi*atan2(x,y))%16; (0.75-sqrt(x^2+y^2))^2+z^2 < 0.25^2</nowiki></code>
<br/>
;例子:彩虹蛋
:<code><nowiki>//g wool data=(32+y*16+1)%16; y^2/9+x^2/6*(1/(1-0.4*y))+z^2/6*(1/(1-0.4*y))<0.08</nowiki></code>
<br/>
;例子:心形
:<code><nowiki>//g wool:red (z/2)^2+x^2+(5*y/4-sqrt(abs(x)))^2<0.6
</nowiki></code>
<br/>
;例子:正弦波
:<code><nowiki>//g -h glass sin(x*5)/2<y</nowiki></code>
<br/>
;例子:环形余弦波
:<code><nowiki>//g -h glass cos(sqrt(x^2+z^2)*5)/2<y</nowiki></code>
<br/>
;例子:圆形双曲面
:<code><nowiki>//g stone -(z^2/12)+(y^2/4)-(x^2/12)>-0.03</nowiki></code>
<br/>
这个命令使用表达式解析器。
<br/>
 
=工具=
==编辑工具==
==区块工具==
==超级镐子==
==刷子==
==传送==
 
=从快照恢复=
 
=其他=
==CraftScript代码==
==方块数据值==
==蒙版==
==树木种类==
=源码=
源代码 : https://github.com/sk89q/worldedit
=其他平台=
==WorldEdit MOD==
MinecraftForum: http://www.minecraftforum.net/forums/mapping-and-modding/minecraft-mods/1272389-worldedit-in-game-map-editor-testing-tool-for
CurseForge: http://minecraft.curseforge.com/projects/worldedit
 
==WorldEditWrapper (LiteMod)==
MinecraftForum: http://www.minecraftforum.net/forums/mapping-and-modding/minecraft-mods/1294341-worldeditwrapper-use-worldedit-in-single-player

2022年7月3日 (日) 11:28的最新版本

Minecraft插件百科提醒您,此条目或需要大幅度整改,建议新用户不要模仿此条目格式建立新条目。

原因在于:

  • 页面冗长,需要拆分子页面(例如WorldEdit/命令
  • 部分内容过时,需要更新
若您清楚改善现状的方法,可以尝试帮忙改进
WorldEdit
外文名WorldEdit
插件类型Spigot / CraftBukkit
最新版本7.2.11或者更新
兼容服务端1.12、1.13、1.14、1.15、1.16等
源地址http://dev.bukkit.org/bukkit-plugins/worldedit/

WorldEdit,简称WE,常被称为创世神,是Minecraft的常用插件和mod,且已兼容Forge和Fabric。本页参照官方文档,对WorldEdit(创世神)的命令(指令)进行了详细的介绍。

安装

Bukkit / Spigot / Paper

这些是用于服务器的。

  1. 下载WorldEdit 您可以在官网下载,也可在网页查找,官网下载:http://dev.bukkit.org/bukkit-plugins/worldedit/files/
  2. 解压压缩包(如果为压缩文件)
  3. 将jar文件放进plugins文件夹
  4. 重启服务器

Forge和Fabric

对于Forge或Fabric版本,直接将mod包放在mods文件夹下即可。具体方法,同安装其他模组方法相同,在此不赘述。

如何显示选区?

如要显示你选择的选区的边界,你需要安装WorldEditCUI,该模组需要Fabric。对于1.12.2以前的版本,你需要安装WorldEditCUI,该模组基于LiteLoader(也有Forge版的)。

配置

本段内容需要更新与整理。

会话

在你创建选区或者在游戏内改变你的首选项时,你的相关信息会被储存在一个临时会话中,这个会话在你在线期间一直会处于激活状态。当你断开连接时,你的会话会在被保留10分钟被删除,你可以重新登录来保留你的会话,每个人连接到服务器时的会话是互相分离的(仅限多人游戏)。

会话包括:

  • 你的当前选区
  • 你的操作历史
  • 你的方块修改上限
  • 你选择的用于恢复的快照

历史

你的前15个操作会被保存在你的操作历史中。操作历史会记录WorldEdit改变的方块和之前的方块。如果你希望撤销一个修改,在聊天框中输入//undo。如果你改变了想法,你可以使用//redo来重做上一个操作。

如果你需要清除你的历史记录,使用/clearhistory命令。

方块支持

WorldEdit对于不同平台,不同版本以及你的不同配置有不同的方块支持等级。

如果WorldEdit不支持你的平台,你会注意到一些问题:

  • 如果没有正确的支持,箱子,熔炉等在复制时不会保存他们的库存
  • 如果没有正确的支持,在撤销对于箱子,熔炉等的改变时有可能使他们的内容丢失
平台 状态
Bukkit Bukkit平台支持需要你使用与你CraftBukkit相对应版本的WorldEdit。WorldEdit 拥有需要特定版本的Bukkit来使用的“NMS 方块”或“适配器”(较新版本中)代码。 每个WorldEdit版本会有一个对应最新Bukkit版本的它们的列表。

如果出现问题,你可能需要升级或降级你的WorldEdit。

Spigot 见 Bukkit。
Minecraft Forge 在WorldEdit 6及以上完全支持。
Fabric Loader 完全支持。
MinecraftEdu MinecraftEdu 是 Forge 版 WorldEdit的修改,平台支持随MCEdu提供的版本而改变。
MCPC+ 大部分版本支持。
Cauldron WorldEdit 5 尚未支持。WorldEdit 6 及以上如果安装Forge版本的WorldEdit即可以完全支持。推荐在使用 WorldEdit 6 及以上时同时安装 Forge 与 Bukkit 版 WorldEdit。
LiteLoader 这是一个非官方平台的 WorldEdit,暂时没有关于支持的相关信息。
Canary 这是一个非官方平台的 WorldEdit,暂时没有关于支持的相关信息。

物品支持

在版本5.4及以上,所有支持自定义方块的平台(主要Bukkit)会支持储存在方块内的物品。

之前的版本仅有粗略的物品支持,但仅限于第三方修改添加并放置在箱子内的物品(第三方自定义方块完全不被支持)。

服务器配置

在你安装WorldEdit后第一次运行服务器时,在plugins/WorldEdit/config.yml下会生成 config.yml 文件。你可以使用这个文件来配置WorldEdit的各个设置。

格式

文件使用的是YAML格式,所以你必须遵守这些规则:

  • 不要使用制表符 你必须使用空格否则Bukkit会报错。如果你使用像Notepad++(推荐Windows用户使用)等编辑器,你必须将它设置成“使用空格替换制表符”。在Notepad++中,这一项可以在 设置>首选项>语言菜单 中修改。
  • 不要去掉缩进。某些项目因为是其他项目的子项目因此才有缩进(如“max-blocks-changed”是“limits”分类下的一项)
  • 如果你想在将文件正式放进WorldEdit之前检查一下,可以将它粘贴到 http://yaml-online-parser.appspot.com/ 来看一下是否提示“ERROR:”。
  • # 开头的行是注释所以可以被忽略。

配置项目

注意:以下的配置项目中每多一个点,说明你需要将它比上一项缩进更多一层。

配置项 数据种类 默认 介绍
wand-item integer 271 魔杖工具,即使用左键与右键点击来选择选区的工具,使用的物品ID。默认为木斧。
shell-save-type bashbat 使用的脚本文件格式。/delchunks指令会使用这项。
debug true/false false 如果开启,每个指令完成使用的时间会被在每个指令使用后显示。
限制
limits.max-blocks-changed.maximum integer -1 每次操作可以改变的方块数上限。这一项的上限是一个用户不能自行设定超过的上限。如果你想设定默认值(对单个用户的),使用default-max-blocks-changed。-1的数值表示无上限。
limits.max-blocks-changed.default integer -1 默认方块修改数上限。如果这个数值比max-blocks-changed设定的数值高,该上限会覆盖此上限。-1的数值表示无上限。
limits.max-radius integer -1 使用半径参数的指令可以使用的最大上限。使用-1来设定无上限。
limits.max-super-pickaxe-size integer 5 超级镐子最大可以使用的范围。
limits.disallowed-blocks 方块ID列表 (一个列表) 一个不能被使用的方块和物品的列表。注意//stack指令不遵守这个配置。
使用背包
use-inventory.enable true/false false 从玩家的背包得到所有需要的方块。
use-inventory.override true/false true 启用worldedit.inventory.unrestricted权限,使一个玩家可以越过use-inventory开启时的限制。
记录
logging.log-commands true/false false 选择是否在后台记录使用的指令。
logging.file string 放置记录命令使用的文件的路径。使用时log-commands必须开启。
超级镐子
super-pickaxe.drop-items true/false true 使用单方块超级镐子时是否掉落方块。
super-pickaxe.many-drop-items true/false false 使用非单方块镐子时是否掉落方块。注意这些模式下可能会有大量方块被破坏并且掉落过多的方块物品。
快照
snapshots.directory string 读取快照的路径。除非使用了绝对路径,这个路径是与服务jar所在路径相对的。
导航魔杖
navigation-wand.item integer 345 绑定/jumpto(左键)和/thru(右键),使用的工具。默认物品为指南针。
navigation-wand.max-distance integer 100 导航工具可以使用的最大距离。
脚本
scripting.timeout integer 3000 CraftScript运行的最大时长(毫秒)。
scripting.dir string craftscripts 存放脚本的路径。
保存
saving.dir string schematics 保存schematic文件的位置。
历史
history.Size integer 15 撤销历史存储数
history.expiration integer 10 撤销历史过期时间
屠杀
butcher.butcher-default-radius integer -1 杀死怪物的范围,-1为无上限。

如果需要在游戏内重置WorldEdit的配置,可以使用/reloadwe来重载插件。

使用背包

开启背包使用模式会使WorldEdit强制只从玩家的背包提取方块。此外,如果玩家的背包有空间,方块在被替换或破坏时会被“采集”并放置进玩家的背包中。

如果一个方块不能被找到(比如玩家没有更多的那种方块了),操作会继续执行单并不能放置更多的方块(至少那一种)。玩家在最后会收到缺少的方块列表。如果一个方块需要被放置在另一个方块上(比如火把)但并不能放置支撑方块,操作会在放置支撑方块被放置之前被打断。在失败的情况下,//undo和//redo可以用来重复一个操作。当一个方块因为被破坏而被放置到玩家背包时,它会是一个被采集过的方块,或者有些情况下,没有方块。玻璃和书架会被给予,水方块和岩浆方块不会,并且在放置时不需要提供。注意箱子不会被正确复制,并在被移除时掉落里面的物品,如此可以防止利用复制与粘贴来复制物品。背包使用功能被编译在WorldEdit的很深层,所以所有指令都能使用。

如果你想一些用户不使用他们的背包,可以在配置中启用背包使用豁免权限的设置并给出worldedit.inventory.unrestricted权限。

选区用法及命令

详见 WorldEdit/命令

从快照恢复

WorldEdit一个非常强大的功能是它可以将你选区定义的范围加载,并在不关闭服务器或使用外部编辑器的情况下从一个备份恢复它。很多问题都可以使用这个方法轻易解决,从撤销熊孩子的破坏到修复地图存储故障甚至回滚一个你放弃的作品都能使用这个方法完成。

配置快照

提示:Minecraft 1.3 加入的新世界格式从WorldEdit 4.1开始被支持。

为了能让WorldEdit读取你的备份,你需要选择一个存放备份文件的路径。设置完成后,把地图的副本或压缩过的地图副本放进备份文件夹即可。以下是一个整理备份文件夹方法的例子。

  • backups/ (这个是存储备份的文件夹)
    • world/ (这个是地图名)
      • 2010-06-23-12-00-00.zip
      • 2010-06-22-12-00-00/
      • 2010-06-21-12-00-00.zip
      • 2010-06-20-12-00-00/
    • world_nether/ (另一个地图)
      • 2011-09-21-01-59-00.zip
      • 2011-09-28-18-30-00/
例子:配置文件条目示例
directory: backups/world

你可以混合或者组合不同种类的备份,WorldEdit都可以读取。你需要在配置文件中设置存储备份的文件夹的路径参数来使WorldEdit知道快照文件夹的位置。注意冒号与路径之间需要留出一个空格,否则你会收到"Snapshot/backup restore not configured." 的错误消息。你可以使用相对路径也可以使用绝对路径。相对路径使用你的server.jar文件所在的位置作为起始点。

如果你想让WorldEdit恢复的越快越好,你可能需要考虑将备份放到一个高速硬盘上。

文件名

WorldEdit需要一个特定的文件夹与文件的命名方式。因为它会使用文件名来确定哪个备份是新的,哪个备份是旧的。目前WorldEdit不会使用文件的修改日期因为这个日期不是一直准确的(尤其是当你开始大批复制文件的时候),所以WorldEdit会以文件名倒序排列(Z到A)并选出最上方的一项。所以最好的命名方法是在名字里包扩用零填充的数字,比如YYYY-MM-DD。

提示:如果你使用的是 *nix 或 BSA ,你可以使用以下指令来创建有符合规则文件名的ZIP文件 zip -v backups/`date "+%Y-%m-%d-%H-%M-%S"`.zip -r world

支持的存储档格式

目前WorldEdit仅支持ZIP文件。TAR文件不会被支持因为TAR格式没有中央索引,这样WorldEdit就必须通读整个压缩文件来找到一个特定的文件。因为Minecraft将每个区块储存在单独的文件中,而且一个地图有许多区块,使用像ZIP这样支持随机访问的格式是必须的。

提示:压缩你的地图会使它需要更多CPU计算,所以你应该考虑创建没有压缩的存储档(仅作为存储用)。

ZIP

WorldEdit会自动使用Java的ZIP库来打开ZIP文件,但它不能处理所有种类的ZIP文件。如果你使用ZIP文件作为快照时收到了奇怪的错误,你应该安装TrueZIP。WorldEdit会在可以的情况下自动使用TrueZIP。

注意:一段时间前添加的代码损坏了WorldEdit在ZIP文件中找到地图文件夹的能力。很遗憾,因为这个ZIP文件必须要拥有以下结构:

  • 2010-06-23-12-00-00.zip
    • 世界名/
      • region/
      • level.dat
      • 等等...

恢复

  • //restore [快照名]
  • /snap use <快照名>
  • /snap use latest
  • /snap list [数量]
  • /snap sel <列表数字>

从备份恢复很简单!使用//restore [快照名]来恢复选区(在选择之后)。

默认WorldEdit会自动选择使用最新的备份,除非你给出一个指定的快照。

你可以使用//restore,/snap use <快照名>/snap sel <列表数字>来选择一个不同的快照。如果你使用/use,你就不需要在使用/restore时不停地写出快照的名称。使用/snap use latest来让WorldEdit选择最新的快照。使用/snap list [数量]来显示最新的可用的快照。

用法说明

本页的命令用法说明

为便于理解命令写法,每种参数使用特定的格式表示。

参数 例子 说明
<参数> <数量> 必须填写的参数,内容为参数中说明的,如数量可以为1,2,3等
[参数] [数量] 非必须填写的参数,内容为参数中说明的,如数量可以为1,2,3等,如不填写会由插件进行判定或使用默认值

<参数A|参数B>

<cuboid|extend> 需要从给出的多个参数中选择一个填写,必须性依情况不同
参数' cuboid' 参数为给出的字符串,使用时须原样输入
[-参数A参数B] [-hb] 参数为可以使用的标签,从多个单字符中选择需要一个或多个输入,可以输入在命令的任何位置,如[-hb]可以输入-h,-b或者-h -b

方块样式

你可能注意到了,上述的命令中,经常出现<方块样式>这个参数。 在使用所有使用方块作为参数的WorldEdit指令中,你可以指定一个方块数据。比如庄稼使用数据来表示他们的生长进度,你可以使用这个功能来设置庄稼的生长进度。

随机样式

比起设定一种方块,一个图案允许你使用更复杂的方块。举个例子,可以使用一个每个方块有10%几率是砖方块,90%几率是原石方块的图案。

  • 例:将所有方块设定为由百分比指定的随机图案
    • //set 5%diamond_ore,95%dirt

如果需要一个完全随机的图案,则不需要提供百分比。

  • 例子:使用一个无百分比列表将所有方块设定为一个随机图案
    • //set obsidian,stone
使用随机图案的//replace指令

随机状态

使用星号(*)作为方块的带有命名空间的ID的前缀,可以表示其随机的各种状态(states)。

  • 例子:将选区内容设为随机各种方向的橡木原木
    • //set *oak_log

剪贴板样式

#clipboard样式可以设置相同排列的剪贴板内容。你也可以通过@[x,y,z]来偏移其内容。

  • 例子:将所有存在的方块设为剪贴板内容:
    • //replace #existing #clipboard
  • 对剪贴板内容进行偏移:
    • //set #clipboard@[2,0,1]
使用剪贴板图案的//replace指令

样式的状态

带有^前缀,可以对方块状态进行调整,可以修改方块而不改变状态。例如:

  • 将橡木楼梯替换为金合欢楼梯,但是不改变其方向:
    • //replace oak_stairs ^acacia_stairs
  • 除去所有含水方块中的水:
    • //set ^[waterlogged=false]
  • 将所有半砖台阶设为双台阶:
    • //replace ##slabs ^[type=double]

方块标签样式

这种样式可以设置特定标签内的随机方块。标签允许将多种方块看做一种,比如,橡木原木、桦木原木、金合欢原木等,它们都是“原木”。标签可以由数据包定义。

方块标签的语法:##[标签名称],表示该标签内所有的默认状态的随机方块。或者与随机状态样式混合:##*[标签名称]来表示所有状态,而非默认状态。

  • 将选区内所有存在的方块设为彩虹羊毛(随机颜色的羊毛):
    • //replace #existing ##wool
  • 将选区设为随机的各种台阶,包括上半砖、下半砖、双台阶:
    • //set ##*slabs

特殊的方块数据语法

所有使用方块作为参数的命令都会使用这个语法。

告示牌文字

牌子上的每行文字须被管道符(|)分隔。如果文字有空格,需要将整个用半角引号("")包住。

  • 例:设置告示牌文字
    • //set oak_sign|Line1|Line2
  • 例:设置告示牌朝向与文字
    • //set "oak_wall_sign[facing=north]|Hello world|Second|Third line"
刷怪笼生物种类

刷怪笼(刷怪箱)生成的生物种类可以在一个管道符号(|)之后来指令。

  • 例:设定生物种类
    • //set spawner|squid
头颅种类

v.5.4.6以上头颅的种类和旋转方向可以在管道符(|)之后指定。种类可以是一个玩家的名称。旋转数值是0至15(包括两端)之间的数字。Minecraft 1.13之后的版本可以使用扁平化之后的名称,如skeleton_skull。

  • 例:
    • //set skeleton_skull
    • //set player_head|dinnerbone

蒙版

蒙版(masks),就像方块样式一样,在WorldEdit中非常常用。和样式不同,蒙版决定了只有哪些方块才会受到命令、刷子等的影响。蒙版控制会被影响的方块,效果就像方块过滤器。

注意:通过不同方式设置的蒙版会叠加应用。如果你将全局蒙版设为//gmask dirt,而将刷子蒙版设为/mask stone,则这个刷子不起任何作用,因为没有任何方块既是泥土又是石头。

提示:使用//gmask不加参数可以清楚全局蒙版。

组合蒙版

如需筛选同时符合多个匹配条件的方块,使用空格将其隔开。只有当所有蒙版都符合时,方块才会被选中。

示例:组合蒙版
  • 使用蒙版组合,将空气下方的石头改成泥土:
    • //replace "stone <air" dirt
  • 设置一个刷子,使其只影响当前选区内的方块:
    • /mask "air #sel"

可用蒙版

例子 介绍
rock,glass 只影响的方块列表(白名单)
!rock,glass 不影响的方块(黑名单)
#existing 已存在的方块(非空气方块),等同于!0
>rock,glass 只在某些方块之上
<rock,glass 只在某些方块之下
#region 只限于你的当前选区中

注意不同的蒙版可以被组合使用来形成一个只有满足其中所有蒙版才能满足的蒙版。在使用/mask或/gmask设定蒙版时用空格分隔多个蒙版可以创建组合蒙版。

方块蒙版

最简单的蒙版,方块蒙版匹配一个或更多个方块或方块状态。就像单个方块蒙版,你也可以指定一个单纯的方块类型,或者指定了状态的方块类型。与样式不同,蒙版不会对未指定的方块状态应用默认值,而是会匹配未指定的状态的所有值。

可以通过逗号来匹配多种方块。

示例:使用方块蒙版
  • 移除选区内的所有橡木栅栏:
    • //replace oak_fence air
  • 移除所有东侧相连的橡木栅栏以及橡木栅栏门:
    • //replace oak_fence[east=true],oak_fence_gate air
否定蒙版

!可以用于否定其后的任何东西,也就是说,匹配不能被这个蒙版匹配的方块。任何其他的蒙版都可以被否定。

示例:否定蒙版
  • 将所有不是泥土、石头、草方块的方块替换为石头:
    • //replace !dirt,stone,grass_block stone
存在的方块的蒙版

蒙版#existing会匹配所有不是空气的方块。注意这与!air不同,因为游戏实际上有多种类型的空气。

固体方块蒙版

蒙版#solid会匹配所有的“固体”方块,也就是会阻挡实体(如玩家)移动的方块。

偏移蒙版

在蒙版前使用>或<会匹配位于匹配特定蒙版的方块上方/下方的方块。可以叠用,如>dirt表示位于泥土上方一格的方块,>>dirt表示位于泥土上方两格的方块。

示例:偏移蒙版
  • 在选区内,在所有木板上方创建一层平滑石英台阶:
    • //replace >##planks smooth_stone_slab
选区蒙版

选区蒙版可以使刷子只影响选区之内的方块。比如,你只想刷你的墙外面的泥土,你可以选择墙,然后否定选取蒙版,这样泥土不会影响到墙(但仍会影响到附近的地面)。第一种选区蒙版为#region,也可以写成#sel或#selection,它会在你运行此命令时记住选区的位置,以用于蒙版。第二种选区蒙版为#dregion(d表示动态),也可以写成#dsel或#dselection,它所表示的选区总是与当前的选区保持一致。

方块标签蒙版

方块标签也可以用于蒙版。一个方块标签蒙版会匹配该标签内的所有方块。和样式一样,语法为##<标签名称>,标签由数据包定义。

示例:方块标签蒙版
  • 将所有颜色的地毯替换为一层雪:
    • //replace ##carpets snow
随机噪点蒙版

噪点蒙版可以创建随机噪点。指定%<百分比>会匹配特定百分比的方块。与方块样式中的方块权重不同。%50就是表示50%的方块。

方块状态蒙版

就像方块蒙版,方块状态蒙版匹配方块状态。和方块蒙版不同,你不必指定一个方块类型。这就意味着,你可以匹配任何拥有特定属性的方块。

方块状态蒙版拥有两种模式:粗略和严格模式。粗略模式(^[state=value,...])会匹配拥有与给定的值相同的方块状态的方块,或者没有这些属性的方块。严格模式(^=[state=value])中,只会匹配拥有与指定的方块状态相等的方块状态的方块。

示例:方块状态蒙版
  • 移除所有关上的门、栅栏门、活板门:
    • //replace ^=[open=false] air
表达式蒙版

表达式蒙版会对每个方块计算数学表达式。蒙版以=开头,并且必须有能够使用变量x、y、z的表达式。只有表达式返回正值时,这个方块才会被蒙版匹配。

示例:表达式蒙版
  • 只编辑位于特定y轴位置的方块:
    • //gmask =y<64
  • 只编辑位于空气两格下方的方块:
    • //gmask =queryRel(0,-2,0,0,0)
生物群系蒙版

生物群系蒙版匹配位于指定生物群系内的方块。语法为$<生物群系ID>。生物群系ID必须是带有命名空间的ID(namespaced id),其中原版生物群系的命名空间前缀minecraft:可选,模组中的生物群系的命名空间前缀必须加上。

树木种类

树木种类列表

你可以使用的树木种类有:

种类 介绍 ID
Regular 正常Minecraft小树 tree, regular
Big Minecraft大树 big, big tree
Dark Oak 黑森林生物群系树(深色橡木) darkoak
Sequoia 红衫木 redwood, sequoia
Tall sequoia 高红衫木 tallredwood, tallsequoia
Mega-Tall sequoia 超高2x2红衫木 megaredwood
Birch 桦木(白树皮) birch
Tall Birch 高桦木(白树皮) tallbirch
Pine 内置松树 pine
Random sequoia 随机高或不高的红衫木 randredwood
Jungle 2x2树干丛林木 jungle
Small jungle 1x1树干丛林木 smalljungle
Jungle Bush 无树干丛林树 junglebush
Swamp 带有藤蔓的树 swamp
Acacia 稀树草原生物群系树(金合欢) acacia
Red Giant Mushroom 巨型红队蘑菇 redmushroom
Brown Giant Mushroom 巨型棕色蘑菇 brownmushroom
Random 任何树木种类 random, rand

此外,Minecraft 1.16更新中加入的诡异菌、绯红菌也是支持的。

这里可能会有其他树木种类,欢迎添加!

例子

例子:生成高红衫木森林
/forestgen 20 tallredwood
例子:复制粘贴用列表
/tree [tree, big, redwood, tallredwood, megaredwood, randredwood, birch, tallbirch, pine, jungle, smalljungle, acacia, darkoak, random]

CraftScript脚本

脚本可以让你在不需要学习Java,明白如何编译WorldEdit,或者重造轮子的情况下完成一些简单的任务。 CraftScript是使用JavaScript编写的。

WorldEdit版本 0.8之前的脚本支持是不同的。

注意:你必须要安装Rhino脚本运行库来使用这个功能。

安装脚本

在你的服务器根目录创建一个plugins/WorldEdit/craftscripts/ 路径(如果是单人模式,.minecraft 路径) 并将CraftScript脚本放入该目录。脚本文件一般拥有.js扩展名。

注意:不要运行来源不可信的脚本。

内置脚本

下载WorldEdit时会自带四个脚本(如果需要使用记得将它们从下载文件夹复制至 plugins/WorldEdit/craftscripts/ 文件夹)。

文件名 参数 介绍
maze.js <方块> [宽度] [长度] 生成一个2格高,由指定方块作为墙的迷宫。
draw.js <图像文件> [v] 将一个图像使用彩色羊毛在游戏内渲染,使用v参数来使它垂直生成。图像文件必须要放置在 plugins/WorldEdit/drawings/ 路径。
quickshot.js <音符1> [音符2] ... 创建一个简单的用红石连接的音符盒序列。使用示例:quickshot.js 1a# 1c 2f
roof.js <方块> 在你的选区之上创建一个金字塔形屋顶。

运行脚本

  • /cs <脚本名> [参数...]
  • /.s [参数...] (再次运行上一个脚本)
  • /<脚本名>.js [参数...] (快捷方式)

这个命令会运行脚本。不要忘记.js扩展名。如果脚本使用它们,可以加上附加的参数。

安装 Rhino

在你的Java版本不带有需要的部件时(你会收到 "Failed to find an installed script engine."),你需要手动安装Rhino JavaScript Engine。如果你收到 "ReferenceError," ,安装Rhino应该可以解决你的问题。

你应该在 可以的情况下安装Rhino 因为Java自带的Rhino版本一般很低。

编写脚本

请查看脚本开发页

脚本是使用JavaScript编写的。

可能依赖性

如果你安装了某些Java库,WorldEdit会自动使用它们来提供更多功能。安装这些库的过程是在下载后找到需要的文件(下面的列表)并将它放进你的plugins/WorldEdit/路径中。在重启服务器之后,WorldEdit应该可以找到这些库。

作用 需要安装的文件
TrueZIP 快照功能对ZIP文件的更好支持 保存为 truezip.jar
Rhino (JavaScript engine) 使用脚本功能的必须项 提取 js.jar

注意文件名必须与表格中的完全相同。

源码

源代码 : https://github.com/sk89q/worldedit

其他平台

WorldEdit MOD
WorldEditWrapper (LiteMod)

MinecraftForum: http://www.minecraftforum.net/forums/mapping-and-modding/minecraft-mods/1294341-worldeditwrapper-use-worldedit-in-single-player

授权声明

本页内容翻译/搬运自SKWiki(已失效)和官方文档

授权方式为CC BY-NC-SA 3.0

该作者已授权以 署名-非商业性使用-相同方式共享-3.0(by-nc-sa-3.0) 方式使用其作品