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

덤프버전 :

파일:나무위키+상위문서.png   상위 문서: 마인크래프트/명령어

1. 개요
2. execute 문법
2.1. 실행 설정
2.2. 조건 설정
2.3. 저장 설정(JE)
2.3.1. 출력
2.4. 설명
2.5. 용례



1. 개요[편집]


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

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

BE | PE 알파 0.16.0 빌드 1(추가 / 1.19.50(변경

EE | ?(추가
기능
<세부 명령문...>
에 따라
<실행할 명령>
을 실행한다.
관련 명령어
-
단축 명령어
-
기본값
-
싱글 사용
권한
가능
2(JE), 1(BE)

명령어의 실행 주체, 위치, 시점, 차원을 설정하고 명령어가 실행될 조건과 명령어의 결과값을 저장하는 방식을 설정한다. 명령어의 일등공신.[1]


2. execute 문법[편집]


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


2.1. 실행 설정[편집]


명령어의 실행 주체, 위치, 시점, 차원 등을 설정할 수 있다.
  • as <대상> <다음 명령>
    • 명령어의 실행 주체를 대상으로 설정한다. 위치를 바꾸진 않는다.
  • at <대상> <다음 명령>
    • 명령어의 실행 위치를 대상의 위치, 시점, 차원으로 설정한다. 이것이 없으면 particle, fill 과 같은 좌표 관련 명령어를 써도 명령어 블럭의 위치에만 효과가 나타난다. 대상을 바꾸진 않아서 effect처럼 대상에게 실행하는 명령어는 as가 있어야 한다.
  • positioned <좌표> <다음 명령>
    • 명령어의 실행 위치를 그 좌표로 설정한다.
  • positioned as <대상> <다음 명령>
    • 명령어의 실행 위치를 대상의 좌표로 설정한다.
  • positioned over <하이트맵> <다음 명령>
    (JE)
    • <하이트맵>에 따라 현재 서 있는 블록 중 가장 높은 위치를 설정한다. <하이트맵>에 넣을 문구는 다음과 같다.
      • world_surface
        : Any non-air block
      • motion_blocking
        : Any motion blocking material (e.g. ignores flowers and grass)
      • motion_blocking_no_leaves
        : Any non-leaf motion blocking material
      • ocean_floor
        : Any non-fluid motion blocking material
  • align <기준> <다음 명령>
    • 명령어의 실행 위치를 <기준>에 따라 버림하여 정수로 만든다.
  • facing <좌표> <다음 명령>
    • 실행자의 시점이 <좌표>를 향해 있도록 설정한다.
  • facing entity <개체>  <다음 명령>
    • 실행자의 시점이 개체의 눈이나 발을 향하게 설정한다.
  • rotated as <개체> <다음 명령>
    • 실행자의 시점이 <개체>의 방향으로 향해 있는 것으로 설정한다.
  • rotated <시점 좌표> <다음 명령>
    • 실행자의 시점을 <시점 좌표>로 설정한다.
  • in  <다음 명령>
    • 실행자가 해당 차원에 있는 것으로 설정한다.
  • anchored  <다음 명령>
    • 나머지 <다음 명령>의 시점의 기준을 발 또는 눈으로 설정한다. anchored eyes를 쓰면 대상의 시점이 있는 좌표에서 실행된다.
  • summon <개체> <다음 명령>
    (JE)
    • 개체를 소환하고 소환한 개체는 명령어의 실행 주체, 위치, 시점, 차원을 설정한다.
  • on <설정> <다음 명령>
    (JE)
    • 실행자와 연관된 개체를 실행자로 선택하는 명령어다.
    • <설정>
      에 넣을 문구는 다음과 같다.
      • attacker
        : 이전 5초 동안 실행자에게 마지막으로 피해를 입힌 개체를 실행자로 설정한다. interaction 개체는 5초 이전의 기록들도 기억한다.
      • controller
        : 실행자를 타고, 조종하는 개체를 실행자로 설정한다. (예시: 배 앞자리에 탄 플레이어)
      • leasher
        : 실행자를 끈으로 묶은 개체를 실행자로 설정한다. (울타리에 묶어둔 경우에는 아마 leash_knot가 선택될 것이다.)
      • origin
        : 실행자를 소환한 개체를 실행자로 설정한다. (예시: 화살을 발사한 개체, tnt를 점화시킨 개체)
      • owner
        : 실행자가 길들일 수 있는 개체일 경우(고양이, 늑대, 앵무새같은), 실행자의 주인을 실행자로 설정한다.
      • passengers
        : 실행자에 직접적으로 타고 있는 개체를 실행자로 설정한다. 실행자 위에 타고 있는 개체 위에 타고 있는 개체는 제외한다.
      • target
        : 실행자의 공격 대상을 실행자로 설정한다.
      • vehicle
        : 실행자가 타고 있는 개체를 실행자로 설정한다.

2.2. 조건 설정[편집]


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


2.3. 저장 설정(JE)[편집]


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


2.3.1. 출력[편집]


명령어
상태
execute store result ...

advancement

오류
변하지 않음
실패
0
성공
각 플레이어에서 추가/제거된 발전/기준의 총 수.
attribute

any
실패
0
... get [규모]

성공
속성 값의 [규모]만큼 곱한 다음 유형을 Int로 변환한다.
... base get [규모]

성공
... modifier value get <UUID> [규모]

성공
... base set ...

... modifier add ...

... modifier remove ...

성공
1
ban

-
실패
0
성공
차단한 플레이어의 이름 길이 수
ban-ip

-
실패
0
성공
???
banlist

-
실패
0
성공
현재 차단중인 플레이어 수
clear

any
실패
0
성공
지워지거나 감지된 아이템의 수
clone

any
실패
0
성공
대상 지역에서 변경된 블록 수.
data

any
실패
0
... get ... [대상 NBT경로] [규모]

성공
[규모]만큼 곱한 다음 유형을 Int로 변환한다.
datapack

any
실패
0
datapack list

성공
활성화된 데이터 팩 개수.
debug

any
실패
0
start

성공
0
stop

성공
평균 TPS
function

성공
실행된 명령 수(성공 여부에 관계없음)
deop

-
실패
0
성공
OP 권한이 제거된 플레이어 수
difficulty

-
실패
0
성공
현재 난이도(평화로움 = 0, 쉬움 = 1, 보통 = 2, 어려움 = 3)
difficulty ...

성공
1
effect

-
실패
0
성공
효과가 주어 지거나 취소 된 개체의 수
enchant

-
실패
0
성공
성공적으로 부여된 플레이어의 수
experience

-
실패
0
experience <query> ...

성공
플레이어의 경험치 또는 레벨 수
experience <add|set> ...

성공
대상 플레이어 수
fill

-
실패
0
성공
성공적으로 채워진 블록 수
fillbiome

-
실패
0
성공
성공적으로 채워진 생물 군계 수
function

-
실패
0
성공
실행된 명령 수(성공 여부에 관계없음)
gamemode

-
실패
0
성공
게임 모드가 변경된 플레이어의 수
gamerule

-
실패
0
성공
현재 게임 규칙의 값(false = 0, true = 1, 정수일경우 Int.)
help

-
성공
목록에 뜬 명령어 개수
kick

-
실패
0
성공
대상 플레이어 수
kill

-
실패
0
성공
대상 플레이어 수
list

-
성공
현재 접속 중인 플레이어 수
locate

-
실패
0
성공
실행자 위치와 구조물 및 생물군계간 거리
seed

-
성공
현재 시드값의 32비트로 변환되어 출력된다.
return

-
실패
0
return <값>

성공
<값>


2.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
    : 최댓값


2.5. 용례[편집]


  • 모든 좀비의 위치에 번개를 소환한다.
    • 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블록 반경에 있는 플레이어하고 떨어지는 번개와 아이템을 제외한 모든 개체에게 번개를 소환한다.
    • JE:
      execute as @a at @e[distance=..5,type=!player,type=!lightning_bolt,type=!item] run summon lightning_bolt ~ ~ ~
    • BE:
      execute as @a at @e[r=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 @s 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

  • 가장 가까운 플레이어의 체력을 보스바로 나타낼 때(JE)
    • execute store result bossbar minecraft:1 value run scoreboard players get @p HP

  • Pos라는 태그를 가진 blue라는 팀에 속한 갑옷 거치대를 기준으로 가장가까에 있는 team이 red인 플레이어를 100, 100, 100으로 텔레포트 시킨다.(JE)
    • execute as @e[ tag=Pos, type=armor_stand, team=blue ] at @s run tp @p[ team=red ] 100 100 100

  • 아머스탠드의 오른팔이 분당 10번 돌아간다.(JE)
    • 준비 : /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

  • 모든 양의 양털 색깔이 스코어보드 숫자번호대로 바뀐다.(0 = 흰색, 1 = 주황색)(JE)
    • 준비 : /scoreboard objectives add color dummy, /summon sheep X Y Z {Tags:[color],NoAI:1b}
    • 반복 첫번째 : scoreboard players add $color color 1
    • 연쇄 두번째(무조건) : execute if score $color color matches 16.. run scoreboard players set $color color 0
    • 연쇄 세번째(무조건) : execute as @e[tag=color] at @s store result entity @s Color int 1 run scoreboard players get $color color

  • 플레이어의 특정 아이템 수 스코어보드로 나타내기.(JE)
    • 준비 : /scoreboard objectives add i.c dummy, /tag @s add i.c
    • 반복 첫번째 : execute as @a[tag=i.c] store result score @s i.c run clear @s <특정 아이템> 0

파일:크리에이티브 커먼즈 라이선스__CC.png 이 문서의 내용 중 전체 또는 일부는 2023-11-27 00:54:13에 나무위키 마인크래프트/명령어/execute 문서에서 가져왔습니다.

[1] execute와 scoreboard만 알아도 거의 미니게임을 하나 만들수 있을 정도로 마인크래프트 명령어의 혁명이다.[2] 기존 testforblock 명령어.[3] 기존 testforblocks 명령어.[4] 여기서 if 구문의 경우는 이전 버전에 존재하는 testfor 명령어랑 사용법이 비슷하다.