QuestEngine icon

QuestEngine -----

A simple yet optimized quest plugin



messages.yml
Code (Text):

prefix: "&7[&aQuestEngine&7] "

vault_missing: "&cVault plugin not found. Some features are disabled."
quest_already_active: "&cYou are already on this quest."
quest_started: "&aYou have started the quest '%quest_name%'!"
quest_not_active: "&cYou are not currently on this quest."
quest_canceled: "&eYou have canceled the quest '%quest_name%'."
quest_stopped: "&7The quest '%quest_name%' has been forcibly stopped."
abandon_all_done: "&7All active quests have been abandoned."
list_empty: "&7You have no active quests."
list_header: "&a===== &fActive Quest List &a====="
list_line: "&f- &a%quest_name% &7(&e%value% / %target%&7)"
quest_completed: "&6Quest '%quest_name%' completed! Reward received!"
reload_done: "&aQuest configuration reloaded successfully."
invalid_args: "&cInvalid command arguments."
player_only: "&cThis command can only be used by players."
quest_repeat_ready: "&6Quest '%quest_name%' is available again. Retry with /quest start %quest_id%!"

admin:
  usage: "&7/questadmin <reload|give|complete|stop|reset|list>"
  reloaded: "&aAll quests reloaded successfully!"
  invalid_args: "&cInvalid arguments!"
  offline: "&cThe player is offline!"
  started: "&aStarted the quest: %quest_name%"
  stopped: "&cStopped the quest: %quest_name%"
  completed: "&bManually completed the quest: %quest_name%"
  reset_done: "&eQuest progress reset for: %quest_name%"
  list_header: "&6==== Quests of %player% ===="
  no_active: "&7No active quests."

list:
  empty: "&7You have no active quests."
  header: "&e[Active Quest List]"
  title: "&e%title% &7(%value%/%target%)"
  desc: " &7- %desc%"
  progress: "&fProgress %bar% &7(%percent%%)"
  reward: "&6Reward %reward%"
  points: "&fYour Quest Points: &a%points%"

# ==========================================================
# GUI
# ==========================================================
gui:
  title:
    list: "&aActive Quests"
    public: "&bPublic Quests"
    leaderboard: "&6Leaderboard"
  lore:
    list:
      - ""
      - "&aProgress: &f%value%/%target%"
      - "&eReward: &f%reward%"

  # ------------------------------
  # Personal Quest List (QuestListMenu)
  # ------------------------------
  list:
    title: "&bQuest List &7| &fPage %page%"
    search: "&f Search"
    search_lore: "&7Click to enter a search keyword"
    search_prompt: "Enter a keyword (leave blank for all)"
    leaderboard: "&6 Leaderboard"
    leaderboard_lore: "&7Click to view quest rankings"
    public: "&b Public Quests"
    public_lore: "&7Click to open the public quest list"
    sort: "&fSort: &e%order%"
    sort_lore: "&7Click to change the sorting order"
    order_asc: "Ascending"
    order_desc: "Descending"
    prev: "&fPrevious Page"
    next: "&fNext Page"
    page_input: "&fGo to Page"
    page_input_lore: "&7Click and enter a page number"
    page_input_prompt: "Enter the page number to go to"
    left_click_complete: "&aLeft-click: Try to complete quest"
    right_click_cancel: "&cRight-click: Cancel quest"
    quest_completed: "&aQuest completed: &f%quest%"
    quest_cancelled: "&7Quest cancelled: &f%quest%"
    quest_cannot_complete: "&cYou don’t meet the completion conditions."
    quest_complete_error: "&cAn error occurred while completing the quest."
    method_missing: "&cCould not find completion method."

  # ------------------------------
  # Public Quest List (PublicQuestMenu)
  # ------------------------------
  public:
    title: "&bPublic Quests | &fPage %page%"
    back: "&f← Back to My Quests"
    back_lore: "&7Click to return to your quest list"
    search: "&f Search"
    search_lore: "&7Click to enter a keyword for public quests"
    search_prompt: "Enter a keyword (leave blank for all)"
    prev: "&fPrevious Page"
    prev_lore: "&7Click to go to the previous page"
    next: "&fNext Page"
    next_lore: "&7Click to go to the next page"
    accept_lore: "&aLeft-click: Accept quest"
    cancel_lore: "&cRight-click: Cancel quest"
    accepted: "&aAccepted quest '%quest%'!"
    cancelled: "&eCancelled quest '%quest%'."
    error_accept: "&cAn error occurred while accepting the quest."

  # ------------------------------
  # Leaderboard (LeaderboardMenu)
  # ------------------------------
  leaderboard:
    title: "&6Quest Leaderboard"
    back: "&f← Back to My Quests"
    back_lore: "&7Click to return to your personal quest list"
    rank_format: "&e#%rank% &f%player% &7- &a%points% pts"
    rank_points: "&7Points: &f%points%"
    no_data: "&7No data to display."
 
