execute
execute as <엔티티> run …
명령어를 실행하는 자를 <엔티티>로 설정한다. 보통 반복되는 대상 선택 인자의 글자수를 줄이기 위해 사용한다.
만약 <엔티티>가 존재하지 않을 경우 나머지 명령어는 실패한다. 때문에 조건문으로 사용할 수 도 있다.
관련 커맨드 : say, anchored, @s를 쓰는 모든 커맨드(attribute, clear, data, effect 등)
예시)
execute as @e[nbt={CustomName:'{"text":"미코치"}'}] run say 또 졌다니에
미코치가 말합니다. "또 졌다니에"
execute as @a[scores={dia=3..}] at @s if entity @e[type=minecraft:villager,distance=..2] run clear @s diamond 3
dia 점수가 3이상인 플레이어를 중심으로 반경 2블록 이내에 주민이 있을 경우 그 플레이어의 인벤토리에서 다이아몬드 3개를 제거합니다.
execute as @a[level=50..] run difficulty hard
레벨이 50이상인 플레이어가 있을 경우 게임 난이도를 어려움으로 변경합니다.
execute at <엔티티> run …
명령어를 실행하는 위치를 <엔티티>의 좌표로 설정한다.
또한 명령어의 시점을 <엔티티>가 바라보는 방향으로 설정한다.
즉, 좌표+시점 설정
관련 커맨드 : 좌표를 사용하는 모든 커맨드(teleport, setblock, summon 등)
예시)
execute at @p run summon minecraft:snowball ^ ^ ^3
플레이어가 바라보는 방향으로 3블록 앞에 눈덩이를 소환한다.
execute positioned <좌표> run …
명령어를 실행하는 위치를 <좌표>로 설정한다.
execute positioned as <엔티티> run …
명령어를 실행하는 위치를 <엔티티>의 좌표로 설정한다. 시점은 변경하지 않는다.
그리고 as가 붙어있다고 해서 실행자를 변경하는 것도 아니다.
예시)
execute positioned 0 0 0 run tellraw @a[distance=..10] {"text":"가나다"}
좌표 0,0,0을 기준으로 반경 10블록 이내의 플레이어에게 "가나다"라는 메시지를 출력합니다.
execute positioned as @p run fill ~-5 ~-5 ~-5 ~5 ~5 ~5 air replace
플레이어의 좌표를 기준으로 각축 -5에서 5까지의 모든 블록을 공기블록으로 바꿉니다.
execute facing <좌표> run …
명령어의 시점을 명령어를 실행하는 위치에서 <좌표>를 바라보는 방향으로 설정한다.
execute facing entity <엔티티> run …
명령어의 시점을 명령어를 실행하는 위치에서 <엔티티>를 바라보는 방향으로 설정한다.
execute rotated <시점좌표> run …
명령어의 시점을 <시점좌표>로 설정한다. 시점좌표의 범위는 가로 0~360, 세로 -90~90이다.
execute rotated as <엔티티> run …
명령어의 시점을 <엔티티>의 시점좌표로 설정한다.
예시)
execute as @e[type=minecraft:boat,sort=nearest,limit=1] positioned as @s facing 0 0 0 run tp @s ^ ^ ^1
가까운 보트 하나를 좌표 0,0,0을 향해 앞으로 1블록 순간이동합니다.
execute at @p facing entity @e[type=cat] eyes run summon minecraft:arrow ^ ^ ^5
플레이어의 좌표에서 고양이의 눈 방향으로 5블록 앞에 화살을 소환합니다.
execute at @p rotated ~30 ~ run summon minecraft:snowball ^ ^ ^3
플레이어의 시점에서 가로 30만큼 회전시켜 그 방향으로 3블록 앞에 눈덩이를 소환합니다.
execute positioned as @p rotated as @e[type=minecraft:armor_stand] run tp @e[type=cat] ^ ^ ^3
플레이어의 좌표에서 아머스탠드가 바라보는 방향으로 3블록 앞에 고양이를 순간이동시킵니다.
여기에 아머스탠드를 회전시켜주는 커맨드를 추가해주면 플레이어 중심으로 고양이가 원을 그리며 이동합니다.
execute anchored feet run …
execute anchored eyes run …
명령어 시점의 기준을 발 또는 눈으로 바꿔준다. 사용하려면 명령어 실행자, 시점이 필요하다.
예시)
execute as @p at @s anchored eyes run summon minecraft:fireball ^ ^ ^2 {power:[0.0,-0.1,0.0]}
플레이어의 눈에서 2블록 앞에 화염구를 소환합니다.
execute in minecraft:overworld run …
execute in minecraft:the_end run …
execute in minecraft:the_nether run …
execute in <폴더명>:<파일명> run …
명령어를 실행하는 차원을 설정한다.
예시)
execute in minecraft:the_end run tp @p 0 70 0
플레이어를 엔더월드의 0,70,0으로 순간이동시킨다.
execute if block <좌표> <블록명> run …
<좌표>에 <블록명>이 있을 경우 명령을 실행한다.
if 대신 unless를 넣으면 조건이 반대로 실행된다.
예시)
execute as @a at @s if block ~ ~ ~ minecraft:tall_grass run effect give @s minecraft:invisibility 1 0 true
큰 잔디에 들어가면 투명 효과를 부여합니다.
execute if blocks <기준좌표1> <기준좌표2> <비교좌표> all run …
execute if blocks <기준좌표1> <기준좌표2> <비교좌표> masked run …
<기준좌표1>에서 <기준좌표2>까지의 블록배치를 기준으로하여 <비교좌표>의 블록을 비교한다.
all은 공기블록까지 포함하여 완전히 같을 때 명령을 실행한다.
masked는 공기블록을 제외하고 나머지가 같을 때 명령을 실행한다.
예시)
execute at @p if blocks ^-1.0 ^ ^1.0 ^-1.0 ^3 ^1.0 ^1.0 ^ ^1.0 all run say 대칭
플레이어가 바라보는 방향으로 왼쪽과 오른쪽을 비교하여 완전히 같으면 대칭이라고 말한다.
execute at @a if blocks -1 4 -1 -3 6 -3 ~-1 ~-3 ~-1 masked run tp @s -2 6 -2
플레이어 발밑으로 지정범위의 블록배치가 같을 경우 (-2, 6, -2)로 순간이동한다.
execute if entity <엔티티> run …
<엔티티>가 존재할 경우 명령을 실행한다.
예시)
execute at @a if entity @e[type=minecraft:creeper,distance=..10] run say 야생의 크리퍼가 나타났다!!
플레이어를 중심으로 반경 10블록 이내에 크리퍼가 존재할 경우 알려줍니다.
execute if data block <좌표> <NBT경로> run …
<좌표>의 블록에 지정한 NBT가 존재할 경우 명령을 실행한다.
execute if data entity <엔티티> <NBT경로> run …
<엔티티>에게 지정한 NBT가 존재할 경우 명령을 실행한다.
execute if data storage <저장소이름> <NBT경로> run …
<저장소이름>에 지정한 NBR가 존재할 경우 명령을 실행한다.
예시)
execute positioned -4 4 8 if data block ~ ~ ~ Items[{id:"minecraft:netherite_sword"}] run data modify block ~ ~ ~ Items[{id:"minecraft:netherite_sword"}].Count set value 2
(-4, 4, 8)에 위치한 블록에 네더라이트 검이 들어 있을 경우 그 갯수를 2개로 바꾼다.
execute if data entity @p SleepingX run say 자자
침대에 누워있는 플레이어가 있을 경우 자라고 말한다.
SleepingX NBT는 침대에 누웠을 때만 생기는 NBT이다.
execute if data storage minecraft:hamburger Cola run say 햄버거엔 콜라
햄버거 저장소에 콜라 NBT가 존재할 경우 햄버거엔 콜라라고 말한다.
execute if score <엔티티1> <점수명1> <등호,부등호> <엔티티2> <점수명2> run …
<엔티티1>의 점수와 <엔티티2>의 점수를 비교하여 참일 경우 명령을 실행한다.
execute if score <엔티티> <점수명> matches <범위> run …
<엔티티>의 점수가 <범위> 안에 들어갔을 경우 명령을 실행한다.
예시)
execute if score @a[team=Red,limit=1] Point > @a[team=White,limit=1] Point run say 홍팀 승리!
Red팀의 점수가 White팀의 점수보다 클 경우 "홍팀 승리!"라는 문구를 출력한다.
execute if score @p Dokidoki matches 50..70 run say 그녀는 당신에게 아무런 감정이 없습니다.
execute if entity @p[scores={Dokidoki=50..70}] run say 그녀는 당신에게 아무런 감정이 없습니다.
Dokidoki점수가 50이상 70이하일 때 "그녀는 당신에게 아무런 감정이 없습니다."라는 문구를 출력한다.
if entity와 선택인자를 이용하여 같은 효과를 낼 수도 있습니다.
execute if predicate <폴더명>:<파일명> run …
데이터팩의 predicate파일 내의 조건에 만족하면 명령을 실행한다.
예시)
execute if predicate coin:time run give @a sunflower{display:{Name:'{"text":"금화","color":"yellow","italic":false}'},Enchantments:[{}]} 1
데이터팩 coin폴더의 time.json파일 내의 조건을 만족하면 플레이어에게 해바라기를 줍니다.
작성중 ...