fix: nil-guard GetChannelName, GetGuildRosterInfo, InterfaceOptions* on CoA client
PlayerNames.lua:94 - GetChannelName can return nil on the CoA-Beta client
when the active channel target is not joined; capture into a local and
fall back to empty string instead of chaining :lower() on nil.
PlayerNames.lua:344 - GetGuildRosterInfo(i) returns nil name/class on
this client (same family as the AltNames.lua fix in 1c4a7e8). Skip the
iteration when name is nil to avoid indexing channels.GUILD[nil] and
passing nil into AddPlayer.
Chatter.lua:204 OpenConfig and Chatter.lua:21 inline func - the Blizzard
InterfaceOptionsFrame globals are absent on CoA-Beta, so calling
IsResizable() or InterfaceOptionsFrame_OpenToCategory() throws. Guard
both call sites and fall back to opening the standalone AceConfigDialog
window.
ChatScroll.lua:53 - InterfaceOptionsSocialPanelChatMouseScroll_SetScrolling
is also missing on this client; only hook it when the global exists,
otherwise AceHook errors out at OnInitialize.
This commit is contained in:
+20
-11
@@ -19,9 +19,14 @@ local options = {
|
||||
name = L["Standalone Config"],
|
||||
desc = L["Open a standalone config window. You might consider installing |cffffff00BetterBlizzOptions|r to make the Blizzard UI options panel resizable."],
|
||||
func = function()
|
||||
InterfaceOptionsFrame:Hide()
|
||||
AceConfigDialog:SetDefaultSize("Chatter", 500, 550)
|
||||
AceConfigDialog:Open("Chatter")
|
||||
if InterfaceOptionsFrame and InterfaceOptionsFrame_OpenToCategory then
|
||||
InterfaceOptionsFrame:Hide()
|
||||
AceConfigDialog:SetDefaultSize("Chatter", 500, 550)
|
||||
AceConfigDialog:Open("Chatter")
|
||||
else
|
||||
AceConfigDialog:SetDefaultSize("Chatter", 500, 550)
|
||||
AceConfigDialog:Open("Chatter")
|
||||
end
|
||||
end
|
||||
}
|
||||
}
|
||||
@@ -202,15 +207,19 @@ function Chatter:FCF_OpenTemporaryWindow(chatType, chatTarget, sourceChatFrame,
|
||||
end
|
||||
|
||||
function Chatter:OpenConfig(input)
|
||||
if input == "config" or not InterfaceOptionsFrame:IsResizable() then
|
||||
options.args.defaultArgs.guiHidden = true
|
||||
InterfaceOptionsFrame:Hide()
|
||||
AceConfigDialog:SetDefaultSize("Chatter", 500, 550)
|
||||
AceConfigDialog:Open("Chatter")
|
||||
if InterfaceOptionsFrame and InterfaceOptionsFrame_OpenToCategory then
|
||||
if input == "config" or not InterfaceOptionsFrame:IsResizable() then
|
||||
options.args.defaultArgs.guiHidden = true
|
||||
InterfaceOptionsFrame:Hide()
|
||||
AceConfigDialog:SetDefaultSize("Chatter", 500, 550)
|
||||
AceConfigDialog:Open("Chatter")
|
||||
else
|
||||
InterfaceOptionsFrame_OpenToCategory(Chatter.lastConfig)
|
||||
options.args.defaultArgs.guiHidden = false
|
||||
InterfaceOptionsFrame_OpenToCategory(optFrame)
|
||||
end
|
||||
else
|
||||
InterfaceOptionsFrame_OpenToCategory(Chatter.lastConfig)
|
||||
options.args.defaultArgs.guiHidden = false
|
||||
InterfaceOptionsFrame_OpenToCategory(optFrame)
|
||||
LibStub("AceConfigDialog-3.0"):Open("Chatter")
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
Reference in New Issue
Block a user