Compare with Previous | Blame | View Log
local CCLocale = AceLibrary("AceLocale-2.2"):new("CCBreaker") local CCWaterfall = AceLibrary("Waterfall-1.0") local PolyId = CCBreaker.PolyId local ShackleId = CCBreaker.ShackleId local FreezingTrapId = CCBreaker.FreezingTrapId local HibernateId = CCBreaker.HibernateId local SapId = CCBreaker.SapId local SeductionId = CCBreaker.SeductionId local HexId = CCBreaker.HexId local WyvernStingId = CCBreaker.WyvernStingId local RepentanceId = CCBreaker.RepentanceId local FreezingArrowId = CCBreaker.FreezingArrowId CCBreaker:RegisterDefaults("char",{ debug = false; showon = { player = false, party = false, raid = false, pet = false, partypet = false, raidpet = false, others = true, warrior = true, warlock = true, hunter = true, rogue = true, shaman = true, priest = true, paladin = true, mage = true, druid = true, deathknight = true, maintank = true, mainassist = true, }, showfrom = { player = true, party = true, raid = true, pet = true, partypet = true, raidpet = true, others = false, warrior = true, warlock = true, hunter = true, rogue = true, shaman = true, priest = true, paladin = true, mage = true, druid = true, deathknight = true, maintank = true, mainassist = true, }, showeffects = { freezingtrap = true, hibernate = true, polymorph = true, shackleundead = true, sap = true, seduction = true, hex = true, wyvernsting = true, repentance = true, freezingarrow = true, }, chat = { raid = false, raidwarning = false, party = false, strings={ two=CCLocale["[spell] on [target] was removed"], three=CCLocale["[spell] on [target] was removed by [breaker]"], four=CCLocale["[spell] on [target] was removed by [breaker]'s [ability]"], }, }, display = { fubar = { spell = true, target = false, breaker = true, ability = false, }, center = { colors = true, enable = true, color = { r = 1, g = 1, b = 0.5, a = 0, colortext = "|cffff8000" }, strings={ two=CCLocale["[spell] on [target] was removed"], three=CCLocale["[spell] on [target] was removed by [breaker]"], four=CCLocale["[spell] on [target] was removed by [breaker]'s [ability]"], } }, console = { colors = true, enable = true, color = { r = 1, g = 1, b = 0.5, a = 0, colortext = "|cffff8000" }, strings={ two=CCLocale["[spell] on [target] was removed"], three=CCLocale["[spell] on [target] was removed by [breaker]"], four=CCLocale["[spell] on [target] was removed by [breaker]'s [ability]"], }, colors = false; }, }, }) -- Menu CCBreaker.OnMenuRequest = { type = "group", args = { debug ={ type = "toggle", name = CCLocale["debug"], desc = CCLocale["Enable debug messages"], get = function() return CCBreaker.db.char.debug end, set = function(v) CCBreaker.db.char.debug = v end, }, reset = { type = "execute", name = CCLocale["reset"], desc = CCLocale["Reset breaker data"], func = "reset", }, config = { type = "execute", name = CCLocale["config"], desc = CCLocale["Open config in a Waterall window"], func = function() CCWaterfall:Open("CCBreaker") end, }, chat = { type = "group", name = CCLocale["chat"], desc = CCLocale["Chat options"], args = { raid = { type = "toggle", name = CCLocale["raid"], desc = CCLocale["broadcast to raid"], get = function() return CCBreaker.db.char.chat.raid end, set = function(v) CCBreaker.db.char.chat.raid = v end, }, raidwarning = { type = "toggle", name = CCLocale["raidwarning"], desc = CCLocale["broadcast as raidwarning"], get = function() return CCBreaker.db.char.chat.raidwarning end, set = function(v) CCBreaker.db.char.chat.raidwarning = v end, }, party = { type = "toggle", name = CCLocale["party"], desc = CCLocale["broadcast to party"], get = function() return CCBreaker.db.char.chat.party end, set = function(v) CCBreaker.db.char.chat.party = v end, }, text = { type = "group", name = CCLocale["text"], desc = CCLocale["Change the displayed text, leave blank for default"], args ={ two = { type = "text", name = CCLocale["two"], desc = CCLocale["text if only spell an target are given"], usage = "[spell], [target]", get = function() return CCBreaker.db.char.chat.strings.two end, set = function(v) CCBreaker.db.char.chat.strings.two = v end, }, three = { type = "text", name = CCLocale["three"], desc = CCLocale["text if only spell, target and breaker are given"], usage = "[spell], [target], [breaker]", get = function() return CCBreaker.db.char.display.console.strings.three end, set = function(v) CCBreaker.db.char.chat.strings.three = v end, }, four = { type = "text", name = CCLocale["four"], desc = CCLocale["text if spell, target, breaker and ability are given"], usage = "[spell], [target], [breaker], [ability]", get = function() return CCBreaker.db.char.display.console.strings.four end, set = function(v) CCBreaker.db.char.chat.strings.four = v end, }, }, }, }, }, display = { type = "group", name = CCLocale["display"], desc = CCLocale["Display options"], args = { console ={ type = "group", name = CCLocale["console"], desc = CCLocale["Display options in console"], args = { color = { type = "toggle", name = CCLocale["color text"], desc = CCLocale["Color messages"], get = function() return CCBreaker.db.char.display.console.colors end, set = function(v) CCBreaker.db.char.display.console.colors = v end, }, colors = { type = "color", name = CCLocale["color"], desc = CCLocale["Chose color to use"], get = function() local color = CCBreaker.db.char.display.console.color return color.r,color.g,color.b,color.a end, set = function(r,g,b,a) local color = CCBreaker.db.char.display.console.color color.r = r color.g = g color.b = b color.colortext = string.format("|cff%02x%02x%02x", r * 255, g * 255, b * 255) end, }, enable = { type = "toggle", name = CCLocale["enable"], desc = CCLocale["Display console messages"], get = function() return CCBreaker.db.char.display.console.enable end, set = function(v) CCBreaker.db.char.display.console.enable = v end, }, text = { type = "group", name = CCLocale["text"], desc = CCLocale["Change the displayed text, leave blank for default"], args ={ two = { type = "text", name = CCLocale["two"], desc = CCLocale["text if only spell an target are given"], usage = "[spell], [target]", get = function() return CCBreaker.db.char.display.console.strings.two end, set = function(v) CCBreaker.db.char.display.console.strings.two = v end, }, three = { type = "text", name = CCLocale["three"], desc = CCLocale["text if only spell, target and breaker are given"], usage = "[spell], [target], [breaker]", get = function() return CCBreaker.db.char.display.console.strings.three end, set = function(v) CCBreaker.db.char.display.console.strings.three = v end, }, four = { type = "text", name = CCLocale["four"], desc = CCLocale["text if spell, target, breaker and ability are given"], usage = "[spell], [target], [breaker], [ability]", get = function() return CCBreaker.db.char.display.console.strings.four end, set = function(v) CCBreaker.db.char.display.console.strings.four = v end, }, }, }, }, }, center ={ type = "group", name = CCLocale["center"], desc = CCLocale["Display options for centered messages"], args = { color = { type = "toggle", name = CCLocale["color text"], desc = CCLocale["Color messages"], get = function() return CCBreaker.db.char.display.center.colors end, set = function(v) CCBreaker.db.char.display.center.colors = v end, }, colors = { type = "color", name = CCLocale["color"], desc = CCLocale["Chose color to use"], get = function() local color = CCBreaker.db.char.display.center.color return color.r,color.g,color.b,color.a end, set = function(r,g,b,a) local color = CCBreaker.db.char.display.center.color color.r = r color.g = g color.b = b color.colortext = string.format("|cff%02x%02x%02x", r * 255, g * 255, b * 255) end, }, enable = { type = "toggle", name = CCLocale["enable"], desc = CCLocale["Display centered messages"], get = function() return CCBreaker.db.char.display.center.enable end, set = function(v) CCBreaker.db.char.display.center.enable = v end, }, text = { type = "group", name = CCLocale["text"], desc = CCLocale["Change the displayed text, leave blank for default"], args ={ two = { type = "text", name = CCLocale["two"], desc = CCLocale["text if only spell an target are given"], usage = "[spell], [target]", get = function() return CCBreaker.db.char.display.center.strings.two end, set = function(v) CCBreaker.db.char.display.center.strings.two = v end, }, three = { type = "text", name = CCLocale["three"], desc = CCLocale["text if only spell, target and breaker are given"], usage = "[spell], [target], [breaker]", get = function() return CCBreaker.db.char.display.center.strings.three end, set = function(v) CCBreaker.db.char.display.center.strings.three = v end, }, four = { type = "text", name = CCLocale["four"], desc = CCLocale["text if spell, target, breaker and ability are given"], usage = "[spell], [target], [breaker], [ability]", get = function() return CCBreaker.db.char.display.center.strings.four end, set = function(v) CCBreaker.db.char.display.center.strings.four = v end, }, }, }, }, }, fubar = { type = "group", name = CCLocale["fubar"], desc = CCLocale["Display options in Fubar"], args = { spell = { type = "toggle", name = CCLocale["spell"], desc = CCLocale["Display broken spell"], get = function() return CCBreaker.db.char.display.fubar.spell end, set = function(v) CCBreaker.db.char.display.fubar.spell = v end, }, target = { type = "toggle", name = CCLocale["target"], desc = CCLocale["Display freed target"], get = function() return CCBreaker.db.char.display.fubar.target end, set = function(v) CCBreaker.db.char.display.fubar.target = v end, }, breaker = { type = "toggle", name = CCLocale["breaker"], desc = CCLocale["Display who broke CC"], get = function() return CCBreaker.db.char.display.fubar.breaker end, set = function(v) CCBreaker.db.char.display.fubar.breaker = v end, }, ability = { type = "toggle", name = CCLocale["ability"], desc = CCLocale["Display ability breaking the CC"], get = function() return CCBreaker.db.char.display.fubar.ability end, set = function(v) CCBreaker.db.char.display.fubar.ability = v end, }, }, }, }, }, filter = { type = "group", name = CCLocale["filter"], desc = CCLocale["Filter Options"], args = { showon = { type = "group", name = CCLocale["show on"], desc = CCLocale["Report CC breaks to those targets only"], args = { role = { type = "group", name = CCLocale["role"], desc = CCLocale["Filter for raid roles"], args = { maintank = { type = "toggle", name = CCLocale["maintank"], desc = CCLocale["Show break on maintanks"], get = function() return CCBreaker.db.char.showon.maintank end, set = function(v) CCBreaker.db.char.showon.maintank = v end, }, mainassist = { type = "toggle", name = CCLocale["mainassist"], desc = CCLocale["Show break on mainassists"], get = function() return CCBreaker.db.char.showon.mainassist end, set = function(v) CCBreaker.db.char.showon.mainassist = v end, }, }, }, unit = { type = "group", name = CCLocale["unit"], desc = CCLocale["Filter for unit types"], args = { player = { type = "toggle", name = CCLocale["player"], desc = CCLocale["Show break on player"], get = function() return CCBreaker.db.char.showon.player end, set = function(v) CCBreaker.db.char.showon.player = v end, }, party = { type = "toggle", name = CCLocale["party"], desc = CCLocale["Show break on party members"], get = function() return CCBreaker.db.char.showon.party end, set = function(v) CCBreaker.db.char.showon.party = v end, }, raid = { type = "toggle", name = CCLocale["raid"], desc = CCLocale["Show break on raid members"], get = function() return CCBreaker.db.char.showon.raid end, set = function(v) CCBreaker.db.char.showon.raid = v end, }, pet = { type = "toggle", name = CCLocale["pet"], desc = CCLocale["Show break on your pet"], get = function() return CCBreaker.db.char.showon.pet end, set = function(v) CCBreaker.db.char.showon.pet = v end, }, partypet = { type = "toggle", name = CCLocale["party pet"], desc = CCLocale["Show break on party pets"], get = function() return CCBreaker.db.char.showon.partypet end, set = function(v) CCBreaker.db.char.showon.partypet = v end, }, raidpet = { type = "toggle", name = CCLocale["raid pet"], desc = CCLocale["Show break on raid pets"], get = function() return CCBreaker.db.char.showon.raidpet end, set = function(v) CCBreaker.db.char.showon.raidpet = v end, }, others = { type = "toggle", name = CCLocale["others"], desc = CCLocale["Show break on others"], get = function() return CCBreaker.db.char.showon.others end, set = function(v) CCBreaker.db.char.showon.others = v end, }, }, }, class = { type = "group", name = CCLocale["class"], desc = CCLocale["Filter for classes"], args = { warrior = { type = "toggle", name = CCLocale["warrior"], desc = CCLocale["Show break on warriors"], get = function() return CCBreaker.db.char.showon.warrior end, set = function(v) CCBreaker.db.char.showon.warrior = v end, }, warlock = { type = "toggle", name = CCLocale["warlock"], desc = CCLocale["Show break on warlocks"], get = function() return CCBreaker.db.char.showon.warlock end, set = function(v) CCBreaker.db.char.showon.warlock = v end, }, hunter = { type = "toggle", name = CCLocale["hunter"], desc = CCLocale["Show break on hunters"], get = function() return CCBreaker.db.char.showon.hunter end, set = function(v) CCBreaker.db.char.showon.hunter = v end, }, paladin = { type = "toggle", name = CCLocale["paladin"], desc = CCLocale["Show break on paladins"], get = function() return CCBreaker.db.char.showon.paladin end, set = function(v) CCBreaker.db.char.showon.paladin = v end, }, priest = { type = "toggle", name = CCLocale["priest"], desc = CCLocale["Show break on priests"], get = function() return CCBreaker.db.char.showon.priest end, set = function(v) CCBreaker.db.char.showon.priest = v end, }, druid = { type = "toggle", name = CCLocale["druid"], desc = CCLocale["Show break on druids"], get = function() return CCBreaker.db.char.showon.druid end, set = function(v) CCBreaker.db.char.showon.druid = v end, }, shaman = { type = "toggle", name = CCLocale["shaman"], desc = CCLocale["Show break on shamans"], get = function() return CCBreaker.db.char.showon.shaman end, set = function(v) CCBreaker.db.char.showon.shaman = v end, }, mage = { type = "toggle", name = CCLocale["mage"], desc = CCLocale["Show break on mages"], get = function() return CCBreaker.db.char.showon.mage end, set = function(v) CCBreaker.db.char.showon.mage = v end, }, rogue = { type = "toggle", name = CCLocale["rogue"], desc = CCLocale["Show break on rogues"], get = function() return CCBreaker.db.char.showon.rogue end, set = function(v) CCBreaker.db.char.showon.rogue = v end, }, deathknight = { type = "toggle", name = CCLocale["deathknight"], desc = CCLocale["Show break on deathknights"], get = function() return CCBreaker.db.char.showon.deathknight end, set = function(v) CCBreaker.db.char.showon.deathknight = v end, }, }, }, }, }, showfrom = { type = "group", name = CCLocale["show from"], desc = CCLocale["Report CC breaks from those only"], args = { role = { type = "group", name = CCLocale["role"], desc = CCLocale["Filter for raid roles"], args = { maintank = { type = "toggle", name = CCLocale["maintank"], desc = CCLocale["Show break from maintanks"], get = function() return CCBreaker.db.char.showfrom.maintank end, set = function(v) CCBreaker.db.char.showfrom.maintank = v end, }, mainassist = { type = "toggle", name = CCLocale["mainassist"], desc = CCLocale["Show break from mainassists"], get = function() return CCBreaker.db.char.showfrom.mainassist end, set = function(v) CCBreaker.db.char.showfrom.mainassist = v end, }, }, }, unit = { type = "group", name = CCLocale["unit"], desc = CCLocale["Filter for unit types"], args = { player = { type = "toggle", name = CCLocale["player"], desc = CCLocale["Show break from player"], get = function() return CCBreaker.db.char.showfrom.player end, set = function(v) CCBreaker.db.char.showfrom.player = v end, }, party = { type = "toggle", name = CCLocale["party"], desc = CCLocale["Show break from party members"], get = function() return CCBreaker.db.char.showfrom.party end, set = function(v) CCBreaker.db.char.showfrom.party = v end, }, raid = { type = "toggle", name = CCLocale["raid"], desc = CCLocale["Show break from raid members"], get = function() return CCBreaker.db.char.showfrom.raid end, set = function(v) CCBreaker.db.char.showfrom.raid = v end, }, pet = { type = "toggle", name = CCLocale["pet"], desc = CCLocale["Show break from your pet"], get = function() return CCBreaker.db.char.showfrom.pet end, set = function(v) CCBreaker.db.char.showfrom.pet = v end, }, partypet = { type = "toggle", name = CCLocale["party pet"], desc = CCLocale["Show break from party pets"], get = function() return CCBreaker.db.char.showfrom.partypet end, set = function(v) CCBreaker.db.char.showfrom.partypet = v end, }, raidpet = { type = "toggle", name = CCLocale["raid pet"], desc = CCLocale["Show break from raid pets"], get = function() return CCBreaker.db.char.showfrom.raidpet end, set = function(v) CCBreaker.db.char.showfrom.raidpet = v end, }, others = { type = "toggle", name = CCLocale["others"], desc = CCLocale["Show break from others"], get = function() return CCBreaker.db.char.showfrom.others end, set = function(v) CCBreaker.db.char.showfrom.others = v end, }, }, }, class = { type = "group", name = CCLocale["class"], desc = CCLocale["Filter for classes"], args = { warrior = { type = "toggle", name = CCLocale["warrior"], desc = CCLocale["Show break from warriors"], get = function() return CCBreaker.db.char.showfrom.warrior end, set = function(v) CCBreaker.db.char.showfrom.warrior = v end, }, warlock = { type = "toggle", name = CCLocale["warlock"], desc = CCLocale["Show break from warlocks"], get = function() return CCBreaker.db.char.showfrom.warlock end, set = function(v) CCBreaker.db.char.showfrom.warlock = v end, }, hunter = { type = "toggle", name = CCLocale["hunter"], desc = CCLocale["Show break from hunters"], get = function() return CCBreaker.db.char.showfrom.hunter end, set = function(v) CCBreaker.db.char.showfrom.hunter = v end, }, paladin = { type = "toggle", name = CCLocale["paladin"], desc = CCLocale["Show break from paladins"], get = function() return CCBreaker.db.char.showfrom.paladin end, set = function(v) CCBreaker.db.char.showfrom.paladin = v end, }, priest = { type = "toggle", name = CCLocale["priest"], desc = CCLocale["Show break from priests"], get = function() return CCBreaker.db.char.showfrom.priest end, set = function(v) CCBreaker.db.char.showfrom.priest = v end, }, druid = { type = "toggle", name = CCLocale["druid"], desc = CCLocale["Show break from druids"], get = function() return CCBreaker.db.char.showfrom.druid end, set = function(v) CCBreaker.db.char.showfrom.druid = v end, }, shaman = { type = "toggle", name = CCLocale["shaman"], desc = CCLocale["Show break from shamans"], get = function() return CCBreaker.db.char.showfrom.shaman end, set = function(v) CCBreaker.db.char.showfrom.shaman = v end, }, mage = { type = "toggle", name = CCLocale["mage"], desc = CCLocale["Show break from mages"], get = function() return CCBreaker.db.char.showfrom.mage end, set = function(v) CCBreaker.db.char.showfrom.mage = v end, }, rogue = { type = "toggle", name = CCLocale["rogue"], desc = CCLocale["Show break from rogues"], get = function() return CCBreaker.db.char.showfrom.rogue end, set = function(v) CCBreaker.db.char.showfrom.rogue = v end, }, deathknight = { type = "toggle", name = CCLocale["deathknight"], desc = CCLocale["Show break from deathknights"], get = function() return CCBreaker.db.char.showfrom.deathknight end, set = function(v) CCBreaker.db.char.showfrom.deathknight = v end, }, }, }, }, }, showeffects = { type = "group", name = CCLocale["show effects"], desc = CCLocale["Report CC breaks of effects"], args = { freezingtrap = { type = "toggle", name = GetSpellInfo(3355), desc = CCLocale["Show break of "]..GetSpellInfo(3355), get = function() return CCBreaker.db.char.showeffects.freezingtrap end, set = function(v) CCBreaker.db.char.showeffects.freezingtrap = v end, }, hibernate = { type = "toggle", name = GetSpellInfo(2637), desc = CCLocale["Show break of "], GetSpellInfo(2637), get = function() return CCBreaker.db.char.showeffects.hibernate end, set = function(v) CCBreaker.db.char.showeffects.hibernate = v end, }, polymorph = { type = "toggle", name = GetSpellInfo(118), desc = CCLocale["Show break of "]..GetSpellInfo(118)..", " ..GetSpellInfo(28271)..", " ..GetSpellInfo(28272).." and " ..GetSpellInfo(61305), get = function() return CCBreaker.db.char.showeffects.polymorph end, set = function(v) CCBreaker.db.char.showeffects.polymorph = v end, }, sap = { type = "toggle", name = GetSpellInfo(6770), desc = CCLocale["Show break of "]..GetSpellInfo(6770), get = function() return CCBreaker.db.char.showeffects.sap end, set = function(v) CCBreaker.db.char.showeffects.sap = v end, }, seduction = { type = "toggle", name = GetSpellInfo(6358), desc = CCLocale["Show break of "]..GetSpellInfo(6358), get = function() return CCBreaker.db.char.showeffects.seduction end, set = function(v) CCBreaker.db.char.showeffects.seduction = v end, }, shackleundead = { type = "toggle", name = GetSpellInfo(9484), desc = CCLocale["Show break of "]..GetSpellInfo(9484), get = function() return CCBreaker.db.char.showeffects.shackleundead end, set = function(v) CCBreaker.db.char.showeffects.shackleundead = v end, }, hex = { type = "toggle", name = GetSpellInfo(51514), desc = CCLocale["Show break of "]..GetSpellInfo(51514), get = function() return CCBreaker.db.char.showeffects.hex end, set = function(v) CCBreaker.db.char.showeffects.hex = v end, }, wyvernsting = { type = "toggle", name = GetSpellInfo(19386), desc = CCLocale["Show break of "]..GetSpellInfo(19386), get = function() return CCBreaker.db.char.showeffects.wyvernsting end, set = function(v) CCBreaker.db.char.showeffects.wyvernsting = v end, }, repentance = { type = "toggle", name = GetSpellInfo(20066), desc = CCLocale["Show break of "]..GetSpellInfo(20066), get = function() return CCBreaker.db.char.showeffects.repentance end, set = function(v) CCBreaker.db.char.showeffects.repentance = v end, }, freezingarrow = { type = "toggle", name = GetSpellInfo(60210), desc = CCLocale["Show break of "]..GetSpellInfo(60210), get = function() return CCBreaker.db.char.showeffects.freezingarrow end, set = function(v) CCBreaker.db.char.showeffects.freezingarrow = v end, }, }, }, }, }, }, } --CCBreaker:RegisterChatCommand(CCLocale["Slash-Commands"],CCBreaker.OnMenuRequest) CCWaterfall:Register("CCBreaker","aceOptions",CCBreaker.OnMenuRequest,"title","CCBreaker Options","treeLevels",3)