Fix main quest data loading issue

This commit is contained in:
KingRainbow44 2023-04-24 03:10:22 -04:00
parent 486582b81c
commit 25c72a19e0
No known key found for this signature in database
GPG Key ID: FC2CB64B00D257BE

View File

@ -2,9 +2,9 @@ package emu.grasscutter.data.binout;
import dev.morphia.annotations.Entity; import dev.morphia.annotations.Entity;
import emu.grasscutter.data.GameData; import emu.grasscutter.data.GameData;
import emu.grasscutter.data.excels.QuestData;
import emu.grasscutter.game.quest.enums.QuestType; import emu.grasscutter.game.quest.enums.QuestType;
import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
import java.util.Objects; import java.util.Objects;
@ -58,9 +58,11 @@ public class MainQuestData {
} }
public void onLoad() { public void onLoad() {
if (this.talks != null) if (this.talks == null) this.talks = new ArrayList<>();
this.talks = this.talks.stream() if (this.subQuests == null) this.subQuests = new SubQuestData[0];
.filter(Objects::nonNull).toList();
this.talks = this.talks.stream()
.filter(Objects::nonNull).toList();
Arrays.stream(this.subQuests).forEach(quest -> { Arrays.stream(this.subQuests).forEach(quest -> {
var questData = GameData.getQuestDataMap().get(quest.getSubId()); var questData = GameData.getQuestDataMap().get(quest.getSubId());
if (questData != null) questData.applyFrom(quest); if (questData != null) questData.applyFrom(quest);