[include(틀:상위 문서, top1=마인크래프트/명령어)] [목차] == 개요 == ||<-2> {{{+3 {{{#fff '''execute'''}}}}}} || ||<-2> {{{execute <세부 명령문...> run <실행할 명령>}}} || || '''역사''' ||JE | {{{#00aa00 [ruby(1.8, ruby=추가)]}}} / {{{#ffa100 [ruby(1.13, ruby=변경)]}}} ---- BE | {{{#00aa00 [ruby(PE 알파 0.16.0 빌드 1, ruby=추가)]}}} / {{{#ffa100 [ruby(1.19.50, ruby=변경)]}}} ---- EE | {{{#00aa00 [ruby(?, ruby=추가)]}}} || || '''기능''' || {{{<세부 명령문...>}}}에 따라 {{{<실행할 명령>}}}을 실행한다. || || '''관련 명령어''' || - || || '''단축 명령어''' || - || || '''기본값''' || - || || '''싱글 사용''' || '''권한''' || || {{{#373a3c,#ddd 가능}}} || 2^^(JE)^^, 1^^(BE)^^ || 명령어의 실행 주체, 위치, 시점, 차원을 설정하고 명령어가 실행될 조건과 명령어의 결과값을 저장하는 방식을 설정한다. '''명령어의 일등공신.'''[* execute와 scoreboard만 알아도 거의 미니게임을 하나 만들수 있을 정도로 마인크래프트 명령어의 '''혁명이다.'''] == execute 문법 == 세부 명령문은 한 명령어에 여러 번 쓰는 것이 가능하고 세부 명령문의 작성이 끝나면 {{{run <실행할 명령>}}}으로 끝낸다. 이때, {{{<실행할 명령>}}} 앞에는 슬래시([[문서:/|/]])를 사용해서는 안 된다. === 실행 설정 === 명령어의 실행 주체, 위치, 시점, 차원 등을 설정할 수 있다. *{{{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}}}: 실행자가 타고 있는 개체를 실행자로 설정한다. === 조건 설정 === 조건을 설정하는 세부 명령문을 사용하면 조건에 맞지 않는 경우 명령어가 실행되지 않는다. *{{{ block <좌표> <블록> <다음 명령>}}} *해당 좌표에 맞는 블록이 있거나 있지 않을 때만 다음 명령을 실행한다.[* 기존 testforblock 명령어.] *{{{ blocks <시작 좌표> <끝 좌표> <지점> <다음 명령>}}} *시작과 끝으로 설정된 지역의 블록이 지점 지역의 블록과 정확히 일치하거나 일치하지 않은 경우에만 다음 명령을 실행한다. [[마인크래프트/명령어#clone|/clone]]과 비슷한 문법이다.[* 기존 testforblocks 명령어.] *{{{ entity <개체> <다음 명령>}}} *개체가 존재하거나 존재하지 않을 때에만 다음 명령을 실행한다.[* 여기서 if 구문의 경우는 이전 버전에 존재하는 testfor 명령어랑 사용법이 비슷하다.] *{{{ score <대상> <스코어보드1> 〈<|<=|=|>=|>〉 <기준> <스코어보드2> <다음 명령>}}} *스코어보드1에 있는 대상의 점수와 스코어보드2에 있는 기준의 점수가 (부)등호에 맞거나 맞지 않을 때만 다음 명령을 실행한다. *{{{ score <대상> <스코어보드1> matches <범위> <다음 명령>}}} *스코어보드1에 있는 대상의 점수가 범위에 들어갔거나 들어가지 않았을 때만 다음 명령을 실행한다. *{{{ biome <좌표> <생물 군계> <다음 명령>}}}^^(JE)^^ *해당 좌표에 있는 생물 군계가 있거나 있지 않을 때만 다음 명령을 실행한다. *{{{ dimension <차원> <다음 명령>}}}^^(JE)^^ *현재 차원이 맞거나 맞지 않을때 다음 명령을 실행한다. *{{{ loaded <좌표> <다음 명령>}}}^^(JE)^^ * 해당 위치에 있는 청크가 완전히 로딩되어있거나 로딩되지 않을때 다음 명령을 실행한다. *{{{ predicate <술어> <다음 명령>}}}^^(JE)^^ *사용자 정의 술어가 맞거나 맞지 않을때 다음 명령을 실행한다. 술어에 대한 내용은 [[마인크래프트/데이터팩#s-3.6]] 참조 === 저장 설정(JE) === {{{store}}}을 이용해 다음 명령의 결과나 성공 횟수를 스코어, NBT데이터, 보스바 등에 저장할 수 있다. 결과는 모든 명령어가 실행을 마친 후에 저장된다. 또 명령어가 성공적으로 실행되지 않았다면, {{{result}}}도 0으로 설정된다. *{{{store ...}}} *{{{... score <대상> <스코어보드> <다음 명령>}}} *다음 명령의 결과를 스코어보드에 있는 대상의 점수로 저장한다. 스코어보드는 무조건 존재해야 한다 *{{{... block <위치> <경로> <크기> <다음 명령>}}} *블록의 NBT 데이터를 수정하고 결과를 저장한다. *{{{... entity <대상> <경로> <크기> <다음 명령>}}} *대상의 NBT 데이터를 수정하고 결과를 저장한다. *플레이어의 NBT는 그 어떠한 경우에도 수정이 불가능하다. *{{{... bossbar <다음 명령>}}} *결과값을 해당 ID를 가진 보스바의 값이나 최대값으로 저장한다. ==== 출력 ==== ||<-2> 명령어 || 상태 ||{{{execute store result ...}}} || ##### ||<|3><-2> {{{advancement}}} || 오류 ||''변하지 않음'' || || 실패 ||0 || || 성공 ||''각 플레이어에서 추가/제거된 발전/기준의 총 수.'' || ##### ||<|5> {{{attribute}}} ||any || 실패 ||0 || ||{{{... get [규모]}}} || 성공 ||<|3>''속성 값의 [규모]만큼 곱한 다음 유형을 Int로 변환한다.'' || ||{{{... base get [규모]}}} || 성공 || ||{{{... modifier value get [규모]}}} || 성공 || ||{{{... base set ...}}}[br]{{{... modifier add ...}}}[br]{{{... modifier remove ...}}} || 성공 ||1 || ##### ||<|2> {{{ban}}} ||<|2> - || 실패 ||0 || || 성공 ||''차단한 플레이어의 이름 길이 수'' || ##### ||<|2> {{{ban-ip}}} ||<|2> - || 실패 ||0 || || 성공 ||''???'' || ##### ||<|2> {{{banlist}}} ||<|2> - || 실패 ||0 || || 성공 ||''현재 차단중인 플레이어 수'' || ##### ##|| {{{bossbar}}} ||any || 실패 ||0 || ##### ||<|2> {{{clear}}} ||<|2>any || 실패 ||0 || || 성공 ||''지워지거나 감지된 아이템의 수'' || ##### ||<|2> {{{clone}}} ||<|2>any || 실패 ||0 || || 성공 ||''대상 지역에서 변경된 블록 수.'' || ##### ||<|2> {{{data}}} ||any || 실패 ||0 || ||{{{... get ... [대상 NBT경로] [규모]}}}|| 성공 ||''[규모]만큼 곱한 다음 유형을 Int로 변환한다.''|| ##### ||<|2> {{{datapack}}} ||any || 실패 ||0 || ||{{{datapack list}}}|| 성공 ||''활성화된 데이터 팩 개수.''|| ##### ||<|4> {{{debug}}} ||any || 실패 ||0 || ||{{{start}}} || 성공 ||0 || ||{{{stop}}} || 성공 ||''평균 TPS'' || ||{{{function}}} || 성공 ||''실행된 명령 수(성공 여부에 관계없음)'' || ##### ||<|2> {{{deop}}} ||<|2> - || 실패 ||0 || || 성공 ||''OP 권한이 제거된 플레이어 수'' || ##### ||<|3> {{{difficulty}}} ||<|2> - || 실패 ||0 || || 성공 ||''현재 난이도(평화로움 = 0, 쉬움 = 1, 보통 = 2, 어려움 = 3)'' || ||{{{difficulty ...}}} || 성공 ||1 || ##### ||<|2> {{{effect}}} ||<|2> - || 실패 ||0 || || 성공 ||''효과가 주어 지거나 취소 된 개체의 수'' || ##### ||<|2> {{{enchant}}} ||<|2> - || 실패 ||0 || || 성공 ||''성공적으로 부여된 플레이어의 수'' || ##### ||<|3> {{{experience}}} || - || 실패 ||0 || ||{{{experience ...}}} || 성공 ||''플레이어의 경험치 또는 레벨 수'' || ||{{{experience ...}}} || 성공 ||''대상 플레이어 수'' || ##### ||<|2> {{{fill}}} ||<|2> - || 실패 ||0 || || 성공 ||''성공적으로 채워진 블록 수'' || ##### ||<|2> {{{fillbiome}}} ||<|2> - || 실패 ||0 || || 성공 ||''성공적으로 채워진 생물 군계 수'' || ##### ||<|2> {{{function}}} ||<|2> - || 실패 ||0 || || 성공 ||''실행된 명령 수(성공 여부에 관계없음)'' || ##### ||<|2> {{{gamemode}}} ||<|2> - || 실패 ||0 || || 성공 ||''게임 모드가 변경된 플레이어의 수'' || ##### ||<|2> {{{gamerule}}} ||<|2> - || 실패 ||0 || || 성공 ||''현재 게임 규칙의 값(false = 0, true = 1, 정수일경우 Int.)'' || ##### ||<|1> {{{help}}} ||<|1> - || 성공 ||''목록에 뜬 명령어 개수'' || ##### ||<|2> {{{kick}}} ||<|2> - || 실패 ||0 || || 성공 ||''대상 플레이어 수'' || ##### ||<|2> {{{kill}}} ||<|2> - || 실패 ||0 || || 성공 ||''대상 플레이어 수'' || ##### ||<|1> {{{list}}} ||<|1> - || 성공 ||''현재 접속 중인 플레이어 수'' || ##### ||<|2> {{{locate}}} ||<|2> - || 실패 ||0 || || 성공 ||''실행자 위치와 구조물 및 생물군계간 거리'' || ##### || {{{seed}}} || - || 성공 ||''현재 시드값의 32비트로 변환되어 출력된다.'' || ##### ||<|2> {{{return}}} || - || 실패 ||0 || ||{{{return <값>}}} || 성공 ||''{{{<값>}}}'' || ##### === 설명 === *기준: {{{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}}}: 최댓값 === 용례 === *모든 좀비의 위치에 번개를 소환한다. *{{{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}}} [[분류:마인크래프트/명령어]]