WoWInterface SVN CCBreaker

Compare Revisions

  • This comparison shows the changes necessary to convert path
    /trunk
    from Rev 12 to Rev 13
    Reverse comparison

Rev 12 → Rev 13

CCBreaker.toc
1,27 → 1,23
## Interface: 32000
## Title: CCBreaker
## Notes: Displays who breaks CrowdControl Effects
## Notes-zhTW: 破控警告
## Notes-zhCN: 显示是谁破坏了控制技能的效果
## Author: Pheredhel
## Version: 0.5.1
## SavedVariables: CCBreakerDB
## SavedVariablesPerCharacter: CCBreakerDBPC
## OptionalDeps: Ace2, FuBarPlugin-2.0, Tablet-2.0, Waterfall-1.0
## X-Embeds: Ace2, FuBarPlugin-2.0, Tablet-2.0, Waterfall-1.0
## X-Revision: wowi:revision
## X-Email: pheredhel@gmx.de
## X-Category: Interface Enhancements
 
#Librarys
embeds.xml
 
# Localisations
Locale-enUS.lua
Locale-koKR.lua
Locale-zhCN.lua
Locale-zhTW.lua
 
# Addon Files
CCBreaker.lua
## Interface: 30200
## Title: CCBreaker
## Notes: Displays who breaks CrowdControl Effects
## Author: Dahtank (Previously: Pheredhel)
## Version: 1.01
## SavedVariables: CCBreakerDB
## SavedVariablesPerCharacter: CCBreakerDBPC
## OptionalDeps: Ace2, FuBarPlugin-2.0, Tablet-2.0, Waterfall-1.0
## X-Embeds: Ace2, FuBarPlugin-2.0, Tablet-2.0, Waterfall-1.0
## X-Email: mustics@yahoo.com (please put ccbreaker in the subject)
## X-Category: Combat
 
#Librarys
embeds.xml
 
# Localisations
Locale-enUS.lua
Locale-deDE.lua
 
 
# Addon Files
CCBreaker.lua
CCOptions.lua
\ No newline at end of file
Locale-enUS.lua
1,136 → 1,139
local L = AceLibrary("AceLocale-2.2"):new("CCBreaker")
 
--[[
Explanation:
[spell] : name of the broken spell
[target] : name of the target the spell was on
[breaker] : name of the person removing the spell
[ability] : name of the ability breaking the spell
]]--
 
L:RegisterTranslations("enUS", function() return {
["[spell] on [target] was removed by [breaker]"] = true,
["[spell] on [target] was removed by [breaker]"]= true,
["[spell] on [target] was removed by [breaker]'s [ability]"] = true,
["[spell] on [target] was removed by [breaker]'s [ability]"]= true,
["[spell] on [target] was removed"] = true,
["[spell] on [target] was removed"]= true,
["ability"] = true,
["ability"]= true,
["breaker"] = true,
["breaker"]= true,
["broadcast as raidwarning"] = true,
["broadcast to party"] = true,
["broadcast to raid"] = true,
["center"] = true,
["Change the displayed text, leave blank for default"] = true,
["Chat options"] = true,
["chat"] = true,
["Chose color to use"] = true,
["class"] = true,
["Color messages"] = true,
["color text"] = true,
["color"] = true,
["config"] = true,
["console"] = true,
["debug"] = true,
["Display ability breaking the CC"] = true,
["Display broken spell"] = true,
["Display centered messages"] = true,
["Display console messages"] = true,
["Display freed target"] = true,
["Display options for centered messages"] = true,
["Display options in console"] = true,
["Display options in Fubar"] = true,
["Display options"] = true,
["Display who broke CC"] = true,
["display"] = true,
["druid"] = true,
["Enable debug messages"] = true,
["enable"] = true,
["Filter for classes"] = true,
["Filter for raid roles"] = true,
["Filter for unit types"] = true,
["Filter Options"] = true,
["filter"] = true,
["four"] = true,
["fubar"] = true,
["hunter"] = true,
["mage"] = true,
["mainassist"] = true,
["maintank"] = true,
["Open config in a Waterall window"] = true,
["others"] = true,
["paladin"] = true,
["party pet"] = true,
["party"] = true,
["pet"] = true,
["player"] = true,
["priest"] = true,
["raid pet"] = true,
["raid"] = true,
["raidwarning"] = true,
["Report CC breaks from those only"] = true,
["Report CC breaks of effects"] = true,
["Report CC breaks to those targets only"] = true,
["Reset breaker data"] = true,
["reset"] = true,
["Rightclick for options"]= true,
["rogue"] = true,
["role"] = true,
["shaman"] = true,
["Show break from druids"] = true,
["Show break from hunters"] = true,
["Show break from mages"] = true,
["Show break from mainassists"] = true,
["Show break from maintanks"] = true,
["Show break from others"] = true,
["Show break from paladins"] = true,
["Show break from party members"] = true,
["Show break from party pets"] = true,
["Show break from player"] = true,
["Show break from priests"] = true,
["Show break from raid members"] = true,
["Show break from raid pets"] = true,
["Show break from rogues"] = true,
["Show break from shamans"] = true,
["Show break from warlocks"] = true,
["Show break from warriors"] = true,
["Show break from your pet"] = true,
["Show break of "] = true,
["Show break on druids"] = true,
["Show break on hunters"] = true,
["Show break on mages"] = true,
["Show break on mainassists"] = true,
["Show break on maintanks"] = true,
["Show break on others"] = true,
["Show break on paladins"] = true,
["Show break on party members"] = true,
["Show break on party pets"] = true,
["Show break on player"] = true,
["Show break on priests"] = true,
["Show break on raid members"] = true,
["Show break on raid pets"] = true,
["Show break on rogues"] = true,
["Show break on shamans"] = true,
["Show break on warlocks"] = true,
["Show break on warriors"] = true,
["Show break on your pet"] = true,
["show effects"] = true,
["show from"] = true,
["show on"] = true,
["Slash-Commands"] = true,
["spell"] = true,
["spell"]= true,
["target"] = true,
["target"]= true,
["text if only spell an target are given"] = true,
["text if only spell, target and breaker are given"] = true,
["text if spell, target, breaker and ability are given"] = true,
["text"] = true,
["three"] = true,
["two"] = true,
["unit"] = true,
["warlock"] = true,
["warrior"] = true,
} end)
local L = AceLibrary("AceLocale-2.2"):new("CCBreaker")
 
--[[
Explanation:
[spell] : name of the broken spell
[target] : name of the target the spell was on
[breaker] : name of the person removing the spell
[ability] : name of the ability breaking the spell
]]--
 
