From b77c75a29613f551537e6756f35bac743c09cc26 Mon Sep 17 00:00:00 2001 From: KingRainbow44 Date: Sat, 29 Apr 2023 20:40:33 -0400 Subject: [PATCH] Check if a sub-quest's data exists before invoking it --- .../emu/grasscutter/game/quest/GameMainQuest.java | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/main/java/emu/grasscutter/game/quest/GameMainQuest.java b/src/main/java/emu/grasscutter/game/quest/GameMainQuest.java index 74c6b5624..2135fcef5 100644 --- a/src/main/java/emu/grasscutter/game/quest/GameMainQuest.java +++ b/src/main/java/emu/grasscutter/game/quest/GameMainQuest.java @@ -78,8 +78,16 @@ public class GameMainQuest { Arrays.stream(GameData.getMainQuestDataMap().get(this.parentQuestId).getSubQuests()) .map(SubQuestData::getSubId) .toList(); - for (Integer subQuestId : subQuestIds) { - QuestData questConfig = GameData.getQuestDataMap().get(subQuestId); + for (var subQuestId : subQuestIds) { + QuestData questConfig = GameData.getQuestDataMap().get((int) subQuestId); + if (questConfig == null) { + Grasscutter.getLogger() + .error( + "Quest {} not found in QuestData. Please check MainQuestData and QuestData.", + subQuestId); + continue; + } + this.childQuests.put(subQuestId, new GameQuest(this, questConfig)); } }