Fix critical LUA crash in QuestLinks due to nil concatenation and invalid chat link matching
This commit is contained in:
@@ -1,5 +1,12 @@
|
|||||||
# Changelog
|
# Changelog
|
||||||
|
|
||||||
|
## v1.5.8 (2026-04-07)
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
|
|
||||||
|
- **[Fix — QuestLink Crash]** Resolved a critical LUA error in `Link.lua`: `attempt to concatenate local 'coloredQuestName' (a nil value)`. This was caused by the `ChatFilter` misidentifying non-quest bracketed patterns (like Keystone links `[Name (ID)]`) as quests. Added a defensive nil guard in `GetQuestHyperLink` and hardened the `ChatFilter` to verify quest names exist before attempting string replacement.
|
||||||
|
|
||||||
|
|
||||||
## Questie-X - Expanded Font Selection
|
## Questie-X - Expanded Font Selection
|
||||||
|
|
||||||
### New Features
|
### New Features
|
||||||
|
|||||||
@@ -39,8 +39,9 @@ ChatFilter.Filter = function(chatFrame, _, msg, playerName, languageName, channe
|
|||||||
|
|
||||||
local questLink = QuestieLink:GetQuestHyperLink(questId, senderGUID)
|
local questLink = QuestieLink:GetQuestHyperLink(questId, senderGUID)
|
||||||
|
|
||||||
-- Escape the magic characters
|
if questLink then
|
||||||
local function escapeMagic(toEsc)
|
-- Escape the magic characters
|
||||||
|
local function escapeMagic(toEsc)
|
||||||
return (toEsc
|
return (toEsc
|
||||||
:gsub("%%", "%%%%")
|
:gsub("%%", "%%%%")
|
||||||
:gsub("^%^", "%%^")
|
:gsub("^%^", "%%^")
|
||||||
|
|||||||
@@ -83,6 +83,11 @@ end
|
|||||||
---@return string
|
---@return string
|
||||||
function QuestieLink:GetQuestHyperLink(questId, senderGUID)
|
function QuestieLink:GetQuestHyperLink(questId, senderGUID)
|
||||||
local coloredQuestName = QuestieLib:GetColoredQuestName(questId, Questie.db.profile.trackerShowQuestLevel, true, false)
|
local coloredQuestName = QuestieLib:GetColoredQuestName(questId, Questie.db.profile.trackerShowQuestLevel, true, false)
|
||||||
|
|
||||||
|
if not coloredQuestName then
|
||||||
|
return nil
|
||||||
|
end
|
||||||
|
|
||||||
local questLevel, _ = QuestieLib.GetTbcLevel(questId)
|
local questLevel, _ = QuestieLib.GetTbcLevel(questId)
|
||||||
local isRepeatable = QuestieDB.IsRepeatable(questId)
|
local isRepeatable = QuestieDB.IsRepeatable(questId)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user