이벤트
- 인 게임에서 정해진 조건에 따라 이벤트가 발생할 때 그에 맞춰서 발동하는 함수
- 이벤트에 맞춰서 발생하므로 추가적인 부하 없이 기능을 작성 가능
이벤트 전체 목록 사이트(원문)
Listener
- 이벤트 클래스는 Listener 상속(implements Listener)이 필수
void Events(Event e)
- 이벤트시 호출되는 함수는 모두 위와 같은 형태를 취함
- 하나의 클래스 내에 여러 개의 이벤트가 존재하게 작성 가능
- 함수는 이노테이션으로
@EventHandler를 함수 위에 정의 해줘야함
- 일종의 주석과 비슷한 개념으로 코드에서 이 함수가 이벤트용으로 만들어진 함수라고 인식함
등록
- 인게임에서 기본 이벤트가 발생했을 때 추가한 이벤트가 발생하기위해선 등록이 필요
Bukkit.getPluginManager().registerEvents(Listener listener, Plugin plugin);
- Listener에는 작성한 이벤트 클래스를 기입
- Plugin은 메인 클래스가 들어가야함 (메인 클래스 호출은 메인 클래스 참조)
종류
블럭 이벤트
- BlockEvent : 블럭 관련 사건이 생기면 발생
- 디스펜서 관련
- 생성 및 파괴
- 공통 관련
- 상태 변환 관련
- BlockFromToEvent : 물, 용암, 드래곤 알 등이 원천 블럭과 대상 블럭이 있는 이벤트를 나타내는 경우 발생
- BlockPistonEvent : 블럭 피스톤이 작동할 때 발생
- BlockReceiveGameEvent : 스컬크 센서가 게임 이벤트를 수신하면 발생
- BlockRedstoneEvent : 레드스톤 상태 변경시 발생
- BlockShearEntityEvent : 디스펜서로 양털 깍을 때 발생
- BlockSpreadEvent : 버섯, 불, 균사체 등이 퍼질 때 발생
- EntityBlockFormEvent : 눈사람, 차가운 발걸음 인챈트에 의해 블럭 생성시 발생
- FluidLevelChangeEvent : 블럭의 액체 레벨이 변경시 발생
- BlockGrowEvent : 밀, 사탕수수, 선인장, 수박, 호박, 거북알 등이 성장하는 경우 발생
- BlockCookEvent : 블럭에서 음식이 구워지면 발생
- InventoryBlockStartEvent : 블럭이 인벤토리 사용시 발생
- MoistureChangeEvent : 고체 블럭의 수분 변경시 발생
- NotePlayEvent : 노트 블럭 작동시 발생
- SculkBloomEvent : 스컬크 촉매로 인해 새로운 스컬크 생성시 발생
- SignChangeEvent : 표지판 변경시 발생
- SpongeAbsorbEvent : 스폰지가 물을 빨아들인 경우 발생
엔티티 이벤트
- EntityEvent : 엔티티와 관련된 사건이 생기면 발생
- 엔티티 상호작용 관련
- 엔티티 공통 관련
- 비생물 엔티티 관련
- 생물 엔티티 관련
- 생성 관련
- 아이템 관련
- 행잉 엔티티 관련
- 탈것 이벤트
인벤토리 이벤트
- InventoryEvent : 인벤토리에 관련된 사건이 생기면 발생
- 인챈트 관련
- 공통 인벤토리 관련
- 아이템 관련
- 기능있는 인벤토리 관련
플레이어 이벤트
- PlayerEvent : 플레이어와 관련 사건이 생기면 발생
- 설정 관련
- 명령어 관련
- 채팅 관련
- 배고픔 관련
- 로그인 관련
- 업적 관련
- 사망 관련
- 이동 관련
- 경험치 관련
- 아이템 관련
- 블럭 관련
- 블럭 상호 작용 관련
- 엔티티 관련 상호작용
- 레시피 관련
월드 이벤트
- WorldEvent : 월드내 사건이 생기면 발생
- 저장 관련
- 구조물 관련
- 청크 관련
- 날씨 이벤트
- 기타
서버 이벤트