From 9d02c8a231a283b5ce3cc12d59a757ff7f7eadb1 Mon Sep 17 00:00:00 2001 From: Xurkon Date: Fri, 5 Jun 2026 20:37:34 -0500 Subject: [PATCH] fix: fully clear learned data buckets --- .../DatabaseTab/QuestieOptionsDatabase.lua | 6 ++--- Modules/QuestieLearner.lua | 27 ++++++++++++++++--- 2 files changed, 26 insertions(+), 7 deletions(-) diff --git a/Modules/Options/DatabaseTab/QuestieOptionsDatabase.lua b/Modules/Options/DatabaseTab/QuestieOptionsDatabase.lua index a4ba6b4..7a27ec8 100644 --- a/Modules/Options/DatabaseTab/QuestieOptionsDatabase.lua +++ b/Modules/Options/DatabaseTab/QuestieOptionsDatabase.lua @@ -501,9 +501,9 @@ function QuestieOptions.tabs.database:Initialize() confirm = true, confirmText = "Are you sure? This cannot be undone.", func = function() - if Questie.db and Questie.db.global then - Questie.dbLearner.global = nil - Questie:Print("|cFFFF4444[Questie-X]|r All learned data has been reset.") + local QuestieLearner = QuestieLoader:ImportModule("QuestieLearner") + if QuestieLearner and QuestieLearner.ClearAllData then + QuestieLearner:ClearAllData() end end, }, diff --git a/Modules/QuestieLearner.lua b/Modules/QuestieLearner.lua index 0d3a593..7ccc320 100644 --- a/Modules/QuestieLearner.lua +++ b/Modules/QuestieLearner.lua @@ -33,6 +33,7 @@ local string_trim = string.trim local string_sub = string.sub local string_len = string.len local string_upper = string.upper +local AceConfigRegistry = LibStub and LibStub("AceConfigRegistry-3.0", true) local function IsAscensionProtected(dbType, id, key) local mode = GetDataSourceMode and GetDataSourceMode() or "auto" @@ -486,6 +487,12 @@ function QuestieLearner:IsEnabled() return Questie.dbLearner.global.settings.enabled end +local function NotifyLearnerOptionsChanged() + if AceConfigRegistry and AceConfigRegistry.NotifyChange then + AceConfigRegistry:NotifyChange("Questie") + end +end + function QuestieLearner:GetSettings() if not EnsureLearnedData() then return {} end return Questie.dbLearner.global.settings @@ -2585,11 +2592,23 @@ end function QuestieLearner:ClearAllData() if not EnsureLearnedData() then return end - Questie.dbLearner.global.npcs = {} - Questie.dbLearner.global.quests = {} - Questie.dbLearner.global.items = {} - Questie.dbLearner.global.objects = {} + local learned = Questie.dbLearner.global + local settings = learned.settings or {} + + for key in pairs(learned) do + if key ~= "settings" then + learned[key] = nil + end + end + + learned.settings = settings + learned.npcs = {} + learned.quests = {} + learned.items = {} + learned.objects = {} + self:ApplyDataSourceMode() + NotifyLearnerOptionsChanged() Questie:Print("Cleared all learned data.") end