Files
Prat/modules/StickyChannels.lua
buhfur-ubuntu 120bb38b37 Initial commit
2026-05-31 14:10:07 -04:00

302 lines
12 KiB
Lua
Executable File

--[[
Name: Prat_StickyChannels
Revision: $Revision: 16019 $
Author(s): Curney (asml8ed@gmail.com)
Krtek (krtek4@gmail.com)
Inspired by: idChat2_StickyChannels by Industrial
Website: http://www.wowace.com/files/index.php?path=Prat/
Documentation: http://www.wowace.com/wiki/Prat/Integrated_Modules#StickyChannels
SVN: http://svn.wowace.com/wowace/trunk/Prat/
Description: Module for Prat that toggles sticky of different chat channel types on and off (default=on).
Dependencies: Prat
]]
local L = AceLibrary("AceLocale-2.2"):new("PratStickyChannels")
L:RegisterTranslations("enUS", function() return {
["StickyChannels"] = true,
["Chat channel sticky options."] = true,
["ChatType"] = true,
["Per chat type options."] = true,
["Say"] = true,
["Whisper"] = true,
["Yell"] = true,
["Party"] = true,
["Guild"] = true,
["Officer"] = true,
["Raid"] = true,
["RaidWarning"] = true,
["Battleground"] = true,
["Channel"] = true,
["Emote"] = true,
["%sSticky"] = true,
["Toggles sticky on and off for %s."] = true,
["Toggle"] = true,
["Toggle the module on and off."] = true,
} end)
L:RegisterTranslations("ruRU", function() return {
["StickyChannels"] = "StickyChannels",
["Chat channel sticky options."] = "Опции прилипания каналов чата.",
["ChatType"] = "ТипЧата",
["Per chat type options."] = "Опции чат типа.",
["Say"] = "Сказать",
["Whisper"] = "Шепот",
["Yell"] = "Крикнуть",
["Party"] = "Группа",
["Guild"] = "Гильдия",
["Officer"] = "Офицер",
["Raid"] = "Рейд",
["RaidWarning"] = "Объявление рейду",
["Battleground"] = "Поле боя",
["Channel"] = "Канал",
["Emote"] = "Эмоция",
["%sSticky"] = "Липкая \"%s\"",
["Toggles sticky on and off for %s."] = "Вкл/Выкл липкие %s.",
["Toggle"] = "Вкл/Выкл",
["Toggle the module on and off."] = "Вкл/Выкл модуль.",
} end)
L:RegisterTranslations("zhCN", function() return {
["StickyChannels"] = "固定频道",
["Chat channel sticky options."] = "固定聊天频道选项。",
["ChatType"] = "聊天分类",
["Per chat type options."] = "聊天类型选项。",
["Say"] = "说",
["Whisper"] = "密语",
["Yell"] = "喊",
["Party"] = "队伍",
["Guild"] = "公会",
["Officer"] = "官员",
["Raid"] = "团队",
["RaidWarning"] = "团队报警",
["Battleground"] = "战场",
["Channel"] = "频道",
["Emote"] = "表情",
["%sSticky"] = "固定%s",
["Toggles sticky on and off for %s."] = "切换固定%s频道.",
["Toggle"] = "切换",
["Toggle the module on and off."] = "切换此模块的打开与关闭。",
} end)
L:RegisterTranslations("koKR", function() return {
["StickyChannels"] = "채널 고정",
["Chat channel sticky options."] = "대화 채널 고정 설정입니다.",
["ChatType"] = "대화 종류",
["Per chat type options."] = "대화종류에 따른 설정입니다.",
["Say"] = "일반",
["Whisper"] = "귓속말",
["Yell"] = "외치기",
["Party"] = "파티",
["Guild"] = "길드",
["Officer"] = "오피서",
["Raid"] = "공격대",
["RaidWarning"] = "공대 경보",
["Battleground"] = "전장",
["Channel"] = "채널",
["Emote"] = "감정표현",
["%sSticky"] = "%s 고정",
["Toggles sticky on and off for %s."] = "%s에 대한 고정 켜고 끄기를 전환합니다.",
["Toggle"] = "전환",
["Toggle the module on and off."] = "모듈 켜고 끄기를 전환합니다.",
} end)
Prat_StickyChannels = Prat:NewModule("stickychannels")
function Prat_StickyChannels:OnInitialize()
self.db = Prat:AcquireDBNamespace("StickyChannels")
Prat:RegisterDefaults("StickyChannels", "profile", {
on = true,
say = true,
whisper = true,
yell = true,
party = true,
guild = true,
officer = true,
raid = true,
raid_warning = true,
battleground = true,
channel = true,
emote = true,
})
Prat.Options.args.stickychannels = {
name = L["StickyChannels"],
desc = L["Chat channel sticky options."],
type = "group",
args = {
chattype = {
name = L["ChatType"],
desc = L["Per chat type options."],
type = "group",
args = {
say = {
name = string.format(L["%sSticky"], L["Say"]),
desc = string.format(L["Toggles sticky on and off for %s."], L["Say"]),
type = "toggle",
order = 101,
get = function() return self.db.profile.say end,
set = function(v)
self.db.profile.say = v
self:Stickum("SAY",v)
end
},
whisper = {
name = string.format(L["%sSticky"], L["Whisper"]),
desc = string.format(L["Toggles sticky on and off for %s."], L["Whisper"]),
type = "toggle",
order = 102,
get = function() return self.db.profile.whisper end,
set = function(v)
self.db.profile.whisper = v
self:Stickum("WHISPER",v)
end
},
yell = {
name = string.format(L["%sSticky"], L["Yell"]),
desc = string.format(L["Toggles sticky on and off for %s."], L["Yell"]),
type = "toggle",
order = 103,
get = function() return self.db.profile.yell end,
set = function(v)
self.db.profile.yell = v
self:Stickum("YELL",v)
end
},
party = {
name = string.format(L["%sSticky"], L["Party"]),
desc = string.format(L["Toggles sticky on and off for %s."], L["Party"]),
type = "toggle",
order = 104,
get = function() return self.db.profile.party end,
set = function(v)
self.db.profile.party = v
self:Stickum("PARTY",v)
end
},
guild = {
name = string.format(L["%sSticky"], L["Guild"]),
desc = string.format(L["Toggles sticky on and off for %s."], L["Guild"]),
type = "toggle",
order = 105,
get = function() return self.db.profile.guild end,
set = function(v)
self.db.profile.guild = v
self:Stickum("GUILD",v)
end
},
officer = {
name = string.format(L["%sSticky"], L["Officer"]),
desc = string.format(L["Toggles sticky on and off for %s."], L["Officer"]),
type = "toggle",
order = 106,
get = function() return self.db.profile.officer end,
set = function(v)
self.db.profile.officer = v
self:Stickum("OFFICER",v)
end
},
raid = {
name = string.format(L["%sSticky"], L["Raid"]),
desc = string.format(L["Toggles sticky on and off for %s."], L["Raid"]),
type = "toggle",
order = 107,
get = function() return self.db.profile.raid end,
set = function(v)
self.db.profile.raid = v
self:Stickum("RAID",v)
end
},
raidwarning = {
name = string.format(L["%sSticky"], L["RaidWarning"]),
desc = string.format(L["Toggles sticky on and off for %s."], L["RaidWarning"]),
type = "toggle",
order = 108,
get = function() return self.db.profile.raid_warning end,
set = function(v)
self.db.profile.raid_warning = v
self:Stickum("RAID_WARNING",v)
end
},
battleground = {
name = string.format(L["%sSticky"], L["Battleground"]),
desc = string.format(L["Toggles sticky on and off for %s."], L["Battleground"]),
type = "toggle",
order = 109,
get = function() return self.db.profile.battleground end,
set = function(v)
self.db.profile.battleground = v
self:Stickum("BATTLEGROUND",v)
end
},
channel = {
name = string.format(L["%sSticky"], L["Channel"]),
desc = string.format(L["Toggles sticky on and off for %s."], L["Channel"]),
type = "toggle",
order = 110,
get = function() return self.db.profile.channel end,
set = function(v)
self.db.profile.channel = v
self:Stickum("CHANNEL",v)
end
},
emote = {
name = string.format(L["%sSticky"], L["Emote"]),
desc = string.format(L["Toggles sticky on and off for %s."], L["Emote"]),
type = "toggle",
order = 111,
get = function() return self.db.profile.emote end,
set = function(v)
self.db.profile.emote = v
self:Stickum("EMOTE",v)
end
}
}
},
toggle = {
name = L["Toggle"],
desc = L["Toggle the module on and off."],
type = "toggle",
order = 200,
get = function() return self.db.profile.on end,
set = function() self.db.profile.on = Prat:ToggleModuleActive("stickychannels") end
}
}
}
end
function Prat_StickyChannels:OnEnable()
self:Stickum("SAY",self.db.profile.say)
self:Stickum("WHISPER",self.db.profile.whisper)
self:Stickum("YELL",self.db.profile.yell)
self:Stickum("PARTY",self.db.profile.party)
self:Stickum("GUILD",self.db.profile.guild)
self:Stickum("OFFICER",self.db.profile.officer)
self:Stickum("RAID",self.db.profile.raid)
self:Stickum("RAID_WARNING",self.db.profile.raid_warning)
self:Stickum("BATTLEGROUND",self.db.profile.battleground)
self:Stickum("CHANNEL",self.db.profile.channel)
self:Stickum("EMOTE",self.db.profile.emote)
end
function Prat_StickyChannels:OnDisable()
self:Stickum("SAY",false)
self:Stickum("WHISPER",false)
self:Stickum("YELL",false)
self:Stickum("PARTY",false)
self:Stickum("GUILD",false)
self:Stickum("OFFICER",false)
self:Stickum("RAID",false)
self:Stickum("RAID_WARNING",false)
self:Stickum("BATTLEGROUND",false)
self:Stickum("CHANNEL",false)
self:Stickum("EMOTE",false)
end
function Prat_StickyChannels:Stickum(channel,stickied)
if stickied then
ChatTypeInfo[channel].sticky = 1
else
ChatTypeInfo[channel].sticky = 0
end
end