vanilla-wow-addons – Rev 1

Subversion Repositories:
Rev:
assert(BigWigs, "BigWigs not found!")

------------------------------
--      Are you local?      --
------------------------------

local L = AceLibrary("AceLocale-2.2"):new("BigWigsRaidWarn")

----------------------------
--      Localization      --
----------------------------

L:RegisterTranslations("enUS", function() return {
        ["RaidWarning"] = true,

        ["raidwarn"] = true,
        ["broadcast"] = true,
        ["whisper"] = true,
        ["useraidchannel"] = true,

        ["Broadcast over RaidWarning"] = true,
        ["Broadcast"] = true,
        ["Toggle broadcasting over Raidwarning."] = true,
        
        ["Whisper"] = true,
        ["Whisper warnings"] = true,
        ["Toggle whispering warnings to players."] = true,
        
        ["Use Raidchannel"] = true,
        ["Toggle using the raid channel instead of the raid warning channel for boss messages."] = true,
        
        ["Options for RaidWarning."] = true,
} end )

L:RegisterTranslations("koKR", function() return {
        ["RaidWarning"] = "공격대 경고",

        ["Broadcast over RaidWarning"] = "공격대 경고로 알림",
        ["Broadcast"] = "알림",
        ["Toggle broadcasting over Raidwarning."] = "공격대 경고로 알림 토글",
        
        ["Whisper"] = "귓속말",
        ["Whisper warnings"] = "귓속말 경고",
        ["Toggle whispering warnings to players."] = "플레이어에게 귓속말 경고 알림 토글",
        
        ["Use Raidchannel"] = "공격대 채널 사용",
        ["Toggle using the raid channel instead of the raid warning channel for boss messages."] = "공격대 경고 혹은 채널 사용 토글",
        
        ["Options for RaidWarning."] = "공격대 경고 설정",
        
} end )

L:RegisterTranslations("zhCN", function() return {
        ["RaidWarning"] = "团队警报",

        ["raidwarn"] = "团队警报",
        ["broadcast"] = "广播",
        ["whisper"] = "密语",
        ["useraidchannel"] = "使用团队聊天",

        ["Broadcast over RaidWarning"] = "通过团队警告频道发送信息",
        ["Broadcast"] = "广播",
        ["Toggle broadcasting over Raidwarning."] = "切换是否通过团队警告频道发送信息",
        
        ["Whisper"] = "密语",
        ["Whisper warnings"] = "密语警报",
        ["Toggle whispering warnings to players."] = "切换是否通过密语向玩家发送信息",
        
        ["Use Raidchannel"] = "使用团队聊天",
        ["Toggle using the raid channel instead of the raid warning channel for boss messages."] = "切换是否使用团队聊天来代替团队警告频道来播放boss的信息",

        ["Options for RaidWarning."] = "团队警告设置",
} end )


L:RegisterTranslations("zhTW", function() return {
        ["RaidWarning"] = "團隊警報",

        ["raidwarn"] = "團隊警報",
        ["broadcast"] = "廣播",
        ["whisper"] = "密語",
        ["useraidchannel"] = "使用團隊聊天",

        ["Broadcast over RaidWarning"] = "通過團隊警告頻道發送訊息",
        ["Broadcast"] = "廣播",
        ["Toggle broadcasting over Raidwarning."] = "切換是否通過團隊警告頻道發送訊息",
        
        ["Whisper"] = "密語",
        ["Whisper warnings"] = "密語警報",
        ["Toggle whispering warnings to players."] = "切換是否通過密語向玩家發送訊息",
        
        ["Use Raidchannel"] = "使用團隊聊天",
        ["Toggle using the raid channel instead of the raid warning channel for boss messages."] = "切換是否使用團隊聊天來代替團隊警告頻道來播放boss的訊息",

        ["Options for RaidWarning."] = "團隊警告選項",
} end )