Code (Text):

prefix: "&7[&aQuestEngine&7] "

vault_missing: "&cVault 플러그인을 찾을 수 없습니다. 일부 기능이 비활성화됩니다."
quest_already_active: "&c이미 진행 중인 퀘스트입니다."
quest_started: "&a'%quest_name%' 퀘스트를 시작했습니다!"
quest_not_active: "&c해당 퀘스트는 진행 중이 아닙니다."
quest_canceled: "&e'%quest_name%' 퀘스트를 취소했습니다."
quest_stopped: "&7'%quest_name%' 퀘스트를 강제로 중단했습니다."
abandon_all_done: "&7모든 퀘스트를 포기했습니다."
list_empty: "&7진행 중인 퀘스트가 없습니다."
list_header: "&a===== &f진행 중인 퀘스트 목록 &a====="
list_line: "&f- &a%quest_name% &7(&e%value% / %target%&7)"
quest_completed: "&6%quest_name% 퀘스트 완료! 보상 획득!"
reload_done: "&a퀘스트 설정을 다시 불러왔습니다."
invalid_args: "&c잘못된 명령어 인자입니다."
player_only: "&c플레이어만 사용할 수 있습니다."
quest_repeat_ready: "&6%quest_name% 퀘스트를 다시 시작할 수 있습니다. /quest start %quest_id% 로 재도전!"

admin:
  usage: "&7/questadmin <reload|give|complete|stop|reset|list>"
  reloaded: "&a모든 퀘스트를 새로고침했습니다!"
  invalid_args: "&c잘못된 인자입니다!"
  offline: "&c플레이어가 오프라인입니다!"
  started: "&a%quest_name% 퀘스트를 시작했습니다!"
  stopped: "&c%quest_name% 퀘스트를 중단했습니다!"
  completed: "&b%quest_name% 퀘스트를 완료 처리했습니다!"
  reset_done: "&e%quest_name% 퀘스트 진행도가 초기화되었습니다!"
  list_header: "&6==== %player%님의 퀘스트 목록 ===="
  no_active: "&7진행 중인 퀘스트가 없습니다."

list:
  empty: "&7진행 중인 퀘스트가 없습니다."
  header: "&e[진행 중인 퀘스트 목록]"
  title: "&e%title% &7(%value%/%target%)"
  desc: " &7- %desc%"
  progress: "&f진행도 %bar% &7(%percent%%)"
  reward: "&6보상 %reward%"
  points: "&f당신의 퀘스트 포인트: &a%points%"

