Skip to content
Snippets Groups Projects
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
Branches
Tags
No related merge requests found
...@@ -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();
......
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