fix(p2): restore plugin status UI, C_QuestLog/C_Map shims, QuestieServer init
- QuestieOptionsAdvanced.lua: restore compat_header, plugin_header, plugin_status_desc blocks showing loaded Questie-X plugins with stats in the Advanced options tab - QuestieCompat.lua: add C_QuestLog shim (GetNumQuestLogEntries, GetQuestLogTitle, GetAllQuestIDs, GetQuestObjectives, IsQuestFlaggedCompleted, GetQuestPlayerQuestLink), C_Map shim (GetPlayerMapPosition, GetBestMapForUnit, GetMapInfo), GetTrackedAchievements, IsAchievementCompleted, and LibUIDropDownMenu shims - QuestieInit.lua: import QuestieServer module, add QuestieServer:Init() call with nil guard, wrap HBDHooks:Init() in nil guard
This commit is contained in:
@@ -414,6 +414,44 @@ function QuestieOptions.tabs.advanced:Initialize()
|
|||||||
end
|
end
|
||||||
end,
|
end,
|
||||||
},
|
},
|
||||||
|
compat_header = {
|
||||||
|
type = "header",
|
||||||
|
order = 6,
|
||||||
|
name = l10n('3.3.5 Compatibility Settings'),
|
||||||
|
},
|
||||||
|
plugin_header = {
|
||||||
|
type = "header",
|
||||||
|
order = 7,
|
||||||
|
name = "|cFF5EBAF3Loaded Questie-X Plugins|r",
|
||||||
|
},
|
||||||
|
plugin_status_desc = {
|
||||||
|
type = "description",
|
||||||
|
order = 7.01,
|
||||||
|
fontSize = "medium",
|
||||||
|
name = function()
|
||||||
|
if not QuestiePluginAPI or not QuestiePluginAPI.registeredPlugins then
|
||||||
|
return "|cFF888888Plugin API not loaded.|r"
|
||||||
|
end
|
||||||
|
|
||||||
|
local output = ""
|
||||||
|
local hasPlugins = false
|
||||||
|
|
||||||
|
for pluginName, plugin in pairs(QuestiePluginAPI.registeredPlugins) do
|
||||||
|
hasPlugins = true
|
||||||
|
output = output .. "|cFF5EBAF3[Questie-" .. pluginName .. "]|r"
|
||||||
|
output = output .. " Quests: |cFFFFD700" .. tostring(plugin.stats.QUEST) .. "|r"
|
||||||
|
output = output .. " NPCs: |cFFFFD700" .. tostring(plugin.stats.NPC) .. "|r"
|
||||||
|
output = output .. " Objects: |cFFFFD700" .. tostring(plugin.stats.OBJECT) .. "|r"
|
||||||
|
output = output .. " Items: |cFFFFD700" .. tostring(plugin.stats.ITEM) .. "|r\n"
|
||||||
|
end
|
||||||
|
|
||||||
|
if not hasPlugins then
|
||||||
|
output = "|cFF888888No plugins loaded.|r"
|
||||||
|
end
|
||||||
|
|
||||||
|
return output
|
||||||
|
end,
|
||||||
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -372,3 +372,85 @@ function QuestieCompat.GetItemCooldown(itemID)
|
|||||||
return GetItemCooldown(itemID)
|
return GetItemCooldown(itemID)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
--- C_QuestLog Shim
|
||||||
|
QuestieCompat.C_QuestLog = QuestieCompat.C_QuestLog or {}
|
||||||
|
|
||||||
|
function QuestieCompat.C_QuestLog.GetNumQuestLogEntries()
|
||||||
|
return GetNumQuestLogEntries()
|
||||||
|
end
|
||||||
|
|
||||||
|
function QuestieCompat.C_QuestLog.GetQuestLogTitle(questIndex)
|
||||||
|
return GetQuestLogTitle(questIndex)
|
||||||
|
end
|
||||||
|
|
||||||
|
function QuestieCompat.C_QuestLog.GetQuestLogSelection()
|
||||||
|
return GetQuestLogSelection()
|
||||||
|
end
|
||||||
|
|
||||||
|
function QuestieCompat.C_QuestLog.GetQuestInfo(questID)
|
||||||
|
return QuestieCompat.GetQuestInfo(questID)
|
||||||
|
end
|
||||||
|
|
||||||
|
function QuestieCompat.C_QuestLog.GetAllQuestIDs()
|
||||||
|
local questIDs = {}
|
||||||
|
local numEntries = GetNumQuestLogEntries()
|
||||||
|
for i = 1, numEntries do
|
||||||
|
local questTitle, level, suggestedGroup, isHeader, isCollapsed, isComplete, frequency, questID, startEvent, displayQuestID = GetQuestLogTitle(i)
|
||||||
|
if questID and questID ~= 0 then
|
||||||
|
table.insert(questIDs, questID)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
return questIDs
|
||||||
|
end
|
||||||
|
|
||||||
|
function QuestieCompat.C_QuestLog.GetQuestObjectives(questID)
|
||||||
|
local questIndex = GetQuestLogIndexByID(questID)
|
||||||
|
if not questIndex then return nil end
|
||||||
|
return QuestieCompat.GetQuestObjectives(questIndex)
|
||||||
|
end
|
||||||
|
|
||||||
|
function QuestieCompat.C_QuestLog.IsQuestFlaggedCompleted(questID)
|
||||||
|
return IsQuestFlaggedCompleted(questID)
|
||||||
|
end
|
||||||
|
|
||||||
|
function QuestieCompat.C_QuestLog.GetQuestPlayerQuestLink(questID)
|
||||||
|
return GetQuestLink(questID)
|
||||||
|
end
|
||||||
|
|
||||||
|
--- C_Map Shim
|
||||||
|
QuestieCompat.C_Map = QuestieCompat.C_Map or {}
|
||||||
|
|
||||||
|
function QuestieCompat.C_Map.GetPlayerMapPosition(uiMapID)
|
||||||
|
local x, y = GetPlayerMapPosition(uiMapID)
|
||||||
|
if x == 0 and y == 0 then
|
||||||
|
x, y = GetPlayerMapPosition("player")
|
||||||
|
end
|
||||||
|
return x, y
|
||||||
|
end
|
||||||
|
|
||||||
|
function QuestieCompat.C_Map.GetBestMapForUnit(unit)
|
||||||
|
if unit == "player" then
|
||||||
|
return GetCurrentMapAreaID()
|
||||||
|
end
|
||||||
|
return GetCurrentMapAreaID()
|
||||||
|
end
|
||||||
|
|
||||||
|
function QuestieCompat.C_Map.GetMapInfo(uiMapID)
|
||||||
|
return GetMapInfo(uiMapID)
|
||||||
|
end
|
||||||
|
|
||||||
|
--- GetTrackedAchievements Shim
|
||||||
|
QuestieCompat.GetTrackedAchievements = QuestieCompat.GetTrackedAchievements or function()
|
||||||
|
return {}
|
||||||
|
end
|
||||||
|
|
||||||
|
--- IsAchievementCompleted Shim
|
||||||
|
QuestieCompat.IsAchievementCompleted = QuestieCompat.IsAchievementCompleted or function(achievementID)
|
||||||
|
return GetAchievementNumCriteria(achievementID) > 0
|
||||||
|
end
|
||||||
|
|
||||||
|
--- LibUIDropDownMenu Shim
|
||||||
|
QuestieCompat.LibUIDropDownMenu = QuestieCompat.LibUIDropDownMenu or {}
|
||||||
|
QuestieCompat.LibUIDropDownMenu.UIDropDownMenu_Menu_NewSize = function()
|
||||||
|
end
|
||||||
|
|||||||
@@ -85,6 +85,8 @@ local AvailableQuests = QuestieLoader:ImportModule("AvailableQuests")
|
|||||||
local SeasonOfDiscovery = QuestieLoader:ImportModule("SeasonOfDiscovery")
|
local SeasonOfDiscovery = QuestieLoader:ImportModule("SeasonOfDiscovery")
|
||||||
---@type QuestieLearner
|
---@type QuestieLearner
|
||||||
local QuestieLearner = QuestieLoader:ImportModule("QuestieLearner")
|
local QuestieLearner = QuestieLoader:ImportModule("QuestieLearner")
|
||||||
|
---@type QuestieServer
|
||||||
|
local QuestieServer = QuestieLoader:ImportModule("QuestieServer")
|
||||||
|
|
||||||
--- COMPATIBILITY ---
|
--- COMPATIBILITY ---
|
||||||
local WOW_PROJECT_ID = QuestieCompat.WOW_PROJECT_ID
|
local WOW_PROJECT_ID = QuestieCompat.WOW_PROJECT_ID
|
||||||
@@ -154,9 +156,15 @@ QuestieInit.Stages[1] = function() -- run as a coroutine
|
|||||||
Questie:Debug(Questie.DEBUG_CRITICAL, "[QuestieInit:Stage1] Starting QuestieOptions.Initialize Thread.")
|
Questie:Debug(Questie.DEBUG_CRITICAL, "[QuestieInit:Stage1] Starting QuestieOptions.Initialize Thread.")
|
||||||
ThreadLib.ThreadSimple(QuestieOptions.Initialize, 0)
|
ThreadLib.ThreadSimple(QuestieOptions.Initialize, 0)
|
||||||
|
|
||||||
|
if QuestieServer and QuestieServer.Init then
|
||||||
|
QuestieServer:Init()
|
||||||
|
end
|
||||||
|
|
||||||
MinimapIcon:Init()
|
MinimapIcon:Init()
|
||||||
|
|
||||||
HBDHooks:Init()
|
if HBDHooks and HBDHooks.Init then
|
||||||
|
HBDHooks:Init()
|
||||||
|
end
|
||||||
|
|
||||||
Questie:SetIcons()
|
Questie:SetIcons()
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user