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

WorldEdit:修订间差异

来自Minecraft插件百科
跳转到导航 跳转到搜索
无编辑摘要
 
(未显示11个用户的211个中间版本)
第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命令。
 
=== 方块支持 ===
WorldEdit对于不同平台,不同版本以及你的不同配置有不同的方块支持等级。


=安装=
如果WorldEdit不支持你的平台,你会注意到一些问题:
<br />
# 下载WorldEdit http://dev.bukkit.org/bukkit-plugins/worldedit/files/ <br />
# 解压压缩包(如果为压缩文件) <br />
# 将jar文件放进plugins文件夹 <br />
# 重启服务器 <br />
<br />


=命令=
* 如果没有正确的支持,箱子,熔炉等在复制时不会保存他们的库存
* 如果没有正确的支持,在撤销对于箱子,熔炉等的改变时有可能使他们的内容丢失


====参数格式对照====
为便于理解命令写法,每种参数使用特定的格式表示
{| class="wikitable"
{| class="wikitable"
! width="160"| 平台
! 状态
|-
|-
! 参数 !! 例子 !! 说明
| Bukkit
| Bukkit平台支持需要你使用与你CraftBukkit相对应版本的WorldEdit。WorldEdit 拥有需要特定版本的Bukkit来使用的“NMS 方块”或“适配器”(较新版本中)代码。 每个WorldEdit版本会有一个对应最新Bukkit版本的它们的列表。
 
如果出现问题,你可能需要升级或降级你的WorldEdit。
|-
| Spigot
| 见 Bukkit。
|-
|-
| <参数> || <数量> || 必须填写的参数,内容为参数中说明的,如数量可以为1,2,3等
| Minecraft Forge
| 在WorldEdit 6及以上完全支持。
|-
|-
| [参数] || [数量] || 非必须填写的参数,内容为参数中说明的,如数量可以为1,2,3等,如不填写会由插件进行判定或使用默认值
| Fabric Loader
| 完全支持。
|-
|-
|  
| MinecraftEdu
<参数A|参数B>
| MinecraftEdu 是 Forge 版 WorldEdit的修改,平台支持随MCEdu提供的版本而改变。
|| <cuboid|extend>
|| 需要从给出的多个参数中选择一个填写,必须性依情况不同
|-
|-
| ''参数''
| MCPC+
|| ''cuboid''
| 大部分版本支持。
|| 参数为给出的字符串,使用时须原样输入
|-
|-
| [-参数A参数B]
| Cauldron
|| [-hb]
| WorldEdit 5 尚未支持。WorldEdit 6 及以上如果安装Forge版本的WorldEdit即可以完全支持。推荐在使用 WorldEdit 6 及以上时同时安装 Forge 与 Bukkit 版 WorldEdit。
|| 参数为可以使用的标签,从多个单字符中选择需要一个或多个输入,可以输入在命令的任何位置,如[-hb]可以输入-h,-b或者-h -b
|}
===限制===
{| class="wikitable"
|-
|-
! 命令 !! 参数 !! 介绍
| LiteLoader
| 这是一个非官方平台的 WorldEdit,暂时没有关于支持的相关信息。
|-
|-
| //limit || <限制> || 设置大部分操作方块修改数量的最大上限,只对使用者有效,你可以使用这个命令来避免严重后果的错误,如果在配置文件中设置了最大上限,此命令设置的上限不会覆盖配置文件中设定的的上限
| 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:”。
* <nowiki>#</nowiki> 开头的行是注释所以可以被忽略。
 
==== 配置项目 ====
 
注意:以下的配置项目中每多一个点,说明你需要将它比上一项缩进更多一层。
 
{| class="wikitable"
{| class="wikitable"
! width="240"| 配置项
! width="100"| 数据种类
! width="80"| 默认
! 介绍
|-
|-
! 命令 !! 参数 !! 介绍
| wand-item || integer || 271 || 魔杖工具,即使用左键与右键点击来选择选区的工具,使用的物品ID。默认为木斧。
|-
|-
| //undo || [步数] || 撤销你的上一个(或几个)操作
| shell-save-type || ''bash'' 或 ''bat'' || || 使用的脚本文件格式。'''/delchunks'''指令会使用这项。
|-
|-
| //redo || [步数] || 重做你上一个(或几个)被撤销的操作
| debug || true/false || false || 如果开启,每个指令完成使用的时间会被在每个指令使用后显示。
|-
|-
| /clearhistory ||  || 清除你的历史记录
! class="hl2" colspan="4"| 限制
|}
 
===选区===
{| class="wikitable"
|-
|-
! 命令 !! 参数 !! 介绍
| limits.max-blocks-changed.maximum || integer || -1 || 每次操作可以改变的方块数上限。这一项的上限是一个用户不能自行设定超过的上限。如果你想设定默认值(对单个用户的),使用''default-max-blocks-changed''。-1的数值表示无上限。
|-
|-
| //wand || || 给予你编辑工具(默认为木斧)使用这个工具左键点击来选择第一个位置,右键点击来选择第二个位置
| limits.max-blocks-changed.default || integer || -1 || 默认方块修改数上限。如果这个数值比''max-blocks-changed''设定的数值高,该上限会覆盖此上限。-1的数值表示无上限。
|-
|-
| /toggleeditwand || || 切换选择工具模式,使你可以正常使用作为选择工具的物品
| limits.max-radius || integer || -1 || 使用半径参数的指令可以使用的最大上限。使用-1来设定无上限。
|-
|-
| //sel ||
| limits.max-super-pickaxe-size || integer || 5 || 超级镐子最大可以使用的范围。
<''cuboid''|''extend''|''poly''|''ellipsoid''|''sphere''|''cyl''>
|| 设置选区使用的形状
|-
|-
| //desel || || 清除当前的选区
| limits.disallowed-blocks || 方块ID列表 || (一个列表) || 一个不能被使用的方块和物品的列表。注意''//stack''指令不遵守这个配置。
|-
|-
| //pos1 ||  || 将你站立的方块上方的方块的位置设置为第一个选区位置
! class="hl2" colspan="4"| 使用背包
|-
|-
| //pos2 || || 将你站立的方块上方的方块的位置设置为第二个选区位置
| use-inventory.enable || true/false || false || 从玩家的背包得到所有需要的方块。
|-
|-
| //hpos1 || || 将你指针所指的方块的位置设置为第一个选区位置
| use-inventory.override || true/false || true || 启用'''worldedit.inventory.unrestricted'''权限,使一个玩家可以越过''use-inventory''开启时的限制。
|-
|-
| //hpos2 ||  || 将你指针所指的方块的位置设置为第二个选区位置
! class="hl2" colspan="4"| 记录
|-
|-
| //expand || <数量> || 向你所看的方向扩大选区范围
| logging.log-commands || true/false || false || 选择是否在后台记录使用的指令。
|-
|-
| //expand || <数量> <方向> || 向指定方向扩大选区范围 (可用方向有 north,south,east,west,up,down)
| logging.file || string || || 放置记录命令使用的文件的路径。使用时''log-commands''必须开启。
|-
|-
| //expand || <数量> <反方向数量> [方向] || 同时向两个方向扩大选区范围
! class="hl2" colspan="4"| 超级镐子
|-
|-
| //expand || ''vert'' || 将选区扩大到从天空到基岩
| super-pickaxe.drop-items || true/false || true || 使用单方块超级镐子时是否掉落方块。
|-
|-
| //contract || <数量> || 向你所看的方向缩小选区范围
| super-pickaxe.many-drop-items || true/false || false || 使用非单方块镐子时是否掉落方块。注意这些模式下可能会有大量方块被破坏并且掉落过多的方块物品。
|-
|-
| //contract || <数量> <方向> || 向指定方向缩小选区范围 (可用方向有 north,south,east,west,up,down)
! class="hl2" colspan="4"| 快照
|-
|-
| //contract || <数量> <反方向数量> [方向] || 同时向两个方向缩小选区范围
| snapshots.directory || string || || 读取快照的路径。除非使用了绝对路径,这个路径是与服务jar所在路径相对的。
|-
|-
| //outset || [-hv] <数量> || 向所有方向扩大选区范围
! class="hl2" colspan="4"| 导航魔杖
|-
|-
| //inset || [-hv] <数量> || 向所有方向缩小选区范围
| navigation-wand.item || integer || 345 || 绑定/jumpto(左键)和/thru(右键),使用的工具。默认物品为指南针。
|-
|-
| //shift || <数量> [方向] || 移动选区范围,不移动选区中的内容
| navigation-wand.max-distance || integer || 100 || 导航工具可以使用的最大距离。
|-
|-
| //size ||  || 得到当前选区的大小
! class="hl2" colspan="4"| 脚本
|-
|-
| //count || <方块ID> || 计算选区内指定方块的数量
| scripting.timeout || integer || 3000 || CraftScript运行的最大时长(毫秒)。
|-
|-
| //distr || [-c] || 计算选区内的方块分布比例
| scripting.dir || string || craftscripts || 存放脚本的路径。
|}
 
===选区操作===
{| class="wikitable"
|-
|-
! 命令 !! 参数 !! 介绍
! class="hl2" colspan="4"| 保存
|-
|-
| //set || <方块ID> || 将选区内的所有方块设定为指定方块
| saving.dir || string || schematics || 保存schematic文件的位置。
|-
|-
| //replace || <到方块ID> || 替换所有非空气方块为指定方块
! class="hl2" colspan="4"| 历史
|-
|-
| //replace || <从方块ID> <到方块ID> || 将所有指定方块替换成另一个指定方块
| history.Size || integer || 15 || 撤销历史存储数
|-
|-
| //overlay || <方块ID> || 将指定方块放在选区内所有方块上方
| history.expiration || integer || 10 || 撤销历史过期时间
|-
|-
| //walls || <方块ID> || 用指定方块在选区四周建立墙壁(不包括屋顶与地面)
! class="hl2" colspan="4"| 屠杀
|-
|-
| //outline || <方块ID> || 用指定方块在选区周围建立墙壁,屋顶与地面
| butcher.butcher-default-radius || integer || -1 || 杀死怪物的范围,-1为无上限。
|-
|-
| //smooth || [迭代次数] || 平滑化选区的高度图
|}
 
如果需要在游戏内重置WorldEdit的配置,可以使用<code>/reloadwe</code>来重载插件。
 
=== 使用背包 ===
 
开启背包使用模式会使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文件
<code>zip -v backups/`date "+%Y-%m-%d-%H-%M-%S"`.zip -r world</code>
 
==== 支持的存储档格式 ====
 
目前WorldEdit仅支持ZIP文件。TAR文件不会被支持因为TAR格式没有中央索引,这样WorldEdit就必须通读整个压缩文件来找到一个特定的文件。因为Minecraft将每个区块储存在单独的文件中,而且一个地图有许多区块,使用像ZIP这样支持随机访问的格式是必须的。
 
提示:压缩你的地图会使它需要更多CPU计算,所以你应该考虑创建没有压缩的存储档(仅作为存储用)。
 
===== ZIP =====
 
WorldEdit会自动使用Java的ZIP库来打开ZIP文件,但它不能处理所有种类的ZIP文件。如果你使用ZIP文件作为快照时收到了奇怪的错误,你应该安装TrueZIP。WorldEdit会在可以的情况下自动使用TrueZIP。
 
<span style=”color:red”>注意:一段时间前添加的代码损坏了WorldEdit在ZIP文件中找到地图文件夹的能力。很遗憾,因为这个ZIP文件必须要拥有以下结构:
* 2010-06-23-12-00-00.zip
** 世界名/
*** region/
*** level.dat
*** 等等...
</span>
 
=== 恢复 ===
 
* //restore [''快照名'']
* /snap use <''快照名''>
* /snap use latest
* /snap list [''数量'']
* /snap sel <''列表数字''>
 
从备份恢复很简单!使用<code>//restore [''快照名'']</code>来恢复选区(在选择之后)。
 
默认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"
|-
|-
| //deform ||  || 按照几何表达式使选区内容变形
! 参数 !! 例子 !! 说明
|-
|-
| //hollow || || 使选区内部的物体空心
| <''参数''> || <''数量''> || 必须填写的参数,内容为参数中说明的,如数量可以为1,2,3等
|-
|-
| //regen || || 重新生成选择区域
| [''参数''] || [''数量''] || 非必须填写的参数,内容为参数中说明的,如数量可以为1,2,3等,如不填写会由插件进行判定或使用默认值
|-
|-
| //move || [数量] [方向] [留存方块ID] || 移动选区内容,可以指定一个方块来填充移动后留空的区域
|  
<参数A|参数B>
|| <cuboid|extend>
|| 需要从给出的多个参数中选择一个填写,必须性依情况不同
|-
|-
| //stack || [数量] [方向] || 叠加选区内容
| 参数'
|| cuboid'
|| 参数为给出的字符串,使用时须原样输入
|-
|-
| //naturalize || || 将选区表面3格设定为泥土,下面设定为原石
| [-参数A参数B]
|| [-hb]
|| 参数为可以使用的标签,从多个单字符中选择需要一个或多个输入,可以输入在命令的任何位置,如[-hb]可以输入-h,-b或者-h -b
|}
|}
=== 方块样式 ===


===剪贴板===
你可能注意到了,上述的命令中,经常出现<方块样式>这个参数。
在使用所有使用方块作为参数的WorldEdit指令中,你可以指定一个方块数据。比如庄稼使用数据来表示他们的生长进度,你可以使用这个功能来设置庄稼的生长进度。
 
==== 随机样式 ====
 
比起设定一种方块,一个图案允许你使用更复杂的方块。举个例子,可以使用一个每个方块有10%几率是砖方块,90%几率是原石方块的图案。
 
* 例:将所有方块设定为由百分比指定的随机图案
** <code>//set 5%diamond_ore,95%dirt</code>
 
如果需要一个完全随机的图案,则不需要提供百分比。
 
* 例子:使用一个无百分比列表将所有方块设定为一个随机图案
** <code>//set obsidian,stone</code>
 
[[文件:WorldEdit block probability.jpg|center|frame|使用随机图案的//replace指令]]
 
==== 随机状态 ====
 
使用星号(<code>*</code>)作为方块的带有命名空间的ID的前缀,可以表示其随机的各种状态(states)。
* 例子:将选区内容设为随机各种方向的橡木原木
** //set *oak_log
 
==== 剪贴板样式 ====
 
<code>#clipboard</code>样式可以设置相同排列的剪贴板内容。你也可以通过<code>@[x,y,z]</code>来偏移其内容。
 
* 例子:将所有存在的方块设为剪贴板内容:
** //replace #existing #clipboard
* 对剪贴板内容进行偏移:
** //set #clipboard@[2,0,1]
 
[[文件:WorldEdit_clipboard_pattern.jpg|center|frame|使用剪贴板图案的//replace指令]]
 
==== 样式的状态 ====
 
带有<code>^</code>前缀,可以对方块状态进行调整,可以修改方块而不改变状态。例如:
 
* 将橡木楼梯替换为金合欢楼梯,但是不改变其方向:
** //replace oak_stairs ^acacia_stairs
* 除去所有含水方块中的水:
** //set ^[waterlogged=false]
* 将所有半砖台阶设为双台阶:
** //replace ##slabs ^[type=double]
 
==== 方块标签样式 ====
 
这种样式可以设置特定标签内的随机方块。标签允许将多种方块看做一种,比如,橡木原木、桦木原木、金合欢原木等,它们都是“原木”。标签可以由数据包定义。
 
方块标签的语法:<code>##[标签名称]</code>,表示该标签内所有的默认状态的随机方块。或者与随机状态样式混合:<code>##*[标签名称]</code>来表示所有状态,而非默认状态。
 
* 将选区内所有存在的方块设为彩虹羊毛(随机颜色的羊毛):
** //replace #existing ##wool
* 将选区设为随机的各种台阶,包括上半砖、下半砖、双台阶:
** //set ##*slabs
 
==== 特殊的方块数据语法 ====
 
所有使用方块作为参数的命令都会使用这个语法。
===== 告示牌文字 =====
 
牌子上的每行文字须被管道符(|)分隔。如果文字有空格,需要将整个用半角引号(<code>""</code>)包住。
 
* 例:设置告示牌文字
** <code>//set oak_sign|Line1|Line2</code>
* 例:设置告示牌朝向与文字
** <code>//set "oak_wall_sign[facing=north]|Hello world|Second|Third line"</code>
 
===== 刷怪笼生物种类 =====
刷怪笼(刷怪箱)生成的生物种类可以在一个管道符号(|)之后来指令。
 
* 例:设定生物种类
** <code>//set spawner<nowiki>|squid</nowiki></code>
 
===== 头颅种类 =====
 
<code>v.5.4.6以上</code>头颅的种类和旋转方向可以在管道符(|)之后指定。种类可以是一个玩家的名称。旋转数值是0至15(包括两端)之间的数字。Minecraft 1.13之后的版本可以使用扁平化之后的名称,如skeleton_skull。
 
* 例:
** <code>//set skeleton_skull</code>
** //set player_head|dinnerbone
 
=== 蒙版 ===
'''蒙版(masks)''',就像方块样式一样,在WorldEdit中非常常用。和样式不同,蒙版决定了只有哪些方块才会受到命令、刷子等的影响。蒙版控制会被影响的方块,效果就像方块过滤器。
 
'''注意:'''通过不同方式设置的蒙版会叠加应用。如果你将全局蒙版设为//gmask dirt,而将刷子蒙版设为/mask stone,则这个刷子不起任何作用,因为没有任何方块既是泥土又是石头。
 
'''提示:'''使用//gmask不加参数可以清楚全局蒙版。
 
==== 组合蒙版 ====
如需筛选同时符合多个匹配条件的方块,使用空格将其隔开。只有当所有蒙版都符合时,方块才会被选中。
 
; 示例:组合蒙版
* 使用蒙版组合,将空气下方的石头改成泥土:
** //replace "stone <air" dirt
* 设置一个刷子,使其只影响当前选区内的方块:
** /mask "air #sel"
 
==== 可用蒙版 ====


{| class="wikitable"
{| class="wikitable"
! 例子
! 介绍
|-
|-
! 命令 !! 参数 !! 介绍
| rock,glass || 只影响的方块列表(白名单)
|-
| //copy ||  || 复制当前选区内容,注意你与选区的相对位置将被储存
|-
| //cut ||  || 剪切当前选区内容
|-
| //paste || [-ao] || 粘贴剪贴板内容。如果你使用-a标签,空气方块将会被忽略
|-
| //rotate || <角度> || 旋转剪贴板内容
|-
| //flip || [方向] || 翻转剪贴板内容
|-
|-
| //schematic 或 //schem || ''save'' [格式] <文件名> || 将剪贴板内容保存为schematic文件(mcedit是目前唯一格式)
|!rock,glass || 不影响的方块(黑名单)
|-
|-
| //schematic 或 //schem || ''load'' [格式] <文件名> || 将schematic文件加载到剪贴板
| #existing || 已存在的方块(非空气方块),等同于<code>!0</code>
|-
|-
| //schematic 或 //schem || ''list'' || 显示所有schematic文件列表
| >rock,glass || 只在某些方块之上
|-
|-
| //schematic 或 //schem || ''formats'' || 显示所有可用的schematic格式
| <rock,glass || 只在某些方块之下
|-
|-
| /clearclipboard || || 清空你的剪贴板内容
| #region || 只限于你的当前选区中
|}
|}


===生成===
注意不同的蒙版可以被组合使用来形成一个只有满足其中所有蒙版才能满足的蒙版。在使用/mask或/gmask设定蒙版时用空格分隔多个蒙版可以创建组合蒙版。
 
===== 方块蒙版 =====
最简单的蒙版,方块蒙版匹配一个或更多个方块或方块状态。就像单个方块蒙版,你也可以指定一个单纯的方块类型,或者指定了状态的方块类型。与样式不同,蒙版不会对未指定的方块状态应用默认值,而是会匹配未指定的状态的所有值。
 
可以通过逗号来匹配多种方块。
; 示例:使用方块蒙版
* 移除选区内的所有橡木栅栏:
**//replace oak_fence air
* 移除所有东侧相连的橡木栅栏以及橡木栅栏门:
** //replace oak_fence[east=true],oak_fence_gate air
===== 否定蒙版 =====
<code>!</code>可以用于否定其后的任何东西,也就是说,匹配不能被这个蒙版匹配的方块。任何其他的蒙版都可以被否定。
 
; 示例:否定蒙版
* 将所有不是泥土、石头、草方块的方块替换为石头:
** //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:可选,模组中的生物群系的命名空间前缀必须加上。
 
=== 树木种类 ===
==== 树木种类列表 ====
 
你可以使用的树木种类有:


{| class="wikitable"
{| class="wikitable"
! 种类
! 介绍
! ID
|-
|-
! 命令 !! 参数 !! 介绍
| Regular || 正常Minecraft小树 || tree, regular
|-
|-
| //generate || <方块ID> <方程> || 根据给出的方程生成形状
| Big || Minecraft大树|| big, big tree
|-
|-
| //hcyl || <方块ID> <半径> [高度] || 生成一个竖直的空心圆柱体
| Dark Oak || 黑森林生物群系树(深色橡木)|| darkoak
|-
|-
| //cyl || <方块ID> <半径> [高度] || 生成一个竖直的实心圆柱体
| Sequoia ||红衫木|| redwood, sequoia
|-
|-
| //sphere || <方块ID> <半径> [""yes""(是否生成在上方)] || 生成一个球体
| Tall sequoia || 高红衫木 || tallredwood, tallsequoia
|-
|-
| //hsphere || <方块ID> <半径> [""yes""(是否生成在上方)] || 生成一个空心球体
| Mega-Tall sequoia || 超高2x2红衫木|| megaredwood
|-
|-
| //pyramid || <方块ID> <大小> || 生成一座金字塔
| Birch || 桦木(白树皮) || birch
|-
|-
| //hpyramid || <方块ID> <大小> || 生成一座空心金字塔
| Tall Birch || 高桦木(白树皮) || tallbirch
|-
|-
| //forestgen || [大小] [种类] [密度] || 生成一片森林
| Pine || 内置松树 || pine
|-
|-
| //pumpkins || [大小] || 生成一片南瓜地
| Random sequoia || 随机高或不高的红衫木 || randredwood
|}
 
===效用性===
 
{| class="wikitable"
|-
|-
! 命令 !! 参数 !! 介绍
| Jungle || 2x2树干丛林木 || jungle
|-
|-
| /toggleplace || || 在第一个选择点与你的位置之间切换
| Small jungle || 1x1树干丛林木 || smalljungle
|-
|-
| //fill || <方块> <半径> [深度] || 填充一个洞
| Jungle Bush || 无树干丛林树|| junglebush
|-
|-
| //fillr || <方块> <半径> || 以递归模式填充完全一个洞
| Swamp || 带有藤蔓的树|| swamp
|-
|-
| //drain || <半径> || 吸干附近的水或岩浆
| Acacia || 稀树草原生物群系树(金合欢) || acacia
|-
|-
| /fixwater || <半径> || 平整附近的水面
| Red Giant Mushroom || 巨型红队蘑菇 || redmushroom
|-
|-
| /fixlava || <半径> || 平整附近的岩浆表面
| Brown Giant Mushroom || 巨型棕色蘑菇 || brownmushroom
|-
|-
| /removeabove || [大小] [高度] || 移除你上方的方块
| Random || 任何树木种类 || random, rand
|-
|}
| /removebelow || [大小] [高度] || 移除你下方的方块
 
|-
此外,Minecraft 1.16更新中加入的诡异菌、绯红菌也是支持的。
| /replacenear || <大小> <从方块ID> <到方块ID> || 替换附近的方块
 
|-
这里可能会有其他树木种类,欢迎添加!
| /removenear || [方块] [范围] || 移除附近的方块
 
==== 例子 ====
 
;例子:生成高红衫木森林
:<code>/forestgen 20 tallredwood</code>
 
;例子:复制粘贴用列表
:<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>
 
=== 安装脚本 ===
 
在你的服务器根目录创建一个'''plugins/WorldEdit/craftscripts/''' 路径(如果是单人模式,'''.minecraft''' 路径) 并将CraftScript脚本放入该目录。脚本文件一般拥有'''.js'''扩展名。
 
<span style="color:red">注意:不要运行来源不可信的脚本。</span>
 
==== 内置脚本 ====
 
下载WorldEdit时会自带四个脚本(如果需要使用记得将它们从下载文件夹复制至 '''plugins/WorldEdit/craftscripts/''' 文件夹)。
 
{| class="wikitable"
! 文件名
! width="150"| 参数
! 介绍
|-
|-
| /snow || [半径] || 模拟降雪
| [http://github.com/sk89q/worldedit/blob/master/contrib/craftscripts/maze.js maze.js]
| <''方块''> [''宽度''] [''长度'']
| 生成一个2格高,由指定方块作为墙的迷宫。
|-
|-
| /thaw || [半径] || 融化附近的积雪
| [http://github.com/sk89q/worldedit/blob/master/contrib/craftscripts/draw.js draw.js]
| <''图像文件''> [v]
| 将一个图像使用彩色羊毛在游戏内渲染,使用v参数来使它垂直生成。图像文件必须要放置在 '''plugins/WorldEdit/drawings/''' 路径。
|-
|-
| //ex || [范围] || 扑灭附近的火焰
| [http://github.com/sk89q/worldedit/blob/master/contrib/craftscripts/quickshot.js quickshot.js]
| <''音符1''> [''音符2''] ...
| 创建一个简单的用红石连接的音符盒序列。使用示例:<code>quickshot.js 1a# 1c 2f</code>
|-
|-
| /butcher || [半径] || 杀死附近的生物
| [http://github.com/sk89q/worldedit/blob/master/contrib/craftscripts/roof.js roof.js]
|-
| <''方块''>
| /remove || <种类> <范围> || 清除附近的实体,种类有"items"(物品),"arrows"(箭),"boats"(船),"minecarts(矿车)","tnt"或"xp"(经验球)
| 在你的选区之上创建一个金字塔形屋顶。
|-
| //green ||  || 绿化附近
|}
|}


===区块工具===
=== 运行脚本 ===
===超级镐子===
 
===工具===
* /cs <''脚本名''> [''参数''...]
===刷子===
* /.s [''参数''...] (再次运行上一个脚本)
===传送===
* /<''脚本名''>.js [''参数''...] (快捷方式)
===快照===
 
===脚本===
这个命令会运行脚本。不要忘记.js扩展名。如果脚本使用它们,可以加上附加的参数。
===普命令===
 
===生物群系===
=== 安装 Rhino ===


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


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


=特性=
=== 编写脚本 ===
==会话==
==历史==
==方块支持==
==物品支持==


=选区=
请查看[[WorldEdit/CraftScript|脚本开发页]]。
==选择选区==
==选区操作==


=剪贴板=
脚本是使用JavaScript编写的。


=生成=
=== 可能依赖性 ===


=工具=
如果你安装了某些Java库,WorldEdit会自动使用它们来提供更多功能。安装这些库的过程是在下载后找到需要的文件(下面的列表)并将它放进你的'''plugins/WorldEdit/'''路径中。在重启服务器之后,WorldEdit应该可以找到这些库。
==编辑工具==
 
==区块工具==
{| class="wikitable"
==超级镐子==
! 库
==刷子==
! 作用
==传送==
! 需要安装的文件
|-
| [http://repo1.maven.org/maven2/de/schlichtherle/truezip/6.8.1/truezip-6.8.1.jar TrueZIP]
| 快照功能对ZIP文件的更好支持
| 保存为 '''truezip.jar'''
|-
| [http://www.mozilla.org/rhino/download.html Rhino] (JavaScript engine)
| 使用脚本功能的必须项
| 提取 '''js.jar'''
|}


=从快照恢复=
注意文件名必须与表格中的完全相同。


=其他=
== 源码 ==
==CraftScript代码==
==方块数据值==
==蒙版==
==树木种类==
=源码=
源代码 : https://github.com/sk89q/worldedit
源代码 : https://github.com/sk89q/worldedit
=其他平台=
=== 其他平台 ===
==WorldEdit MOD==
; WorldEdit MOD
MinecraftForum: http://www.minecraftforum.net/forums/mapping-and-modding/minecraft-mods/1272389-worldedit-in-game-map-editor-testing-tool-for
* 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
* CurseForge: http://minecraft.curseforge.com/projects/worldedit


==WorldEditWrapper (LiteMod)==
; WorldEditWrapper (LiteMod)
MinecraftForum: http://www.minecraftforum.net/forums/mapping-and-modding/minecraft-mods/1294341-worldeditwrapper-use-worldedit-in-single-player
MinecraftForum: http://www.minecraftforum.net/forums/mapping-and-modding/minecraft-mods/1294341-worldeditwrapper-use-worldedit-in-single-player
== 授权声明 ==
本页内容翻译/搬运自[http://wiki.sk89q.com/wiki/WorldEdit SKWiki](已失效)和[https://worldedit.enginehub.org/en/latest/ 官方文档]。
授权方式为CC BY-NC-SA 3.0
{{Cc-by-nc-sa-3.0}}
[[Category:整地]][[Category:管理]][[Category:创世]][[Category:传送]][[Category:信息]]

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) 方式使用其作品