마인크래프트/명령어/execute

 



1. JE
1.1. 실행 설정
1.2. 조건 설정
1.3. 저장 설정
1.4. 설명
1.5. 용례
2. BE
2.1. 문법
2.2. 설명
2.3. 용례

'''execute'''
JE:
execute <세부 명령문...> run <실행할 명령>

BE:
execute <개체> <좌표> <실행할 명령>

BE_detect:
execute <개체> <좌표> detect <좌표2> <블록> <데이터 값> <실행할 명령>

'''역사'''
JE | 1.8(추가 1.13(변경

BE | ?(추가

EE | ?(추가
'''기능'''
JE:
<세부 명령문...>
에 따라
<실행할 명령>
을 실행한다.
BE:
<개체>
<좌표>
를 기준으로
<실행할 명령>
을 실행하게 만든다.
BE_detect:
<좌표2>
에 해당
<블록>
이 설치되어 있어야
<개체>
<좌표>
를 기준으로
<실행할 명령>
을 실행하게 만든다.
'''관련 명령어'''
-
'''단축 명령어'''
-
'''기본값'''
-
'''명령 블록 실행'''
'''싱글플레이 사용'''
'''권한'''
가능
가능
OP 이상
명령어의 실행 주체, 위치, 시점, 차원을 설정하고 명령어가 실행될 조건과 명령어의 결과값을 저장하는 방식을 설정한다. '''명령어의 일등공신.'''
BE 및 BE_detect 명령어의 경우
<좌표>
,
<좌표2>
를 앞서 지정한
<개체>
를 기준으로 한 상대 좌표로도 설정할 수 있다.

1. JE


세부 명령문은 한 명령어에 여러 번 쓰는 것이 가능하고 세부 명령문의 작성이 끝나면
run <실행할 명령>
으로 끝낸다. 이 때,
<실행할 명령>
앞에는 /를 사용해서는 안 된다.

1.1. 실행 설정


명령어의 실행 주체, 위치, 시점, 차원 등을 설정할 수 있다.
  • as <대상> <다음 명령>
    • 명령어의 실행 주체를 대상으로 설정한다. 위치를 바꾸진 않는다.
  • at <대상> <다음 명령>
    • 명령어의 실행 위치를 대상의 위치, 시점, 차원으로 설정한다. 이것이 없으면 particle, fill 과 같은 좌표 관련 명령어를 써도 명령어 블럭의 위치에만 효과가 나타난다. 대상을 바꾸진 않아서 effect처럼 대상에게 실행하는 명령어는 as가 있어야 한다.
  • positioned <좌표> <다음 명령>
    • 명령어의 실행 위치를 그 좌표로 설정한다.
  • positioned as <대상> <다음 명령>
    • 명령어의 실행 위치를 대상의 좌표로 설정한다.
  • align <기준> <다음 명령>
    • 명령어의 실행 위치를 <기준>에 따라 버림하여 정수로 만든다.
  • facing <좌표> <다음 명령>
    • 실행자의 시점이 <좌표>를 향해 있도록 설정한다.
  • facing entity <개체>  <다음 명령>
    • 실행자의 시점이 개체의 눈이나 발을 향하게 설정한다.
  • rotated as <개체> <다음 명령>
    • 실행자의 시점이 <개체>의 방향으로 향해 있는 것으로 설정한다.
  • rotated <시점 좌표> <다음 명령>
    • 실행자의 시점을 <시점 좌표>로 설정한다.
  • in  <다음 명령>
    • 실행자가 해당 차원에 있는 것으로 설정한다.
  • anchored  <다음 명령>
    • 나머지 <다음 명령>의 시점의 기준을 발 또는 눈으로 설정한다. anchored eyes를 쓰면 대상의 시점이 있는 좌표에서 실행된다.

1.2. 조건 설정


조건을 설정하는 세부 명령문을 사용하면 조건에 맞지 않는 경우 명령어가 실행되지 않는다.
  •  block <좌표> <블록> <다음 명령>
    • 해당 좌표에 맞는 블록이 있거나 있지 않을 때만 다음 명령을 실행한다.[1]
  •  blocks <시작 좌표> <끝 좌표> <지점> (all|masked) <다음 명령>
    • 시작과 끝으로 설정된 지역의 블록이 지점 지역의 블록과 정확히 일치하거나 일치하지 않은 경우에만 다음 명령을 실행한다. /clone과 비슷한 문법이다.[2]
  •  entity <개체> <다음 명령>
    • 개체가 존재하거나 존재하지 않을 때에만 다음 명령을 실행한다.[3]
  •  score <대상> <대상 목표> 〈<|<=|=|>=|>〉 <기준> <기준 목표> <다음 명령>
    • 대상의 점수와 기준의 점수가 (부)등호에 맞거나 맞지 않을 때만 다음 명령을 실행한다.
  •  score <대상> <목표> matches <범위> <다음 명령>
    • 대상의 점수가 범위에 들어갔거나 들어가지 않았을 때만 다음 명령을 실행한다.
  •  predicate <술어> <다음 명령>

1.3. 저장 설정


store
을 이용해 다음 명령의 결과나 성공 횟수를 저장할 수 있다. 결과는 모든 명령어가 실행을 마친 후에 저장된다. 또 명령어가 성공적으로 실행되지 않았다면,
result
도 0으로 설정된다.
  • store  score <대상> <목표> <다음 명령>
    • 결과값이 대상의 목표에 해당하는 스코어보드에 저장된다. 목표는 무조건 존재해야 한다
  • store  block <위치> <경로>  <크기> <다음 명령>
    • 블록의 NBT 데이터를 수정하고 결과를 저장한다.
  • store  entity <대상> <경로>  <크기> <다음 명령>
    • 대상의 NBT 데이터를 수정하고 결과를 저장한다.

이후 1.15 버전의 패치로 인해 플레이어의 NBT는 그 어떠한 경우에도 수정이 불가능해졌다.
  • store (result|success) bossbar   <다음 명령>
    • 결과값을 해당 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
    : 보스바의 ID
  • value
    : 값
  • 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
    와 같이 조건을 설정한다.
  • 블록
    : 블록의 영문 이름을 쓰면 된다. 기억나는 철자로 쓰다 보면 입력란 위에 정확한 이름이 표시된다.
  • 데이터 값
    : 같은 종류의 블록이라도 여러 상태가 존재하는 경우가 많은데 [4] 이러한 것들을 특정하기 위한 정보이다. -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인 모든 플레이어 위치에 좀비를 설치
    • execute @a[tag=blue] ~ ~ ~ summon zombie
      }
#tag명령어는 여기를 참고


[1] 기존 testforblock 명령어.[2] 기존 testforblocks 명령어.[3] 여기서 if 구문의 경우는 이전 버전에 존재하는 testfor 명령어랑 사용법이 비슷하다.[4] 불이 붙지 않는 화로, 불이 붙은 화로나, 유리나 점토 같이 여러 색깔으로 염색할 수 있는 블록 등.