Unverified Commit 1e649cd8 authored by Melledy's avatar Melledy
Browse files

Delete quests from the player if there are errors loading them from the db

parent c53697da
...@@ -347,6 +347,10 @@ public class GameMainQuest { ...@@ -347,6 +347,10 @@ public class GameMainQuest {
DatabaseHelper.saveQuest(this); DatabaseHelper.saveQuest(this);
} }
public void delete() {
DatabaseHelper.deleteQuest(this);
}
public ParentQuest toProto() { public ParentQuest toProto() {
ParentQuest.Builder proto = ParentQuest.newBuilder() ParentQuest.Builder proto = ParentQuest.newBuilder()
.setParentQuestId(getParentQuestId()) .setParentQuestId(getParentQuestId())
......
...@@ -181,6 +181,7 @@ public class GameQuest { ...@@ -181,6 +181,7 @@ public class GameQuest {
} }
return false; return false;
} }
public void save() { public void save() {
getMainQuest().save(); getMainQuest().save();
} }
......
...@@ -315,16 +315,27 @@ public class QuestManager extends BasePlayerManager { ...@@ -315,16 +315,27 @@ public class QuestManager extends BasePlayerManager {
List<GameMainQuest> quests = DatabaseHelper.getAllQuests(getPlayer()); List<GameMainQuest> quests = DatabaseHelper.getAllQuests(getPlayer());
for (GameMainQuest mainQuest : quests) { for (GameMainQuest mainQuest : quests) {
boolean cancelAdd = false;
mainQuest.setOwner(this.getPlayer()); mainQuest.setOwner(this.getPlayer());
for (GameQuest quest : mainQuest.getChildQuests().values()) { for (GameQuest quest : mainQuest.getChildQuests().values()) {
QuestData questConfig = GameData.getQuestDataMap().get(quest.getSubQuestId());
if (questConfig == null) {
mainQuest.delete();
cancelAdd = true;
break;
}
quest.setMainQuest(mainQuest); quest.setMainQuest(mainQuest);
quest.setConfig(GameData.getQuestDataMap().get(quest.getSubQuestId())); quest.setConfig(questConfig);
} }
if (!cancelAdd) {
this.getMainQuests().put(mainQuest.getParentQuestId(), mainQuest); this.getMainQuests().put(mainQuest.getParentQuestId(), mainQuest);
} }
} }
}
public List<GameMainQuest> getActiveMainQuests() { public List<GameMainQuest> getActiveMainQuests() {
return getMainQuests().values().stream().filter(p -> !p.isFinished()).toList(); return getMainQuests().values().stream().filter(p -> !p.isFinished()).toList();
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment