在指定区域之间复制方块结构。
语法[]
- 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]
clone [from <sourceDimension>] <begin> <end> [to <targetDimension>] <destination> filtered <filter> [force|move|normal]
- 基岩版
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>
参数[]
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
JE:<sourceDimension>
- 指定复制区域的来源维度。
JE:<targetDimension>
- 指定复制区域的目的维度。
BE: blockStates: block states
:BlockStateCommandParam
- 指定复制时需要符合的方块状态。
效果[]
命令 | 触发条件 | Java版 | 基岩版 |
---|---|---|---|
任意 | 参数未正确指定 | 无法解析 | 无法解析 |
指定的维度不存在 | 执行失败 | N/A | |
指定的区域处于已卸载的或在世界外的区块中 | 执行失败 | ||
源区域被选中的方块数量超过32768commandModificationBlockLimit 的设定值 | |||
/clone ... normal ... | 源区域和目标区域重叠 | ||
/clone ... move ... | 源区域和目标区域重叠 | 执行成功 | |
/clone ... filtered ... | 源区域内无指定方块 | 执行失败 | |
/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 |
历史[]
Java版 | |||||
---|---|---|---|---|---|
1.8 | 14w03a | 加入了/clone 命令。 | |||
14w10a | 加入了force 选项。 | ||||
14w20a | 加入了move 选项。 | ||||
1.13 | 17w45a | 修改了/clone 的语法。 | |||
1.19.4 | 23w03a | 现在支持指定来源维度和目的维度。 | |||
现在可以通过commandModificationBlockLimit 游戏规则控制单次执行可更改的最大方块数。 | |||||
携带版Alpha | |||||
0.16.0 | build 1 | 加入了/clone 命令。
| |||
/clone 命令不能使用force 克隆模式。 | |||||
基岩版 | |||||
1.19.70 | 1.19.70.21 | 移除了tileData: int 参数。 |
参见[]
/fill
— 用一类方块填充整个区域
参考[]
语言