L:RegisterTranslations("enUS", function() return {
["[spell] on [target] was removed by [breaker]"] = true,
["[spell] on [target] was removed by [breaker]"]= true,
["[spell] on [target] was removed by [breaker]'s [ability]"] = true,
["[spell] on [target] was removed by [breaker]'s [ability]"]= true,
["[spell] on [target] was removed"] = true,
["[spell] on [target] was removed"]= true,
["ability"] = true,
["ability"]= true,
["breaker"] = true,
["breaker"]= true,
["broadcast as raidwarning"] = true,
["broadcast to party"] = true,
["broadcast to raid"] = true,
["center"] = true,
["Change the displayed text, leave blank for default"] = true,
["Chat options"] = true,
["chat"] = true,
["Chose color to use"] = true,
["class"] = true,
["Color messages"] = true,
["color text"] = true,
["color"] = true,
["config"] = true,
["console"] = true,
["deathknight"] = true,
["debug"] = true,
["Display ability breaking the CC"] = true,
["Display broken spell"] = true,
["Display centered messages"] = true,
["Display console messages"] = true,
["Display freed target"] = true,
["Display options for centered messages"] = true,
["Display options in console"] = true,
["Display options in Fubar"] = true,
["Display options"] = true,
["Display who broke CC"] = true,
["display"] = true,
["druid"] = true,
["Enable debug messages"] = true,
["enable"] = true,
["Filter for classes"] = true,
["Filter for raid roles"] = true,
["Filter for unit types"] = true,
["Filter Options"] = true,
["filter"] = true,
["four"] = true,
["fubar"] = true,
["hunter"] = true,
["mage"] = true,
["mainassist"] = true,
["maintank"] = true,
["Open config in a Waterall window"] = true,
["others"] = true,
["paladin"] = true,
["party pet"] = true,
["party"] = true,
["pet"] = true,
["player"] = true,
["priest"] = true,
["raid pet"] = true,
["raid"] = true,
["raidwarning"] = true,
["Report CC breaks from those only"] = true,
["Report CC breaks of effects"] = true,
["Report CC breaks to those targets only"] = true,
["Reset breaker data"] = true,
["reset"] = true,
["Rightclick for options"]= true,
["rogue"] = true,
["role"] = true,
["shaman"] = true,
["Show break from druids"] = true,
["Show break from hunters"] = true,
["Show break from mages"] = true,
["Show break from mainassists"] = true,
["Show break from maintanks"] = true,
["Show break from others"] = true,
["Show break from paladins"] = true,
["Show break from party members"] = true,
["Show break from party pets"] = true,
["Show break from player"] = true,
["Show break from priests"] = true,
["Show break from raid members"] = true,
["Show break from raid pets"] = true,
["Show break from rogues"] = true,
["Show break from shamans"] = true,
["Show break from warlocks"] = true,
["Show break from warriors"] = true,
["Show break from deathknights"] = true,
["Show break from your pet"] = true,
["Show break of "] = true,
["Show break on druids"] = true,
["Show break on hunters"] = true,
["Show break on mages"] = true,
["Show break on mainassists"] = true,
["Show break on maintanks"] = true,
["Show break on others"] = true,
["Show break on paladins"] = true,
["Show break on party members"] = true,
["Show break on party pets"] = true,
["Show break on player"] = true,
["Show break on priests"] = true,
["Show break on raid members"] = true,
["Show break on raid pets"] = true,
["Show break on rogues"] = true,
["Show break on shamans"] = true,
["Show break on warlocks"] = true,
["Show break on warriors"] = true,
["Show break on deathknights"] = true,
["Show break on your pet"] = true,
["show effects"] = true,
["show from"] = true,
["show on"] = true,
["Slash-Commands"] = true,
["spell"] = true,
["spell"]= true,
["target"] = true,
["target"]= true,
["text if only spell an target are given"] = true,
["text if only spell, target and breaker are given"] = true,
["text if spell, target, breaker and ability are given"] = true,
["text"] = true,
["three"] = true,
["two"] = true,
["unit"] = true,
["warlock"] = true,
["warrior"] = true,
} end)
Locale-deDE.lua
1,129 → 1,132
local L = AceLibrary("AceLocale-2.2"):new("CCBreaker")
 
--[[
Explanation:
[spell] : name of the broken spell
[target] : name of the target the spell was on
[breaker] : name of the person removing the spell
[ability] : name of the ability breaking the spell
]]--
 
L:RegisterTranslations("enUS", function() return {
["[spell] on [target] was removed by [breaker]"] = "[spell] auf [target] wurde von [breaker] entfernt ",
["[spell] on [target] was removed by [breaker]'s [ability]"] = "[spell] auf [target] wurde durch [breaker]s [ability] entfernt",
["[spell] on [target] was removed"] = "[spell] auf [target] wurde entfernt",
["ability"] = "Fähigkeit",
["breaker"] = "CC-Entferner",
["broadcast as raidwarning"] = "Als Schlachtzugwarnung senden",
["broadcast to party"] = "An Gruppe senden",
["broadcast to raid"] = "An Schlachtzug senden",
["center"] = "Mitte",
["Change the displayed text, leave blank for default"] = "Textausgabe ändern, leerlassen für Standard",
["Chat options"] = "Chatoptionen",
["chat"] = "Chat",
["Chose color to use"] = "Textfarbe auswählen",
["class"] = "Klasse",
["Color messages"] = "Texte einfärben",
["color text"] = "einfärben",
["color"] = "Farbe",
["config"] = "Einstellungen",
["console"] = "Konsole",
["debug"] = "Debug",
["Display ability breaking the CC"] = "Fähigkeit anzeigen durch die der CC entfernt wurde",
["Display broken spell"] = "Enfernten CC anzeigen",
["Display centered messages"] = "Nachricht in der Mitte anzeigen",
["Display console messages"] = "Nachrichten im Chatfenster anzeigen",
["Display freed target"] = "Befreites CC-Ziel anzeigen",
["Display options for centered messages"] = "Anzeigeoptionen für Mitte",
["Display options in console"] = "Anzeigeoptionen für Chatfenster",
["Display options in Fubar"] = "Anzeigeoptionen für FuBar",
["Display options"] = "Anzeigeoptionen",
["Display who broke CC"] = "Anzeigen wer den CC entfernt hat",
["display"] = "Anzeige",
["druid"] = "Druide",
["Enable debug messages"] = "Debug-Informationen anzeigen",
["enable"] = "aktivieren",
["Filter for classes"] = "Klassenfilter",
["Filter for raid roles"] = "Filter für Raidaufgaben",
["Filter for unit types"] = "Filter nach Art",
["Filter Options"] = "Filtereinstellungen",
["filter"] = "Filter",
["four"] = "vier",
["fubar"] = "FuBar",
["hunter"] = "Jäger",
["mage"] = "Magier",
["mainassist"] = "Mainassist",
["maintank"] = "Maintank",
["Open config in a Waterall window"] = "Einstellungen in Waterfall anzeigen",
["others"] = "Andere",
["paladin"] = "Paladin",
["party pet"] = "Gruppenpet",
["party"] = "Gruppe",
["pet"] = "Pet",
["player"] = "Spieler",
["priest"] = "Priester",
["raid pet"] = "Raidpet",
["raid"] = "Raid",
["raidwarning"] = "Raidwarnung",
["Report CC breaks from those only"] = "Nur anzeigen wenn entfernt von",
["Report CC breaks of effects"] = "Anzuzeigende CC's auswählen",
["Report CC breaks to those targets only"] = "Nur anzeigen wenn entfernt auf",
["Reset breaker data"] = "Liste löschen",
["reset"] = "reset",
["Rightclick for options"]= "Rechtsklick für Optionen",
["rogue"] = "Schurke",
["role"] = "Raidaufgabe",
["shaman"] = "Schamane",
["Show break from druids"] = "Anzeigen wenn CC durch einen Druiden entfernt wurde",
["Show break from hunters"] = "Anzeigen wenn CC durch einen Jäger entfernt wurde",
["Show break from mages"] = "Anzeigen wenn CC durch einen Magier entfernt wurde",
["Show break from mainassists"] = "Anzeigen wenn CC durch einen Mainassist entfernt wurde",
["Show break from maintanks"] = "Anzeigen wenn CC durch einen Maintank entfernt wurde",
["Show break from others"] = "Anzeigen wenn CC durch einen Andere entfernt wurde",
["Show break from paladins"] = "Anzeigen wenn CC durch einen Paladin entfernt wurde",
["Show break from party members"] = "Anzeigen wenn CC durch einen Gruppenmitglieder entfernt wurde",
["Show break from party pets"] = "Anzeigen wenn CC durch einen Gruppenpets entfernt wurde",
["Show break from player"] = "Anzeigen wenn CC durch einen Spieler entfernt wurde",
["Show break from priests"] = "Anzeigen wenn CC durch einen Priester entfernt wurde",
["Show break from raid members"] = "Anzeigen wenn CC durch eine Mitglied des Schlachtzuges entfernt wurde",
["Show break from raid pets"] = "Anzeigen wenn CC durch einen Raidpet entfernt wurde",
["Show break from rogues"] = "Anzeigen wenn CC durch einen Schurken entfernt wurde",
["Show break from shamans"] = "Anzeigen wenn CC durch einen Schamanen entfernt wurde",
["Show break from warlocks"] = "Anzeigen wenn CC durch einen Hexenmeister entfernt wurde",
["Show break from warriors"] = "Anzeigen wenn CC durch einen Krieger entfernt wurde",
["Show break from your pet"] = "Anzeigen wenn CC durch dein Pet entfernt wurde",
["Show break of "] = "Anzeigen wenn CC auf ... entfernt wurde",
["Show break on druids"] = "Anzeigen wenn CC auf einem Druiden entfernt wurde",
["Show break on hunters"] = "Anzeigen wenn CC auf einem Jäger entfernt wurde",
["Show break on mages"] = "Anzeigen wenn CC auf einem Magier entfernt wurde",
["Show break on mainassists"] = "Anzeigen wenn CC auf einem Mainassist entfernt wurde",
["Show break on maintanks"] = "Anzeigen wenn CC auf einem Maintank entfernt wurde",
["Show break on others"] = "Anzeigen wenn CC auf einem Andern entfernt wurde",
["Show break on paladins"] = "Anzeigen wenn CC auf einem Paladin entfernt wurde",
["Show break on party members"] = "Anzeigen wenn CC auf einem Gruppenmitglied entfernt wurde",
["Show break on party pets"] = "Anzeigen wenn CC auf einem Gruppenpet entfernt wurde",
["Show break on player"] = "Anzeigen wenn CC auf dem Spieler wurde",
["Show break on priests"] = "Anzeigen wenn CC auf einem Priester entfernt wurde",
["Show break on raid members"] = "Anzeigen wenn CC auf einem Schlachtzugsmitglied entfernt wurde",
["Show break on raid pets"] = "Anzeigen wenn CC auf einem Raidpet entfernt wurde",
["Show break on rogues"] = "Anzeigen wenn CC auf einem Schurken entfernt wurde",
["Show break on shamans"] = "Anzeigen wenn CC auf einem Schamanen entfernt wurde",
["Show break on warlocks"] = "Anzeigen wenn CC auf einem Hexenmeister entfernt wurde",
["Show break on warriors"] = "Anzeigen wenn CC auf einem Krieger entfernt wurde",
["Show break on your pet"] = "Anzeigen wenn CC auf deinem Pet entfernt wurde",
["show effects"] = "CC-Effekte",
["show from"] = "zeige durch",
["show on"] = "zeige auf",
["Slash-Commands"] = "/-Befehle",
["spell"] = "CC-Effekt",
["target"] = "Ziel",
["text if only spell an target are given"] = "Text der angezeigt wird, wenn nur CC-Effekt und Ziel bekannt sind",
["text if only spell, target and breaker are given"] = "Text der angezeigt wird, wenn nur CC-Effekt, Ziel und CC-Entferner bekannt sind",
["text if spell, target, breaker and ability are given"] = "Text der angezeigt wird, wenn CC-Effekt, Ziel, CC-Entferner und Fähigkeit bekannt sind",
["text"] = "Text",
["three"] = "drei",
["two"] = "zwei",
["unit"] = "Art",
["warlock"] = "Hexenmeister",
["warrior"] = "Krieger",
} end)
local L = AceLibrary("AceLocale-2.2"):new("CCBreaker")
 