# ==========================================================
# GUI
# ==========================================================
gui:
  title:
    list: "&a진행 중인 퀘스트"
    public: "&b공개 퀘스트"
    leaderboard: "&6리더보드"
  lore:
    list:
      - ""
      - "&a진행도: &f%value%/%target%"
      - "&e보상: &f%reward%"

  # ------------------------------
  # 개인 퀘스트 목록 (QuestListMenu)
  # ------------------------------
  list:
    title: "&b퀘스트 목록 &7| &f페이지 %page%"
    search: "&f 검색"
    search_lore: "&7클릭하여 검색어를 입력하세요"
    search_prompt: "검색어를 입력하세요 (빈칸=전체보기)"
    leaderboard: "&6 리더보드"
    leaderboard_lore: "&7클릭하여 퀘스트 순위를 확인합니다"
    public: "&b 공개 퀘스트"
    public_lore: "&7클릭하여 공개 퀘스트 목록을 엽니다"
    sort: "&f정렬: &e%order%"
    sort_lore: "&7클릭하여 정렬 순서를 바꿉니다"
    order_asc: "오름차순"
    order_desc: "내림차순"
    prev: "&f이전 페이지"
    next: "&f다음 페이지"
    page_input: "&f페이지 이동"
    page_input_lore: "&7클릭 후 페이지 번호를 입력"
    page_input_prompt: "이동할 페이지 번호를 입력하세요"
    left_click_complete: "&a좌클릭: 퀘스트 완료 시도"
    right_click_cancel: "&c우클릭: 퀘스트 취소"
    quest_completed: "&a퀘스트 완료: &f%quest%"
    quest_cancelled: "&7퀘스트 취소: &f%quest%"
    quest_cannot_complete: "&c조건이 충족되지 않아 완료할 수 없습니다."
    quest_complete_error: "&c퀘스트 완료 처리 중 오류가 발생했습니다."
    method_missing: "&c완료 메서드를 찾지 못했습니다."

  # ------------------------------
  # 공개 퀘스트 목록 (PublicQuestMenu)
  # ------------------------------
  public:
    title: "&b공개 퀘스트 목록 | &f페이지 %page%"
    back: "&f← 내 퀘스트로 돌아가기"
    back_lore: "&7클릭: 개인 퀘스트 목록으로 이동"
    search: "&f 검색"
    search_lore: "&7클릭하여 공개 퀘스트 검색어 입력"
    search_prompt: "검색어를 입력하세요 (빈칸=전체보기)"
    prev: "&f이전 페이지"
    prev_lore: "&7클릭하여 이전 페이지로 이동"
    next: "&f다음 페이지"
    next_lore: "&7클릭하여 다음 페이지로 이동"
    accept_lore: "&a좌클릭: 퀘스트 수락"
    cancel_lore: "&c우클릭: 퀘스트 취소"
    accepted: "&a'%quest%' 퀘스트를 수락했습니다!"
    cancelled: "&e'%quest%' 퀘스트를 취소했습니다."
    error_accept: "&c퀘스트 수락 중 오류가 발생했습니다."

  # ------------------------------
  # 리더보드 (LeaderboardMenu)
  # ------------------------------
  leaderboard:
    title: "&6퀘스트 리더보드"
    back: "&f← 내 퀘스트로 돌아가기"
    back_lore: "&7클릭 시 개인 퀘스트 목록으로 이동"
    rank_format: "&e#%rank% &f%player% &7- &a%points%점"
    rank_points: "&7포인트: &f%points%"
    no_data: "&7표시할 데이터가 없습니다."
 
quests/quest.yml
Code (Text):
name: "Stone Mining"
id: stone_break
event: BLOCK_BREAK
target: STONE
amount: 10
repeat: -1
points: 1
public: true
party: false

reset:
  policy: DAILY
  time: "04:00"

display:
  title: "&aStone Mining"
  description:
    - "&7Mine 10 stones to polish your skills."
    - "&fResets every morning at 4 AM."
  progress: "&a%value%&7/&f%target%"
  reward: "&e100 Coins"

conditions:
  success:
    - "%block_type% == STONE"
  fail:
    - "%block_type% == DIRT"

actions:
  accept:
    - msg{t=&e%player% has accepted '%quest_name%'} @self
  start:
    - msg{t=&7Mine 10 stones} @self
  success:
    - msg{t=&aReward granted for success} @self
  fail:
    - msg{t=&cFailed to meet the conditions} @self
  cancel:
    - msg{t=&eQuest cancelled} @self
  stop:
    - msg{t=&eQuest stopped by admin} @self
  restart:
    - msg{t=&6Repeat quest restarted} @self
  repeat:
    - msg{t=&bRepeat progress started} @self
 
