命令/setblock

来自Minecraft Wiki
跳转到导航 跳转到搜索
setblock
需要的权限等级
启用作弊[仅基岩版]

将指定位置的方块更改为另一个方块。

语法[编辑 | 编辑源代码]

  • Java版
setblock <pos> <block> [destroy|keep|replace|strict]
  • 基岩版
setblock <position: x y z> <tileName: Block> [blockStates: block states] [destroy|keep|replace]

参数[编辑 | 编辑源代码]

JE<pos>block_pos
BEposition: x y zCommandPosition

指定要被更改方块的位置。
Java版中,必须为方块坐标,格式为<X> <Y> <Z>,三个值必须为整数相对坐标局部坐标。在基岩版中,必须为三维的坐标,格式为<X> <Y> <Z>,三个值必须是浮点数、相对坐标局部坐标

JE<block>block_state
BEtileName: BlockBlock

指定更改后的新方块。
Java版中,格式必须为方块ID[方块状态]{方块实体NBT},可仅在需要时指定方块状态与NBT,参见参数类型 § minecraft:block_state。在基岩版中,必须为方块ID

BEblockStates: block statesBlockStateCommandParam

指定新方块的方块状态
必须为格式为["<键1>"=<值1>,"<键2>"=<值2>,...]的方块状态(例如:["old_leaf_type"="birch","persistent_bit"=true])。

destroy|keep|replace和​destroy|keep|replace|strict

指定方块更改的处理方式,必须为以下其中之一:
  • destroy — 原方块以掉落物的形式掉落(液体方块及如藤蔓等仅可由剪刀采集的方块除外),并播放方块被破坏的音效。
  • keep — 仅当原方块是空气类方块时才进行更改。
  • replace — 原方块不掉落物品,且不播放方块被破坏的音效。
  • strict — 在放置方块时不触发自身及紧挨着的方块的方块更新和形状更新。
如果未指定,默认为replace

结果[编辑 | 编辑源代码]

命令触发条件Java版基岩版
任意命令不完整或参数未正确指定 无法解析 无法解析
指定位置未被加载或在世界之外 执行失败 执行失败
尝试在调试模式中更改方块 N/A
/setblock ... keep尝试更改非空气的方块 执行失败
/setblock ... keep
/setblock ... replace
/setblock ... strict
原方块与新方块完全相同(不考虑方块实体)
尝试将某些红石元件替换为不稳定的方块(例如,把两个相邻的红石火把中的其中一个替换为TNT)[1] 执行成功
任意不符合以上所有条件执行成功

输出[编辑 | 编辑源代码]

命令版本条件成功次数/execute store success .../execute store result ...
任意Java版执行失败000
执行成功111
基岩版执行失败0N/AN/A
执行成功1N/AN/A

示例[编辑 | 编辑源代码]

  • 在你脚的位置上放置一个朝北的箱子
    • setblock ~ ~ ~ chest[facing=north][仅Java版]
    • setblock ~ ~ ~ chest ["facing_direction"=2][仅基岩版]
  • 放置一个写有提示的告示牌在上述箱子的旁边。[仅Java版]
    • setblock ~ ~ ~-1 birch_sign{front_text:{messages:['"My chest"','"Do not open!"','""','""']}}(注意文字两边有两组引号,它们都是需要的,即使没有提示也要写够4行,否则无法正确解析)
  • 放置一个位于顶端石英台阶在你的头上。
    • setblock ~ ~2 ~ quartz_slab[type=top][仅Java版]
    • setblock ~ ~2 ~ stone_block_slab ["stone_slab_type"="quartz","top_slot_bit"=true][仅基岩版]
  • 放置一个内含1个苹果的可疑的沙砾
    • setblock ~ ~ ~ minecraft:suspicious_gravel{item:{id:"minecraft:apple",count:1}}[仅Java版]

历史[编辑 | 编辑源代码]

Java版
1.7.213w37a加入了/setblock
1.1116w32a加入了/setblock中对方块状态的支持。
1.1620w06a/setblock ~ ~ ~ air destroy现在可以破坏液体。[2]
1.21.525w02a更改了处理方块实体数据的方式。
加入了strict选项。
携带版Alpha
0.16.0build 1加入了/setblock
基岩版
1.16.2101.16.210.53加入了/setblock中对方块状态的支持。
1.19.701.19.70.21移除了tileData: int参数。

参见[编辑 | 编辑源代码]

  • /data - 修改一个方块的数据值。
  • /clone - 将一个区域的方块复制到另一区域。
  • /fill - 用方块填充一个区域。

参考[编辑 | 编辑源代码]

  1. MC-255198
  2. MC-163286 — 漏洞状态为“已修复”。

导航[编辑 | 编辑源代码]