20260808latestCURSOR AI CREATEDAug 8, 2026 1. Server Quest YAML (Luminous) Symptom: Kill count for skill unlock quests does not increase Fix Details Event name typo MYTHICMOBS_KILL → MYTHICMOBS_ENTITY_KILL (approx. 265) Skills/Some Daily Changed to ENTITY_KILL + '*' to bypass the Mythic Killer bug (processed via Vanilla EntityDeathEvent) required_quests only prevents starting and does not affect the progress of quests already accepted (this was not a bug). 2. QuestEngine Source (v81.0) — Critical # Fixes 1 Always returned because killer could not be found when killing Mythic Added interpretation for MythicMobDeathEvent.getKiller() (EventContextMapper + EventDispatcher) 2 Citizens/Mythic/Default interact bridge not registered Register soft-depend via reflection in onEnable 3 ENTITY_INTERACT no matcher → behaves like * Dedicated matcher + bridge owns interact (prevents duplicate execution) 3. High — Behavior/Compatibility # Fixes 4 Documentation MYTHICMOBS_KILL vs Code MYTHICMOBS_ENTITY_KILL Normalized with EventAliases 5 BLOCK_FERTILizing typo case (never triggered) BLOCK_FERTILIZING / FARMING registered correctly 6 Condition cache key only uuid|expr → Context condition contamination Context expression includes fingerprint 7 repeat quest prerequisite not unlocked because completed=false hasSatisfiedRequirement (OK if cleared at least once) 8 reload does not re-hook dynamic events unregisterAll + registerAll re-register 9 Sample YAML CITIZENS_1 vs CITIZENS:1 Target normalization + sample modification Other aliases: CHUNK_LOAD→WORLD_CHUNK_LOAD, MOBKILLING/ENTITY_DEATH→ENTITY_KILL, BREEDNG→BREEDING, ITEM_SELECT→ITEM_HELD, BLOCK_ITEM_DROPPING→ITEM_DROP 4. Medium — Accuracy/Safety Issue fixed Target contains matching (SKELETON ⊂ WITHER_SKELETON) Only prefix globs like exact + ZOMBIE* Hard dependency on Mythic Soft-depend via MethodHandle/Reflection Missing soft-depend in plugin.yml MythicMobs / Add Citizens Execute sendMessage, etc. in async on the main thread as pending 5. Performance Conditional caching TTL + context fingerprint Event class/player getter caching Mythic MethodHandle static caching Event array/matcher index reuse dedup window prune Custom matching list lazy allocation Worker/pool tuning 1. 서버 퀘스트 YAML (루미너스) 증상: 스킬 해금 퀘스트 처치 카운트가 안 오름 수정 내용 이벤트 이름 오타 MYTHICMOBS_KILL → MYTHICMOBS_ENTITY_KILL (약 265개) 스킬/일부 일일 Mythic 킬러 버그 우회용으로 ENTITY_KILL + '*'로 변경 (바닐라 EntityDeathEvent로 진행) required_quests는 시작만 막고, 이미 수락한 퀘스트 진행에는 영향 없음 (버그가 아니었음). 2. QuestEngine 소스 (v81.0) — Critical # 문제 수정 1 Mythic 처치 시 킬러를 못 찾아 항상 return MythicMobDeathEvent.getKiller() 해석 추가 (EventContextMapper + EventDispatcher) 2 Citizens/Mythic/Default interact 브리지 미등록 onEnable에서 리플렉션으로 soft-depend 등록 3 ENTITY_INTERACT 매처 없음 → *처럼 동작 전용 매처 + 브리지가 interact 소유 (중복 진행 방지) 3. High — 동작/호환 # 문제 수정 4 문서 MYTHICMOBS_KILL vs 코드 MYTHICMOBS_ENTITY_KILL EventAliases로 정규화 5 BLOCK_FERTILizing 오타 case (절대 안 탐) BLOCK_FERTILIZING / FARMING 정상 등록 6 조건 캐시 키가 uuid|expr만 → 문맥 조건 오염 문맥 표현식은 fingerprint 포함 7 repeat 퀘스트 completed=false라 선행이 안 풀림 hasSatisfiedRequirement (한 번이라도 클리어면 OK) 8 reload가 dynamic 이벤트 재훅 안 함 unregisterAll + registerAll 재등록 9 샘플 YAML CITIZENS_1 vs CITIZENS:1 타겟 정규화 + 샘플 수정 기타 별칭: CHUNK_LOAD→WORLD_CHUNK_LOAD, MOBKILLING/ENTITY_DEATH→ENTITY_KILL, BREEDNG→BREEDING, ITEM_SELECT→ITEM_HELD, BLOCK_ITEM_DROPPING→ITEM_DROP 4. Medium — 정확도/안전 문제 수정 타겟 contains 매칭 (SKELETON ⊂ WITHER_SKELETON) exact + ZOMBIE* 같은 prefix glob만 Mythic 하드 의존 MethodHandle/리플렉션으로 soft-depend plugin.yml soft-depend 누락 MythicMobs / Citizens 추가 async에서 sendMessage 등 pending으로 메인 스레드 쪽 실행 5. 성능 조건 캐시 TTL + 문맥 fingerprint 이벤트 클래스/플레이어 getter 캐시 Mythic MethodHandle 정적 캐시 이벤트 배열/매처 인덱스 재사용 dedup 윈도우 prune custom 매칭 리스트 lazy 할당 worker/풀 튜닝20260520ENTITY_KILL == MOBKILLINGMay 20, 2026 ENTITY KILL == MOBKILLING20260517MOBKILLING > ENTITY_KILL, BREEDNG > BREEDING Event Name FixedMay 17, 2026 EVENT NAME FIXED.HOTFIXCTX REMOVEDMay 12, 2026 CTX REMOVED20260512LANG FILE UPDATEDMay 12, 2026 LANG FILE UPDATED20260511V4HotKeyManager Event SupportMay 11, 2026 HotKeyManager Event Support20260511V3GUIManager Event SupportMay 11, 2026 GUIManager Event Support20260512V2MYTHICDUNGEONS AND CUSTOM EVENT FIXMay 11, 2026 CUSTOM EVENT FIX AND MYTHICDUNGEONS SUPPORT20260511V2Quest Editor Debug Command AddMay 10, 2026 questeditor debug command add custom event data capture check20260511Custom Model Data & Item Model MergeMay 10, 2026 Item Model Support20260510CraftSlotCommands4 Menu Click Event SupportMay 10, 2026 CraftSlotCommands4 Menu Click Event Support! CRAFTSLOT_CLICK EVENT! targets: - 0 - 1 - 2 - 3 - 420260507FORGETMSG FILE FIXEDMay 7, 2026 FORGET MSG FILE FIXED MSG FILE AUTO MERGED20260506API ADDMay 6, 2026 API ADD Code (Text): package com.gmail.bobason01.questengine.api; import com.gmail.bobason01.questengine.QuestEnginePlugin; import com.gmail.bobason01.questengine.progress.PlayerData; import com.gmail.bobason01.questengine.quest.QuestDef; import org.bukkit.entity.Player; import org.bukkit.plugin.java.JavaPlugin; import java.util.Collection; import java.util.List; import java.util.UUID; public final class QuestEngineAPI { private QuestEngineAPI() {} public static QuestEnginePlugin getPlugin() { return JavaPlugin.getPlugin(QuestEnginePlugin.class); } public static QuestDef getQuest(String id) { if (id == null) return null; return getPlugin().quests().get(id); } public static Collection<QuestDef> getAllQuests() { return getPlugin().quests().all(); } public static PlayerData getPlayerData(UUID uuid, String name) { if (uuid == null) return null; return getPlugin().progress().of(uuid, name); } public static boolean isActive(UUID uuid, String name, String questId) { if (uuid == null || questId == null) return false; return getPlugin().progress().isActive(uuid, name, questId); } public static boolean isCompleted(UUID uuid, String name, String questId) { if (uuid == null || questId == null) return false; return getPlugin().progress().isCompleted(uuid, name, questId); } public static int getQuestProgress(UUID uuid, String name, String questId) { if (uuid == null || questId == null) return 0; return getPlugin().progress().value(uuid, name, questId); } public static List<String> getActiveQuests(UUID uuid, String name) { if (uuid == null) return null; return getPlugin().progress().activeQuestIds(uuid, name); } public static List<String> getCompletedQuests(UUID uuid, String name) { if (uuid == null) return null; return getPlugin().progress().completedQuestIds(uuid, name); } public static void startQuest(Player player, String questId) { if (player == null || questId == null) return; getPlugin().engine().startQuest(player, questId); } public static void cancelQuest(Player player, String questId) { if (player == null || questId == null) return; getPlugin().engine().cancelQuest(player, questId); } public static void forceCompleteQuest(UUID uuid, String name, String questId) { if (uuid == null name == null questId == null) return; getPlugin().engine().forceComplete(uuid, name, questId); } public static void forceCompleteQuest(Player player, String questId) { if (player == null || questId == null) return; QuestDef quest = getQuest(questId); if (quest != null) { getPlugin().engine().forceComplete(player, quest); } } public static void stopQuest(UUID uuid, String name, String questId) { if (uuid == null name == null questId == null) return; getPlugin().engine().stopQuest(uuid, name, questId); } public static int addQuestProgress(UUID uuid, String name, String questId, int amount) { if (uuid == null || questId == null) return 0; return getPlugin().progress().addProgress(uuid, name, questId, amount); } public static void resetQuestProgress(UUID uuid, String name, String questId) { if (uuid == null || questId == null) return; getPlugin().progress().reset(uuid, name, questId); } public static void openQuestListMenu(Player player, int page) { if (player == null) return; getPlugin().gui().openList(player, page); } public static void openPublicQuestMenu(Player player, int page) { if (player == null) return; getPlugin().gui().openPublic(player, page); } }20260413QUEST FILE DELETE COMMAND ADDApr 12, 2026 QUEST FILE DELETE COMMAND ADD 퀘스트 파일 삭제 명령어 추가20260411V2Event List SimpleApr 11, 2026 Event List Simple 이벤트 리스트를 심플하게20260411TEMPLETE UPDATEApr 11, 2026 Templete Example Update 템플릿 예시 업데이트20260403PREFIX MESSAGE FIXEDApr 2, 2026 minor patch 사소한 패치 prefix message color problem fixed prefix 메세지 색상 문제 수정20260119Add description to ongoing questJan 18, 2026 Add description to ongoing quest 진행 중인 퀘스트에 설명을 추가합니다20260109DB PROBLEM FIXJan 9, 2026 DB PROBLEM FIX20260106Required Quest Conditons AddJan 5, 2026 Required Quest Conditions Add20260101Quest Event List UpdateJan 1, 2026 CUSTOM_EVENT PLAYER_BARTERING BLOCK_BREAK BLOCK_PLACE BLOCK_FERTILIZING BLOCK_ITEM_DROPPING BLOCK_SHEARING BREEDNG BREWING BUCKET_EMPTY BUCKET_ENTITY BUCKET_FILL COMPOSTING CURING DEAL_DAMAGE DISTANCE_FROM ENCHANTING FARMING FISHING HATCHING ITEM_BREAK ITEM_DAMAGE ITEM_MENDING MILKING MOBKILLING PERMISSIONS_CHECK SHEARING SMELTING SMITHING TAMING TRADING PLAYER_WALK PLAYER_PRE_JOIN PLAYER_LEAVE PLAYER_RESPAWN PLAYER_DEATH PLAYER_COMMAND PLAYER_CHAT PLAYER_EXP_GAIN PLAYER_LEVELUP PLAYER_WORLD_CHANGE PLAYER_ATTACK PLAYER_KILL PLAYER_ARMOR PLAYER_TELEPORT PLAYER_BED_ENTER PLAYER_SWAP_HAND ITEM_INTERACT ITEM_CONSUME ITEM_PICKUP ITEM_MOVE ITEM_CRAFT ITEM_DROP ITEM_SELECT ITEM_ENCHANT ENTITY_INTERACT ENTITY_SPAWN MYTHICMOBS_ENTITY_SPAWN20251215DEFAULT FILE HAS FOLDER NOT CREATEDDec 14, 2025 기본 quest 폴더 파일이 있다면 더 이상 퀘스트 예제 파일을 만들지 않습니다20251204CANCEL CONFIRM CHAT COLOR PROBLEM FIXDec 4, 2025 CANCEL CONFIRM CHAT COLOR PROBLEM FIX 취소 확인에서 색상 코드 메세지가 적용 안되는 점 수정20251202Mythicmobs Kill Mob ID CheckDec 1, 2025 Mythicmobs Kill Mob ID Check add.MYTHICBIG UPDATENov 27, 2025 I rewrote all the code Now it works without any issues, lag, or traffic concerns even on a server with 500 people. 코드 전부 다시 짰습니다 이제 500 명이 있는 서버에서도 문제 없이 렉 없이 트래픽 걱정 없이 작동합니다20251124TRASH MESSAGE DELETEDNov 23, 2025 TRASH MESSAGE DELETED 쓰레기 메세지 제거20251123V2PAPI CHANGEDNov 23, 2025 current placeholder removed active placeholder fixed20251123BUG FIXNov 22, 2025 Quest File PAPI and Color & Support NPC INTERACT IS NOW Mythicmobs: Citizens: Entity: changed. Quest Progress + Rewards Text Message Changed20251121PARTY PROBLEM FIXNov 21, 2025 PARTY PROBLEM FIXIngame QuestEditorIngame Quest Editor Support!Nov 13, 2025 Ingame Quest Editor Support! config.yml update please. messages.yml update please. many bug fix. many problem fix. msg{t=} > msg{m=} item{t=} > item{i=}20251113V2CUSTOMIZE + PAPI PROBLEM FIXNov 12, 2025 Custom GUI Setting + PAPI Problem Fix20251113BUG FIXNov 12, 2025 NPC INTERACT BUG FIX RELOAD PROBLEM FIX20251112V2Do not display quests that cannot be repeatedNov 12, 2025 Do not display quests that cannot be repeated20251112BUG FIXNov 12, 2025 NPC INTERACT BUG FIX20251110V2GUI ITEM BUG FIXNov 9, 2025 GUI ITEM BUG FIX20251110GUI MORE BETTERNov 9, 2025 YES YES MORE BETTER GUI UPDATE3.0ENGLISH VERSION + GUI ADDNov 9, 2025 English Config + English Quest Example Changed User Quest Now GUI Base20251109HOTFIXEXAMPLE QUEST FIXNov 8, 2025 YES20251109PARTY SUPPORTNov 8, 2025 PARTY SUPPORT20251108example file addNov 8, 2025 jar in example add.1.0Nov 8, 2025
Similar projects
Plugin →Let Me Despawn
Improves performance by tweaking mob despawn rules. Say bye to pesky unintentional persistent mobs.
25MSueta
JourneyMap
Real-time map used for mapping in-game or your browser as you explore.
14.7MSueta
Emotecraft
Create your own emotes in Minecraft.
7.5MSueta
Simple Tpa
A simple tpa plugin which sends requests
5.4MSueta
Common Network
Forge and Fabric Unified Networking Solution
3.9MSueta
Set Home
A lightweight plugin for players to set their homes.
3.8MSueta