--[[
Explanation:
[spell] : name of the broken spell
[target] : name of the target the spell was on
[breaker] : name of the person removing the spell
[ability] : name of the ability breaking the spell
]]--
 
L:RegisterTranslations("deDE", function() return {
["[spell] on [target] was removed by [breaker]"] = "[spell] auf [target] wurde von [breaker] entfernt ",
["[spell] on [target] was removed by [breaker]'s [ability]"] = "[spell] auf [target] wurde durch [breaker]s [ability] entfernt",
["[spell] on [target] was removed"] = "[spell] auf [target] wurde entfernt",
["ability"] = "Fähigkeit",
["breaker"] = "CC-Entferner",
["broadcast as raidwarning"] = "Als Schlachtzugwarnung senden",
["broadcast to party"] = "An Gruppe senden",
["broadcast to raid"] = "An Schlachtzug senden",
["center"] = "Mitte",
["Change the displayed text, leave blank for default"] = "Textausgabe ändern, leerlassen für Standard",
["Chat options"] = "Chatoptionen",
["chat"] = "Chat",
["Chose color to use"] = "Textfarbe auswählen",
["class"] = "Klasse",
["Color messages"] = "Texte einfärben",
["color text"] = "einfärben",
["color"] = "Farbe",
["config"] = "Einstellungen",
["console"] = "Konsole",
["deathknight"] = "Deathknight",
["debug"] = "Debug",
["Display ability breaking the CC"] = "Fähigkeit anzeigen durch die der CC entfernt wurde",
["Display broken spell"] = "Enfernten CC anzeigen",
["Display centered messages"] = "Nachricht in der Mitte anzeigen",
["Display console messages"] = "Nachrichten im Chatfenster anzeigen",
["Display freed target"] = "Befreites CC-Ziel anzeigen",
["Display options for centered messages"] = "Anzeigeoptionen für Mitte",
["Display options in console"] = "Anzeigeoptionen für Chatfenster",
["Display options in Fubar"] = "Anzeigeoptionen für FuBar",
["Display options"] = "Anzeigeoptionen",
["Display who broke CC"] = "Anzeigen wer den CC entfernt hat",
["display"] = "Anzeige",
["druid"] = "Druide",
["Enable debug messages"] = "Debug-Informationen anzeigen",
["enable"] = "aktivieren",
["Filter for classes"] = "Klassenfilter",
["Filter for raid roles"] = "Filter für Raidaufgaben",
["Filter for unit types"] = "Filter nach Art",
["Filter Options"] = "Filtereinstellungen",
["filter"] = "Filter",
["four"] = "vier",
["fubar"] = "FuBar",
["hunter"] = "Jäger",
["mage"] = "Magier",
["mainassist"] = "Mainassist",
["maintank"] = "Maintank",
["Open config in a Waterall window"] = "Einstellungen in Waterfall anzeigen",
["others"] = "Andere",
["paladin"] = "Paladin",
["party pet"] = "Gruppenpet",
["party"] = "Gruppe",
["pet"] = "Pet",
["player"] = "Spieler",
["priest"] = "Priester",
["raid pet"] = "Raidpet",
["raid"] = "Raid",
["raidwarning"] = "Raidwarnung",
["Report CC breaks from those only"] = "Nur anzeigen wenn entfernt von",
["Report CC breaks of effects"] = "Anzuzeigende CC's auswählen",
["Report CC breaks to those targets only"] = "Nur anzeigen wenn entfernt auf",
["Reset breaker data"] = "Liste löschen",
["reset"] = "reset",
["Rightclick for options"]= "Rechtsklick für Optionen",
["rogue"] = "Schurke",
["role"] = "Raidaufgabe",
["shaman"] = "Schamane",
["Show break from druids"] = "Anzeigen wenn CC durch einen Druiden entfernt wurde",
["Show break from hunters"] = "Anzeigen wenn CC durch einen Jäger entfernt wurde",
["Show break from mages"] = "Anzeigen wenn CC durch einen Magier entfernt wurde",
["Show break from mainassists"] = "Anzeigen wenn CC durch einen Mainassist entfernt wurde",
["Show break from maintanks"] = "Anzeigen wenn CC durch einen Maintank entfernt wurde",
["Show break from others"] = "Anzeigen wenn CC durch einen Andere entfernt wurde",
["Show break from paladins"] = "Anzeigen wenn CC durch einen Paladin entfernt wurde",
["Show break from party members"] = "Anzeigen wenn CC durch einen Gruppenmitglieder entfernt wurde",
["Show break from party pets"] = "Anzeigen wenn CC durch einen Gruppenpets entfernt wurde",
["Show break from player"] = "Anzeigen wenn CC durch einen Spieler entfernt wurde",
["Show break from priests"] = "Anzeigen wenn CC durch einen Priester entfernt wurde",
["Show break from raid members"] = "Anzeigen wenn CC durch eine Mitglied des Schlachtzuges entfernt wurde",
["Show break from raid pets"] = "Anzeigen wenn CC durch einen Raidpet entfernt wurde",
["Show break from rogues"] = "Anzeigen wenn CC durch einen Schurken entfernt wurde",
["Show break from shamans"] = "Anzeigen wenn CC durch einen Schamanen entfernt wurde",
["Show break from warlocks"] = "Anzeigen wenn CC durch einen Hexenmeister entfernt wurde",
["Show break from warriors"] = "Anzeigen wenn CC durch einen Krieger entfernt wurde",
["Show break from deathknighs"] = "Anzeigen wenn CC durch einen Deathknight entfernt wurde",
["Show break from your pet"] = "Anzeigen wenn CC durch dein Pet entfernt wurde",
["Show break of "] = "Anzeigen wenn CC auf ... entfernt wurde",
["Show break on druids"] = "Anzeigen wenn CC auf einem Druiden entfernt wurde",
["Show break on hunters"] = "Anzeigen wenn CC auf einem Jäger entfernt wurde",
["Show break on mages"] = "Anzeigen wenn CC auf einem Magier entfernt wurde",
["Show break on mainassists"] = "Anzeigen wenn CC auf einem Mainassist entfernt wurde",
["Show break on maintanks"] = "Anzeigen wenn CC auf einem Maintank entfernt wurde",
["Show break on others"] = "Anzeigen wenn CC auf einem Andern entfernt wurde",
["Show break on paladins"] = "Anzeigen wenn CC auf einem Paladin entfernt wurde",
["Show break on party members"] = "Anzeigen wenn CC auf einem Gruppenmitglied entfernt wurde",
["Show break on party pets"] = "Anzeigen wenn CC auf einem Gruppenpet entfernt wurde",
["Show break on player"] = "Anzeigen wenn CC auf dem Spieler wurde",
["Show break on priests"] = "Anzeigen wenn CC auf einem Priester entfernt wurde",
["Show break on raid members"] = "Anzeigen wenn CC auf einem Schlachtzugsmitglied entfernt wurde",
["Show break on raid pets"] = "Anzeigen wenn CC auf einem Raidpet entfernt wurde",
["Show break on rogues"] = "Anzeigen wenn CC auf einem Schurken entfernt wurde",
["Show break on shamans"] = "Anzeigen wenn CC auf einem Schamanen entfernt wurde",
["Show break on warlocks"] = "Anzeigen wenn CC auf einem Hexenmeister entfernt wurde",
["Show break on warriors"] = "Anzeigen wenn CC auf einem Krieger entfernt wurde",
["Show break on deathknights"] = "Anzeigen wenn CC auf einem Deathknight entfernt wurde",
["Show break on your pet"] = "Anzeigen wenn CC auf deinem Pet entfernt wurde",
["show effects"] = "CC-Effekte",
["show from"] = "zeige durch",
["show on"] = "zeige auf",
["Slash-Commands"] = "/-Befehle",
["spell"] = "CC-Effekt",
["target"] = "Ziel",
["text if only spell an target are given"] = "Text der angezeigt wird, wenn nur CC-Effekt und Ziel bekannt sind",
["text if only spell, target and breaker are given"] = "Text der angezeigt wird, wenn nur CC-Effekt, Ziel und CC-Entferner bekannt sind",
["text if spell, target, breaker and ability are given"] = "Text der angezeigt wird, wenn CC-Effekt, Ziel, CC-Entferner und Fähigkeit bekannt sind",
["text"] = "Text",
["three"] = "drei",
["two"] = "zwei",
["unit"] = "Art",
["warlock"] = "Hexenmeister",
["warrior"] = "Krieger",
} end)
embeds.xml
1,15 → 1,15
<Ui xmlns="http://www.blizzard.com/wow/ui/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.blizzard.com/wow/ui/
..\FrameXML\UI.xsd">
 
