v1.6.0: Stable Map Search & Blood of Heroes Data Fix

This commit is contained in:
Xurkon
2026-04-08 17:34:15 -05:00
parent 4ef2b9f661
commit 49477da2d0
11 changed files with 465 additions and 66 deletions
+14
View File
@@ -1,5 +1,19 @@
# Changelog # Changelog
## v1.6.0 (2026-04-08)
### Bug Fixes
- **[Fix — Map Search DB]** Resolved a critical database issue where objects and NPCs searched via Advanced Search failed to display all available spawn locations.
- **Override Prioritization**: Refactored `GetObject`, `GetNPC`, and `GetItem` in `QuestieDB` to prioritize manual corrections (overrides) over the compiled database. This ensures human-verified data is always used when available.
- **Data Compatibility**: Hardened the database engine to support both integer and string-based indexing, preventing `nil` errors on legacy clients while maintaining performance.
- **[Fix — Object Spawn Data]** Restored missing "Blood of Heroes" (ID 176213) spawn locations.
- **Data Merge**: Integrated 150+ verified spawn locations from both the Classic database and Wowhead scraping into the WotLK module.
- **Deduplication**: Sanitized coordinate data to remove duplicate pins, providing a cleaner map interface for high-density spawns in Plaguelands.
- **[UI — Search Experience]** Improved the Advanced Search results interface.
- **Dynamic Button States**: Fixed the "Show on Map" button state management to correctly toggle to "Remove from Map" when pins are active.
- **Stability**: Removed experimental rendering logic that caused regressions with standard quest objective icons.
## v1.5.9 (2026-04-08) ## v1.5.9 (2026-04-08)
### Bug Fixes ### Bug Fixes
+3 -3
View File
@@ -13,9 +13,9 @@ function QuestieWotlkObjectFixes:Load()
return { return {
[176213] = { [176213] = {
[objectKeys.spawns] = { [objectKeys.spawns] = {
[zoneIDs.WESTERN_PLAGUELANDS]={{35.9,57.4},{35.9,57.5},{36.4,53.7},{36.5,53.6},{38.2,56.3},{39.7,69.4},{39.7,69.6},{40.6,73.1},{40.7,57.4},{40.8,57.5},{41.4,62.1},{41.5,62.1},{41.9,70.5},{42.2,54.9},{42.8,64.2},{43.3,68.3},{43.6,70.4},{43.7,70.5},{44.2,65},{44.4,71.6},{44.5,53.3},{44.5,71.7},{44.6,53.5},{45.8,71.5},{45.9,51.1},{45.9,71.4},{46.7,34.4},{46.8,34.5},{47,59.9},{47,67.1},{47.6,70},{47.9,53.1},{49.4,68.1},{49.8,33.3},{52.2,66.5},{52.3,55},{52.3,66.3},{53,64.2},{53.2,66.5},{53.3,65.1},{53.3,66.2},{53.4,63.4},{53.5,63.3},{53.5,63.5},{54.9,27.1},{55.2,69.4},{55.3,69.6},{56.7,34.7},{57.8,66.4},{57.8,66.5},{62,58.3},{62,58.5},{62.9,57.2},{62.9,57.9},{63.2,59.2},{63.6,75.4},{63.6,75.5},{64,48.7},{64.1,57.9},{64.9,74.4},{64.9,74.5},{65.8,76.8},{66.4,42.1},{66.5,42.2},{67,53.9},{67.8,84.6},{68,44.7},{68.3,81.4},{68.3,81.6},{68.4,77.1},{68.5,77.1},{68.7,49.2},{68.7,79.2},{68.9,73.8},{69.5,78.6},}, [zoneIDs.WESTERN_PLAGUELANDS]={{35.9,57.4},{35.9,57.5},{36.4,53.7},{36.5,53.6},{38.2,56.3},{39.7,69.4},{39.7,69.6},{40.6,73.1},{40.7,57.4},{40.8,57.5},{41.4,62.1},{41.5,62.1},{41.9,70.5},{42.2,54.9},{42.8,64.2},{43.3,68.3},{43.6,70.4},{43.7,70.5},{44.2,65},{44.4,71.6},{44.5,53.3},{44.5,71.7},{44.6,53.5},{45.8,71.5},{45.9,51.1},{45.9,71.4},{46.7,34.4},{46.8,34.5},{47,59.9},{47,67.1},{47.6,70},{47.9,53.1},{49.4,68.1},{49.8,33.3},{52.2,66.5},{52.3,55},{52.3,66.3},{53,64.2},{53.2,66.5},{53.3,65.1},{53.3,66.2},{53.4,63.4},{53.5,63.3},{53.5,63.5},{54.9,27.1},{55.2,69.4},{55.3,69.6},{56.7,34.7},{57.8,66.4},{57.8,66.5},{62,58.3},{62,58.5},{62.9,57.2},{62.9,57.9},{63.2,59.2},{63.6,75.4},{63.6,75.5},{64,48.7},{64.1,57.9},{64.9,74.4},{64.9,74.5},{65.8,76.8},{66.4,42.1},{66.5,42.2},{67,53.9},{67.8,84.6},{68,44.7},{68.3,81.4},{68.3,81.6},{68.4,77.1},{68.5,77.1},{68.7,49.2},{68.7,79.2},{68.9,73.8},{69.5,78.6}},
[zoneIDs.EASTERN_PLAGUELANDS]={{4.3,45.2},{5.3,48.8},{11.1,58.7},{16.7,55},{17.1,60.7},{18.2,67.3},{18.7,78.3},{20.8,81.2},{22.5,68.2},{22.8,64.1},{23.2,63.2},{23.6,68.9},{23.7,58.2},{25,79},{25.5,72.1},{27,59.4},{27,59.5},{28.3,64.6},{29.7,27.7},{30.2,61.5},{30.2,73.6},{30.3,73.4},{30.7,70.2},{30.8,21.2},{31.8,66.7},{31.8,69.2},{32.7,32.9},{32.8,64.2},{33.1,59.5},{33.5,62},{34.5,26.6},{34.5,48.3},{34.6,22},{34.8,31.2},{35.9,44.4},{37.2,59.4},{37.2,59.7},{37.2,73},{38.3,69.1},{40.5,28.2},{42,58},{42,68.2},{43,35.4},{43.1,35.7},{43.5,73.3},{44.5,30.5},{45.7,40.2},{45.8,70.7},{47.2,63.8},{48.8,45},{51.4,57.6},{51.9,69.6},{52.3,75.2},{52.6,65.3},{52.7,65.6},{52.9,69.8},{53.2,72.9},{53.6,72.8},{53.7,58.7},{54.4,56},{54.4,69.6},{54.5,56.2},{54.5,69.4},{55,61.3},{56.8,63.7},{58.5,61.3},{59.5,59},{59.6,74.2},{60.8,47.3},{62.3,60.6},{62.9,64},{63,68},{63.3,71.7},{63.5,74.1},{63.7,65.1},{63.7,76.6},{65.2,74.2},{65.4,63.2},{65.8,68.4},{65.9,68.7},{66.8,71.7},{67.8,63.6},{67.8,75.4},{68.1,70.1},{68.3,45.5},{68.5,76.7},{69.1,52.8},{70,49.5},{70.2,76.4},{70.2,76.6},{70.5,45},{70.6,71.7},{71,66.3},{72.9,51.7},{73.1,60.9},{73.3,57.5},{74.6,53.9},}, [zoneIDs.EASTERN_PLAGUELANDS]={{4.3,45.2},{5.3,48.8},{7.1,50.7},{8,54.5},{11.1,58.7},{14.2,64.7},{16.7,55},{17.1,60.7},{18.2,67.3},{18.7,78.3},{20,61},{20.5,66.9},{20.8,81.2},{21.5,73.9},{22.1,85.1},{22.5,68.2},{22.8,64.1},{23.2,63.2},{23.6,68.9},{23.7,58.2},{24.3,88.2},{25,79},{25.5,72.1},{26,74.7},{26.3,70.5},{26.7,69.5},{27,59.4},{27,59.5},{27.1,75.6},{27.3,64},{28.3,64.6},{28.8,86},{29.2,78.8},{29.7,27.7},{30.2,61.5},{30.2,73.6},{30.3,73.4},{30.7,70.2},{30.8,21.2},{30.9,65.5},{31.8,66.7},{31.8,69.2},{32,71},{32.7,32.9},{32.8,64.2},{33.1,59.5},{33.5,62},{33.6,32.6},{34,80.2},{34.3,67.8},{34.4,76.9},{34.5,22},{34.5,25.8},{34.5,26.6},{34.5,48.3},{34.6,22},{34.8,31.2},{35.6,73.3},{35.9,44.4},{35.9,75.8},{36.7,38},{36.9,70.6},{37.1,65.7},{37.2,59.4},{37.2,59.7},{37.2,73},{37.6,68.5},{38.3,69.1},{38.4,31.1},{38.5,54},{38.8,26.7},{38.9,36.1},{40,49.9},{40.5,28.2},{41.4,79.7},{41.5,65.7},{42,58},{42,68.2},{42.4,75.8},{43,35.4},{43.1,35.7},{43.5,73.3},{44.5,30.5},{44.9,32.9},{45.7,40.2},{45.8,70.7},{46.2,70.8},{46.3,64},{46.5,74.8},{47.2,63.8},{47.5,40.8},{47.9,80},{48.8,45},{48.9,67.2},{49.1,35.5},{50.3,45.5},{50.4,77.4},{51.4,57.6},{51.8,70.3},{51.9,69.6},{52.3,75.2},{52.6,65.3},{52.7,65.6},{52.9,69.8},{53.2,72.9},{53.5,50.7},{53.6,72.8},{53.7,58.7},{54.4,56},{54.4,69.6},{54.5,56.2},{54.5,69.4},{55,61.3},{55.5,58.7},{56.2,63.9},{56.5,76.1},{56.8,63.7},{57.1,81.9},{57.4,71.9},{57.8,76.1},{58.1,79.7},{58.4,64.8},{58.5,61.3},{58.6,79.6},{59.2,62.2},{59.3,80.9},{59.5,59},{59.5,76},{59.6,74.2},{59.9,67.5},{60.8,47.3},{61.8,70.2},{62.3,60.6},{62.9,64},{63,68},{63.3,71.7},{63.6,67.7},{63.5,74.1},{63.7,65.1},{64.7,65.4},{63.7,76.6},{64.7,81},{65.2,74.2},{65.4,63.2},{65.8,68.4},{65.9,68.7},{66.2,53},{66.8,71.7},{67.6,66.8},{67.8,63.6},{67.8,75.4},{68.1,70.1},{68.2,70.6},{68.3,45.5},{68.3,74.6},{68.5,76.7},{68.6,78.4},{68.8,80.8},{68.9,52.8},{68.9,83.3},{69.1,52.8},{70,49.5},{69,71.5},{70.2,76.4},{70.2,76.6},{70.5,45},{70.6,71.7},{70.6,80.8},{70.7,69.5},{71,66.3},{71.1,75.3},{72.2,78.4},{72.9,51.7},{73.1,60.9},{73.3,57.5},{73.3,77.2},{73.4,69.8},{73.4,82.1},{73.6,76.8},{73.8,51.1},{74.1,83.8},{74.6,53.9},{74.7,58.7},{75.6,55.3},{75.9,83.5},{76.1,78.2},{76.2,50.4},{76.7,72.4},{78.4,57.5},{78.7,67.3},{78.8,63.5},{80.4,59.8}},
[zoneIDs.TIRISFAL_GLADES]={{82.8,72.7},{83,71.4},{83,71.5}}, [zoneIDs.TIRISFAL_GLADES]={{82.8,72.7},{82.8,72.8},{83,71.4},{83,71.5}},
}, },
}, },
[179832] = { [179832] = {
+84 -46
View File
@@ -374,15 +374,14 @@ function QuestieDB:GetObject(objectId)
return _QuestieDB.objectCache[objectId]; return _QuestieDB.objectCache[objectId];
end end
--local rawdata = QuestieDB.objectData[objectId]; -- Try to get from compiled DB first
local rawdata = QuestieDB.QueryObject(objectId, QuestieDB._objectAdapterQueryOrder) local rawdata = QuestieDB.QueryObject(objectId, QuestieDB._objectAdapterQueryOrder)
if not rawdata and QuestieDB.objectDataOverrides then -- Check for overrides
rawdata = QuestieDB.objectDataOverrides[objectId] or QuestieDB.objectDataOverrides[tostring(objectId)] local override = QuestieDB.objectDataOverrides and (QuestieDB.objectDataOverrides[objectId] or QuestieDB.objectDataOverrides[tostring(objectId)])
end
if not rawdata then if not rawdata and not override then
Questie:Debug(Questie.DEBUG_CRITICAL, "[QuestieDB:GetObject] rawdata is nil for objectID:", objectId) Questie:Debug(Questie.DEBUG_CRITICAL, "[QuestieDB:GetObject] data not found for objectID:", objectId)
return nil return nil
end end
@@ -391,12 +390,27 @@ function QuestieDB:GetObject(objectId)
type = "object" type = "object"
} }
local stringKey, intKey = next(QuestieDB.objectKeys) if override then
while stringKey do -- Prefer override data (corrections)
obj[stringKey] = rawdata[intKey] for stringKey, _ in pairs(QuestieDB.objectKeys) do
stringKey, intKey = next(QuestieDB.objectKeys, stringKey) if override[stringKey] ~= nil then
obj[stringKey] = override[stringKey]
elseif rawdata then
-- Fallback to DB if override is partial
local intKey = QuestieDB.objectKeys[stringKey]
obj[stringKey] = rawdata[intKey]
end
end
else
-- Use standard DB data
local stringKey, intKey = next(QuestieDB.objectKeys)
while stringKey do
obj[stringKey] = rawdata[intKey]
stringKey, intKey = next(QuestieDB.objectKeys, stringKey)
end
end end
--_QuestieDB.objectCache[objectId] = obj;
_QuestieDB.objectCache[objectId] = obj;
return obj; return obj;
end end
@@ -413,13 +427,10 @@ function QuestieDB:GetItem(itemId)
end end
local rawdata = QuestieDB.QueryItem(itemId, QuestieDB._itemAdapterQueryOrder) local rawdata = QuestieDB.QueryItem(itemId, QuestieDB._itemAdapterQueryOrder)
local override = QuestieDB.itemDataOverrides and (QuestieDB.itemDataOverrides[itemId] or QuestieDB.itemDataOverrides[tostring(itemId)])
if not rawdata and QuestieDB.itemDataOverrides then if not rawdata and not override then
rawdata = QuestieDB.itemDataOverrides[itemId] or QuestieDB.itemDataOverrides[tostring(itemId)] Questie:Debug(Questie.DEBUG_CRITICAL, "[QuestieDB:GetItem] data not found for itemID:", itemId)
end
if not rawdata then
Questie:Debug(Questie.DEBUG_CRITICAL, "[QuestieDB:GetItem] rawdata is nil for itemID:", itemId)
return nil return nil
end end
@@ -429,44 +440,58 @@ function QuestieDB:GetItem(itemId)
Hidden = QuestieCorrections.questItemBlacklist[itemId] Hidden = QuestieCorrections.questItemBlacklist[itemId]
} }
local stringKey, intKey = next(QuestieDB.itemKeys) if override then
while stringKey do -- Prefer override data (corrections)
item[stringKey] = rawdata[intKey] for stringKey, _ in pairs(QuestieDB.itemKeys) do
stringKey, intKey = next(QuestieDB.itemKeys, stringKey) if override[stringKey] ~= nil then
item[stringKey] = override[stringKey]
elseif rawdata then
-- Fallback to DB if override is partial
local intKey = QuestieDB.itemKeys[stringKey]
item[stringKey] = rawdata[intKey]
end
end
else
-- Use standard DB data
local stringKey, intKey = next(QuestieDB.itemKeys)
while stringKey do
item[stringKey] = rawdata[intKey]
stringKey, intKey = next(QuestieDB.itemKeys, stringKey)
end
end end
local sources = item.Sources local sources = item.Sources
if rawdata[QuestieDB.itemKeys.npcDrops] then if item.npcDrops then
local _npcId, npcId = next(rawdata[QuestieDB.itemKeys.npcDrops]) local _npcId, npcId = next(item.npcDrops)
while _npcId do while _npcId do
table.insert(sources, { table.insert(sources, {
Id = npcId, Id = npcId,
Type = "monster", Type = "monster",
}) })
_npcId, npcId = next(rawdata[QuestieDB.itemKeys.npcDrops], _npcId) _npcId, npcId = next(item.npcDrops, _npcId)
end end
end end
if rawdata[QuestieDB.itemKeys.vendors] then if item.vendors then
local _npcId, npcId = next(rawdata[QuestieDB.itemKeys.vendors]) local _npcId, npcId = next(item.vendors)
while _npcId do while _npcId do
table.insert(sources, { table.insert(sources, {
Id = npcId, Id = npcId,
Type = "monster", Type = "monster",
}) })
_npcId, npcId = next(rawdata[QuestieDB.itemKeys.vendors], _npcId) _npcId, npcId = next(item.vendors, _npcId)
end end
end end
if rawdata[QuestieDB.itemKeys.objectDrops] then if item.objectDrops then
local _k, v = next(rawdata[QuestieDB.itemKeys.objectDrops]) local _k, v = next(item.objectDrops)
while _k do while _k do
table.insert(sources, { table.insert(sources, {
Id = v, Id = v,
Type = "object", Type = "object",
}) })
_k, v = next(rawdata[QuestieDB.itemKeys.objectDrops], _k) _k, v = next(item.objectDrops, _k)
end end
end end
@@ -1355,10 +1380,11 @@ function QuestieDB.GetQuest(questId, ...) -- /dump QuestieDB.GetQuest(867)
if overrideData and rawdata ~= overrideData then if overrideData and rawdata ~= overrideData then
local _sKey, _iKey = next(questKeys) local _sKey, _iKey = next(questKeys)
while _sKey do while _sKey do
if overrideData[_iKey] then local overrideVal = overrideData[_iKey] or overrideData[_sKey]
if overrideVal ~= nil then
if _sKey == "objectives" and QO.objectives then if _sKey == "objectives" and QO.objectives then
-- Merge objectives (index 10) -- Merge objectives
local _objIdx, _objList = next(overrideData[_iKey]) local _objIdx, _objList = next(overrideVal)
while _objIdx do while _objIdx do
if not QO.objectives[_objIdx] then if not QO.objectives[_objIdx] then
QO.objectives[_objIdx] = _objList QO.objectives[_objIdx] = _objList
@@ -1369,10 +1395,10 @@ function QuestieDB.GetQuest(questId, ...) -- /dump QuestieDB.GetQuest(867)
_id, _data = next(_objList, _id) _id, _data = next(_objList, _id)
end end
end end
_objIdx, _objList = next(overrideData[_iKey], _objIdx) _objIdx, _objList = next(overrideVal, _objIdx)
end end
else else
QO[_sKey] = overrideData[_iKey] QO[_sKey] = overrideVal
end end
end end
_sKey, _iKey = next(questKeys, _sKey) _sKey, _iKey = next(questKeys, _sKey)
@@ -1869,13 +1895,10 @@ function QuestieDB:GetNPC(npcId)
end end
local rawdata = QuestieDB.QueryNPC(npcId, QuestieDB._npcAdapterQueryOrder) local rawdata = QuestieDB.QueryNPC(npcId, QuestieDB._npcAdapterQueryOrder)
local override = QuestieDB.npcDataOverrides and (QuestieDB.npcDataOverrides[npcId] or QuestieDB.npcDataOverrides[tostring(npcId)])
if not rawdata and QuestieDB.npcDataOverrides then if not rawdata and not override then
rawdata = QuestieDB.npcDataOverrides[npcId] or QuestieDB.npcDataOverrides[tostring(npcId)] Questie:Debug(Questie.DEBUG_CRITICAL, "[QuestieDB:GetNPC] data not found for npcID:", npcId)
end
if (not rawdata) then
Questie:Debug(Questie.DEBUG_CRITICAL, "[QuestieDB:GetNPC] rawdata is nil for npcID:", npcId)
return nil return nil
end end
@@ -1884,13 +1907,28 @@ function QuestieDB:GetNPC(npcId)
id = npcId, id = npcId,
type = "monster", type = "monster",
} }
local stringKey, intKey = next(npcKeys)
while stringKey do if override then
npc[stringKey] = rawdata[intKey] -- Prefer override data (corrections)
stringKey, intKey = next(npcKeys, stringKey) for stringKey, _ in pairs(npcKeys) do
if override[stringKey] ~= nil then
npc[stringKey] = override[stringKey]
elseif rawdata then
-- Fallback to DB if override is partial
local intKey = npcKeys[stringKey]
npc[stringKey] = rawdata[intKey]
end
end
else
-- Use standard DB data
local stringKey, intKey = next(npcKeys)
while stringKey do
npc[stringKey] = rawdata[intKey]
stringKey, intKey = next(npcKeys, stringKey)
end
end end
local friendlyToFaction = rawdata[npcKeys.friendlyToFaction] local friendlyToFaction = npc.friendlyToFaction
npc.friendly = (not friendlyToFaction) and true or factionReactions[friendlyToFaction] npc.friendly = (not friendlyToFaction) and true or factionReactions[friendlyToFaction]
_QuestieDB.npcCache[npcId] = npc _QuestieDB.npcCache[npcId] = npc
+36 -15
View File
@@ -74,25 +74,31 @@ local function CreateShowHideButton(id)
-- Initialise button -- Initialise button
local button = AceGUI:Create("Button") local button = AceGUI:Create("Button")
button.id = id button.id = id
if (not QuestieMap.manualFrames["any"]) or (not QuestieMap.manualFrames["any"][id]) then
button:SetText(l10n("Show on Map")) button.UpdateState = function(self)
button:SetCallback("OnClick", function(self) self:ShowOnMap(self) end) local isOnMap = false
else
button:SetText(l10n("Remove from Map"))
button:SetCallback("OnClick", function(self) self:RemoveFromMap(self) end)
end
-- Functions for showing/hiding and switching behaviour afterwards
button.RemoveFromMap = function(self)
if self.idsToShow then if self.idsToShow then
for _, spawnId in pairs(self.idsToShow) do for _, spawnId in pairs(self.idsToShow) do
QuestieMap:UnloadManualFrames(spawnId) if QuestieMap.manualFrames["any"] and QuestieMap.manualFrames["any"][spawnId] then
isOnMap = true
break
end
end end
else else
QuestieMap:UnloadManualFrames(self.id) if QuestieMap.manualFrames["any"] and QuestieMap.manualFrames["any"][self.id] then
isOnMap = true
end
end
if not isOnMap then
self:SetText(l10n("Show on Map"))
self:SetCallback("OnClick", function() self:ShowOnMap(self) end)
else
self:SetText(l10n("Remove from Map"))
self:SetCallback("OnClick", function() self:RemoveFromMap(self) end)
end end
self:SetText(l10n("Show on Map"))
self:SetCallback("OnClick", function() self:ShowOnMap(self) end)
end end
button.ShowOnMap = function(self) button.ShowOnMap = function(self)
if self.idsToShow then if self.idsToShow then
for _, spawnId in pairs(self.idsToShow) do for _, spawnId in pairs(self.idsToShow) do
@@ -109,9 +115,21 @@ local function CreateShowHideButton(id)
QuestieMap:ShowObject(-self.id) QuestieMap:ShowObject(-self.id)
end end
end end
self:SetText(l10n("Remove from Map")) self:UpdateState()
self:SetCallback("OnClick", function() self:RemoveFromMap(self) end)
end end
button.RemoveFromMap = function(self)
if self.idsToShow then
for _, spawnId in pairs(self.idsToShow) do
QuestieMap:UnloadManualFrames(spawnId)
end
else
QuestieMap:UnloadManualFrames(self.id)
end
self:UpdateState()
end
button:UpdateState()
return button return button
end end
@@ -504,6 +522,7 @@ function QuestieSearchResults:ItemDetailsFrame(f, itemId)
if (#npcIdsWithSpawns > 0) then if (#npcIdsWithSpawns > 0) then
local showHideButton = CreateShowHideButton(itemId) local showHideButton = CreateShowHideButton(itemId)
showHideButton.idsToShow = npcIdsWithSpawns showHideButton.idsToShow = npcIdsWithSpawns
showHideButton:UpdateState()
f:AddChild(showHideButton) f:AddChild(showHideButton)
end end
end end
@@ -534,6 +553,7 @@ function QuestieSearchResults:ItemDetailsFrame(f, itemId)
if (#objectIdsWithSpawns > 0) then if (#objectIdsWithSpawns > 0) then
local showHideButton = CreateShowHideButton(itemId) local showHideButton = CreateShowHideButton(itemId)
showHideButton.idsToShow = objectIdsWithSpawns showHideButton.idsToShow = objectIdsWithSpawns
showHideButton:UpdateState()
f:AddChild(showHideButton) f:AddChild(showHideButton)
end end
end end
@@ -565,6 +585,7 @@ function QuestieSearchResults:ItemDetailsFrame(f, itemId)
if (#vendorIdsWithSpawns > 0) then if (#vendorIdsWithSpawns > 0) then
local showHideButton = CreateShowHideButton(itemId) local showHideButton = CreateShowHideButton(itemId)
showHideButton.idsToShow = vendorIdsWithSpawns showHideButton.idsToShow = vendorIdsWithSpawns
showHideButton:UpdateState()
f:AddChild(showHideButton) f:AddChild(showHideButton)
end end
end end
@@ -100,6 +100,26 @@ function QuestieOptions.tabs.credits:Initialize()
}, },
}, },
}, },
test_support_group = {
type = "group",
order = 7,
inline = true,
name = function() return l10n('Test & Support'); end,
args = {
test_support = {
type = "description",
order = 1,
name = function() return 'Dee, Maxine, Disarrayed'; end,
fontSize = "medium",
},
test_support_servers = {
type = "description",
order = 2,
name = function() return 'Project Ebonhold & Project Ascension communities'; end,
fontSize = "medium",
},
},
},
}, },
} }
end end
+1 -1
View File
@@ -11,7 +11,7 @@
## Notes-esES: Ayundante de misión ## Notes-esES: Ayundante de misión
## Notes-ptBR: Ajudante de missão ## Notes-ptBR: Ajudante de missão
## Notes-frFR: Assistant de quête ## Notes-frFR: Assistant de quête
## Version: 1.5.5 ## Version: 1.6.0
## OptionalDeps: Ace3, CallbackHandler-1.0, HereBeDragons, LibDataBroker-1.1, LibDBIcon-1.0, LibSharedMedia-3.0, LibStub, LibUIDropDownMenu, Questie-X-WotLKDB, Questie-X-ClassicDB, Questie-X-TBCDB, Questie-X-TurtleDB, Questie-X-AscensionDB, Questie-X-EbonholdDB ## OptionalDeps: Ace3, CallbackHandler-1.0, HereBeDragons, LibDataBroker-1.1, LibDBIcon-1.0, LibSharedMedia-3.0, LibStub, LibUIDropDownMenu, Questie-X-WotLKDB, Questie-X-ClassicDB, Questie-X-TBCDB, Questie-X-TurtleDB, Questie-X-AscensionDB, Questie-X-EbonholdDB
## SavedVariables: QuestieConfig, QuestieLearnerDB, QuestieCacheDB, QuestieJourneyDB ## SavedVariables: QuestieConfig, QuestieLearnerDB, QuestieCacheDB, QuestieJourneyDB
## SavedVariablesPerCharacter: QuestieConfigCharacter ## SavedVariablesPerCharacter: QuestieConfigCharacter
+56 -1
View File
@@ -169,13 +169,68 @@
<h1>Questie-X Documentation</h1> <h1>Questie-X Documentation</h1>
<p class="subtitle">Complete history of changes, fixes, and additions.</p> <p class="subtitle">Complete history of changes, fixes, and additions.</p>
<div style="display: flex; justify-content: center; gap: 10px;"> <div style="display: flex; justify-content: center; gap: 10px;">
<code>Version: v1.5.5</code> <code>Version: v1.6.0</code>
<a href="index.html" <a href="index.html"
style="background: var(--bg-tertiary); color: var(--accent-blue); text-decoration: none; padding: 2px 6px; border-radius: 4px; font-size: 0.9em; border: 1px solid var(--border-color);">&larr; Back to Documentation</a> style="background: var(--bg-tertiary); color: var(--accent-blue); text-decoration: none; padding: 2px 6px; border-radius: 4px; font-size: 0.9em; border: 1px solid var(--border-color);">&larr; Back to Documentation</a>
</div> </div>
</div> </div>
<div class="container"> <div class="container">
<h2 id="v160">v1.6.0 &mdash; Map Search &amp; Data Integrity</h2>
<ul>
<li><strong>[Fix &mdash; Map Search DB]</strong> Resolved a critical database issue where objects and NPCs searched via Advanced Search failed to display all available spawn locations.
<ul>
<li><strong>Override Prioritization</strong>: Refactored <code>QuestieDB:GetObject</code>, <code>GetNPC</code>, and <code>GetItem</code> to prioritize manual corrections (overrides) over the compiled database. This ensures human-verified data is always used when available.</li>
<li><strong>Data Compatibility</strong>: Hardened the database engine to support both integer and string-based indexing, preventing <code>nil</code> errors on legacy clients while maintaining performance.</li>
</ul>
</li>
<li><strong>[Fix &mdash; Object Spawn Data]</strong> Restored missing "Blood of Heroes" (ID 176213) spawn locations.
<ul>
<li><strong>Data Merge</strong>: Integrated 150+ verified spawn locations from both the Classic database and Wowhead scraping into the WotLK module.</li>
<li><strong>Deduplication</strong>: Sanitized coordinate data to remove duplicate pins, providing a cleaner map interface for high-density spawns in Plaguelands.</li>
</ul>
</li>
<li><strong>[UI &mdash; Search Experience]</strong> Improved the Advanced Search results interface.
<ul>
<li><strong>Dynamic Button States</strong>: Fixed the "Show on Map" button state management to correctly toggle to "Remove from Map" when pins are active.</li>
<li><strong>Stability</strong>: Removed experimental rendering logic that caused regressions with standard quest objective icons.</li>
</ul>
</li>
</ul>
<hr>
<h2 id="v159">v1.5.9 &mdash; Combat Hardening &amp; NPC Mapping</h2>
<ul>
<li><strong>[Fix &mdash; QuestieQuest Crash]</strong> Resolved a high-frequency crash involving "Water Revenant" (30877) and other entities handled via the <code>QuestieQuest:killcredit</code> path.</li>
<li><strong>[Fix &mdash; Error Handling]</strong> Replaced legacy <code>debugstack()</code> calls in <code>ERR_FUNCTION</code> with <code>Questie:Error</code>. This prevents the error handler from causing secondary crashes when generating stacks on older WoW clients.</li>
<li><strong>[Fix &mdash; NPC Mapping]</strong> Fixed a variable shadowing issue in the combat tracker that caused NPC mapping logic to fail during rapid kill-credit updates.</li>
</ul>
<hr>
<h2 id="v158">v1.5.8 &mdash; Expanded Font Customization</h2>
<ul>
<li><strong>[Feature &mdash; Arrow Font Selection]</strong> Added dedicated font family and size customization for the Waypoint Arrow. Supports all <code>LibSharedMedia-3.0</code> registered fonts.</li>
<li><strong>[Feature &mdash; Tracker Font Controls]</strong> Added "Apply to All" buttons for Quest Tracker headers and objectives, allowing users to synchronize font styles across the entire tracker interface instantly.</li>
<li><strong>[Fix &mdash; LibSharedMedia Iteration]</strong> Fixed a bug where font lists appeared empty on certain locales by switching from <code>ipairs</code> to <code>pairs</code> for <code>SharedMedia</code> hash-table iteration.</li>
<li><strong>[Fix &mdash; Real-time Options]</strong> Refactored arrow position, scale, and alpha sliders to apply changes in real-time without requiring a UI reload.</li>
</ul>
<hr>
<h2 id="v157">v1.5.7 &mdash; Ace3 Shim &amp; Load Prioritization</h2>
<ul>
<li><strong>[Fix &mdash; Options Crash]</strong> Resolved a <code>nil</code> value error in <code>AddToBlizOptions</code> affecting 3.3.5a clients.
<ul>
<li><strong>Compatibility Shim</strong>: Implemented an <code>AceConfigDialog-3.0</code> shim in <code>!X-Libs</code> to correctly bridge modern Ace3 options calls to the legacy 3.3.5a <code>InterfaceOptions_AddCategory</code> API.</li>
</ul>
</li>
<li><strong>[Stability &mdash; Load Order]</strong> Updated <code>Questie-X.toc</code> and <code>!X-Libs</code> to ensure the compatibility suite initializes before <code>BugSack</code> and other diagnostic tools, preventing interleaved error reporting.</li>
</ul>
<hr>
<h2 id="v155">v1.5.5 &mdash; Performance &amp; Stability</h2> <h2 id="v155">v1.5.5 &mdash; Performance &amp; Stability</h2>
<ul> <ul>
<li><strong>[Performance &mdash; Position Caching]</strong> Implemented a 50ms cache for <code>GetPlayerWorldPosition</code> and <code>GetPlayerZonePosition</code> in <code>Compat/HBD.lua</code>. This drastically reduces C API overhead which was the #1 hotspot, with automatic cache invalidation on zone transitions.</li> <li><strong>[Performance &mdash; Position Caching]</strong> Implemented a 50ms cache for <code>GetPlayerWorldPosition</code> and <code>GetPlayerZonePosition</code> in <code>Compat/HBD.lua</code>. This drastically reduces C API overhead which was the #1 hotspot, with automatic cache invalidation on zone transitions.</li>
+87
View File
@@ -0,0 +1,87 @@
Checking c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua 83 warnings
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:2:21: accessing undefined variable 'QuestieLoader'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:7:19: accessing undefined variable 'QuestieLoader'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:9:20: accessing undefined variable 'QuestieLoader'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:11:23: accessing undefined variable 'QuestieLoader'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:13:22: accessing undefined variable 'QuestieLoader'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:15:14: accessing undefined variable 'QuestieLoader'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:18:22: accessing undefined variable 'QuestieCompat'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:19:32: accessing undefined variable 'QuestieCompat'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:20:39: accessing undefined variable 'QuestieCompat'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:25:121: line is too long (144 > 120)
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:29:29: accessing undefined variable 'ItemRefTooltip'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:32:10: mutating non-standard global variable 'ItemRefTooltip'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:36:13: accessing undefined variable 'ItemRefTooltip'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:43:9: accessing undefined variable 'Questie'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:43:23: accessing undefined variable 'Questie'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:44:9: accessing undefined variable 'ShowUIPanel'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:44:21: accessing undefined variable 'ItemRefTooltip'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:45:9: accessing undefined variable 'ItemRefTooltip'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:45:33: accessing undefined variable 'UIParent'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:47:9: accessing undefined variable 'ItemRefTooltip'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:49:29: accessing undefined variable 'ItemRefTooltipTextLeft1'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:51:13: accessing undefined variable 'ItemRefTooltip'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:65:21: unused argument 'self'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:72:21: unused argument 'self'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:76:8: accessing undefined variable 'Questie'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:84:21: unused argument 'self'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:85:70: accessing undefined variable 'Questie'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:85:121: line is too long (123 > 120)
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:95:22: accessing undefined variable 'UnitGUID'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:98:121: line is too long (347 > 120)
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:101:21: unused argument 'self'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:105:38: accessing undefined variable 'strsplit'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:127:5: accessing undefined variable 'ItemRefTooltip'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:134:12: accessing undefined variable 'Questie'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:135:5: accessing undefined variable 'ItemRefTooltip'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:146:8: accessing undefined variable 'Questie'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:146:53: accessing undefined variable 'Questie'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:148:12: accessing undefined variable 'Questie'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:148:62: accessing undefined variable 'Questie'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:150:12: accessing undefined variable 'Questie'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:150:62: accessing undefined variable 'Questie'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:163:25: accessing undefined variable 'Questie'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:165:25: accessing undefined variable 'Questie'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:173:12: accessing undefined variable 'Questie'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:175:13: accessing undefined variable 'UnitLevel'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:175:103: accessing undefined variable 'Questie'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:175:121: line is too long (140 > 120)
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:194:121: line is too long (133 > 120)
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:199:85: accessing undefined variable 'Questie'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:199:121: line is too long (124 > 120)
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:322:121: line is too long (125 > 120)
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:329:60: accessing undefined variable 'Questie'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:333:60: accessing undefined variable 'Questie'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:338:12: accessing undefined variable 'Questie'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:339:16: accessing undefined variable 'Questie'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:341:29: accessing undefined variable 'Questie'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:342:24: accessing undefined variable 'Questie'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:342:68: accessing undefined variable 'Questie'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:343:47: accessing undefined variable 'date'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:343:58: accessing undefined variable 'Questie'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:344:70: accessing undefined variable 'date'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:344:81: accessing undefined variable 'Questie'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:344:121: line is too long (124 > 120)
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:345:79: accessing undefined variable 'date'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:345:90: accessing undefined variable 'Questie'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:345:121: line is too long (129 > 120)
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:346:37: accessing undefined variable 'Questie'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:346:54: accessing undefined variable 'date'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:346:119: accessing undefined variable 'Questie'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:346:121: line is too long (164 > 120)
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:359:62: accessing undefined variable 'Questie'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:362:60: accessing undefined variable 'Questie'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:368:1: accessing undefined variable 'hooksecurefunc'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:370:8: accessing undefined variable 'InCombatLockdown'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:372:9: accessing undefined variable 'IsShiftKeyDown'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:372:30: accessing undefined variable 'ChatEdit_GetActiveWindow'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:373:38: accessing undefined field 'split' of global 'string'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:375:13: accessing undefined variable 'Questie'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:375:27: accessing undefined variable 'Questie'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:375:121: line is too long (121 > 120)
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:380:29: accessing undefined variable 'ChatFrame1EditBox'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:382:21: accessing undefined variable 'ChatFrame1EditBox'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:383:21: accessing undefined variable 'ChatEdit_InsertLink'
Total: 83 warnings / 0 errors in 1 file
+118
View File
@@ -0,0 +1,118 @@
Checking c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\ChatFilter.lua 28 warnings
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\ChatFilter.lua:2:20: accessing undefined variable 'QuestieLoader'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\ChatFilter.lua:4:21: accessing undefined variable 'QuestieLoader'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\ChatFilter.lua:6:19: accessing undefined variable 'QuestieLoader'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\ChatFilter.lua:14:121: line is too long (204 > 120)
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\ChatFilter.lua:15:13: accessing undefined variable 'Questie'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\ChatFilter.lua:20:100: accessing undefined variable 'QuestieCompat'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\ChatFilter.lua:20:121: line is too long (155 > 120)
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\ChatFilter.lua:36:38: accessing undefined variable 'BNGetFriendInfoByID'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\ChatFilter.lua:78:121: line is too long (182 > 120)
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\ChatFilter.lua:83:20: unused argument 'self'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\ChatFilter.lua:86:5: accessing undefined variable 'ChatFrame_AddMessageEventFilter'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\ChatFilter.lua:87:5: accessing undefined variable 'ChatFrame_AddMessageEventFilter'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\ChatFilter.lua:90:5: accessing undefined variable 'ChatFrame_AddMessageEventFilter'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\ChatFilter.lua:91:5: accessing undefined variable 'ChatFrame_AddMessageEventFilter'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\ChatFilter.lua:92:5: accessing undefined variable 'ChatFrame_AddMessageEventFilter'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\ChatFilter.lua:95:5: accessing undefined variable 'ChatFrame_AddMessageEventFilter'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\ChatFilter.lua:96:5: accessing undefined variable 'ChatFrame_AddMessageEventFilter'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\ChatFilter.lua:99:5: accessing undefined variable 'ChatFrame_AddMessageEventFilter'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\ChatFilter.lua:100:5: accessing undefined variable 'ChatFrame_AddMessageEventFilter'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\ChatFilter.lua:103:5: accessing undefined variable 'ChatFrame_AddMessageEventFilter'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\ChatFilter.lua:104:5: accessing undefined variable 'ChatFrame_AddMessageEventFilter'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\ChatFilter.lua:107:5: accessing undefined variable 'ChatFrame_AddMessageEventFilter'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\ChatFilter.lua:108:5: accessing undefined variable 'ChatFrame_AddMessageEventFilter'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\ChatFilter.lua:109:5: accessing undefined variable 'ChatFrame_AddMessageEventFilter'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\ChatFilter.lua:112:5: accessing undefined variable 'ChatFrame_AddMessageEventFilter'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\ChatFilter.lua:113:5: accessing undefined variable 'ChatFrame_AddMessageEventFilter'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\ChatFilter.lua:114:5: accessing undefined variable 'ChatFrame_AddMessageEventFilter'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\ChatFilter.lua:117:5: accessing undefined variable 'ChatFrame_AddMessageEventFilter'
Checking c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua 83 warnings
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:2:21: accessing undefined variable 'QuestieLoader'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:7:19: accessing undefined variable 'QuestieLoader'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:9:20: accessing undefined variable 'QuestieLoader'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:11:23: accessing undefined variable 'QuestieLoader'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:13:22: accessing undefined variable 'QuestieLoader'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:15:14: accessing undefined variable 'QuestieLoader'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:18:22: accessing undefined variable 'QuestieCompat'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:19:32: accessing undefined variable 'QuestieCompat'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:20:39: accessing undefined variable 'QuestieCompat'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:25:121: line is too long (144 > 120)
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:29:29: accessing undefined variable 'ItemRefTooltip'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:32:10: mutating non-standard global variable 'ItemRefTooltip'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:36:13: accessing undefined variable 'ItemRefTooltip'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:43:9: accessing undefined variable 'Questie'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:43:23: accessing undefined variable 'Questie'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:44:9: accessing undefined variable 'ShowUIPanel'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:44:21: accessing undefined variable 'ItemRefTooltip'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:45:9: accessing undefined variable 'ItemRefTooltip'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:45:33: accessing undefined variable 'UIParent'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:47:9: accessing undefined variable 'ItemRefTooltip'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:49:29: accessing undefined variable 'ItemRefTooltipTextLeft1'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:51:13: accessing undefined variable 'ItemRefTooltip'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:65:21: unused argument 'self'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:72:21: unused argument 'self'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:76:8: accessing undefined variable 'Questie'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:84:21: unused argument 'self'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:85:70: accessing undefined variable 'Questie'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:85:121: line is too long (123 > 120)
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:95:22: accessing undefined variable 'UnitGUID'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:98:121: line is too long (347 > 120)
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:101:21: unused argument 'self'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:105:38: accessing undefined variable 'strsplit'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:127:5: accessing undefined variable 'ItemRefTooltip'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:134:12: accessing undefined variable 'Questie'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:135:5: accessing undefined variable 'ItemRefTooltip'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:146:8: accessing undefined variable 'Questie'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:146:53: accessing undefined variable 'Questie'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:148:12: accessing undefined variable 'Questie'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:148:62: accessing undefined variable 'Questie'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:150:12: accessing undefined variable 'Questie'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:150:62: accessing undefined variable 'Questie'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:163:25: accessing undefined variable 'Questie'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:165:25: accessing undefined variable 'Questie'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:173:12: accessing undefined variable 'Questie'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:175:13: accessing undefined variable 'UnitLevel'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:175:103: accessing undefined variable 'Questie'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:175:121: line is too long (140 > 120)
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:194:121: line is too long (133 > 120)
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:199:85: accessing undefined variable 'Questie'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:199:121: line is too long (124 > 120)
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:322:121: line is too long (125 > 120)
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:329:60: accessing undefined variable 'Questie'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:333:60: accessing undefined variable 'Questie'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:338:12: accessing undefined variable 'Questie'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:339:16: accessing undefined variable 'Questie'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:341:29: accessing undefined variable 'Questie'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:342:24: accessing undefined variable 'Questie'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:342:68: accessing undefined variable 'Questie'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:343:47: accessing undefined variable 'date'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:343:58: accessing undefined variable 'Questie'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:344:70: accessing undefined variable 'date'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:344:81: accessing undefined variable 'Questie'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:344:121: line is too long (124 > 120)
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:345:79: accessing undefined variable 'date'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:345:90: accessing undefined variable 'Questie'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:345:121: line is too long (129 > 120)
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:346:37: accessing undefined variable 'Questie'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:346:54: accessing undefined variable 'date'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:346:119: accessing undefined variable 'Questie'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:346:121: line is too long (164 > 120)
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:359:62: accessing undefined variable 'Questie'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:362:60: accessing undefined variable 'Questie'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:368:1: accessing undefined variable 'hooksecurefunc'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:370:8: accessing undefined variable 'InCombatLockdown'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:372:9: accessing undefined variable 'IsShiftKeyDown'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:372:30: accessing undefined variable 'ChatEdit_GetActiveWindow'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:373:38: accessing undefined field 'split' of global 'string'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:375:13: accessing undefined variable 'Questie'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:375:27: accessing undefined variable 'Questie'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:375:121: line is too long (121 > 120)
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:380:29: accessing undefined variable 'ChatFrame1EditBox'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:382:21: accessing undefined variable 'ChatFrame1EditBox'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\Link.lua:383:21: accessing undefined variable 'ChatEdit_InsertLink'
Total: 111 warnings / 0 errors in 2 files
+32
View File
@@ -0,0 +1,32 @@
Checking c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\ChatFilter.lua 28 warnings
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\ChatFilter.lua:2:20: accessing undefined variable 'QuestieLoader'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\ChatFilter.lua:4:21: accessing undefined variable 'QuestieLoader'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\ChatFilter.lua:6:19: accessing undefined variable 'QuestieLoader'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\ChatFilter.lua:14:121: line is too long (204 > 120)
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\ChatFilter.lua:15:13: accessing undefined variable 'Questie'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\ChatFilter.lua:20:100: accessing undefined variable 'QuestieCompat'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\ChatFilter.lua:20:121: line is too long (155 > 120)
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\ChatFilter.lua:36:38: accessing undefined variable 'BNGetFriendInfoByID'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\ChatFilter.lua:78:121: line is too long (182 > 120)
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\ChatFilter.lua:83:20: unused argument 'self'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\ChatFilter.lua:86:5: accessing undefined variable 'ChatFrame_AddMessageEventFilter'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\ChatFilter.lua:87:5: accessing undefined variable 'ChatFrame_AddMessageEventFilter'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\ChatFilter.lua:90:5: accessing undefined variable 'ChatFrame_AddMessageEventFilter'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\ChatFilter.lua:91:5: accessing undefined variable 'ChatFrame_AddMessageEventFilter'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\ChatFilter.lua:92:5: accessing undefined variable 'ChatFrame_AddMessageEventFilter'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\ChatFilter.lua:95:5: accessing undefined variable 'ChatFrame_AddMessageEventFilter'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\ChatFilter.lua:96:5: accessing undefined variable 'ChatFrame_AddMessageEventFilter'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\ChatFilter.lua:99:5: accessing undefined variable 'ChatFrame_AddMessageEventFilter'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\ChatFilter.lua:100:5: accessing undefined variable 'ChatFrame_AddMessageEventFilter'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\ChatFilter.lua:103:5: accessing undefined variable 'ChatFrame_AddMessageEventFilter'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\ChatFilter.lua:104:5: accessing undefined variable 'ChatFrame_AddMessageEventFilter'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\ChatFilter.lua:107:5: accessing undefined variable 'ChatFrame_AddMessageEventFilter'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\ChatFilter.lua:108:5: accessing undefined variable 'ChatFrame_AddMessageEventFilter'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\ChatFilter.lua:109:5: accessing undefined variable 'ChatFrame_AddMessageEventFilter'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\ChatFilter.lua:112:5: accessing undefined variable 'ChatFrame_AddMessageEventFilter'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\ChatFilter.lua:113:5: accessing undefined variable 'ChatFrame_AddMessageEventFilter'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\ChatFilter.lua:114:5: accessing undefined variable 'ChatFrame_AddMessageEventFilter'
c:\Users\kance\Documents\GitHub\Questie-X\Modules\QuestLinks\ChatFilter.lua:117:5: accessing undefined variable 'ChatFrame_AddMessageEventFilter'
Total: 28 warnings / 0 errors in 1 file
+14
View File
@@ -0,0 +1,14 @@
CHANGELOG.md:23: ## v1.5.4 (2026-03-29)
Questie-X-Classic.toc:2: ## Title: |cFF5EBAF3Questie|r|cFFDAFAFD-X|r-Classic|cFF00FF00 v1.5.4|r
Questie-X-Classic.toc:8: ## Version: 1.5.3
Questie-X-TBC.toc:2: ## Title: |cFF5EBAF3Questie|r|cFFDAFAFD-X|r-TBC|cFF00FF00 v1.5.4|r
Questie-X-TBC.toc:8: ## Version: 1.5.3
Questie-X-Turtle.toc:2: ## Title: |cFF5EBAF3Questie|r|cFFDAFAFD-X|r-Turtle|cFF00FF00 v1.5.4|r
Questie-X-Turtle.toc:8: ## Version: 1.5.3
Questie-X.toc:14: ## Version: 1.5.4
README.md:5: ![Version](https://img.shields.io/badge/Questie--X-v1.5.4-blue.svg?style=for-the-badge)
docs\changelog.html:172: <code>Version: v1.5.4</code>
docs\changelog.html:179: <h2 id="v153">v1.5.4 &mdash; Dedicated Keybinds Tab</h2>
docs\index.html:213: <code>Version: v1.5.4</code>
---
Total: 12