execute
| |||||
JE:
execute <세부 명령문...> run <실행할 명령>BE: execute <개체> <좌표> <실행할 명령>BE_detect: execute <개체> <좌표> detect <좌표2> <블록> <데이터 값> <실행할 명령> | |||||
역사
| JE | [ruby(1.8, ruby=추가)] [ruby(1.13, ruby=변경)]
BE | [ruby(?, ruby=추가)]
EE | [ruby(?, ruby=추가)]
| ||||
기능
| JE:
<세부 명령문...>에 따라 <실행할 명령>을 실행한다.BE: <개체>가 <좌표>를 기준으로 <실행할 명령>을 실행하게 만든다.BE_detect: <좌표2>에 해당 <블록>이 설치되어 있어야 <개체>가 <좌표>를 기준으로 <실행할 명령>을 실행하게 만든다. | ||||
관련 명령어
| -
| ||||
단축 명령어
| -
| ||||
기본값
| -
| ||||
명령 블록 실행
| 싱글플레이 사용
| 권한
| |||
가능
| 가능
| OP 이상
| |||
명령어의 실행 주체, 위치, 시점, 차원을 설정하고 명령어가 실행될 조건과 명령어의 결과값을 저장하는 방식을 설정한다. 명령어의 일등공신.
BE 및 BE_detect 명령어의 경우
<좌표>, <좌표2>를 앞서 지정한 <개체>를 기준으로 한 상대 좌표로도 설정할 수 있다.1. JE
1.1. 실행 설정
명령어의 실행 주체, 위치, 시점, 차원 등을 설정할 수 있다.
as <대상> <다음 명령>- 명령어의 실행 주체를 대상으로 설정한다. 위치를 바꾸진 않는다.
at <대상> <다음 명령>- 명령어의 실행 위치를 대상의 위치, 시점, 차원으로 설정한다. 이것이 없으면 particle, fill 과 같은 좌표 관련 명령어를 써도 명령어 블럭의 위치에만 효과가 나타난다. 대상을 바꾸진 않아서 effect처럼 대상에게 실행하는 명령어는 as가 있어야 한다.
positioned <좌표> <다음 명령>- 명령어의 실행 위치를 그 좌표로 설정한다.
positioned as <대상> <다음 명령>- 명령어의 실행 위치를 대상의 좌표로 설정한다.
align <기준> <다음 명령>- 명령어의 실행 위치를 <기준>에 따라 버림하여 정수로 만든다.
facing <좌표> <다음 명령>- 실행자의 시점이 <좌표>를 향해 있도록 설정한다.
facing entity <개체> <eyes|feet> <다음 명령>- 실행자의 시점이 개체의 눈이나 발을 향하게 설정한다.
rotated as <개체> <다음 명령>- 실행자의 시점이 <개체>의 방향으로 향해 있는 것으로 설정한다.
rotated <시점 좌표> <다음 명령>- 실행자의 시점을 <시점 좌표>로 설정한다.
in <minecraft:overworld|minecraft:the_end|minecraft:the_nether|(모드나 데이터팩으로 추가된 차원)> <다음 명령>- 실행자가 해당 차원에 있는 것으로 설정한다.
anchored <feet|eyes> <다음 명령>- 나머지 <다음 명령>의 시점의 기준을 발 또는 눈으로 설정한다. anchored eyes를 쓰면 대상의 시점이 있는 좌표에서 실행된다.
1.2. 조건 설정
조건을 설정하는 세부 명령문을 사용하면 조건에 맞지 않는 경우 명령어가 실행되지 않는다.
<if|unless> block <좌표> <블록> <다음 명령>- 해당 좌표에 맞는 블록이 있거나 있지 않을 때만 다음 명령을 실행한다.[8]
<if|unless> blocks <시작 좌표> <끝 좌표> <지점> (all|masked) <다음 명령><if|unless> entity <개체> <다음 명령>- 개체가 존재하거나 존재하지 않을 때에만 다음 명령을 실행한다.[12]
<if|unless> score <대상> <대상 목표> 〈<|<=|=|>=|>〉 <기준> <기준 목표> <다음 명령>- 대상의 점수와 기준의 점수가 (부)등호에 맞거나 맞지 않을 때만 다음 명령을 실행한다.
<if|unless> score <대상> <목표> matches <범위> <다음 명령>- 대상의 점수가 범위에 들어갔거나 들어가지 않았을 때만 다음 명령을 실행한다.
<if|unless> predicate <술어> <다음 명령>- 사용자 정의 술어가 맞거나 맞지 않을때 다음 명령을 실행한다. 술어에 대한 내용은 마인크래프트/데이터팩 참조
1.3. 저장 설정
store을 이용해 다음 명령의 결과나 성공 횟수를 저장할 수 있다. 결과는 모든 명령어가 실행을 마친 후에 저장된다. 또 명령어가 성공적으로 실행되지 않았다면, result도 0으로 설정된다.store <result|success> score <대상> <목표> <다음 명령>- 결과값이 대상의 목표에 해당하는 스코어보드에 저장된다. 목표는 무조건 존재해야 한다
store <result|success> block <위치> <경로> <byte|short|int|long|float|double> <크기> <다음 명령>- 블록의 NBT 데이터를 수정하고 결과를 저장한다.
store <result|success> entity <대상> <경로> <byte|short|int|long|float|double> <크기> <다음 명령>- 대상의 NBT 데이터를 수정하고 결과를 저장한다.
data, execute store 는 플레이어 NBT를 수정할 수 없다. 예외적으로, 인벤토리 아이템의 태그 키에 내장되어 있는 NBT나 엔더 상자의 아이템의 NBT는 execute store로 수정할 수 있다.이후 1.15 버전의 패치로 인해 플레이어의 NBT는 그 어떠한 경우에도 수정이 불가능해졌다.
store (result|success) bossbar <ID> <value|max> <다음 명령>- 결과값을 해당 ID를 가진 보스바의 값이나 최대값으로 저장한다.
1.4. 설명
- 기준:
x, y, z를 조합해 쓰고 쓴 영어에 해당하는 좌표의 값을 소수 부분을 버림한다. x, xz, zyx, yz 등으로 쓸 수 있다.- 예:
x의 값이 2.9이고<기준>을 x로 하면 x=2가 된다. y의 값이 -13.2이고 z의 값이 6.24이며<기준>을 yz로 하면 y=-14, z=6이 된다.
eyes: 눈(시점 설정)feet: 발(시점 설정)overworld: 오버월드the_end: 엔드the_nether: 네더if: 조건과 일치할 때 <다음 명령>을 실행한다.unless: 조건과 일치하지 않을 때 <다음 명령>을 실행한다.all: 모든 블록이 일치masked: 공기 블록을 제외하고 일치범위: 대상의 점수가 범위에 있는지 확인하는 인수로 1, 1..5, ..6, 3..처럼 지정한다.result: 결과- 명령어의 실행 결과를 저장한다.
success: 성공 횟수- 명령어가 몇 번 성공했는지를 저장한다.
byte|short|int|long|float|double: 자료형 (byte는 -7에서7, short, int, long은 정수형, float, double은 유리수형. 쉽게 생각하여 NoAI:1b의 b가 byte고, int는 그냥 숫자 앞에 아무것도 없는 것이라 생각하면 된다.)ID: 보스바의 IDvalue: 값max: 최댓값
1.5. 용례
- 가장 가까운 플레이어의 체력을 보스바로 나타낼 때
execute store result bossbar minecraft:1 value run scoreboard players get @p HP
- 모든 좀비의 위치에 번개를 소환한다. (1.13 이후 JE 한정)
execute as @e[type=zombie] at @s run summon lightning_bolt ~ ~ ~
- 모래 위에 있는 좀비의 위치에 번개를 소환한다.
execute as @e[type=zombie] at @s if block ~ ~-1 ~ minecraft:sand run summon lightning_bolt ~ ~ ~
- 모든 플레이어에게서 5블록 반경에 있는 플레이어하고 떨어지는 번개와 아이템을 제외한 모든 개체에게 번개를 소환한다.
execute as @p at @e[distance=..5,type=!player,type=!lightning_bolt,type=!item] run summon lightning_bolt ~ ~ ~
- 플레이어의 아래에 흑요석이 감지될 경우 x y z로 tp한다. (점프맵 등에 사용됨)
execute as @a at @s if block ~ ~-0.001 ~ minecraft:obsidian run tp @p[distance=0] x y z
- 플레이어의 아래에 금 블럭이 감지될 경우 플레이어에게 다이아몬드 검을 주고 그 블럭을 없앤다. (점프맵 등에 사용됨)
첫번째 명령어 : execute as @a at @s if block ~ ~-1 ~ minecraft:gold_block run give @s minecraft:diamond_sword두번째 명령어(연쇄형) : execute as @a at @s if block ~ ~-1 ~ minecraft:gold_block run setblock ~ ~-1 ~ minecraft:air
- 아머스탠드의 오른팔이 분당 10번 돌아간다.
준비 : /scoreboard objectives add test dummy, /summon x y z armor_stand{ShowArms:1,Pose:{RightArm:[0.0f,0.0f,0.0f]},Tags:[test]}execute as @e[tag=test,limit=1] store result @s Pose.RightArm[0] float 1 run scoreboard players add @s test 3
2. BE
BE의
execute 명령어 사용법이다. JE 1.13 미만 버전인 경우 이 명령어를 사용해야 한다.2.1. 문법
- 그냥 사용할 경우:
execute <개체> <좌표> <실행할 명령>(낮은 버전만 사용 가능) - 특정한 블록을 감지하는 경우:
execute <개체> <좌표> detect <좌표2> <블록> <데이터 값> <실행할 명령>
2.2. 설명
좌표: 해당 명령어가 실행되는 위치이며 상대 좌표의 경우 지정한 개체를 기준으로 설정된다.좌표2:블록을 감지하는 좌표이다.testfor와 같이 조건을 설정한다.블록: 블록의 영문 이름을 쓰면 된다. 기억나는 철자로 쓰다 보면 입력란 위에 정확한 이름이 표시된다.데이터 값: 같은 종류의 블록이라도 여러 상태가 존재하는 경우가 많은데 [15] 이러한 것들을 특정하기 위한 정보이다. -1이나 *을 넣을 경우에는 어떤 데이터 값이나 상태를 가지더라도 상관이 없다는 의미이다.
2.3. 용례
- 모든 좀비의 위치에 번개를 소환한다.
execute @e[type=zombie] ~ ~ ~ summon lightning_bolt
- 모래 위에 있는 좀비의 위치에 번개를 소환한다.
execute @e[type=zombie] ~ ~ ~ detect ~ ~-1 ~ minecraft:sand -1 summon lightning_bolt
- 모든 플레이어에게서 5블록 반경에 있는 플레이어하고 떨어지는 번개와 아이템을 제외한 모든 개체에게 번개를 소환한다.
execute @a ~ ~ ~ execute @e[r=5,type=!player,type=!lightning_bolt,type=!item] ~ ~ ~ summon lightning_bolt
- 태그가 blue인 모든 플레이어 위치에 좀비를 설치
[1] 기존 testforblock 명령어.[2] 기존 testforblocks 명령어.[3] 여기서 if 구문의 경우는 이전 버전에 존재하는 testfor 명령어랑 사용법이 비슷하다.[4] 기존 testforblock 명령어.[5] 기존 testforblocks 명령어.[6] 여기서 if 구문의 경우는 이전 버전에 존재하는 testfor 명령어랑 사용법이 비슷하다.[7] 기존 testforblock 명령어.[8] 기존 testforblock 명령어.[9] 기존 testforblocks 명령어.[10] 기존 testforblocks 명령어.[11] 여기서 if 구문의 경우는 이전 버전에 존재하는 testfor 명령어랑 사용법이 비슷하다.[12] 여기서 if 구문의 경우는 이전 버전에 존재하는 testfor 명령어랑 사용법이 비슷하다.[13] 불이 붙지 않는 화로, 불이 붙은 화로나, 유리나 점토 같이 여러 색깔으로 염색할 수 있는 블록 등.[14] 불이 붙지 않는 화로, 불이 붙은 화로나, 유리나 점토 같이 여러 색깔으로 염색할 수 있는 블록 등.[15] 불이 붙지 않는 화로, 불이 붙은 화로나, 유리나 점토 같이 여러 색깔으로 염색할 수 있는 블록 등.