<Script file="libs\AceLibrary\AceLibrary.lua"/>
<Script file="libs\AceAddon-2.0\AceAddon-2.0.lua"/>
<Script file="libs\AceConsole-2.0\AceConsole-2.0.lua"/>
<Script file="libs\AceEvent-2.0\AceEvent-2.0.lua"/>
<Script file="libs\AceDB-2.0\AceDB-2.0.lua"/>
<Script file="libs\AceLocale-2.2\AceLocale-2.2.lua"/>
 
<Script file="libs\FuBarPlugin-2.0\FuBarPlugin-2.0.lua"/>
<Script file="libs\Tablet-2.0\Tablet-2.0.lua"/>
<Script file="libs\Waterfall-1.0\Waterfall-1.0.lua"/>
 
</Ui>
<Ui xmlns="http://www.blizzard.com/wow/ui/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.blizzard.com/wow/ui/
..\FrameXML\UI.xsd">
 
<Script file="libs\AceLibrary\AceLibrary.lua"/>
<Script file="libs\AceAddon-2.0\AceAddon-2.0.lua"/>
<Script file="libs\AceConsole-2.0\AceConsole-2.0.lua"/>
<Script file="libs\AceEvent-2.0\AceEvent-2.0.lua"/>
<Script file="libs\AceDB-2.0\AceDB-2.0.lua"/>
<Script file="libs\AceLocale-2.2\AceLocale-2.2.lua"/>
 
<Script file="libs\FuBarPlugin-2.0\FuBarPlugin-2.0.lua"/>
<Script file="libs\Tablet-2.0\Tablet-2.0.lua"/>
<Script file="libs\Waterfall-1.0\Waterfall-1.0.lua"/>
 
</Ui>
CCBreaker.lua
1,528 → 1,570
CCBreaker = AceLibrary("AceAddon-2.0"):new("AceEvent-2.0","FuBarPlugin-2.0","AceConsole-2.0","AceDB-2.0")
local AceEvent = AceLibrary("AceEvent-2.0")
local CCLocale = AceLibrary("AceLocale-2.2"):new("CCBreaker")
local CCTablet = AceLibrary("Tablet-2.0")
CCBreaker.revision = tonumber(string.find("$Revision$","%d+")) or 1
 
-- Database
 
CCBreaker:RegisterDB("CCBreakerDB","CCBreakerDBPC")
 
-- basic datastructures
 
local oddline = {
['text']="",
['text2']="",
['text3']="",
['text4']="",
['textR']=1,
['textG']=1,
['textB']=1,
['text2R']=1,
['text2G']=1,
['text2B']=1,
['text3R']=1,
['text3G']=1,
['text3B']=1,
['text4R']=1,
['text4G']=1,
['text4B']=1,
['justify']="LEFT",
['justify2']="LEFT",
['justify3']="LEFT",
['justify4']="LEFT",
}
 
local evenline = {
['text']="",
['text2']="",
['text3']="",
['text4']="",
['textR']=0.7,
['textG']=0.7,
['textB']=0.7,
['text2R']=0.7,
['text2G']=0.7,
['text2B']=0.7,
['text3R']=0.7,
['text3G']=0.7,
['text3B']=0.7,
['text4R']=0.7,
['text4G']=0.7,
['text4B']=0.7,
['justify']="LEFT",
['justify2']="LEFT",
['justify3']="LEFT",
['justify4']="LEFT",
}
 
--combat log locals
local CombatLog_Object_IsA = CombatLog_Object_IsA
local COMBATLOG_OBJECT_NONE = COMBATLOG_OBJECT_NONE
local COMBATLOG_OBJECT_REACTION_HOSTILE = COMBATLOG_OBJECT_REACTION_HOSTILE or 0x00000040
 
local breakers = {}
 
local toUnitID = {}
local playerName = UnitName("player")
 
