def handle_remove_quest(self, slot): quest_id = self.player_mgr.get_uint32( PlayerFields.PLAYER_QUEST_LOG_1_1 + (slot * 6)) if quest_id in self.active_quests: self.remove_from_quest_log(quest_id) RealmDatabaseManager.character_delete_quest( self.player_mgr.guid, quest_id)
def load_quests(self): quest_db_states = RealmDatabaseManager.character_get_quests(self.player_mgr.guid) for quest_db_state in quest_db_states: if quest_db_state.rewarded > 0: self.completed_quests.add(quest_db_state.quest) elif quest_db_state.state == QuestState.QUEST_ACCEPTED or quest_db_state.state == QuestState.QUEST_REWARD: quest = WorldDatabaseManager.QuestTemplateHolder.quest_get_by_entry(quest_db_state.quest) # If this quest no longer exists, make sure to delete it from player's log. if not quest: RealmDatabaseManager.character_delete_quest(self.player_mgr.guid, quest_db_state.quest) continue active_quest = ActiveQuest(quest_db_state, self.player_mgr, quest) self.active_quests[quest_db_state.quest] = active_quest # Needed in case the WDB has been deleted, otherwise non cached quests won't appear in the log. self.send_quest_query_response(active_quest.quest) else: Logger.error( f"Quest database (guid={quest_db_state.guid}, quest_id={quest_db_state.quest}) has state {quest_db_state.state}. No handling.")
def handle_remove_quest(self, slot): quest_entry = self.player_mgr.get_uint32(PlayerFields.PLAYER_QUEST_LOG_1_1 + (slot * 6)) if quest_entry in self.active_quests: self.remove_from_quest_log(quest_entry) RealmDatabaseManager.character_delete_quest(self.player_mgr.guid, quest_entry) self.update_surrounding_quest_status()