Code (Text):
name: "돌 캐기"
id: stone_break
event: BLOCK_BREAK
target: STONE
amount: 10
repeat: -1
points: 1
public: true
party: false

reset:
  policy: DAILY
  time: "04:00"

display:
  title: "&a돌 캐기"
  description:
    - "&7돌 10개를 캐서 연마하세요."
    - "&f매일 아침 4시에 초기화됩니다."
  progress: "&a%value%&7/&f%target%"
  reward: "&e100 코인"

conditions:
  success:
    - "%block_type% == STONE"
  fail:
    - "%block_type% == DIRT"

actions:
  accept:
    - msg{t=&e%player%님이 '%quest_name%'을 수락했습니다} @self
  start:
    - msg{t=&7돌 10개를 캐세요} @self
  success:
    - msg{t=&a성공 보상 지급} @self
  fail:
    - msg{t=&c조건을 만족하지 못해 실패했습니다} @self
  cancel:
    - msg{t=&e퀘스트를 취소했습니다} @self
  stop:
    - msg{t=&e관리자에 의해 중단되었습니다} @self
  restart:
    - msg{t=&6반복 퀘스트 다시 시작} @self
  repeat:
    - msg{t=&b반복 수행 시작} @self
 
Code (Text):


1. 전체 통계 관련 (Global Statistics)

%questengine_active_count%

[*]EN: Shows the number of quests the player is currently working on.
[*]KR: 플레이어가 현재 진행 중인 퀘스트의 총 개수를 보여줍니다.

%questengine_completed_count%

[*]EN: Shows the total number of quests the player has successfully finished.
[*]KR: 플레이어가 지금까지 완료한 퀘스트의 총 개수를 보여줍니다.

%questengine_total_points%

[*]EN: Shows the sum of all quest points the player has earned so far.
[*]KR: 플레이어가 퀘스트를 통해 획득한 모든 포인트의 합계를 보여줍니다.

%questengine_active_list_ids%

[*]EN: Lists the IDs of all currently active quests, separated by commas.
[*]KR: 현재 진행 중인 퀘스트들의 ID 목록을 쉼표로 구분하여 나열합니다.

%questengine_completed_list_ids%

[*]EN: Lists the IDs of all completed quests, separated by commas.
[*]KR: 완료된 퀘스트들의 ID 목록을 쉼표로 구분하여 나열합니다.

%questengine_active_list_names%

[*]EN: Lists the display names of all currently active quests, separated by commas.
[*]KR: 현재 진행 중인 퀘스트들의 이름(DisplayName) 목록을 쉼표로 구분하여 나열합니다.

2. 진행 중 퀘스트 정보 (Active Quest by Index)
인덱스(번호)는 1번부터 시작하며, 해당 번호에 퀘스트가 없으면 빈 칸으로 출력됩니다.

%questengine_active_{index}_id%

[*]EN: Shows the unique ID of the quest at the specified position in the active list.
[*]KR: 진행 중인 목록에서 해당 번호에 위치한 퀘스트의 고유 ID를 출력합니다.

%questengine_active_{index}_name%

[*]EN: Shows the internal name of the quest at the specified position.
[*]KR: 해당 번호에 위치한 퀘스트의 내부 시스템 이름을 출력합니다.

%questengine_active_{index}_title%

[*]EN: Shows the colored display title of the quest at the specified position.
[*]KR: 해당 번호 퀘스트의 제목을 출력하며, 설정된 색상 코드가 적용됩니다.

%questengine_active_{index}_reward%

[*]EN: Shows the reward description text for the quest at the specified position.
[*]KR: 해당 번호 퀘스트의 보상 설명 텍스트를 출력합니다.

%questengine_active_{index}_points%

[*]EN: Shows how many points will be rewarded upon completing this quest.
[*]KR: 해당 번호 퀘스트 완료 시 지급될 포인트 수치를 보여줍니다.

%questengine_active_{index}_target%

