이벤트 API 문서

이벤트는 스크립트를 명령어를 치지 않아도 실행할 수 있게 해줍니다. 예를 들어 플레이어 로그인, 블록 부수기 등이 있습니다. 초보자 가이드의 이벤트 항목을 통해 더 많은 정보를 얻으세요.

블록 이벤트

블록에 관련된 이벤트들을 포함합니다.

이벤트 이름설명사전 필터이벤트 데이터수정 가능한 필드
block_break 블록이 부서졌을 때 발생합니다. 이벤트를 취소하면 블록을 부순 행동이 취소됩니다.

player: <String Match>

name: <String Match>

type: <Math Match>

data: <String Match>

player: 플레이어 이름

block: 블록의 위치를 알려주는 'type' (정수; 사용되지 않음), 'name' (문자열), 'data' (정수), 'X' (정수), 'Y' (정수), 'Z' (정수), 'world' (문자열) 키가 포함되어 있는 위치 배열

location: 해당 블록의 위치 배열

drops

xp

drops: 드롭될 아이템의 배열('type' (문자열), 'qty' (정수), 'data' (정수), 'enchants' (배열) 가 키로 존재) 의 배열

xp: 블록이 드롭할 경험치의 양

block_burn 블록이 불타면 발생합니다. 취소하면 불에 타지 않습니다.

name: <String Match>

type: <Math Match>

data: <String Match>

block: 블록의 위치를 알려주는 'type' (정수; 사용되지 않음), 'name' (문자열), 'data' (정수), 'X' (정수), 'Y' (정수), 'Z' (정수), 'world' (문자열) 키가 포함되어 있는 위치 배열

location: 해당 블록의 위치 배열

block

block_dispense 디스펜서가 아이템을 내보내면 발생합니다. 취소하면 내보낸 것을 취소합니다.

type: <String Match> 디스펜서의 종류

item: <Item Match> 뿌려질 아이템

type: 디스펜서의 종류

item: 뿌려질 아이템

velocity: 아이템의 속도 정보가 포함되어 있는 키가 있는 배열(x/y/z) 을 반환합니다.

location: 디스펜서의 위치

item

속도

block_fade 블록이 월드 상태에 따라 사라질 경우 발생합니다.

oldname: <String Match> 사라지기 전의 원래 블록 이름

oldtype: <Math Match> (비권장) 사라지기 전의 블록의 id.

world: <String Match>

oldblock: 사라지기 전의 블록 정보 ('type' (비권장), 'name', 'data' 키가 있는 배열)

newblock: 사라지고 나서의 블록 정보 ('type' (비권장), 'name', 'data' 키가 있는 배열)

location: 사라질 블록의 위치

block_from_to 이 이벤트는 물이나 용암이 흐르거나 엔더 드래곤 알이 텔레포트 될 때 발생합니다. 이벤트를 취소하면 텔레포트나 흐름이 취소됩니다.

name: <String Match>

type: <Math Match>

data: <String Match>

world: <String Match>

toname: <String Match>

totype: <Math Match>

todata: <String Match>

toworld: <String Match>

face: <String Match>

block: 블록의 위치를 알려주는 'type' (정수; 사용되지 않음), 'name' (문자열), 'data' (정수), 'X' (정수), 'Y' (정수), 'Z' (정수), 'world' (문자열) 키가 포함되어 있는 위치 배열

location: 해당 블록의 위치 배열

toblock: 이동할 블록

tolocation: 이동된 블록의 위치

block

toblock

block_grow 블록이 자연적으로 자라면 발생합니다. 취소하면 자라지 않습니다.

oldname: <String Match> 자라기 전의 블록 이름

oldtype: <Math Match> (비권장) 자라기 전의 블록 id

olddata: <String Match> 자라기 전의 블록 데이터

newname: <String Match> 자라고 나서의 블록 이름

newtype: <Math Match> (비권장) 자라기 전의 블록 id

newdata: <String Match> 자라고 나서의 블록 데이터

world: <Macro>

oldblock: 자라기 전의 블록 ('type' (비권장), 'name', 'data' 키가 있는 배열)

newblock: 자라고 나서의 블록 ('type' (비권장), 'name', 'data' 키가 있는 배열)

location: 자랄 블록의 위치

block_ignite 블록이나 엔디티가 불이 붙으면 발생합니다.

player: <Macro>

cause: <Macro>

world: <String Match>

player: 플레이어 이름

ignitingentity: 엔디티가 불탈 경우, 불타는 엔디티의 id

ignitingblock: (비권장) 블록이 불탈 경우, 불타는 블록의 id

ignitingblockname: 블록이 불탈 경우, 불타는 블록의 이름

location: 블록이나 엔디티의 위치 배열

cause: 불타는 이유:

block_place 플레이어가 블록을 놓으면 발생합니다. 취소하면 블록을 놓은 것을 취소합니다.

player: <String Match>

name: <String Match>

type: <Math Match>

data: <String Match>

player: 플레이어 이름

type: (비권장) 놓은 블록의 id

name: 놓은 블록의 이름

X: 블록의 X 좌표

Y: 블록의 Y 좌표

Z: 블록의 Z 좌표

world: 블록의 월드

data: 놓은 블록의 데이터

against: 블록이 놓아진 곳

oldblock: 변한 블록 타입과 데이터

location: 블록의 위치 배열

name

type

data

note_play 노트 블록이 플레이어나 레드스톤에 의해 활성화 될 때 발동합니다. 악기는 다음 중 하나입니다: PIANO, BASS_DRUM, SNARE_DRUM, STICKS, BASS_GUITAR, FLUTE, BELL, GUITAR, CHIME, XYLOPHONE.

location: 노트블록의 위치

instrument: 소리의 이름

