이벤트 API 문서
이벤트는 스크립트를 명령어를 치지 않아도 실행할 수 있게 해줍니다. 예를 들어 플레이어 로그인, 블록 부수기 등이 있습니다. 초보자 가이드의 이벤트 항목을 통해 더 많은 정보를 얻으세요.
블록 이벤트
이벤트 이름 | 설명 | 사전 필터 | 이벤트 데이터 | 수정 가능한 필드 |
---|---|---|---|---|
block_break | 블록이 부서졌을 때 발생합니다. 이벤트를 취소하면 블록을 부순 행동이 취소됩니다. | player: <String Match> block: <String Match> | player: 플레이어 이름 block: 부서진 블록 종류 location: 해당 블록의 위치 배열 drops xp | drops: 블록이 떨어트릴 아이템의 배열 xp: 블록이 드롭할 경험치의 양 |
block_burn | 블록이 불타면 발생합니다. 취소하면 불에 타지 않습니다. | block: <String Match> | block: 불탄 블록 종류 location: 해당 블록의 위치 배열 | block |
block_dispense | 디스펜서가 아이템을 내보내면 발생합니다. 취소하면 내보낸 것을 취소합니다. | type: <String Match> 디스펜서의 종류 itemname: <String Match> 발사된 아이템의 종류 | type: 디스펜서의 종류 item: 뿌려질 아이템 velocity: 아이템의 속도 정보가 포함되어 있는 키가 있는 배열(x/y/z) 을 반환합니다. location: 디스펜서의 위치 | item 속도 |
block_fade | 블록이 월드 상태에 따라 사라질 경우 발생합니다. | block: <String Match> 사라지는 블록 종류 world: <String Match> | block: 사라지는 블록 종류 newblock: 사라지고 나서 바뀐 블록의 종류 location: 사라질 블록의 위치 | |
block_from_to | 이 이벤트는 물이나 용암이 흐르거나 엔더 드래곤 알이 텔레포트 될 때 발생합니다. 이벤트를 취소하면 텔레포트나 흐름이 취소됩니다. | block: <String Match> world: <String Match> toblock: <String Match> toworld: <String Match> face: <String Match> | block: 원본 블록 종류 location: 원본 블록의 위치 toblock: 대상 블록 종류 tolocation: 대상 블록의 위치 | block toblock |
block_grow | 블록이 자연적으로 자라면 발생합니다. 취소하면 자라지 않습니다. | block: <String Match> 자라기 전의 블록 newblock: <String Match> 자라고 나서의 블록 world: <Macro> | block: 자라기 전의 블록 newblock: 자라고 나서의 블록 location: 자랄 블록의 위치 | |
block_ignite | 블록이나 엔디티가 어떤 블록에 불을 붙였을 때 발생합니다. | player: <Macro> cause: <Macro> world: <String Match> | player: 플레이어 이름 ignitingentity: 엔디티가 붙였을 때 엔디티 ID ignitingblock: 블록이 붙였을 때 블록 종류 ignitingblocklocation: 불이 붙은 블록의 위치 location: 불이 붙은 위치 cause: 점화의 이유입니다, LAVA, FLINT_AND_STEEL, SPREAD, LIGHTNING, FIREBALL, ENDER_CRYSTAL, EXPLOSION 중 하나입니다. | |
block_place | 플레이어가 블록을 놓으면 발생합니다. 취소하면 블록을 놓은 것을 취소합니다. | player: <String Match> block: <String Match> | player: 플레이어 이름 block: 놓은 블록의 종류 against: 블록이 놓아진 위치의 블록 배열 oldblock: 바뀌기 전의 원래 블록 종류 location: 블록의 위치 배열 | block |
note_play | 노트블록이 플레이어 상호작용이나 레드스톤에 의해 활성화 되었을 때 호출됩니다. 악기는 PIANO, BASS_DRUM, SNARE_DRUM, STICKS, BASS_GUITAR, FLUTE, BELL, GUITAR, CHIME, XYLOPHONE 중 하나입니다. | location: 노트블록의 위치 instrument: 소리의 이름 tone: 소리의 음계 (예. F#) octave: 소리의 높낮이 (0 - 2) | ||
piston_extend | 피스톤이 늘어나면 발생합니다. 취소하면 피스톤이 늘어나지 않습니다. | location: 이 피스톤의 위치 direction: 움직인 방향 sticky: 끈적한 피스톤일 경우 참 affectedBlocks: 밀어낸 블록 | ||
piston_retract | 피스톤이 다시 줄어들면 발생합니다. 취소하면 피스톤이 다시 줄어들지 않습니다. | 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, DROWNED 중 하나 | type: 스폰된 생명체의 종류 id: 스폰된 생명체의 엔디티 ID reason: 생명체가 스폰된 이유 location: 이벤트가 일어난 위치 | type: 다른 이벤트를 스폰합니다. 새 이벤트를 발생시키고, 만약 살아있는 엔디티 종류라면 creature_spawn 이벤트를 'CUSTOM' 이유로 발생시킵니다. |
entity_change_block | 엔디티가 어떻게든 블록을 변경하면 발생합니다. | from: <String Match> 바뀌기 전의 블록 이름 to: <String Match> 바뀌고 나서의 블록 이름 location: <Location Match> 바뀐 블록의 위치 | entity: 블록을 바꾼 엔디티의 ID from to 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, DRYOUT, 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> 엔디티의 종류 portaltype: <String Match> 포탈의 종류 (PORTAL 혹은 END_PORTAL) | id: 엔디티의 ID location: 만진 블록의 위치 type 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> 엔디티 종류 block: <String Match> 엔디티가 상호작용하는 블록 이름 | entity: 블록과 상호작용하는 엔디티의 ID block 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: 회복한 이유입니다, REGEN, SATIATED, EATING, ENDER_CRYSTAL, MAGIC, MAGIC_REGEN, WITHER_SPAWN, WITHER, CUSTOM 중 하나입니다. | 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분 이상 존재하게 할 수 있습니다. | itemname: <String Match> 디스폰된 아이템 종류 | location: 아이템이 있는 위치 id: 아이템의 엔디티 ID item: 엔디티의 아이템 내용 | |
item_drop | 플레이어가 아이템을 버리면 발생합니다. | player: <Macro> itemname: <String Match> | player: 플레이어 item: 떨어트린 아이템의 배열 | item: null 로 설정하여 아이템을 없앨 수 있음 |
item_pickup | 플레이어가 아이템을 주으면 발생합니다. | player: <Macro> itemname: <String Match> | player: 플레이어 item: 주운 아이템의 배열 remaining: 땅에 남은 아이템 | item: null 로 만들어 아이템을 월드에서 없앨 수 있음 |
item_spawn | 아이템 엔디티가 생겨나면 발생합니다. | itemname: <String Match> 스폰된 아이템 종류 | 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: | type id: 발사체의 엔디티 ID location: 부딪힌 위치 shooter hittype hit: 때린 대상의 엔디티 ID 나 블록 위치 배열 | 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: <String 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: <String 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: <String Match> 주 손에서 바뀐 아이템의 종류 off_hand: <String 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 | 플레이어가 아이템을 먹거나 마시면 발생합니다. 취소하면 그 아이템으로 얻은 모든 효과를 취소합니다. | itemname: <String 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: <String Match> 플레이어가 상호작용한 블록의 종류, 없다면 null. button: <String Match> 왼쪽 클릭이냐 오른쪽 클릭이냐에 따라 left 혹은 right itemname: <String Match> 상호작용 할 때 들고 있던 아이템 종류, 없다면 null. hand: <String Match> 클릭할 때의 플레이어의 손 player: <Macro> 이벤트를 발생시킨 플레이어 | action: 플레이어의 행동: block: 클릭한 블록의 종류, 공기를 클릭했을 경우 null 이며, 또한 facing 이나 location 이 제공되지 않음. item: 플레이어가 클릭했을 때 아이템의 배열, 그 손에 아무것도 들지 않았을 경우 null. 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: | player world from: 플레이어가 이동하기 전 위치 to: 플레이어가 이동한 후 위치 | |
player_portal_travel | 플레이어가 포탈에 들어가면 발생합니다. | player: <Macro> from: <Location Match> 플레이어가 이동하기 전의 위치. to: <Location Match> 플레이어가 포탈에 들어가기 전 위치 type: <Macro> 이용한 포탈의 종류입니다, COMMAND, END_PORTAL, ENDER_PEARL, NETHER_PORTAL, PLUGIN, SPECTATE, END_GATEWAY, CHORUS_FRUIT, UNKNOWN 중 하나입니다. | player: 텔레포트 한 플레이어 from: 플레이어가 이동하기 전 위치 to: 플레이어가 이동한 위치 지옥 포탈이고 "allow-nether" 가 꺼져 있다면 null, 엔더 포탈이고 "allow-end" 가 꺼져 있는 경우에도 동일함. type: 이동한 포탈의 종류 creationradius: 포탈을 만들 수 있는 최대 거리 searchradius: 포탈을 찾을 수 있는 최대 거리 | to creationradius searchradius |
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: 텔레포트 되는 이유입니다, COMMAND, END_PORTAL, ENDER_PEARL, NETHER_PORTAL, PLUGIN, SPECTATE, END_GATEWAY, CHORUS_FRUIT, UNKNOWN 중 하나입니다. | 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: 이 이벤트에 관여하는 플레이어 | |
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') type: <String Match> 명령어 전송자 종류 | command: 전체 명령어 prefix: 명령어의 접두사 sendertype: 명령어 전송자 종류, 전송자 목록: | 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: | 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 채널로 문의하세요.