- 编程
第一期:/execute 指令教程
- @ 2025-6-16 11:57:44
mc里的每一个指令,都有一个执行环境
比如说,你自己在聊天栏里输入指令,那么执行环境就是:
- 执行位置:你自己的坐标
- 执行实体:你自己
- 执行维度:你自己的维度
- 执行朝向:你自己的朝向
很好理解,对吧
那么你如果想更改执行环境,就要用到 execute 指令了!
execute 有不少的子命令,分为四类:
- 修饰子命令 :用来更改执行环境
- 条件子命令 :就是 if 语句
- 存储子命令 :将命令的return值存起来
- run子命令 :后面接要执行的指令
子命令可以在 execute 后串连在一起使用,可出现在命令的任意位置及重复任意次数。run子命令除外,其只能位于末尾且只能使用一次。
如果看不懂,先往下看就懂了
修饰子命令
这里只介绍常用的
-
as :把实体设置成执行者
-
facing :将命令的执行朝向设置为面向指定坐标或指定实体。
-
at : 把实体的坐标,维度,朝向设置成执行位置,执行维度,执行朝向
这些都是把实体的数据作为自己的执行环境的
最开始以你自己的环境作为执行环境,然后各子命令按其在命令中的顺序被依次处理,依次覆盖掉前面的。下列命令中子命令虽然一致,但由于顺序不同,会产生不同效果:
/execute as @e at @s run tp @s ^ ^ ^1
# 所有实体向各自所朝方向移动一格。
/execute at @s as @e run tp @s ^ ^ ^1
# 所有实体移动到执行者前方一格。
你想如果想特定一个执行环境,那么你可以用以下的子命令
-
positioned :将执行位置设置为指定坐标或指定实体位置。
-
rotated :将执行朝向设为特定方向或设为指定实体的朝向。
-
in :将命令执行维度设置为特定维度。
给点例子:
/execute positioned 114 514 0 run locate structure #village
# 寻找离坐标(114, 514, 0)最近的村庄。
/execute in minecraft:the_end run tp 0 0 0
# tp到末地的(0, 0, 0)
还挺简单的是吧
条件子命令
条件子命令包括 if 和 unless 两种,unless 就是 if not
只有当条件满足了以后,才会执行 run子命令
这是可用条件类型,将它跟在 if 和 unless 后面就行:
- biome:检测给定位置上的生物群系是否为特定生物群系。
- block:检测给定位置上的方块是否是特定的方块或方块状态。
- blocks:检测给定区域内的方块是否匹配另一个同等大小区域内的方块。
- data:检测方块、实体或存储容器是否拥有给定的NBT标签。
- dimension:检测命令执行时所处的维度是否为特定维度。
- entity:检测一个或多个特定实体是否存在。
- items:检测方块或实体的给定物品栏槽位或槽位区间内是否拥有指定物品。
- loaded:检测给定位置是否已被加载。
- score:检测指定目标的记分板中的记分项的分数是否与另一个(或同一个)目标的记分板的记分项的分数是否符合指定的关系,或者是否在给定的范围之内。
请理解一下这些示例:
/execute as @a if data entity @s Inventory[{Slot:0b}].components."minecraft:enchantments".levels."minecraft:efficiency" run tp @s 0 64 0
# 将所有快捷栏第一槽位物品带有效率魔咒的玩家传送到0, 64, 0
/execute as @a at @s if block ~ ~ ~ water run say "我湿了!"
# 让所有在水中的玩家在聊天框里说:“我湿了!”:
# 注意,玩家的坐标是脚底下的坐标
/execute as @e[type=zombie] unless data entity @s equipment.head.id run kill @s
# 杀死所有没有头盔的僵尸
一些具体的子命令的使用方法可自行查阅使用方式在这个网站
这些是还算简单的的部分,下一期上难度