tone: 소리의 음계 (예. F#)

octave: 소리의 높낮이 (0 - 2)

instrument

tone

octave

piston_extend 피스톤이 늘어나면 발생합니다. 취소하면 피스톤이 늘어나지 않습니다.

block: 블록의 위치를 알려주는 'type' (정수; 사용되지 않음), 'name' (문자열), 'data' (정수), 'X' (정수), 'Y' (정수), 'Z' (정수), 'world' (문자열) 키가 포함되어 있는 위치 배열

location: 해당 블록의 위치 배열

direction: 움직인 방향

sticky: 끈적한 피스톤일 경우 참

affectedBlocks: 밀어낸 블록

piston_retract 피스톤이 다시 줄어들면 발생합니다. 취소하면 피스톤이 다시 줄어들지 않습니다.

block: 블록의 위치를 알려주는 'type' (정수; 사용되지 않음), 'name' (문자열), 'data' (정수), 'X' (정수), 'Y' (정수), 'Z' (정수), 'world' (문자열) 키가 포함되어 있는 위치 배열

location: 해당 블록의 위치 배열

direction: 움직인 방향

sticky: 끈적한 피스톤일 경우 참

retractedLocation: 만약 끈적한 피스톤이고 블록을 당겼다면 당긴 블록의 위치

sign_changed 플레이어가 표지판을 바꾸면 발생합니다. 취소하면 표지판의 변경이 취소됩니다.

player: <String Match>

1: <Regex>

2: regex>

3: <Regex>

4: <Regex>

player: 플레이어 이름

location: 표지판의 위치 배열

text: 표지판의 각 줄에 대응되는 0부터 3까지의 키가 있는 배열

1

2

3

4

text: 표지판의 각 줄에 대응되는 0부터 3까지의 키가 있는 배열

위로 가기

명령줄 인터페이스 이벤트

명령줄 이벤트와 관련된 이벤트를 포함합니다.

이벤트 이름설명사전 필터이벤트 데이터수정 가능한 필드
cmdline_prompt_input 명령줄 인터페이스가 프로모트를 받으면 발생합니다. 취소하지 않으면 인터프리터가 정상적으로 다루며, 아닐 경우 취소하거나 커스텀 프로모트가 발생할 수 있습니다.

command: 작동된 명령어

shutdown 프로세스가 꺼지면 발생합니다. 이 이벤트는 프로세스가 강제 중지되면 발생하지 않을 수도 있습니다. 이 이벤트의 실행에 너무 오래 걸리면, 실행을 중지하고 프로세스가 종료될 수도 있습니다.

위로 가기

엔디티 이벤트

엔디티와 관련된 이벤트를 포함합니다.

이벤트 이름설명사전 필터이벤트 데이터수정 가능한 필드
creature_spawn 서버에 살아있는 엔디티가 생성되면 발생합니다.

type: <Macro>

reason: <Macro> BREEDING, BUILD_IRONGOLEM, BUILD_SNOWMAN, BUILD_WITHER, CHUNK_GEN, CUSTOM, DEFAULT, EGG, JOCKEY, LIGHTNING, NATURAL, REINFORCEMENTS, SHOULDER_ENTITY, SLIME_SPLIT, SPAWNER, SPAWNER_EGG, VILLAGE_DEFENSE, VILLAGE_INVASION, NETHER_PORTAL, DISPENSE_EGG, INFECTION, CURED, OCELOT_BABY, SILVERFISH_BLOCK, MOUNT, TRAP, ENDER_PEARL 중 하나

type: 스폰된 생명체의 종류

id: 스폰된 생명체의 엔디티 ID

reason: 생명체가 스폰된 이유

location: 이벤트가 일어난 위치

type: 다른 이벤트를 스폰합니다. 새 이벤트를 발생시키고, 만약 살아있는 엔디티 종류라면 creature_spawn 이벤트를 'CUSTOM' 이유로 발생시킵니다.

entity_change_block 엔디티가 어떻게든 블록을 변경하면 발생합니다.

from: <Math Match> 바꾸기 전의 블록 ID

to: <Math Match> 바뀌고 난 다음의 블록 ID

location: <Location Match> 바뀐 블록의 위치

entity: 블록을 바꾼 엔디티의 ID

from: 바뀌기 전의 블록 ID

data: 바뀐 블록의 데이터

to: 바뀌고 난 다음의 블록 ID

location: 블록이 바뀐 위치의 배열

entity_damage 엔디티가 데미지를 받으면 발생합니다.

id: <Macro> 엔디티 ID

type: <Macro> 데미지를 받은 엔디티의 종류

cause: <Macro> CONTACT, ENTITY_ATTACK, PROJECTILE, SUFFOCATION, FALL, FIRE, FIRE_TICK, LAVA, DROWNING, BLOCK_EXPLOSION, ENTITY_EXPLOSION, VOID, LIGHTNING, SUICIDE, STARVATION, POISON, MAGIC, MELTING, WITHER, FALLING_BLOCK, THORNS, DRAGON_BREATH, FLY_INTO_WALL, HOT_FLOOR, CRAMMING, ENTITY_SWEEP_ATTACK, CUSTOM 중 하나

world: <String Match>

type: 데미지를 받은 엔디티의 종류

id: 피해를 받은 엔디티 ID

player: 데미지를 받은 플레이어 (종류가 PLAYER 일 경우에만)

world

location

cause: 데미지의 종류

amount

finalamount: 모든 계산 이후 받게 될 데미지

damager:데미지를 준 것이 사람이면 플레이어 이름을, 엔디티면 엔디티 ID 를 반환 (엔디티가 데미지를 주었을 때에만)

shooter: 데미지를 준 발사체를 쏜 것이 사람이면 플레이어 이름을, 엔디티면 엔디티 ID 를 반환 (발사체가 데미지를 주었을 때에만)

amount: 최초 데미지의 양

entity_damage_player 플레이어가 엔디티에게 데미지를 받으면 발생합니다.

id: <Macro> 엔디티 ID

damager: <Macro>

player: 데미지를 받은 플레이어

damager: 데미지를 준 엔디티의 종류

amount: 받은 데미지의 최초 양

finalamount: 모든 계산 이후 받게 될 데미지

cause: 데미지를 받은 이유

data: 공격한 플레이어의 이름 혹은 발사체가 데미지를 주었다면 그 발사체를 쏜 사람의 이름

id: 데미지를 준 사람의 엔디티 ID

location

amount

entity_death 살아있는 엔디티가 죽으면 발생합니다.

id: <Macro> 엔디티 ID

type: <Macro> 죽는 엔디티의 종류.

type

id: 엔디티 ID

drops: 엔디티가 떨어트릴 아이템의 배열

xp

cause: 이 엔디티에 마지막으로 데미지를 준 엔디티

location: 엔디티가 죽은 장소

drops: 엔디티가 떨어트릴 아이템들, 원래 떨어트릴 아이템을 대체하며, null 이 될 수 있음.

xp: 떨어트릴 경험치의 양

entity_enter_portal 엔디티가 포탈 블록을 만지면 발생합니다.

type: <Macro> 엔디티의 종류

block: <Math Match> (비권장) 포탈의 블록 ID

portaltype: <String Match> 포탈의 종류 (PORTAL 혹은 END_PORTAL)

id: 엔디티의 ID

location: 만진 블록의 위치

type

block (비권장)

portaltype

entity_explode 폭발이 발생하면 발생합니다. 플러그인이 폭발시켰을 경우 엔디티가 없을 수 있습니다. 이 이벤트를 취소하면 블록만 보호하며, 엔디티 데미지를 데미지 이벤트에서 다뤄집니다.

id: <Macro> 엔디티 ID, 만약 null 일 경우 해당 폭발은 엔디티가 발생시킨 것이 아닐 수 있습니다.

type: <Macro> 터지는 엔디티의 종류, null 일 수도 있습니다.

id: 엔디티 ID, 엔디티가 없을 경우 null

type: 엔디티 종류, 엔디티가 없을 경우 null

location: 폭발이 일어난 위치

blocks

yield

blocks: 폭발로 인해 부서진 블록의 배열

yield: 블록이 터지면서 드롭할 블록의 백분율, 100보다 클 경우 원래 블록보다 더 많은 아이템이 드롭됨.

entity_interact 플레이어가 아닌 엔디티가 블록과 상호작용하면 발생합니다.(압력 발판, 레드스톤 광석 등)

type: <String Match> 엔디티 종류

blockname: <String Match> 엔디티가 상호작용하는 블록의 이름

block: <Item Match> (비권장) 블록 ID

entity: 블록과 상호작용하는 엔디티의 ID

blockname

block (비권장)

location: 상호작용의 위치

entity_portal_travel 엔디티가 포탈을 파고 여행했을 때 발생합니다.

type: <Macro>

id: 엔디티의 UUID

type: 엔디티의 종류

from: 엔디티가 이동하기 전의 위치

to: 엔디티가 이동할 위치, 지옥 포탈을 사용하며 "allow-nether" 가 false 일 경우 null 을 반환하며, 엔더 포탈과 "allow-end" 의 경우도 동일함.

creationradius: 포탈이 만들어질 최대 범위

searchradius: 포탈을 찾을 때 최대 범위

to

creationradius

searchradius

entity_regain_health 엔디티가 체력을 회복했을 때 발생합니다.

reason: <Macro>

id: 회복한 엔디티의 ID

cause: 회복한 이유:

amount

entity_toggle_glide 엔디티가 글라이딩 상태를 토글할때 발생합니다.(날개 사용)

type: <Macro> 엔디티의 종류

id: <Macro> 엔디티의 ID

player: <Macro> 이벤트를 발생시킨 플레이어

id: 엔디티의 ID

type: 엔디티의 종류

gliding: 만약 글라이딩 모드로 바뀌었다면 참, 아닐 경우 거짓.

player: 엔디티가 플레이어이면 이름을 반환, 아닐 경우 null.

firework_explode 폭죽 로켓이 폭발하면 발생합니다.

id: 폭죽 로켓의 엔디티 ID

location: 폭죽 로켓이 폭발하는 곳

hanging_break 걸어져 있는 엔디티가 부서지면 발생합니다.

type: <Macro> 걸려 있는 엔디티의 종류

cause: <Macro> 부서진 이유

world: <Macro>

id: 걸려 있는 엔디티의 ID

type: 걸려 있는 엔디티의 종류. ITEM_FRAME, PAINTING , LEASH_HITCH 중 하나

cause: 부서진 이유. DEFAULT, ENTITY, EXPLOSION, OBSTRUCTION, PHYSICS 중 하나

location: 부서지기 전 걸려있던 위치

remover: 걸려 있는 엔디티가 엔디티에 의해 부서졌다면 엔디티 ID, 아닐 경우 null

player: 걸려 있는 엔디티가 플레이어에 의해 부서졌다면 플레이어 이름, 아닐 경우 null

item_despawn 아이템이 5분 이상 존재해서 사라지면 발생합니다. 이 이벤트를 취소하면 아이템을 5분 이상 존재하게 할 수 있습니다.

item: <Item Match> 확인할 아이템 ID 와 데이터

location: 아이템이 있는 위치

id: 아이템의 엔디티 ID

item: 엔디티의 아이템 내용

item_drop 플레이어가 아이템을 버리면 발생합니다.

player: <Macro>

item: <Item Match>

player: 플레이어

item: 떨어트린 아이템의 배열

item: null 로 설정하여 아이템을 없앨 수 있음

item_pickup 플레이어가 아이템을 주으면 발생합니다.

player: <Macro>

item: <Item Match>

player: 플레이어

item: 주운 아이템의 배열

remaining: 땅에 남은 아이템

item: null 로 만들어 아이템을 월드에서 없앨 수 있음

item_spawn 아이템 엔디티가 생겨나면 발생합니다.

item: <Item Match> 확인할 아이템 ID 와 데이터

location: 아이템이 생겨난 위치

id: 아이템의 엔디티 ID

item

item: 엔디티의 아이템 내용

player_interact_at_entity 플레이어가 엔디티를 오른쪽 클릭하면 발생합니다. 이 이벤트는 player_interact_entity 와 비슷하지면 클릭한 위치도 알려줍니다. 또한 취소하면 아머 스탠드의 상호작용만을 취소합니다.

clicked: <Macro> 클릭된 엔디티의 종류

hand: <String Match> 플레이어가 클릭한 손 main_hand, off_hand 중 하나

x: <Expression> 클릭한 위치의 x 축 상의 오프셋

y: <Expression>

z: <Expression>

player: 클릭한 플레이어

clicked

hand

id: 엔디티의 ID

data: 플레이어를 클릭했을 경우, 클릭한 플레이어의 이름

position: 클릭한 엔디티의 xyz 배열 오프셋

player_interact_entity 엔디티를 오른쪽 클릭하면 발생합니다. 참고로 모든 엔디티가 클릭 가능하진 않습니다. 아머 스탠드와의 상호작용은 이 이벤트를 발생시키지 않습니다.

clicked: <Macro> 클릭된 엔디티의 종류

hand: <String Match> 플레이어가 클릭한 손 main_hand, off_hand 중 하나

player: 클릭한 플레이어

clicked

hand

id: 엔디티의 ID

data: 플레이어를 클릭했을 경우, 클릭한 플레이어의 이름

projectile_hit 발사체가 무언가에 부딪히면 발생합니다.

id: <Macro> 엔디티 ID

type: <Macro> 발사체의 엔디티 종류

hittype: 부딪힌 것의 종류 (ENTITY 혹은 BLOCK)

type

id: 발사체의 엔디티 ID

location: 부딪힌 위치

shooter

hittype (MC 1.11)

hit:부딪힌 것의 엔디티 ID 나 블록 위치 배열. (MC 1.11)

shooter: 엔디티나 플레이어가 쐈을 경우 엔디티 ID, 디스펜서에서 쐈을 경우 null.

projectile_launch 발사체가 발사되면 발생합니다. 이벤트를 취소하면 발사체의 발사만 취소됩니다. 예를 들어, 플레이어가 활을 쏘면 화살은 발사되지 않지만 활의 내구도는 줄어듭니다.

type: <Macro> 발사체의 엔디티 종류

world: <Macro>

shootertype: <Macro> 쏜 것의 엔디티 종류, 혹은 'block', 혹은 'null'

id: 발사체의 엔디티 ID

type: 발사체의 엔디티 종류

shooter: 쏜 것의 엔디티 ID (발사체가 디스펜서에서 발사되었다면 null)

shootertype: 쏜 것의 엔디티 종류 (발사체가 디스펜서에서 발사되었다면 null)

player: 발사체를 쏜 플레이어(플레이어가 아닐 경우 null)

location: 발사체를 쏜 위치

velocity: 발사체의 속도

속도

target_player 플레이어가 몹의 목표가 되었을 때 발생합니다.

player: <Macro>

mobtype: <Macro>

reason: <Macro>

player: 플레이어 이름

mobtype: 플레이어를 목표로 하는 몹의 종류(대문자)

id: 몹의 UUID

reason: 플레이어를 목표로 하는 이유. TARGET_DIED, CLOSEST_PLAYER, TARGET_ATTACKED_ENTITY, PIG_ZOMBIE_TARGET, FORGOT_TARGET, TARGET_ATTACKED_OWNER, OWNER_ATTACKED_TARGET, RANDOM_TARGET, DEFEND_VILLAGE, TARGET_ATTACKED_NEARBY_ENTITY, REINFORCEMENT_TARGET, COLLISION, CLOSEST_ENTITY, TEMPT, CUSTOM, UNKNOWN 중 하나.

player: 다른 플레이어를 목표로 하게 하거나, null 으로 하여 몹이 다른 타겟을 찾도록 함.

위로 가기

인벤토리 이벤트

인벤토리에 관련된 이벤트를 포함합니다.

이벤트 이름설명사전 필터이벤트 데이터수정 가능한 필드
inventory_click 플레이어가 어떠한 인벤토리의 슬롯을 클릭하면 발생합니다.

virtual: 인벤토리가 커맨드헬퍼에 가상으로 생성된 인벤토리인지 확인합니다.

slottype: <Macro> 클릭된 슬롯의 종류. ARMOR, CONTAINER, CRAFTING, FUEL, OUTSIDE, QUICKBAR, RESULT 중 하나.

clicktype: <Macro> LEFT, SHIFT_LEFT, RIGHT, SHIFT_RIGHT, WINDOW_BORDER_LEFT, WINDOW_BORDER_RIGHT, MIDDLE, NUMBER_KEY, DOUBLE_CLICK, DROP, CONTROL_DROP, CREATIVE, UNKNOWN 중 하나.

action: <Macro> NOTHING, PICKUP_ALL, PICKUP_SOME, PICKUP_HALF, PICKUP_ONE, PLACE_ALL, PLACE_SOME, PLACE_ONE, SWAP_WITH_CURSOR, DROP_ALL_CURSOR, DROP_ONE_CURSOR, DROP_ALL_SLOT, DROP_ONE_SLOT, MOVE_TO_OTHER_INVENTORY, HOTBAR_MOVE_AND_READD, HOTBAR_SWAP, CLONE_STACK, COLLECT_TO_CURSOR, UNKNOWN 중 하나.

slotitem: <Item Match>

player: <Macro>

player: 클릭한 플레이어

viewers: 인벤토리를 보고 있는 플레이어들

leftclick: 왼쪽 클릭이라면 참

keyboardclick: 키보드를 눌렀다면 참

rightclick: 오른쪽 클릭이라면 참

shiftclick: 쉬프트를 누르고 있었다면 참

creativeclick: 크리에이티브 모드에서 클릭하였다면 참

slot: 슬롯 번호

rawslot: 인벤토리 창 전체에서 슬롯 번호

slottype

slotitem

inventorytype

inventorysize: 열린 인벤토리의 크기

cursoritem

inventory: (위쪽) 인벤토리의 모든 아이템

clicktype

action

slotitem: 클릭한 슬롯의 아이템

cursoritem: 커서에 있는 아이템(예상할 수 없는 증상이 나타날 수 있음)

inventory_close 플레이어가 인벤토리를 닫으면 발생합니다.

virtual: 인벤토리가 커맨드헬퍼에 가상으로 생성된 인벤토리인지 확인합니다.

player: 플레이어

inventory: 인벤토리의 아이템

inventorytype: 인벤토리의 종류

virtual

holder: 블록 위치 배열, 엔디티 UUID, 인벤토리 가상 ID 중 하나(null 이 될 수 있음)

inventory_drag 플레이어가 아이템을 클릭(왼쪽 오른쪽 상관 없이) 하고 마우스를 슬롯들을 건너 드래그하면 발생합니다.

virtual: 인벤토리가 커맨드헬퍼에 가상으로 생성된 인벤토리인지 확인합니다.

world: <Macro> 월드 이름

type: <String Match> SINGLE 혹은 EVEN

cursoritem: <Item Match> 이벤트가 발생하기 전 손에 있는 아이템

player: 클릭한 플레이어

newcursoritem: 이벤트가 발생한 후 손에 있는 아이템

oldcursoritem: 이벤트가 발생하기 전 커서에 있는 아이템

slots: 사용된 슬롯

rawslots: 사용된 슬롯, 번호는 전체 인벤토리에서의 번호

newitems: 선택된 슬롯으로 옮겨진 아이템

inventorytype

inventorysize: 열린 인벤토리의 크기

cursoritem: 이벤트가 발생한 후 커서에 있는 아이템

inventory_open 플레이어가 인벤토리를 열면 발생합니다.

virtual: 인벤토리가 커맨드헬퍼에 가상으로 생성된 인벤토리인지 확인합니다.

player: 플레이어

inventory: 인벤토리의 아이템

inventorytype: 인벤토리의 종류

virtual

holder: 블록 위치 배열, 엔디티 UUID, 인벤토리 가상 ID 중 하나(null 이 될 수 있음)

item_enchant 플레이어가 아이템을 인첸트하면 발생합니다.

player: 아이템을 인첸트한 플레이어

item: 인첸트 할 아이템

inventorytype: 인벤토리의 종류

levels: 플레이어가 사용한 레벨의 양

enchants: 추가된 인첸트의 배열

location: 인첸트 테이블의 위치

option: 플레이어가 클릭한 인첸트 옵션

levels: 사용할 레벨의 양

item: 인첸트 할 아이템

enchants: 아이템에 추가될 인첸트

item_held 플레이어가 선택된 퀵바 슬롯을 변경하면 발생합니다.

player:

player

to

from: 플레이어가 바꾸기 전 슬롯

to: 플레이어가 바꾸려고 하는 슬롯

item_pre_craft 조합법에 맞게 아이템이 조합창에 배열되었지만, 결과 아이템을 클릭하지 않았을 때 발생합니다.

viewers: 이벤트가 일어나는 화면을 보고 있는 플레이어들

matrix

result

isRepair: 이 이벤트가 수리로 인해 발생하였을 때(일반 조합과 다름)

recipe: 조합법의 정보, 아무것도 없다면 null.

item_pre_enchant 플레이어가 아이템을 인첸트 테이블에 놓으면 발생합니다.

player: 아이템을 놓은 플레이어

item: 인첸트 할 아이템

inventorytype: 인벤토리의 종류

enchantmentbonus: 인첸트 테이블에 영향을 주는 책장의 수

expcosts: 주어진 3개의 옵션의 경험치 요구량

location: 인첸트 테이블의 위치

item: 인첸트 할 아이템

expcosts: 인첸트 테이블에서 주어진 3개의 옵션의 경험치 요구량

item_swap 플레이어가 아이템을 다른 손으로 옮기면 발생합니다.

player: <Macro>

main_hand: <Item Match>

off_hand: <Item Match>

player

main_hand:바꾸기 전 주된 손에 있었던 아이템 배열

off_hand: 보조 손에 있는 아이템

main_hand

off_hand

위로 가기

플레이어 이벤트

플레이어와 관련된 이벤트를 포함합니다.

이벤트 이름설명사전 필터이벤트 데이터수정 가능한 필드
async_player_chat 플레이어가 채팅 메시지를 보내려고 할 때 발생합니다. 이벤트는 메인 서버 쓰레드가 아닌 보조 쓰레드에서 실행되며, 쓰레드-안전 펑션이 아닌 경우엔 정의되지 않은 값을 반환할 수도 있습니다. 만약 이 이벤트가 취소되면, player_chat 은 발생하지 않습니다.

player: <Macro>

message: 보낼 메시지

recipients

format

message

recipients: 메시지를 들을 플레이어, 존재하지 않거나 오프라인일 경우 무시됨.

format: "printf" 형식 문자열 기본 값:

book_edited 플레이어가 책을 수정하면 발생합니다.

player: <Macro> 책을 수정한 플레이어

signing: <Boolean Match> 책이 서명되었는지 여부

player: 책을 수정한 플레이어

slot: 책이 있는 인벤토리 슬롯 번호

oldbook: 수정하기 전의 책 ( title, author, pages 키가 있는 배열)

newbook: 수정한 후의 책 ( title, author, pages 키가 있는 배열)

signing: 책이 서명되었는지 여부

title

author

pages

signing

exp_change 플레이어의 경험치가 자연적으로 변경되었을 때 발생합니다.

player: <Macro>

player

amount

amount: 플레이어의 경험치에 추가될 경험치의 양

food_level_changed 플레이어의 허기 변경이 있을 때 발생합니다. 취소하면 허기가 변하지 않습니다.

player: <String Match>

player: 플레이어

level: 적용될 허기 레벨

difference: 기존의 허기와 새로운 허기와의 차이

level: 적용될 레벨의 차

gamemode_change 플레이어가 게임모드를 변경하면 발생합니다. 취소하면 게임모드 변경을 취소합니다. 모드 자체는 수정할 수 없습니다.

newmode: <Macro> 바뀔 게임 모드. SURVIVAL, CREATIVE, ADVENTURE, SPECTATOR 중 하나

player: <Macro>

player: 모드를 바꾸는 플레이어

newmode

player_chat 플레이어가 채팅을 하려고 하면 발생합니다.

player: <Macro>

message: 보낼 메시지

recipients

format

message

recipients: 메시지를 들을 플레이어, 존재하지 않거나 오프라인일 경우 무시됨.

format: "printf" 형식 문자열 기본 값:

player_command 플레이어 어떠한 명령어를 실행할 때 발생합니다. CommandHelper 단축 명령어보다 빨리 발생하므로 단축 명령어보다 먼저 조정할 수 있습니다.

command: <String Match> 플레이어가 실행하려고 하는 전체 명령어

prefix: <String Match> 명령어의 첫번째 부분(예: '/cmd asdf asdf' 의 '/cmd'

player: <Macro> 명령어를 사용하는 플레이어

command: 전체 명령어

prefix:명령어의 접두사

command

player_consume 플레이어가 아이템을 먹거나 마시면 발생합니다. 취소하면 그 아이템으로 얻은 모든 효과를 취소합니다.

item: <Item Match>

player: 먹는 플레이어

item: 먹은 아이템

item: 먹고 나서 남은 아이템

player_death 플레이어가 죽으면 발생합니다.

player: <Macro>

player: 죽은 플레이어

drops: 떨어트린 아이템 혹은 null

xp: 떨어트린 경험치

cause: 죽은 이유

death_message: 사망 메시지, 없을 경우 null

keep_inventory: 플레이어가 인벤토리를 유지될 여부

keep_level: 플레이어의 레벨과 경험치가 유지될 여부

new_exp: 리스폰 할 때 경험치의 양

new_level: 리스폰 할 때 레벨의 양

new_total_exp: 리스폰 할 때 전체 경험치의 양

killer: 플레이어가 죽였다면 죽인 플레이어의 이름, 아니라면 null.

xp

drops: 주어진 아이템으로 변환됨.

death_message

keep_inventory

keep_level

new_exp

new_level

new_total_exp

player_enter_bed 플레이어가 침대에 누으면 발생합니다.

location: 침대의 위치

location: 침대의 위치

player: 이 이벤트에 관여하는 플레이어

player_fish 플레이어가 낚시대를 놓거나 빼면 발생합니다.

state: <Macro> CAUGHT_ENTITY, CAUGHT_FISH, FAILED_ATTEMPT, FISHING, IN_GROUND, BITE 중 하나

player: <Macro> 낚시를 하는 플레이어

world: <String Match>

player

world

state

xp

hook: 낚시대의 엔디티 ID

caught: 잡힌 엔디티의 ID, 물고기 아이템일 수 있음

xp: 물고기를 잡음으로써 얻는 경험치

player_interact 플레이어가 블록 혹은 공기를 왼쪽 오른쪽 클릭을 하면 발생합니다.

block: <Item Match> 블록을 클릭했다면, 플레이어가 클릭한 블록

button: <String Match> 왼쪽 클릭이냐 오른쪽 클릭이냐에 따라 left 혹은 right

item: <Item Match> 상호작용 할 때 들고 있던 아이템

hand: <String Match> 클릭할 때의 플레이어의 손

player: <Macro> 이벤트를 발생시킨 플레이어

action: 플레이어의 행동:

block: 클릭한 블록의 ID, 공기를 클릭했을 때엔 0

player: 이 이벤트에 관여하는 플레이어

facing: 클릭한 블록의 면 위치(소문자) (NORTH, EAST, SOUTH, WEST, UP, DOWN, NORTH_EAST, NORTH_WEST, SOUTH_EAST, SOUTH_WEST, WEST_NORTH_WEST, NORTH_NORTH_WEST, NORTH_NORTH_EAST, EAST_NORTH_EAST, EAST_SOUTH_EAST, SOUTH_SOUTH_EAST, SOUTH_SOUTH_WEST, WEST_SOUTH_WEST, SELF 중 하나)

location: 클릭한 블록의 위치 배열

hand: 클릭할 때의 손(main_hand 혹은 off_hand)

player_join 플레이어가 서버에 들어오면 발생합니다. join_message 를 null 으로 하면 표시되지 않습니다. 이벤트를 취소하더라도 플레이어가 들어오는 것을 막을수는 없습니다. 대신 pkick() 을 사용해야 합니다.

player: <String Match>

world: <String Match>

join_message: <Regex>

player: 플레이어 이름

world

join_message: 기본 입장 메시지

first_login: 플레이어가 처음 접속했다면 참.

join_message

player_kick 플레이어가 게임에서 강제 퇴장되면 발생합니다.

player: <Macro>

reason: <Macro>

player: 퇴장당한 플레이어

message: 모든 온라인 플레이어에게 보여질 메시지

reason: 퇴장당한 플레이어에게 보내질 메시지

message

reason

player_leave_bed 플레이어가 침대에서 일어나면 발생합니다.

location: 침대의 위치

location: 침대의 위치

player: 이 이벤트에 관여하는 플레이어

player_login 플레이어가 로그인하려고 할 때 발생합니다. 이벤트는 취소할 수 없지만, 'result' 를 KICK_BANNED, KICK_WHITELIST, KICK_OTHER, KICK_FULL 으로 수정함으로써 들어오지 못하게 막을 수 있습니다. 기본 'result' 는 ALLOWED 이며, 'result' 를 설정하면서 메시지를 변경하고 싶다면 'kickmsg' 를 수정하면 됩니다.

player: <String Match>

player: 플레이어 이름

uuid: 플레이어의 고유 ID

kickmsg: 기본 퇴장 메시지

ip: 플레이어의 IP 주소

hostname: 플레이어가 접속하려고 하는 호스트 이름

result: 플레이어의 로그인에서의 기본 대응

kickmsg

result

player_move 플레이어가 특정한 거리만큼 이동하면 발생합니다. 이 이벤트는 아주 짧은 거리에는 발생하지 않기 때문에, 사전 필터가 중요합니다. 특히 threshold 는 더 중요합니다. -- 이를 설정하므로써 스크립트가 항상 작동하지 않도록 할 수 있습니다.

player: <Macro> 움직인 플레이어, 월드 이동의 경우 이벤트를 발생시키지 않음.

world: <String Match> 플레이어가 이동한 월드

from: <Location Match> 플레이어가 이동하기 전의 위치.

to: <Location Match> 플레이어가 이동한 후의 위치

threshold: 이벤트가 발생하기 위해 플레이어가 이동해야 할 최소 거리, 3D 거리를 기반으로 하고, 블록을 기준으로 측정됨.

player

world

from: 플레이어가 이동하기 전 위치

to: 플레이어가 이동한 후 위치

player_portal_travel 플레이어가 포탈에 들어가면 발생합니다.

player: <Macro>

from: <Location Match> 플레이어가 이동하기 전의 위치.

to: <Location Match> 플레이어가 포탈에 들어가기 전 위치

type: <Macro> 이동한 포탈의 종류:

player: 텔레포트 한 플레이어

from: 플레이어가 이동하기 전 위치

to: 플레이어가 이동한 위치 지옥 포탈이고 "allow-nether" 가 꺼져 있다면 null, 엔더 포탈이고 "allow-end" 가 꺼져 있는 경우에도 동일함.

type: 이동한 포탈의 종류

creationradius: 포탈을 만들 수 있는 최대 거리

searchradius: 포탈을 찾을 수 있는 최대 거리

to

creationradius

searchradius

player_prelogin 플레이어가 인증하려고 할 때 발생합니다. 이 이벤트는 서버가 온라인 모드일 때에만 발생할 수 있으며, 취소할 수 없습니다. 대신 'result' 를 KICK_BANNED, KICK_WHITELIST, KICK_OTHER, KICK_FULL 으로 설정하여 들어오지 못하게 할 수 있습니다. 기본 'result' 는 ALLOWED 이며, 'result' 를 설정할 때 'kickmsg' 를 설정함으로써 메시지를 보낼 수 있습니다.

player: <String Match>

player: 플레이어 이름

kickmsg: 기본 퇴장 메시지

ip: 플레이어의 IP 주소

result: 플레이어의 로그인에서의 기본 대응

kickmsg

result

player_quit 플레이어가 나갈 때 발생합니다.

player: <Macro>

message: 보낼 메시지

message

player_spawn 플레이어가 리스폰할 때 발생합니다. 기술적으로 이 기간엔 플레이어는 온라인으로 간주되지 않습니다. 이는 run() 과 같은 펑션을 사용할 때 문제가 될 수 있습니다. CommandHelper 에서는 계정의 오프라인 여부를 보기 때문에, 모든 CH 펑션은 정상적으로 작동하지만, 다른 플러그인이나 일반 텍스트 명령어는 그러지 않을 수 있습니다.

x: <Expression>

y: <Expression>

z: <Expression>

world: <String Match>

player: <Macro>

player: 리스폰 하는 플레이어

location: 리스폰 할 위치

bed_spawn: 리스폰 위치가 플레이어의 침대라면 참

location

player_teleport

player: <String Match> 텔레포트 한 플레이어, 월드를 바꾸었을 때도 발동하고 world_changed 보다 우선적으로 발동된다. 만약 이 이벤트를 취소하면 world_changed 는 발동하지 않음.

type: <String Match>

from: <Location Match> 플레이어가 이동하기 전의 위치.

to: <Location Match> 플레이어가 이동한 후의 위치

player

from: 플레이어가 이동하기 전 위치

to: 플레이어가 이동한 후 위치

type: 텔레포트의 이유:

to

player_toggle_flight 플레이어가 자신의 날기 상태를 바꾸면 발생합니다.

player: <Macro> 날기 상태를 변경한 플레이어

flying: <Boolean Match> 플레이어가 날고 있는지의 여부

world: <Macro>

player: 날기 상태를 변경한 플레이어

flying: 플레이어가 날고 있는지의 여부

location: 플레이어의 위치

player_toggle_sneak 플레이어가 자신의 숙이기 상태를 바꾸면 발생합니다.

player: <Macro> 숙이기 상태를 바꾼 플레이어

sneaking: <Boolean Match> 플레이어의 숙이기 여부

world: <Macro>

player: 숙이기 상태를 바꾼 플레이어

sneaking: 플레이어의 숙이기 여부

location: 플레이어의 위치

player_toggle_sprint 플레이어가 자신의 달리기 상태를 바꾸면 발생합니다.

player: <Macro> 달리기 상태를 바꾼 플레이어

sprinting: <Boolean Match> 플레이어의 달리기 여부

world: <Macro>

player: 달리기 상태를 바꾼 플레이어

sprinting: 플레이어의 달리기 여부

location: 플레이어의 위치

pressure_plate_activated 플레이어가 압력 발판을 밟으면 발생합니다.

location: <Location Match> 압력 발판의 위치

activated: <Boolean Match> 참이라면 발판이 눌러져 있음. 하지만 이 이벤트는 발판을 밟았을 때만 발동하기 때문에 항상 참임. 하지만 미래에 사용될 것에 대비해 남겨둠.

location: 압력 발판의 위치

activated: 참이라면 발판이 눌러져 있음. 하지만 이 이벤트는 발판을 밟았을 때만 발동하기 때문에 항상 참임. 하지만 미래에 사용될 것에 대비해 남겨둠.

player: 이 이벤트에 관여하는 플레이어

tab_complete_chat 플레이어가 채팅에서 자동완성을 사용하려 할 때 발생합니다. 자동완성 결과를 빈 배열로 하는 것은 이 이벤트를 취소하는 것과 같습니다.

player: <Macro>

player: 자동 완성을 사용하려 하는 플레이어

message: 입력한 전체 메시지

last: 자동완성을 사용하려 하는 단어

completions

completions: 보낼 자동 완성 목록, 기본적으로 마지막 단어가 포함되는 플레이어 이름임.

world_changed 플레이어가 월드를 변경하면 발생합니다. 이는 취소할 수 없습니다. 이를 막으려면, player_teleport 이벤트를 확인하여야 합니다.

player: <Macro> 월드를 바꾼 플레이어

from: <String Match> 플레이어가 이동하기 전 월드

to: <String Match> 플레이어가 이동한 후의 월드

player

from: 플레이어가 이동하기 전 월드

to: 플레이어가 이동한 후의 월드

위로 가기

플러그인 이벤트

플러그인 메시지와 관련된 이벤트를 포함합니다.

이벤트 이름설명사전 필터이벤트 데이터수정 가능한 필드
plugin_message_received 클라이언트가 플러그인 메시지를 보내면 발생합니다.

channel: <String Match>

player: 플레이어

channel: 사용된 채널

bytes: 보낸 바이트 배열

위로 가기

서버 이벤트

정해진 범주가 없는 서버 관련 이벤트를 포함합니다.

이벤트 이름설명사전 필터이벤트 데이터수정 가능한 필드
broadcast_message 메시지가 서버에 방송되면 발생합니다.

message: <String Match>

message: 방송될 메시지

player_recipients: 메시지를 들을 플레이어의 배열

message

redstone_changed 레드스톤으로 활성화 할 수 있는 블록의 상태가 변경되면 발생합니다. 해당 블록은 monitor_redstone 펑션에 등록을 하여야만 합니다.

location: <Location Match>

location: 블록의 위치

active: 블록이 활성화되었는지 여부

server_command 콘솔이나 명령 블록에서 명령어가 실행될 때 발생합니다. 이는 커맨드헬퍼 단축 명령어 전에 실행되기 때문에, 그 전에 먼저 조정할 수 있습니다. 이 이벤트는 모든 서버 명령어를 사용하지 못하게 할 수도 있기 때문에 조심해서 사용하여야 합니다.

prefix: <String Match> 명령어의 첫 부분(예. 'cmd asdf asdf' 에서의 'cmd')

command: 전체 명령어

prefix:명령어의 접두사

command

server_ping 플레이어가 저장된 서버 리스트에서 서버의 motd 를 받아올 때 발생합니다.

players: <Math Match>

maxplayers: <Math Match>

ip: 핑이 오는 IP 주소

players: 온라인인 플레이어의 수

maxplayers: 최대 플레이어의 수

motd: 서버 목록에 표시될 메시지

list: 연결된 플레이어의 목록

motd

maxplayers

list: 플레이어를 제거할 수만 있습니다. 추가된 플레이어는 무시됩니다. 플레이어 수에 영향을 줍니다.

tab_complete_command 이 이벤트는 register_command() 혹은 이미 서버에 등록된 명령어를 입력하고 자동완성을 하려고 할 때 발생합니다.

command: 등록된 명령어의 이름.

alias: 플레이어가 실행하려고 입력한 명령어의 이름.

args: 명령어 이후에 입력한 인수.

completions: 마지막 인수에 대한 사용 가능한 자동완성.

sender: 명령어를 실행한 플레이어.

completions

위로 가기

운송 수단 이벤트

운송 수단 엔디티 종류에 대한 이벤트를 포함합니다.

이벤트 이름설명사전 필터이벤트 데이터수정 가능한 필드
vehicle_collide 운송 수단이 어떤 것과 충돌하면 발생합니다. 블록과 충돌하면 이벤트 데이터는 블록의 정보를 포함하며, 엔디티와 충돌하면 이벤트 데이터는 부딪힌 엔디티의 정보와 관련된 옵션을 포함합니다.

type: <Macro> 운송 수단의 엔디티 종류

collisiontype: <String Match> BLOCK 혹은 ENTITY

hittype: <Macro> 엔디티와 부딪혔을 때 엔디티 종류

hittype: <Item Match> 블록과 부딪혔을 때 블록

type

id: 운송 수단의 엔디티 ID

entity: 부딪힌 엔디티의 ID

block: 부딪힌 블록의 위치

collisiontype

collide

pickup

collide: 블록이 엔디티에게 부딪혔는지 통과했는지 여부

pickup: 운송 수단이 엔디티를 태웠는지 여부

두 필드는 엔디티와 부딪혔을때만 수정 가능

vehicle_destroy 운송 수단이 부서졌을 때 발생합니다.

vehicletype: <Macro> 운송 수단의 엔디티 종류

vehicletype

vehicle: 엔디티 ID

damager:데미지를 준 것이 사람이면 플레이어 이름을, 엔디티면 엔디티 ID 를 반환 (엔디티가 데미지를 주었을 때에만)

shooter: 데미지를 준 발사체를 쏜 것이 사람이면 플레이어 이름을, 엔디티면 엔디티 ID 를 반환 (발사체가 데미지를 주었을 때에만)

vehicle_enter 엔디티가 운송 수단에 타면 발생합니다.

vehicletype: <Macro> 운송 수단의 엔디티 종류

passengertype: <Macro> 여행자의 엔디티 종류

vehicletype

passengertype

vehicle: 엔디티 ID

passenger: 엔디티 ID

player: 여행자가 플레이어라면 플레이어 이름, 아니라면 null.

vehicle_leave 엔디티가 운송 수단에서 나가면 발생합니다.

vehicletype: <Macro> 운송 수단의 엔디티 종류

passengertype: <Macro> 여행자의 엔디티 종류

vehicletype

passengertype

vehicle: 엔디티 ID

passenger: 엔디티 ID

player: 여행자가 플레이어라면 플레이어 이름, 아니라면 null.

vehicle_move 운송 수단이 움직이면 발생합니다. 이 이벤트는 짧은 거리만 움직여도 발생하기 때문에 사전 필터가 아주 중요합니다. -- 특히 threshold 는요.

vehicletype: <Macro> 운송 수단의 엔디티 종류

passengertype: <Macro> 여행자의 엔디티 종류

world: 운송 수단이 있는 월드

from: <Location Match> 플레이어가 이동하기 전의 위치.

to: <Location Match> 운송 수단이 이동한 위치

threshold: 이벤트가 발생하기 위해 운송 수단이 이동해야 할 최소 거리, 3D 거리를 기반으로 하고, 블록을 기준으로 측정됨.

world

from: 운송 수단이 이동하기 전 위치

to: 운송 수단이 이동한 위치

vehicletype

passengertype

id: 엔디티 ID

passenger: 엔디티 ID

player: 여행자가 플레이어라면 플레이어 이름, 아니라면 null.

위로 가기

날씨 이벤트

마인크래프트 월드의 날씨에 관련된 이벤트를 포함합니다.

이벤트 이름설명사전 필터이벤트 데이터수정 가능한 필드
lightning_strike 번개가 치거나 번개 이펙트가 생겨나면 발생합니다.

world: <Macro> 월드

location: <Location Match> 번개의 위치

is_effect: <Boolean Match> 번개가 진짜인지 혹은 그냥 효과인지 여부

world: 번개가 친 월드

id: 번개의 엔디티 ID

location: 이벤트가 일어난 위치

is_effect: 변경된 블록의 데이터

thunder_change 천둥이 시작하거나 끝날 때 발생합니다.

world: <Macro> 월드

has_thunder: <Boolean Match> 천둥이 칠 경우 참

world: 천둥의 상태가 바뀐 월드의 이름

has_thunder: 천둥이 칠 경우 참

weather_change 비가 오기 시작하거나 그치면 발생합니다.

world: <Macro> 월드

has_rain: <Boolean Match> 비가 오면 참

world: 날씨가 바뀐 월드의 이름

has_rain: 비가 오면 참

위로 가기

월드 이벤트

월드에 관련된 이벤트를 포함합니다.

이벤트 이름설명사전 필터이벤트 데이터수정 가능한 필드
tree_grow 나무가 자라면 발생합니다.

world: <Macro>

player: <Macro>

type: <Macro>

bonemeal: <Boolean Match>

world: 나무가 자란 월드.

type: 나무의 종류, TREE, BIG_TREE, REDWOOD, TALL_REDWOOD, BIRCH, JUNGLE, SMALL_JUNGLE, JUNGLE_BUSH, RED_MUSHROOM, BROWN_MUSHROOM, SWAMP, ACACIA, DARK_OAK, COCOA_TREE, MEGA_REDWOOD, TALL_BIRCH, CHORUS_PLANT 중 하나.

bonemeal: 뼛가루로 인해 나무가 자랐다면 참.

player: 뼛가루를 사용한 플레이어 혹은 null.

world_load 월드가 로드되면 발생합니다.

world: <Macro>

world: 로드된 월드.

world_save 월드가 저장되면 발생합니다.

world: <Macro>

world: 저장된 월드.

world_unload 월드가 언로드되면 발생합니다.

world: <Macro>

world: 언로드된 월드

위로 가기

페이지에서 문제를 발견하셨나요? Team Steak 디스코드의 #commandhelper-localize 채널로 문의하세요.