[*]EN: Shows the total target amount required to complete the quest.
[*]KR: 해당 번호 퀘스트를 완료하기 위해 필요한 목표 총량을 보여줍니다.

%questengine_active_{index}_progress%

[*]EN: Shows the current progress amount of the quest at the specified position.
[*]KR: 해당 번호 퀘스트의 현재 진행 수치를 보여줍니다.

%questengine_active_{index}_percent%

[*]EN: Shows the progress of the quest as a percentage (e.g., 50%).
[*]KR: 해당 번호 퀘스트의 진행도를 백분율(예: 50%)로 보여줍니다.

%questengine_active_{index}_bar%

[*]EN: Shows a visual progress bar using colored square symbols.
[*]KR: 초록색과 회색 사각형 기호를 사용해 진행 상태를 막대 그래프로 보여줍니다.

%questengine_active_{index}_state%

[*]EN: Shows the current status of the quest (active, completed, or blank).
[*]KR: 해당 퀘스트의 현재 상태를 표시합니다. (진행중은 active, 완료는 completed, 그 외엔 빈칸)
3. 특정 퀘스트 정보 (Specific Quest by ID)
퀘스트 ID를 직접 입력하며, 존재하지 않는 ID일 경우 빈 칸으로 출력됩니다.

%questengine_qid_{quest_id}_id%

[*]EN: Returns the ID of the specified quest if it exists.
[*]KR: 지정한 ID의 퀘스트가 존재하면 해당 ID를 다시 반환합니다.

%questengine_qid_{quest_id}_title%

[*]EN: Shows the colored display title of the specific quest ID.
[*]KR: 지정한 ID를 가진 퀘스트의 제목을 색상 코드를 포함하여 출력합니다.

%questengine_qid_{quest_id}_progress%

[*]EN: Shows the player's current progress for the specific quest ID.
[*]KR: 지정한 ID의 퀘스트에 대해 플레이어가 현재 얼마나 진행했는지 수치를 보여줍니다.

%questengine_qid_{quest_id}_percent%

[*]EN: Shows the progress percentage for the specific quest ID.
[*]KR: 지정한 ID 퀘스트의 진행도를 퍼센트로 보여줍니다.

%questengine_qid_{quest_id}_bar%

[*]EN: Shows the visual progress bar for the specific quest ID.
[*]KR: 지정한 ID 퀘스트의 진행 상태를 막대 그래프로 보여줍니다.

%questengine_qid_{quest_id}_state%

[*]EN: Shows if the specific quest is currently active or completed.
[*]KR: 지정한 ID의 퀘스트가 현재 진행 중인지 완료되었는지를 상태값으로 보여줍니다.

%questengine_active_{index}_description%

[]EN: Shows the first line of the description for the quest at the specified position.
[]KR: 해당 번호 퀘스트의 설명 중 첫 번째 줄을 출력합니다.

%questengine_active_{index}_description_full%

[]EN: Shows the full description for the quest at the specified position, including line breaks.
[]KR: 해당 번호 퀘스트의 전체 설명을 줄바꿈을 포함하여 출력합니다.

%questengine_active_{index}_icon%

[]EN: Shows the material name of the icon for the quest at the specified position.
[]KR: 해당 번호 퀘스트 아이콘의 재질(Material) 이름을 출력합니다.

%questengine_active_{index}_cmd%

[]EN: Shows the CustomModelData value of the icon for the quest at the specified position.
[]KR: 해당 번호 퀘스트 아이콘의 CustomModelData(커스텀 모델 데이터) 값을 출력합니다.

%questengine_active_{index}_party%

[]EN: Shows whether the quest at the specified position can be shared with a party (true/false).
[]KR: 해당 번호 퀘스트가 파티와 공유 가능한지 여부(true/false)를 출력합니다.

%questengine_qid_{quest_id}_name%

[]EN: Shows the internal name of the specific quest ID.
[]KR: 지정한 ID 퀘스트의 내부 시스템 이름을 출력합니다.

%questengine_qid_{quest_id}_reward%

