Initial commit: Chatter v1.2.11 (Curse package)

This commit is contained in:
2026-05-22 22:11:46 +02:00
commit 77ee87198c
49 changed files with 9519 additions and 0 deletions
+114
View File
@@ -0,0 +1,114 @@
local mod = Chatter:NewModule("Channel Colors", "AceEvent-3.0")
local L = LibStub("AceLocale-3.0"):GetLocale("Chatter")
mod.modName = L["Channel Colors"]
local GetChannelList = _G.GetChannelList
local GetChannelName = _G.GetChannelName
local GetMessageTypeColor = _G.GetMessageTypeColor
local select = _G.select
local tonumber = _G.tonumber
local type = _G.type
function mod:Info()
return L["Keeps your channel colors by name rather than by number."]
end
local defaults = {
profile = { colors = {} }
}
local options = {
splitter = {
type = "header",
name = L["Other Channels"],
order = 49
}
}
function mod:OnInitialize()
self.db = Chatter.db:RegisterNamespace("ChannelColors", defaults)
end
function mod:OnEnable()
self:RegisterEvent("UPDATE_CHAT_COLOR")
self:RegisterEvent("CHAT_MSG_CHANNEL_NOTICE")
self:AddChannels(GetChannelList())
self:AddChannels(
"SAY", L["Say"],
"YELL", L["Yell"],
"GUILD", L["Guild"],
"OFFICER", L["Officer"],
"PARTY", L["Party"],
"PARTY_LEADER", PARTY_LEADER,
"RAID", L["Raid"],
"RAID_LEADER", L["Raid Leader"],
"RAID_WARNING", L["Raid Warning"],
"BATTLEGROUND", L["Battleground"],
"BATTLEGROUND_LEADER", L["Battleground Leader"],
"WHISPER", L["Whisper"],
"BN_WHISPER", L["RealID Whisper"],
"BN_CONVERSATION", L["RealID Conversation"]
)
end
function mod:AddChannels(...)
for i = 1, select("#", ...), 2 do
local id, name = select(i, ...)
self.db.profile.colors[name] = self.db.profile.colors[name] or {}
if not self.db.profile.colors[name].r then
local r, g, b = GetMessageTypeColor(type(id) == "number" and ("CHANNEL" .. id) or id)
self.db.profile.colors[name].r = r
self.db.profile.colors[name].g = g
self.db.profile.colors[name].b = b
end
if not options[name:gsub(" ", "_")] then
options[name:gsub(" ", "_")] = {
type = "color",
name = name,
desc = L["Select a color for this channel"],
order = type(id) == "number" and (50 + id) or 48,
get = function()
local c = self.db.profile.colors[name]
if c then
return c.r, c.g, c.b
else
return GetMessageTypeColor(type(id) == "number" and ("CHANNEL" .. id) or id)
end
end,
set = function(info, r, g, b)
self.db.profile.colors[name] = self.db.profile.colors[name] or {}
self.db.profile.colors[name].r = r
self.db.profile.colors[name].g = g
self.db.profile.colors[name].b = b
ChangeChatColor(type(id) == "number" and ("CHANNEL" .. id) or id, r, g, b);
end
}
end
end
end
function mod:CHAT_MSG_CHANNEL_NOTICE(evt, notice, _, _, fullname, _, _, channelType, channelNumber, channelName)
if notice == "YOU_JOINED" then
self:AddChannels(GetChannelList())
channelName = channelName:match("^(%w+)")
local c = self.db.profile.colors[channelName]
if c then
ChangeChatColor("CHANNEL" .. channelNumber, c.r, c.g, c.b);
end
end
end
function mod:UPDATE_CHAT_COLOR(evt, chan, r, g, b)
if chan then
local num = tonumber(chan:match("(%d+)$"))
local channelNum = num and select(2, GetChannelName(num))
local name = channelNum and channelNum:match("^(%w+)") or chan
self.db.profile.colors[name] = self.db.profile.colors[name] or {}
self.db.profile.colors[name].r = r
self.db.profile.colors[name].g = g
self.db.profile.colors[name].b = b
end
end
function mod:GetOptions()
return options
end