clone
需要的权限等级 | Java版:2 基岩版:1 |
---|---|
限制条件 | 启用作弊 |
在指定区域之间复制方块结构。
语法
- Java版
clone <begin> <end> <destination> [replace|masked] [force|move|normal]
clone <begin> <end> <destination> filtered <filter> [force|move|normal]
clone [from <sourceDimension>] <begin> <end> [to <targetDimension>] <destination> [replace|masked] [force|move|normal]
[新增:脚本错误:函数“wrapper”不存在。] clone [from <sourceDimension>] <begin> <end> [to <targetDimension>] <destination> filtered <filter> [force|move|normal]
[新增:脚本错误:函数“wrapper”不存在。]
- 基岩版
clone <begin: x y z> <end: x y z> <destination: x y z> [maskMode: MaskMode] [cloneMode: CloneMode]
clone <begin: x y z> <end: x y z> <destination: x y z> filtered <cloneMode: CloneMode> <tileName: Block> <blockStates: block states>
clone <begin: x y z> <end: x y z> <destination: x y z> filtered <cloneMode: CloneMode> <tileName: Block> <tileData: int>
[失效:脚本错误:函数“wrapper”不存在。]
参数
JE: <begin>
:block_pos 和 <end>
:block_pos
BE: begin: x y z
:CommandPosition 和 end: x y z
:CommandPosition
- 定义源区域的两组对角方块坐标。可以使用相对坐标和局部坐标来指定命令执行地的相对距离。
- 构成边角的方块在此方块的坐标正方向上延伸。因此,各轴上较小的坐标将会正好贴合区域边界,但较大的坐标将会超过边界1方块,源区域的体积则为(x大 – x小 + 1) × (y大 – y小 + 1) × (z大 – z小 + 1)。例如:
0 0 0 0 0 0
的体积为1方块,0 0 0 1 1 1
与1 1 1 0 0 0
都指定同一块8方块大小的区域。
JE:<destination>
:block_pos
BE:destination: x y z
:CommandPosition
- 定义目标区域的西北方向较低(即在各轴上坐标值最小)的点的坐标,游戏会根据
开始
与结束
的坐标算出目标区域的范围。可以使用相对坐标和局部坐标来指定命令执行地的相对距离。
JE: replace|masked
BE: maskMode: MaskMode
- 指定是否过滤被复制方块。必须为下列之一:
masked
— 仅复制非空气方块。会保持目的区域中原本会被替换为空气的方块不变。replace
— 复制所有方块,用源区域的方块覆盖目标区域中的所有方块。
- 若未定义,默认为
replace
。
filtered
- 使命令只复制指定方块,需要额外指定一个方块。
JE: force|move|normal
BE: cloneMode: CloneMode
- 指定对源区域的操作。必须为下列之一:
force
— 强制复制,即使源区域与目标区域有重叠。move
— 将源区域复制到目标区域,并将源区域替换为空气。在filtered遮罩模式下,只有被复制的方块才会被替换为空气。normal
— 不执行force与move。
- 若未指定,默认为
normal
。
JE:<filter>
:block_predicate
BE:tileName: Block
:Block
- 指定在
filtered
模式下时要复制的方块ID - 必须为方块参数(接受方块的标签)。在基岩版中,必须为方块ID。
JE:<sourceDimension>
- 指定复制区域的来源维度。
JE:<targetDimension>
- 指定复制区域的目的维度。
BE: tileData: int
:int
- 指定复制时需要符合的方块数据值。
BE: blockStates: block states
:BlockStateCommandParam
- 指定复制时需要符合的方块状态。
效果
命令 | 触发条件 | Java版 | 基岩版 |
---|---|---|---|
任意 | 参数未正确指定 | 无法解析 | 无法解析 |
指定的维度不存在 |
执行失败 | N/A | |
指定的区域处于已卸载的或在世界外的区块中 | 执行失败 | ||
源区域被选中的方块数量超过32768commandModificationBlockLimit 的设定值 |
|||
/clone ... normal ... |
源区域和目标区域重叠 | ||
/clone ... move ... |
源区域和目标区域重叠 | 执行成功 | |
/clone ... filtered ... |
源区域内无指定方块 | 执行失败 | |
/clone ... filtered ... |
tileData: int 小于-1或大于6553 |
N/A | |
/clone ... replace ... |
源区域内所有方块为屏障[1] | 执行失败 | N/A |
/clone ... filtered ... |
指定方块为屏障[1] | ||
/clone ... masked ... |
源区域内无非空气或非屏障方块 |
执行失败 | |
/clone ... force ... |
目标区域中没有方块被更改 | ||
任意 | 执行成功时 | 复制或移动方块 |
输出
命令 | 版本 | 条件 | 成功次数 | /execute store success ... |
/execute store result ... |
---|---|---|---|---|---|
任意 | Java版 | 失败时 | 0 | 0 | 0 |
成功时 | 1 | 1 | 目标区域中被更改的方块数 | ||
基岩版 | 失败时 | 0 | N/A | N/A | |
成功时 | 1 | N/A | N/A |