在《我的世界》中,保护命令主要通过命令方块或聊天栏执行,用于防止特定区域或实体被破坏、移动或修改,保护范围可覆盖建筑、红石设备或重要资源点,以下是常见保护命令的详细说明及使用方法。

区域保护命令
区域保护需先定义区域坐标,再通过/execute
和/fill
或/setblock
组合实现,或使用/protect
插件命令(需服务端支持),以下是原版命令示例:
围栏保护(简单物理阻挡)
通过在区域外围生成不可破坏的方块(如 bedrock)实现:
/execute @p ~~~ detect ~ ~ ~ air 1 fill ~ ~ ~ ~ ~ ~ bedrock replace air
此命令会在玩家脚下检测到空气时,用 bedrock 替换,形成物理屏障,但需配合红石电路或重复命令方块持续生效。
区域权限保护(需 OP 权限)
使用/execute
和/data
修改区域方块属性,使其仅对特定玩家可破坏:

/execute @p[name=玩家名] ~~~ detect ~ ~ ~ stone 1 setblock ~ ~ ~ air
此命令仅允许名为“玩家名”的玩家破坏石头方块,其他玩家无法操作。
坐标范围保护(推荐)
通过/fill
生成不可破坏区域,并用/execute
触发回滚:
# 定义保护区域(从x1,y1,z1到x2,y2,z2)
/fill x1 y1 z1 x2 y2 z2 barrier replace air
# 玩家破坏方块时自动修复
/execute @a[distance=..10] ~~~ detect ~ ~ ~ stone 1 fill ~ ~ ~ stone replace air
barrier
方块为不可见、不可破坏的方块,需在创造模式下通过“/give @p barrier”获取,适合保护核心建筑。
实体保护命令
实体保护包括防止生物消失、物品掉落或玩家被误伤,常用命令如下:

生物保护(防止自然消失)
# 冻结特定生物,防止其被刷怪笼清除或自然消失
/execute @e[type=minecraft:zombie,name=僵尸] ~~~ data merge entity @s {PersistenceRequired:1b}
PersistenceRequired:1b
使生物成为“持久化实体”,不会因距离过远或刷怪笼刷新而消失。
物品保护(防止掉落或消失)
# 玩家死亡时物品不掉落
/gamerule keepInventory true
# 特定名称的物品无法丢弃
/execute @a ~~~ detect ~ ~ ~ minecraft:chest{display:{Name:"\"重要物品\""}} 1 data merge block ~ ~ ~ {Lock:"密码"}
Lock
标签需玩家输入正确密码才能打开箱子,未输入时无法取物。
装备保护(防止耐久度降低)
# 玩家装备的剑耐久度不减少
/attribute @s minecraft:generic.attack_speed base set 0
/execute @a[scores={装备=1..}] ~~~ data merge entity @s {SelectedItem:{Damage:0}}
通过修改装备物品的 Damage
标签为 0,实现耐久度锁定。
玩家行为限制命令
防止玩家破坏建筑或使用危险命令,需结合/gamerule
和/execute
:
禁止破坏特定方块
# 禁止所有玩家破坏钻石块
/execute @a ~~~ detect ~ ~ ~ minecraft:diamond_block 1 fill ~ ~ ~ minecraft:diamond_block replace air
# 仅允许 OP 玩家破坏
/execute @p[permission=2] ~~~ detect ~ ~ ~ minecraft:diamond_block 1 setblock ~ ~ ~ air
禁止使用命令(非 OP 玩家)
# 禁止非 OP 玩家使用 /give 命令
/execute @a[permission=0] ~~~ detect ~ ~ ~ minecraft:command_block 1 fill ~ ~ ~ air
命令优化建议
- 重复命令方块:需持续生效的命令(如区域修复)需用“永远循环”模式的重复命令方块执行。
- 函数文件:将复杂命令保存为
.mcfunction
文件,通过/function
调用,减少命令方块数量。 - 权限插件:大型服务器建议使用 WorldGuard 或 LuckPerms 插件,提供更精细的区域权限管理。
相关问答 FAQs
Q1:保护区域后,如何允许特定玩家进入?
A:可通过/execute
添加白名单玩家,
/execute @p[name=玩家A] ~~~ detect ~ ~ ~ barrier 1 setblock ~ ~ ~ air
此命令允许名为“玩家A”的玩家移除 barrier 方块进入保护区域,其他玩家无法操作。
Q2:如何保护红石电路不被误触?
A:使用/setblock
锁定红石元件状态,
# 将活塞状态锁定为伸出,无法被红石信号触发
/setblock ~ ~ ~ minecraft:piston[power=0,facing=north]
或用/data
修改方块标签,禁用红石互动:
/data merge block ~ ~ ~ {Lock:"redstone_only"}
仅允许红石信号激活,玩家手动点击无效。