local should_UpdateToUnitID = false
local function UpdateToUnitID()
should_UpdateToUnitID = false
for k in pairs(toUnitID) do
if k ~= playerName then
toUnitID[k] = nil
end
end
 
local numParty = GetNumPartyMembers()
local numRaid = GetNumRaidMembers()
if numRaid > 0 then
for i = 1, numRaid do
local unitID = "raidpet" .. i
if UnitExists(unitID) then
toUnitID[UnitName(unitID)] = unitID
end
end
if UnitExists("pet") then
toUnitID[UnitName("pet")] = "pet"
end
for i = 1, numRaid do
local unitID = "raid" .. i
toUnitID[UnitName(unitID)] = unitID
end
elseif numParty > 0 then
for i = 1, numParty do
local unitID = "partypet" .. i
if UnitExists(unitID) then
toUnitID[UnitName(unitID)] = unitID
end
end
if UnitExists("pet") then
toUnitID[UnitName("pet")] = "pet"
end
for i = 1, numParty do
local unitID = "party" .. i
toUnitID[UnitName(unitID)] = unitID
end
else
if UnitExists("pet") then
toUnitID[UnitName("pet")] = "pet"
end
end
end
 
 
-- table recycling
local breakertablecache ={}
 
local function RecycleBreakerTable()
while #breakers > 0 do
table.insert(breakertablecache, table.remove(breakers))
end
end
 
local function GetBreakerTable()
local t
if #breakertablecache > 0 then
t = table.remove(breakertablecache)
else
t = {}
end
return t
end
 
function CCBreaker:reset()
self.lastBreaker = nil
RecycleBreakerTable()
self:UpdateText()
end
 
-- Initialisation
 
CCBreaker.hasIcon = true
 
function CCBreaker:OnInitialize()
self.defaultMinimapPosition = 300
self:RegisterEvent("RAID_ROSTER_UPDATE","UnitUpdate")
self:RegisterEvent("PARTY_MEMBERS_CHANGED","UnitUpdate")
self:RegisterEvent("UNIT_PET","UnitUpdate")
self:RegisterEvent("PLAYER_PET_CHANGED","UnitUpdate")
self:RegisterEvent("PLAYER_LOGIN","UnitUpdate")
self:RegisterEvent("UNIT_NAME_UPDATE","UnitUpdate")
end
 
function CCBreaker:UnitUpdate()
should_UpdateToUnitID = true
UpdateToUnitID()
end
 
function CCBreaker:OnEnable()
toUnitID[playerName]="player"
self:RegisterEvent("COMBAT_LOG_EVENT_UNFILTERED", "CrowdControlBroken");
self.raidid = 0
end
 
function CCBreaker:OnDisable()
end
 
-- Workload
 
 
 
local function CreateText(info,textatt)
local hlcolor
local basecolor
local text
strings = textatt.strings
if (strings.two =="") then
strings.two = CCLocale["[spell] on [target] was removed"]
end
if (strings.three =="") then
strings.three = CCLocale["[spell] on [target] was removed by [breaker]"]
end
if (strings.four =="") then
strings.four = CCLocale["[spell] on [target] was removed by [breaker]'s [ability]"]
end
 
if textatt.colors then
hlcolor = textatt.color.colortext
basecolor = "|r"
else
hlcolor = ""
basecolor = ""
end
text = basecolor
if info.sourceName then
if info.sourceAbilityName then
text = string.gsub(strings.four,"%[ability%]",hlcolor..info.sourceAbilityName..basecolor)
else
text = strings.three
end
text = string.gsub(text,"%[breaker%]",hlcolor..info.sourceName..basecolor)
else
text = strings.two
end
text = string.gsub(text,"%[spell%]",hlcolor..info.recipientAbilityName..basecolor)
text = string.gsub(text,"%[target%]",hlcolor..info.recipientName..basecolor)
return text
end
 
local function DisplayConsole(info)
if CCBreaker.db.char.display.console.enable then
CCBreaker:Print(CreateText(info,CCBreaker.db.char.display.console))
end
end
 
function DisplayCenter(info)
if CCBreaker.db.char.display.center.enable then
UIErrorsFrame:AddMessage(CreateText(info,CCBreaker.db.char.display.center),
1.0, 1.0, 1.0, 5.0)
end
end
 
function SendToChat(info)
if (CCBreaker.db.char.chat.raid and GetNumRaidMembers() > 0) then
SendChatMessage( CreateText(info,CCBreaker.db.char.chat),"RAID" ,nil ,nil)
end
if (CCBreaker.db.char.chat.raidwarning and GetNumRaidMembers()+GetNumPartyMembers() > 0)then
SendChatMessage( CreateText(info,CCBreaker.db.char.chat),"RAID_WARNING" ,nil ,nil)
end
if (CCBreaker.db.char.chat.party and GetNumPartyMembers() > 0) then
SendChatMessage( CreateText(info,CCBreaker.db.char.chat),"PARTY" ,nil ,nil)
end
end
 
CCBreaker.filters={}
function CCBreaker.filters.unitfilter(filter,value)
local id
local name, class, role
if value then
unittype, unitnumber = string.match(value,"(%a*)(%d*)")
else
return filter.others
end
if ((not(unitnumber == "")) and UnitInRaid(value)) then
name, _, _, _, _, class, _, _, _, role, _ = GetRaidRosterInfo(unitnumber)
else
if UnitInParty(value) then
_,class = UnitClass(value)
class = string.upper(class)
end
end
 
 
 
local player = (unittype == "player")
local party = (unittype == "party")
local raid = (unittype == "raid")
local pet = (unittype == "pet")
local partypet = (unittype == "partypet")
local raidpet = (unittype == "raidpet")
 
-- I am in a raid
if player and UnitInRaid(value) then
local i = 0
name, _, _, _, _, class, _, _, _, role, _ = GetRaidRosterInfo(CCBreaker.raidid)
if not(name == UnitName("player")) then
i=1 --go search
end
if i >0 then
local playername = UnitName("player")
while i <= 40 do
name, _, _, _, _, class, _, _, _, role, _ = GetRaidRosterInfo(i)
if name == playername then
CCBreaker.raidid = i
i = 40
end
i=i+1
end
end
end
-- finaly got my role for sure
local typevalue = ( --check
( player and (filter.player)) or
( party and (filter.party)) or
( raid and (filter.raid)) or
( pet and (filter.pet)) or
( partypet and (filter.partypet)) or
( raidpet and (filter.raidpet)) or
(not (player or party or raid or pet or partypet or raidpet) and filter.others)
)
local classvalue = ( --check
(filter.warrior and class == "WARRIOR") or
(filter.warlock and class == "WARLOCK") or
(filter.hunter and class == "HUNTER") or
(filter.mage and class == "MAGE") or
(filter.priest and class == "PRIEST") or
(filter.druid and class == "DRUID") or
(filter.paladin and class == "PALADIN") or
(filter.shaman and class == "SHAMAN") or
(filter.rogue and class == "ROGUE") or
(filter.deathknight and class == "DEATHKNIGHT") or
(class == nil))
local rolevalue = not(((not filter.maintank) and role == "MAINTANK") or
((not filter.mainassist) and role == "MAINASSIST"))
return (typevalue and classvalue and rolevalue)
end
 
CCBreaker.PolyId={
[118]=true, -- Polymorph (rank 1)
[12824]=true, -- Polymorph (rank 2)
[12825]=true, -- Polymorph (rank 3)
[12826]=true, -- Polymorph (rank 4)
[28272]=true, -- Polymorph (rank 1:pig)
[28271]=true, -- Polymorph (rank 1:turtle)
[61721]=true, -- Polymorph (rank 1:rabbit) ? is this even ingame? just to be sure
}
 
CCBreaker.ShackleId={
[9484]=true, -- Shackle Undead (rank 1)
[9485]=true, -- Shackle Undead (rank 2)
[10955]=true, -- Shackle Undead (rank 3)
}
 