[]EN: Shows the reward description text for the specific quest ID.
[]KR: 지정한 ID 퀘스트의 보상 설명 텍스트를 출력합니다.

%questengine_qid_{quest_id}_points%

[]EN: Shows how many points will be rewarded upon completing the specific quest ID.
[]KR: 지정한 ID 퀘스트 완료 시 지급될 포인트 수치를 보여줍니다.

%questengine_qid_{quest_id}_target%

[]EN: Shows the total target amount required to complete the specific quest ID.
[]KR: 지정한 ID 퀘스트를 완료하기 위해 필요한 목표 총량을 보여줍니다.

%questengine_qid_{quest_id}_description%

[]EN: Shows the first line of the description for the specific quest ID.
[]KR: 지정한 ID 퀘스트의 설명 중 첫 번째 줄을 출력합니다.

%questengine_qid_{quest_id}_description_full%

[]EN: Shows the full description for the specific quest ID, including line breaks.
[]KR: 지정한 ID 퀘스트의 전체 설명을 줄바꿈을 포함하여 출력합니다.

%questengine_qid_{quest_id}_icon%

[]EN: Shows the material name of the icon for the specific quest ID.
[]KR: 지정한 ID 퀘스트 아이콘의 재질(Material) 이름을 출력합니다.

%questengine_qid_{quest_id}_cmd%

[]EN: Shows the CustomModelData value of the icon for the specific quest ID.
[]KR: 지정한 ID 퀘스트 아이콘의 CustomModelData 값을 출력합니다.

%questengine_qid_{quest_id}_party%

[]EN: Shows whether the specific quest ID can be shared with a party (true/false).
[]KR: 지정한 ID 퀘스트가 파티와 공유 가능한지 여부(true/false)를 출력합니다.

 
Code (Text):


블록 관련 이벤트
Bukkit 이벤트    QuestEngine 이벤트 이름    설명
BlockBreakEvent    "BLOCK_BREAK"    플레이어가 블록을 부숨
BlockPlaceEvent    "BLOCK_PLACE"    블록을 설치함
BlockFertilizeEvent    "BLOCK_FERTILIZING", "FARMING"    비료(뼛가루 등) 사용 시
CompostItemEvent (Paper 전용)    "COMPOSTING"    퇴비통에 아이템을 넣을 때 (선택적 등록)
엔티티(생물) 관련 이벤트
Bukkit 이벤트    QuestEngine 이벤트    설명
EntityDeathEvent    "ENTITY_KILL", "PLAYER_KILL"    플레이어가 몬스터 또는 다른 플레이어를 처치
EntityBreedEvent    "BREEDING", "BREEDNG"    동물 교배 시 (오타 유지된 중복 상수 있음)
PlayerShearEntityEvent    "SHEARING"    양 등 엔티티를 깎을 때
EntityTameEvent    "TAMING"    늑대, 고양이 등 길들임
PlayerInteractEntityEvent    "ENTITY_INTERACT"    엔티티와 상호작용
EntityDamageByEntityEvent    "DEAL_DAMAGE", "PLAYER_ATTACK"    플레이어가 엔티티에게 피해를 입힐 때
⚒ 아이템 / 제작 / 채집 관련 이벤트
Bukkit 이벤트    QuestEngine 이벤트    설명
PlayerFishEvent    "FISHING"    낚시
CraftItemEvent    "ITEM_CRAFT"    아이템 제작
FurnaceSmeltEvent    "SMELTING"    근처 화로에서 아이템 제련
PrepareSmithingEvent    "SMITHING"    스미스 테이블 사용
EnchantItemEvent    "ENCHANTING", "ITEM_ENCHANT"    아이템 마법 부여
PlayerBucketFillEvent    "BUCKET_FILL"    양동이에 액체 채움
PlayerBucketEmptyEvent    "BUCKET_EMPTY"    액체 비우기
PlayerBucketEntityEvent    "BUCKET_ENTITY"    엔티티 대상 양동이 상호작용 (예: 우유, 물고기)
PlayerDropItemEvent    "ITEM_DROP", "BLOCK_ITEM_DROPPING"    아이템을 버림
EntityPickupItemEvent    "ITEM_PICKUP"    아이템을 줍기
PlayerItemConsumeEvent    "ITEM_CONSUME"    음식/포션 섭취
PlayerItemHeldEvent    "ITEM_SELECT"    손에 든 아이템 변경
PlayerInteractEvent    "ITEM_INTERACT"    클릭 등 아이템 상호작용
PlayerSwapHandItemsEvent    "PLAYER_SWAP_HAND"    양손 교체
PrepareAnvilEvent    "ITEM_REPAIR"    모루 사용 (수리/합성)
InventoryClickEvent    "ITEM_MOVE", "TRADING"    인벤토리 이동 / 거래창 클릭