L:RegisterTranslations("deDE", function() return {
        ["RaidWarning"] = "RaidWarnung",

        --["raidwarn"] = "raidwarnen",
        --["broadcast"] = "verbreiten",
        --["whisper"] = "fl\195\188stern",
        --["useraidchannel"] = "raidchatbenutzen",

        ["Broadcast over RaidWarning"] = "Verbreiten \195\188ber Sclachtzugswarnung",
        ["Broadcast"] = "Verbreiten",
        ["Toggle broadcasting over Raidwarning."] = "Meldungen \195\188ber Schlachtzugswarnung an Alle senden.",
        
        ["Whisper"] = "Fl\195\188stern",
        ["Whisper warnings"] = "Warnungen fl\195\188stern",
        ["Toggle whispering warnings to players."] = "Warnungen an andere Spieler fl\195\188stern.",

        ["Use Raidchannel"] = "Schlachtzugschat benutzen",
        ["Toggle using the raid channel instead of the raid warning channel for boss messages."] = "Schlachtzugschat anstelle des Schlachtzugswarungschats für Boss Nachrichten benutzen.",
        
        ["Options for RaidWarning."] = "Optionen f\195\188r RaidWarnung.",
} end )

L:RegisterTranslations("frFR", function() return {
        ["RaidWarning"] = "Avertissement du raid",

        ["Broadcast over RaidWarning"] = "Diffuser sur l'Avertissement Raid",
        ["Broadcast"] = "Diffuser",
        ["Toggle broadcasting over Raidwarning."] = "Diffuse ou non les messages sur l'Avertissement Raid.",

        ["Whisper"] = "Chuchoter",
        ["Whisper warnings"] = "Chuchoter les avertissements",
        ["Toggle whispering warnings to players."] = "Chuchote ou non les avertissements aux joueurs.",

        ["Use Raidchannel"] = "Utiliser le canal Raid",
        ["Toggle using the raid channel instead of the raid warning channel for boss messages."] = "Utilise ou non le canal Raid au lieu de l'Avertissement Raid pour les messages des boss.",
        
        ["Options for RaidWarning."] = "Options concernant l'Avertissement du Raid.",
} end )

----------------------------------
--      Module Declaration      --
----------------------------------

BigWigsRaidWarn = BigWigs:NewModule(L["RaidWarning"])
BigWigsRaidWarn.defaultDB = {
        whisper = false,
        broadcast = false,
        useraidchannel = false,
}
BigWigsRaidWarn.consoleCmd = L["raidwarn"]
BigWigsRaidWarn.consoleOptions = {
        type = "group",
        name = L["RaidWarning"],
        desc = L["Options for RaidWarning."],
        args   = {
                [L["broadcast"]] = {
                        type = "toggle",
                        name = L["Broadcast"],
                        desc = L["Toggle broadcasting over Raidwarning."],
                        get = function() return BigWigsRaidWarn.db.profile.broadcast end,
                        set = function(v) BigWigsRaidWarn.db.profile.broadcast = v end,         
                },
                [L["whisper"]] = {
                        type = "toggle",
                        name = L["Whisper"],
                        desc = L["Toggle whispering warnings to players."],
                        get = function() return BigWigsRaidWarn.db.profile.whisper end,
                        set = function(v) BigWigsRaidWarn.db.profile.whisper = v end,           
                },
                [L["useraidchannel"]] = {
                        type = "toggle",
                        name = L["Use Raidchannel"],
                        desc = L["Toggle using the raid channel instead of the raid warning channel for boss messages."],
                        get = function() return BigWigsRaidWarn.db.profile.useraidchannel end,
                        set = function(v) BigWigsRaidWarn.db.profile.useraidchannel = v end,            
                },
        }
}

------------------------------
--      Initialization      --
------------------------------

function BigWigsRaidWarn:OnEnable()
        self:RegisterEvent("BigWigs_Message")
        self:RegisterEvent("BigWigs_SendTell")
end

function BigWigsRaidWarn:BigWigs_Message(msg, color, noraidsay)
        if not self.db.profile.broadcast or not msg or noraidsay or ( not IsRaidLeader() and not IsRaidOfficer() ) then
                return 
        end
        if self.db.profile.useraidchannel then
                SendChatMessage("*** "..msg.." ***", "RAID")
        else
                SendChatMessage("*** "..msg.." ***", "RAID_WARNING")
        end
end

function BigWigsRaidWarn:BigWigs_SendTell(player, msg )
        if not self.db.profile.whisper or not player or not msg or ( not IsRaidLeader() and not IsRaidOfficer() ) then return end
        SendChatMessage(msg, "WHISPER", nil, player)
end