CCBreaker.FreezingTrapId={
[3355]=true, -- Freezing Trap Effect (rank 1)
[14308]=true, -- Freezing Trap Effect (rank 2)
[14309]=true, -- Freezing Trap Effect (rank 3)
}
 
CCBreaker.HibernateId={
[2637]=true, -- Hibernate (rank 1)
[18657]=true, -- Hibernate (rank 2)
[18658]=true, -- Hibernate (rank 3)
}
 
CCBreaker.SapId={
[6770]=true, -- Sap (rank 1)
[2070]=true, -- Sap (rank 2)
[11297]=true, -- Sap (rank 3)
[51724]=true, -- Sap (rank 4)
}
 
CCBreaker.SeductionId={
[6358]=true, -- Seduction (succubus)
}
 
local PolyId = CCBreaker.PolyId
local ShackleId = CCBreaker.ShackleId
local FreezingTrapId = CCBreaker.FreezingTrapId
local HibernateId = CCBreaker.HibernateId
local SapId = CCBreaker.SapId
local SeductionId = CCBreaker.SeductionId
 
function CCBreaker.filters.showeffects(showeffects,spellid)
 
return (ShackleId[spellid] and showeffects.shackleundead) or
(HibernateId[spellid] and showeffects.hibernate) or
(SapId[spellid] and showeffects.sap) or
(PolyId[spellid] and showeffects.polymorph) or
(FreezingTrapId[spellid] and showeffects.freezingtrap)
end
 
 
 
function CCBreaker:filter(info)
local filters = self.filters
local sourceid
local targetid
 
local db = self.db.char
local spell = info.recipientAbilityName
local showfrom = self.db.char.showfrom
 
return (
-- "Show on" filter
filters.unitfilter(db.showon,info.recipientID) and
-- "Show From" filter
filters.unitfilter(db.showfrom,info.sourceID) and
-- "Show Effect" filter
filters.showeffects(db.showeffects,info.recipientAbilityId)
)
end
 
function CCBreaker:OnTextUpdate()
local text = {}
local lastbreaker = self.lastBreaker
local fubar = self.db.char.display.fubar
if ((lastbreaker == nil) or not
(fubar.spell or
fubar.target or
fubar.breaker or
fubar.ability
))then
table.insert(text,"CCBreaker")
else
if fubar.spell then
table.insert(text,lastbreaker.spell)
end
if fubar.target then
table.insert(text,lastbreaker.target)
end
if (fubar.breaker and not (lastbreaker.breaker=="")) then
table.insert(text,lastbreaker.breaker)
end
if (fubar.ability and not (lastbreaker.ability=="")) then
table.insert(text,lastbreaker.ability)
end
end
self:SetText(table.concat(text,"|"))
end
 
 
 
function CCBreaker:OnTooltipUpdate()
local cat = CCTablet:AddCategory(
'text',"",
'columns', 4
)
 
cat:AddLine(
'text', CCLocale["spell"],
'text2',CCLocale["target"],
'text3',CCLocale["breaker"],
'text4',CCLocale["ability"],
'textR',0,
'textG',1,
'textB',0,
'text2R',0,
'text2G',1,
'text2B',0,
'text3R',0,
'text3G',1,
'text3B',0,
'text4R',0,
'text4G',1,
'text4B',0,
'justify',"LEFT",
'justify2',"LEFT",
'justify3',"LEFT",
'justify4',"LEFT"
)
 
local isodd = true
local current
 