Paper 전용

이벤트    QuestEngine 이벤트
PlayerItemDamageEvent    "ITEM_DAMAGE"
‍♂️ MythicMobs 연동 (선택적)
MythicMobs 이벤트    QuestEngine 이벤트    설명
MythicMobSpawnEvent    "MYTHICMOBS_ENTITY_SPAWN"    MythicMob이 근처에서 소환됨
MythicMobDeathEvent    "MYTHICMOBS_KILL"    MythicMob이 플레이어 또는 근처에서 사망

MythicMobs가 서버에 설치되어 있지 않아도 리플렉션을 통해 안전하게 무시됨.

플레이어 관련 이벤트
Bukkit 이벤트    QuestEngine 이벤트    설명
PlayerJoinEvent    "PLAYER_PRE_JOIN"    플레이어 접속
PlayerQuitEvent    "PLAYER_LEAVE"    플레이어 퇴장
PlayerRespawnEvent    "PLAYER_RESPAWN"    리스폰
PlayerDeathEvent    "PLAYER_DEATH"    사망
PlayerChangedWorldEvent    "PLAYER_WORLD_CHANGE"    다른 월드로 이동
PlayerTeleportEvent    "PLAYER_TELEPORT"    텔레포트
PlayerBedEnterEvent    "PLAYER_BED_ENTER"    침대에 들어감
PlayerExpChangeEvent    "PLAYER_EXP_GAIN"    경험치 획득
PlayerLevelChangeEvent    "PLAYER_LEVELUP"    레벨 상승
PlayerCommandPreprocessEvent    "PLAYER_COMMAND"    명령어 입력
AsyncPlayerChatEvent    "PLAYER_CHAT"    채팅 입력
PlayerMoveEvent    "PLAYER_WALK", "DISTANCE_FROM"    일정 거리 이상 이동 (기본 0.8블록 이상)
월드 / 청크 관련 이벤트
Bukkit 이벤트    QuestEngine 이벤트    설명
CreatureSpawnEvent    "ENTITY_SPAWN"    생물이 근처에 소환됨
ChunkLoadEvent    "CHUNK_LOAD"    청크 로드
Code (Text):
 Block-Related Events
