coa.17: comprehensive partial-data hardening + DataStore_Characters login scan + Skills strip cap
release / release (push) Successful in 5s
release / release (push) Successful in 5s
- Hardening sweep across DataStore_* (softened crash-asserts in Talents/Containers/Quests to graceful nil) + Altoholic frames (guarded remaining getter results). - DataStore_Characters: scan on login (was ghost-gated -> name/level/class never populated; the core 'no character data' cause). - Skills tab: cap inline professions at 6 (+N) so the strip stops overflowing into Cooking.
This commit is contained in:
@@ -25,9 +25,9 @@ local PrimaryLevelSort = { -- sort functions for the mains
|
||||
end
|
||||
end,
|
||||
["level"] = function(a, b)
|
||||
local levelA = select(4, DataStore:GetGuildMemberInfo(a.name))
|
||||
local levelB = select(4, DataStore:GetGuildMemberInfo(b.name))
|
||||
|
||||
local levelA = select(4, DataStore:GetGuildMemberInfo(a.name)) or 0 -- CoA: nil level on partial guild data crashed table.sort
|
||||
local levelB = select(4, DataStore:GetGuildMemberInfo(b.name)) or 0
|
||||
|
||||
if viewSortOrder then
|
||||
return levelA < levelB
|
||||
else
|
||||
@@ -76,9 +76,9 @@ local SecondaryLevelSort = {-- sort functions for the alts
|
||||
end
|
||||
end,
|
||||
["level"] = function(a, b)
|
||||
local levelA = select(4, DataStore:GetGuildMemberInfo(a))
|
||||
local levelB = select(4, DataStore:GetGuildMemberInfo(b))
|
||||
|
||||
local levelA = select(4, DataStore:GetGuildMemberInfo(a)) or 0 -- CoA: nil level on partial guild data crashed table.sort
|
||||
local levelB = select(4, DataStore:GetGuildMemberInfo(b)) or 0
|
||||
|
||||
if viewSortOrder then
|
||||
return levelA < levelB
|
||||
else
|
||||
@@ -199,6 +199,7 @@ local function DisplayProfessionLink(frameName, member, index)
|
||||
local icon = addon:TextureToFontstring(addon:GetSpellIcon(tonumber(spellID)), 18, 18) .. " "
|
||||
if link then
|
||||
local curRank, maxRank = DataStore:GetProfessionInfo(link)
|
||||
curRank, maxRank = curRank or 0, maxRank or 0 -- CoA: GetProfessionInfo returns nil if the link doesn't match the trade pattern
|
||||
local ts = addon.TradeSkills
|
||||
text:SetText(icon .. ts:GetColor(curRank) .. curRank .. "/" .. maxRank)
|
||||
else
|
||||
@@ -350,7 +351,8 @@ function ns:OnEnter(self)
|
||||
if not spellID or not link then return end
|
||||
|
||||
local curRank, maxRank = DataStore:GetProfessionInfo(link)
|
||||
|
||||
curRank, maxRank = curRank or 0, maxRank or 0 -- CoA: nil ranks when link doesn't match trade pattern; guard concat below
|
||||
|
||||
AltoTooltip:ClearLines();
|
||||
AltoTooltip:SetOwner(self, "ANCHOR_RIGHT");
|
||||
|
||||
|
||||
Reference in New Issue
Block a user