for i=1, #breakers do
if isodd then current = oddline else current = evenline end
isodd = not isodd
current['text'] = breakers[#breakers+1-i].spell
current['text2'] = breakers[#breakers+1-i].target
current['text3'] = breakers[#breakers+1-i].breaker
current['text4'] = breakers[#breakers+1-i].ability
cat:AddLine(current)
end
 
CCTablet:SetHint(CCLocale["Rightclick for options"])
end
 
function CCBreaker:CrowdControlBroken(
_,
eventType,
sourceGUID,
sourceName,
_,
destGUID,
destName,
destFlags,
spellId,
spellName,
_,
extraSpellId,
extraSpellName
)
if eventType == "SPELL_AURA_BROKEN" or eventType == "SPELL_AURA_BROKEN_SPELL" then
local info = {
["recipientID"] = toUnitID[recipientName],
["recipientName"] = destName,
["recipientAbilityName"] = spellName,
["recipientAbilityId"] = spellId,
["sourceID"] = toUnitID[sourceName],
["sourceName"] = sourceName,
["sourceAbilityName"] = extraSpellName,
["sourceAbilityId"] = extraSpellId,
}
if CCBreaker.db.char.debug then
CCBreaker:PrintLiteral(info)
CCBreaker:PrintLiteral(CCBreaker:filter(info))
CCBreaker:PrintLiteral(toUnitID)
--self:PrintLiteral(self.db.char.display.console)
end
 
if CCBreaker:filter(info) then
DisplayConsole(info)
DisplayCenter(info)
SendToChat(info)
 
--tooltip
local breaker = GetBreakerTable()
if (info.recipientAbilityName) then
breaker.spell = info.recipientAbilityName
else
breaker.spell = ""
end
 
if (info.recipientName) then
breaker.target = info.recipientName
else
breaker.target = ""
end
 
if (info.sourceAbilityName) then
breaker.ability = info.sourceAbilityName
else
breaker.ability = ""
end
 
if (info.sourceName) then
breaker.breaker = info.sourceName
else
breaker.breaker = ""
end
table.insert(breakers,breaker)
self.lastBreaker = breaker
self:UpdateText()
end
end
CCBreaker = AceLibrary("AceAddon-2.0"):new("AceEvent-2.0","FuBarPlugin-2.0","AceConsole-2.0","AceDB-2.0")
local AceEvent = AceLibrary("AceEvent-2.0")
local CCLocale = AceLibrary("AceLocale-2.2"):new("CCBreaker")
local CCTablet = AceLibrary("Tablet-2.0")
CCBreaker.revision = tonumber(string.find("$Revision$","%d+")) or 1
 
-- Database
 
CCBreaker:RegisterDB("CCBreakerDB","CCBreakerDBPC")
 
-- basic datastructures
 
local oddline = {
['text']="",
['text2']="",
['text3']="",
['text4']="",
['textR']=1,
['textG']=1,
['textB']=1,
['text2R']=1,
['text2G']=1,
['text2B']=1,
['text3R']=1,
['text3G']=1,
['text3B']=1,
['text4R']=1,
['text4G']=1,
['text4B']=1,
['justify']="LEFT",
['justify2']="LEFT",
['justify3']="LEFT",
['justify4']="LEFT",
}
 
local evenline = {
['text']="",
['text2']="",
['text3']="",
['text4']="",
['textR']=0.7,
['textG']=0.7,
['textB']=0.7,
['text2R']=0.7,
['text2G']=0.7,
['text2B']=0.7,
['text3R']=0.7,
['text3G']=0.7,
['text3B']=0.7,
['text4R']=0.7,
['text4G']=0.7,
['text4B']=0.7,
['justify']="LEFT",
['justify2']="LEFT",
['justify3']="LEFT",
['justify4']="LEFT",
}
 
--combat log locals
local CombatLog_Object_IsA = CombatLog_Object_IsA
local COMBATLOG_OBJECT_NONE = COMBATLOG_OBJECT_NONE
local COMBATLOG_OBJECT_REACTION_HOSTILE = COMBATLOG_OBJECT_REACTION_HOSTILE or 0x00000040
 
local breakers = {}
 
local toUnitID = {}
local playerName = UnitName("player")
 
local should_UpdateToUnitID = false
local function UpdateToUnitID()
should_UpdateToUnitID = false
for k in pairs(toUnitID) do
if k ~= playerName then
toUnitID[k] = nil
end
end
 
local numParty = GetNumPartyMembers()
local numRaid = GetNumRaidMembers()
if numRaid > 0 then
for i = 1, numRaid do
local unitID = "raidpet" .. i
if UnitExists(unitID) then
toUnitID[UnitName(unitID)] = unitID
end
end
if UnitExists("pet") then
toUnitID[UnitName("pet")] = "pet"
end
for i = 1, numRaid do
local unitID = "raid" .. i
toUnitID[UnitName(unitID)] = unitID
end
elseif numParty > 0 then
for i = 1, numParty do
local unitID = "partypet" .. i
if UnitExists(unitID) then
toUnitID[UnitName(unitID)] = unitID
end
end
if UnitExists("pet") then
toUnitID[UnitName("pet")] = "pet"
end
for i = 1, numParty do
local unitID = "party" .. i
toUnitID[UnitName(unitID)] = unitID
end
else
if UnitExists("pet") then
toUnitID[UnitName("pet")] = "pet"
end
end
end
 
 
-- table recycling
local breakertablecache ={}
 
local function RecycleBreakerTable()
while #breakers > 0 do
table.insert(breakertablecache, table.remove(breakers))
end
end
 
local function GetBreakerTable()
local t
if #breakertablecache > 0 then
t = table.remove(breakertablecache)
else
t = {}
end
return t
end
 
function CCBreaker:reset()
self.lastBreaker = nil
RecycleBreakerTable()
self:UpdateText()
end
 
-- Initialisation
 
CCBreaker.hasIcon = true
 
function CCBreaker:OnInitialize()
self.defaultMinimapPosition = 300
self:RegisterEvent("RAID_ROSTER_UPDATE","UnitUpdate")
self:RegisterEvent("PARTY_MEMBERS_CHANGED","UnitUpdate")
self:RegisterEvent("UNIT_PET","UnitUpdate")
self:RegisterEvent("PLAYER_PET_CHANGED","UnitUpdate")
self:RegisterEvent("PLAYER_LOGIN","UnitUpdate")
self:RegisterEvent("UNIT_NAME_UPDATE","UnitUpdate")
end
 
function CCBreaker:UnitUpdate()
should_UpdateToUnitID = true
UpdateToUnitID()
end
 
function CCBreaker:OnEnable()
toUnitID[playerName]="player"
self:RegisterEvent("COMBAT_LOG_EVENT_UNFILTERED", "CrowdControlBroken");
self.raidid = 0
end
 
function CCBreaker:OnDisable()
end
 
-- Workload
 
 
 
local function CreateText(info,textatt)
local hlcolor
local basecolor
local text
strings = textatt.strings
if (strings.two =="") then
strings.two = CCLocale["[spell] on [target] was removed"]
end
if (strings.three =="") then
strings.three = CCLocale["[spell] on [target] was removed by [breaker]"]
end
if (strings.four =="") then
strings.four = CCLocale["[spell] on [target] was removed by [breaker]'s [ability]"]
end
 
if textatt.colors then
hlcolor = textatt.color.colortext
basecolor = "|r"
else
hlcolor = ""
basecolor = ""
end
text = basecolor
if info.sourceName then
if info.sourceAbilityName then
text = string.gsub(strings.four,"%[ability%]",hlcolor..info.sourceAbilityName..basecolor)
else
text = strings.three
end
text = string.gsub(text,"%[breaker%]",hlcolor..info.sourceName..basecolor)
else
text = strings.two
end
text = string.gsub(text,"%[spell%]",hlcolor..info.recipientAbilityName..basecolor)
text = string.gsub(text,"%[target%]",hlcolor..info.recipientName..basecolor)
return text
end
 
local function DisplayConsole(info)
if CCBreaker.db.char.display.console.enable then
CCBreaker:Print(CreateText(info,CCBreaker.db.char.display.console))
end
end
 
function DisplayCenter(info)
if CCBreaker.db.char.display.center.enable then
UIErrorsFrame:AddMessage(CreateText(info,CCBreaker.db.char.display.center),
1.0, 1.0, 1.0, 5.0)
end
end
 
function SendToChat(info)
if (CCBreaker.db.char.chat.raid and GetNumRaidMembers() > 0) then
SendChatMessage( CreateText(info,CCBreaker.db.char.chat),"RAID" ,nil ,nil)
end
if (CCBreaker.db.char.chat.raidwarning and GetNumRaidMembers()+GetNumPartyMembers() > 0)then
SendChatMessage( CreateText(info,CCBreaker.db.char.chat),"RAID_WARNING" ,nil ,nil)
end
if (CCBreaker.db.char.chat.party and GetNumPartyMembers() > 0) then
SendChatMessage( CreateText(info,CCBreaker.db.char.chat),"PARTY" ,nil ,nil)
end
end
 
CCBreaker.filters={}
function CCBreaker.filters.unitfilter(filter,value)
local id
local name, class, role
if value then
unittype, unitnumber = string.match(value,"(%a*)(%d*)")
else
return filter.others
end
if ((not(unitnumber == "")) and UnitInRaid(value)) then
name, _, _, _, _, class, _, _, _, role, _ = GetRaidRosterInfo(unitnumber)
else
if UnitInParty(value) then
_,class = UnitClass(value)
class = string.upper(class)
end
end
 
 
 
local player = (unittype == "player")
local party = (unittype == "party")
local raid = (unittype == "raid")
local pet = (unittype == "pet")
local partypet = (unittype == "partypet")
local raidpet = (unittype == "raidpet")
 
-- I am in a raid
if player and UnitInRaid(value) then
local i = 0
name, _, _, _, _, class, _, _, _, role, _ = GetRaidRosterInfo(CCBreaker.raidid)
if not(name == UnitName("player")) then
i=1 --go search
end
if i >0 then
local playername = UnitName("player")
while i <= 40 do
name, _, _, _, _, class, _, _, _, role, _ = GetRaidRosterInfo(i)
if name == playername then
CCBreaker.raidid = i
i = 40
end
i=i+1
end
end
end
-- finaly got my role for sure
local typevalue = ( --check
( player and (filter.player)) or
( party and (filter.party)) or
( raid and (filter.raid)) or
( pet and (filter.pet)) or
( partypet and (filter.partypet)) or
( raidpet and (filter.raidpet)) or
(not (player or party or raid or pet or partypet or raidpet) and filter.others)
)
local classvalue = ( --check
(filter.warrior and class == "WARRIOR") or
(filter.warlock and class == "WARLOCK") or
(filter.hunter and class == "HUNTER") or
(filter.mage and class == "MAGE") or
(filter.priest and class == "PRIEST") or
(filter.druid and class == "DRUID") or
(filter.paladin and class == "PALADIN") or
(filter.shaman and class == "SHAMAN") or
(filter.rogue and class == "ROGUE") or
(filter.deathknight and class == "DEATHKNIGHT") or
(class == nil))
local rolevalue = not(((not filter.maintank) and role == "MAINTANK") or
((not filter.mainassist) and role == "MAINASSIST"))
return (typevalue and classvalue and rolevalue)
end
 
CCBreaker.PolyId={
[118]=true, -- Polymorph (rank 1)
[12824]=true, -- Polymorph (rank 2)
[12825]=true, -- Polymorph (rank 3)
[12826]=true, -- Polymorph (rank 4)
[28272]=true, -- Polymorph (rank 1:pig)
[28271]=true, -- Polymorph (rank 1:turtle)
[61305]=true, -- Polymorph (rank 1:blackcat)
}
 
CCBreaker.ShackleId={
[9484]=true, -- Shackle Undead (rank 1)
[9485]=true, -- Shackle Undead (rank 2)
[10955]=true, -- Shackle Undead (rank 3)
}
 
CCBreaker.FreezingTrapId={
[3355]=true, -- Freezing Trap Effect (rank 1)
[14308]=true, -- Freezing Trap Effect (rank 2)
[14309]=true, -- Freezing Trap Effect (rank 3)
}
 
CCBreaker.HibernateId={
[2637]=true, -- Hibernate (rank 1)
[18657]=true, -- Hibernate (rank 2)
[18658]=true, -- Hibernate (rank 3)
}
 
CCBreaker.SapId={
[6770]=true, -- Sap (rank 1)
[2070]=true, -- Sap (rank 2)
[11297]=true, -- Sap (rank 3)
[51724]=true, -- Sap (rank 4)
}
 
CCBreaker.SeductionId={
[6358]=true, -- Seduction (succubus)
}
 
CCBreaker.HexId={
[51514]=true, -- Hex
}
 
CCBreaker.WyvernStingId={
[19386]=true, -- Wyvern Sting (rank 1)
[24132]=true, -- Wyvern Sting (rank 2)
[24133]=true, -- Wyvern Sting (rank 3)
[27068]=true, -- Wyvern Sting (rank 4)
[49011]=true, -- Wyvern Sting (rank 5)
[49012]=true, -- Wyvern Sting (rank 6)
}
 
CCBreaker.RepentanceId={
[20066]=true, -- Repentance (rank 1)
}
 
CCBreaker.FreezingArrowId={
[60210]=true, -- Freezing Arrow (rank 1)
}
 
 
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
 
function CCBreaker.filters.showeffects(showeffects,spellid)
 
return (ShackleId[spellid] and showeffects.shackleundead) or
(HibernateId[spellid] and showeffects.hibernate) or
(SapId[spellid] and showeffects.sap) or
(PolyId[spellid] and showeffects.polymorph) or
(FreezingTrapId[spellid] and showeffects.freezingtrap) or
(HexId[spellid] and showeffects.hex) or
(WyvernStingId[spellid] and showeffects.wyvernsting) or
(RepentanceId[spellid] and showeffects.repentance) or
(FreezingArrowId[spellid] and showeffects.freezingarrow)
 
--[[ return (((spell == CCBabble["Shackle Undead"]) and (showeffects.shackleundead)) or
((spell == CCBabble["Hibernate"]) and (showeffects.hibernate)) or
((spell == CCBabble["Sap"]) and (showeffects.sap)) or
((spell == CCBabble["Seduction"]) and (showeffects.seduction)) or
(((spell == CCBabble["Polymorph"]) or (spell == CCBabble["Polymorph: Pig"])
or (spell == CCBabble["Polymorph: Turtle"]) or (spell == CCBabble["Polymorph: Black Cat"])) and (showeffects.polymorph))
((spell == CCBabble["Freezing Trap Effect"]) and (showeffects.freezingtrap)) or
((spell == CCBabble["Hex"]) and (showeffects.hex)) or
((spell == CCBabble["Wyvern Sting"]) and (showeffects.wyvernsting)) or
((spell == CCBabble["Repentance"]) and (showeffects.repentance)) or
((spell == CCBabble["Freezing Arrow"]) and (showeffects.freezingarrow)))]]
end
 
 
 
function CCBreaker:filter(info)
local filters = self.filters
local sourceid
local targetid
 
local db = self.db.char
local spell = info.recipientAbilityName
local showfrom = self.db.char.showfrom
 
return (
-- "Show on" filter
filters.unitfilter(db.showon,info.recipientID) and
-- "Show From" filter
filters.unitfilter(db.showfrom,info.sourceID) and
-- "Show Effect" filter
filters.showeffects(db.showeffects,info.recipientAbilityId)
)
end
 
function CCBreaker:OnTextUpdate()
local text = {}
local lastbreaker = self.lastBreaker
local fubar = self.db.char.display.fubar
if ((lastbreaker == nil) or not
(fubar.spell or
fubar.target or
fubar.breaker or
fubar.ability
))then
table.insert(text,"CCBreaker")
else
if fubar.spell then
table.insert(text,lastbreaker.spell)
end
if fubar.target then
table.insert(text,lastbreaker.target)
end
if (fubar.breaker and not (lastbreaker.breaker=="")) then
table.insert(text,lastbreaker.breaker)
end
if (fubar.ability and not (lastbreaker.ability=="")) then
table.insert(text,lastbreaker.ability)
end
end
self:SetText(table.concat(text,"|"))
end
 
 
 
function CCBreaker:OnTooltipUpdate()
local cat = CCTablet:AddCategory(
'text',"",
'columns', 4
)
 
cat:AddLine(
'text', CCLocale["spell"],
'text2',CCLocale["target"],
'text3',CCLocale["breaker"],
'text4',CCLocale["ability"],
'textR',0,
'textG',1,
'textB',0,
'text2R',0,
'text2G',1,
'text2B',0,
'text3R',0,
'text3G',1,
'text3B',0,
'text4R',0,
'text4G',1,
'text4B',0,
'justify',"LEFT",
'justify2',"LEFT",
'justify3',"LEFT",
'justify4',"LEFT"
)
 
local isodd = true
local current
 
for i=1, #breakers do
if isodd then current = oddline else current = evenline end
isodd = not isodd
current['text'] = breakers[#breakers+1-i].spell
current['text2'] = breakers[#breakers+1-i].target
current['text3'] = breakers[#breakers+1-i].breaker
current['text4'] = breakers[#breakers+1-i].ability
cat:AddLine(current)
end
 
CCTablet:SetHint(CCLocale["Rightclick for options"])
end
 
function CCBreaker:CrowdControlBroken(
_,
eventType,
sourceGUID,
sourceName,
_,
destGUID,
destName,
destFlags,
spellId,
spellName,
_,
extraSpellId,
extraSpellName
)
if eventType == "SPELL_AURA_BROKEN" or eventType == "SPELL_AURA_BROKEN_SPELL" then
local info = {
["recipientID"] = toUnitID[recipientName],
["recipientName"] = destName,
["recipientAbilityName"] = spellName,
["recipientAbilityId"] = spellId,
["sourceID"] = toUnitID[sourceName],
["sourceName"] = sourceName,
["sourceAbilityName"] = extraSpellName,
["sourceAbilityId"] = extraSpellId,
}
if CCBreaker.db.char.debug then
CCBreaker:PrintLiteral(info)
CCBreaker:PrintLiteral(CCBreaker:filter(info))
CCBreaker:PrintLiteral(toUnitID)
--self:PrintLiteral(self.db.char.display.console)
end
 
if CCBreaker:filter(info) then
DisplayConsole(info)
DisplayCenter(info)
SendToChat(info)
 
--tooltip
local breaker = GetBreakerTable()
if (info.recipientAbilityName) then
breaker.spell = info.recipientAbilityName
else
breaker.spell = ""
end
 
if (info.recipientName) then
breaker.target = info.recipientName
else
breaker.target = ""
end
 
if (info.sourceAbilityName) then
breaker.ability = info.sourceAbilityName
else
breaker.ability = ""
end
 
if (info.sourceName) then
breaker.breaker = info.sourceName
else
breaker.breaker = ""
end
table.insert(breakers,breaker)
self.lastBreaker = breaker
self:UpdateText()
end
end
end
\ No newline at end of file
CCOptions.lua
1,757 → 1,808
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
 
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,
deathknight=true,
shaman = true,
priest = true,
paladin = true,
mage = true,
druid = 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,
deathknight=true,
paladin = true,
mage = true,
druid = true,
maintank = true,
mainassist = true,
},
showeffects = {
freezingtrap = true,
hibernate = true,
polymorph = true,
shackleundead = true,
sap = true,
seduction = 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 = false,
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,
},
},
},
},
},
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,
},
},
},
},
},
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).." and "
..GetSpellInfo(28272),
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,
},
},
},
},
},
},
}
 
 
 
--CCBreaker:RegisterChatCommand(CCLocale["Slash-Commands"],CCBreaker.OnMenuRequest)
CCWaterfall:Register("CCBreaker","aceOptions",CCBreaker.OnMenuRequest,"title","CCBreaker Options","treeLevels",3)
 
 
 
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)