Bukkit Event    QuestEngine Event Name    Description
BlockBreakEvent    "BLOCK_BREAK"    Fired when a player breaks a block.
BlockPlaceEvent    "BLOCK_PLACE"    Fired when a block is placed.
BlockFertilizeEvent    "BLOCK_FERTILIZING", "FARMING"    When using bone meal or similar fertilizer.
CompostItemEvent (Paper only)    "COMPOSTING"    When composting items. Registered dynamically.
Entity-Related Events
Bukkit Event    QuestEngine Event    Description
EntityDeathEvent    "ENTITY_KILL", "PLAYER_KILL"    When a player kills an entity or another player.
EntityBreedEvent    "BREEDING", "BREEDNG"    When animals are bred by a player.
PlayerShearEntityEvent    "SHEARING"    When a player shears an entity (like a sheep).
EntityTameEvent    "TAMING"    When a player tames an animal (like a wolf or cat).
EntityInteractEvent    "ENTITY_INTERACT"    When a player interacts with an entity (right-click, etc.).
EntityDamageByEntityEvent    "DEAL_DAMAGE", "PLAYER_ATTACK"    When the player damages an entity.
Crafting, Gathering, and Item Handling
Bukkit Event    QuestEngine Event    Description
PlayerFishEvent    "FISHING"    When fishing.
CraftItemEvent    "ITEM_CRAFT"    Crafting an item.
FurnaceSmeltEvent    "SMELTING"    Smelting items in a furnace nearby.
PrepareSmithingEvent    "SMITHING"    Using a smithing table.
EnchantItemEvent    "ENCHANTING", "ITEM_ENCHANT"    When enchanting an item.
PlayerBucketFillEvent    "BUCKET_FILL"    When filling a bucket.
PlayerBucketEmptyEvent    "BUCKET_EMPTY"    When emptying a bucket.
PlayerBucketEntityEvent    "BUCKET_ENTITY"    When interacting with an entity using a bucket (like milking or capturing).
PlayerDropItemEvent    "ITEM_DROP", "BLOCK_ITEM_DROPPING"    Dropping an item.
EntityPickupItemEvent    "ITEM_PICKUP"    Picking up an item.
PlayerItemConsumeEvent    "ITEM_CONSUME"    Eating or drinking an item.
PlayerItemHeldEvent    "ITEM_SELECT"    Switching held item slot.
PlayerInteractEvent    "ITEM_INTERACT"    Interacting (e.g., right-clicking).
PlayerSwapHandItemsEvent    "PLAYER_SWAP_HAND"    Swapping main/off-hand items.
PrepareAnvilEvent    "ITEM_REPAIR"    Repairing or combining items in an anvil.
InventoryClickEvent    "ITEM_MOVE", "TRADING"    Moving items in inventory or trading with villagers.

Optional Paper-specific:

Event    QuestEngine Event
PlayerItemDamageEvent    "ITEM_DAMAGE"
‍♂️ MythicMobs Integration
MythicMobs Event    QuestEngine Event    Description
MythicMobSpawnEvent    "MYTHICMOBS_ENTITY_SPAWN"    When a MythicMob spawns near the player.
MythicMobDeathEvent    "MYTHICMOBS_KILL"    When a MythicMob is killed, either by the player or nearby.

These are dynamically hooked using reflection to remain compatible even if MythicMobs isn’t installed.

Player-Related Events
Bukkit Event    QuestEngine Event    Description
PlayerJoinEvent    "PLAYER_PRE_JOIN"    When a player joins.
PlayerQuitEvent    "PLAYER_LEAVE"    When a player leaves.
PlayerRespawnEvent    "PLAYER_RESPAWN"    When a player respawns.
PlayerDeathEvent    "PLAYER_DEATH"    When a player dies.
PlayerChangedWorldEvent    "PLAYER_WORLD_CHANGE"    When a player switches worlds.
PlayerTeleportEvent    "PLAYER_TELEPORT"    When a player teleports.
PlayerBedEnterEvent    "PLAYER_BED_ENTER"    When entering a bed.
PlayerExpChangeEvent    "PLAYER_EXP_GAIN"    When gaining XP.
PlayerLevelChangeEvent    "PLAYER_LEVELUP"    When leveling up.
PlayerCommandPreprocessEvent    "PLAYER_COMMAND"    When executing a command.
AsyncPlayerChatEvent    "PLAYER_CHAT"    When sending chat messages.
PlayerMoveEvent    "PLAYER_WALK", "DISTANCE_FROM"    When walking a certain minimum distance (configurable).
World / Chunk Events
Bukkit Event    QuestEngine Event    Description
CreatureSpawnEvent    "ENTITY_SPAWN"    When a creature spawns near a player.
ChunkLoadEvent    "CHUNK_LOAD"    When a chunk loads.
Resource Information
Author:
----------
Total Downloads: 374
First Release: Nov 8, 2025
Last Update: May 20, 2026
Category: ---------------
All-Time Rating:
5 ratings
Version -----
Released: --------------------
Downloads: ------
Version Rating:
----------------------
-- ratings