SPAMIAM_FILTERS = { ERR_ABILITY_COOLDOWN, -- Ability is not ready yet. (Ability) ERR_SPELL_COOLDOWN, -- Spell is not ready yet. (Spell) ERR_OUT_OF_ENERGY, -- Not enough energy. (Err) OUT_OF_ENERGY, -- Not enough energy. ERR_OUT_OF_RAGE, -- Not enough rage. ERR_NO_ATTACK_TARGET, -- There is nothing to attack. SPELL_FAILED_NO_COMBO_POINTS, -- That ability requires combo points. SPELL_FAILED_TARGETS_DEAD, -- Your target is dead. SPELL_FAILED_SPELL_IN_PROGRESS, -- Another action is in progress. (Spell) SPELL_FAILED_TARGET_AURASTATE, -- You can't do that yet. (TargetAura) SPELL_FAILED_CASTER_AURASTATE, -- You can't do that yet. (CasterAura) }; SPAMIAM_SPAMIAM = "SpamIam"; SPAMIAM_INIT1 = "SpamIam "; SPAMIAM_V = "v"; SPAMIAM_INIT2 = " loaded. Type /SpamIam or /sia for options."; SPAMIAM_STATUS1 = "[SpamIam is currently "; SPAMIAM_STATUS2 = "]"; SPAMIAM_ENABLED = "enabled"; SPAMIAM_DISABLED = "disabled"; SPAMIAM_HELP = "help"; SPAMIAM_USAGE1 = "Type /SpamIam or /sia followed by one of the following commands:"; SPAMIAM_USAGE2 = " enable - Enables SpamIam"; SPAMIAM_USAGE3 = " disable - Disables SpamIam"; SPAMIAM_USAGE4 = " toggle - Toggles SpamIam on/off"; SPAMIAM_USAGE5 = " list - Shows the current filters and their ID number"; SPAMIAM_USAGE6 = " add [message] - Adds [message] to the filter list"; SPAMIAM_USAGE7 = " remove [id] - Removes the message [id] from the filter list"; SPAMIAM_USAGE8 = " speechoff - Disables Error Speech"; SPAMIAM_USAGE9 = " speechon - Enables Error Speech"; SPAMIAM_ENABLE = "enable"; SPAMIAM_DISABLE = "disable"; SPAMIAM_FILTERSCMD = "list"; SPAMIAM_ADD = "add"; SPAMIAM_REMOVE = "remove"; SPAMIAM_TOGGLE = "toggle"; SPAMIAM_SPEECHOFF = "speechoff"; SPAMIAM_SPEECHON = "speechon"; SPAMIAM_UNKNOWNCOMMAND = "SpamIam: Unknown command. Type /SpamIam or /sia for help."; SPAMIAM_SPEECHTEXT1 = "SpamIam: Error Speech Disabled."; SPAMIAM_SPEECHTEXT2 = "SpamIam: Error Speech Enabled."; SPAMIAM_CURRENTFILTERS = "Current SpamIam filters:"; SPAMIAM_SLASHCOMMAND1 = "/spamiam"; SPAMIAM_SLASHCOMMAND2 = "/sia"; SPAMIAM_ADDUSAGE1 = "Usage: /SpamIam add [msg]"; SPAMIAM_ADDUSAGE2 = "Example: /SpamIam add Hello, world!"; SPAMIAM_ADDEDFILTER = "SpamIam added filter: "; SPAMIAM_REMOVEUSAGE1 = "Usage: /SpamIam remove [id]"; SPAMIAM_REMOVEUSAGE2 = "Example: /SpamIam remove 2"; SPAMIAM_REMOVEUSAGE3 = "Use /SpamIam list to see the ID's of every filter"; SPAMIAM_FILTERNOTFOUND = "SpamIam: filter not found"; SPAMIAM_REMOVEDFILTER = "Removed filter "; SPAMIAM_Version = "0.1"; SPAMIAM_Enabled = 1; SI_NameRegistered = 0; function SI_BCC(r, g, b) return string.format("|cff%02x%02x%02x", (r*255), (g*255), (b*255)); end local SIC = SI_BCC(1, .6, .2); local SIW = SI_BCC(1, 1, 1); function SI_Print(msg) if (DEFAULT_CHAT_FRAME) then DEFAULT_CHAT_FRAME:AddMessage(msg); end end function SPAMIAM_OnLoad() this:RegisterEvent("UNIT_NAME_UPDATE"); this:RegisterEvent("PLAYER_ENTERING_WORLD"); SlashCmdList["SPAMIAMCOMMAND"] = Spamiam_SlashHandler; SLASH_SPAMIAMCOMMAND1 = SPAMIAM_SLASHCOMMAND1; SLASH_SPAMIAMCOMMAND2 = SPAMIAM_SLASHCOMMAND2; SI_Old_UIErrorsFrame_OnEvent = UIErrorsFrame_OnEvent; UIErrorsFrame_OnEvent = SI_New_UIErrorsFrame_OnEvent; end function SPAMIAM_Localize() if (GetLocale() == "frFR") then SPAMIAM_SPAMIAM = "SpamIam"; SPAMIAM_INIT1 = "SpamIam "; SPAMIAM_V = "v"; SPAMIAM_INIT2 = " charg\195\169. Ecrivez /SpamIam ou /sia pour options."; SPAMIAM_STATUS1 = "[SpamIam est actuellemnt "; SPAMIAM_STATUS2 = "]"; SPAMIAM_ENABLED = "activ\195\169"; SPAMIAM_DISABLED = "d\195\169sactiv\195\169"; SPAMIAM_HELP = "aide"; SPAMIAM_USAGE1 = "Ecrivez /SpamIam ou /sia suivit d'une des commandes suivantes :"; SPAMIAM_USAGE2 = " activer - Active SpamIam"; SPAMIAM_USAGE3 = " d\195\169sactiver - D\195\169sactive SpamIam"; SPAMIAM_USAGE4 = " basculer - Basculer SpamIam en Activ\195\169/D\195\169sactiv\195\169"; SPAMIAM_USAGE5 = " liste - Affiche les filtres actuels et leur num\195\169ro d'ID "; SPAMIAM_USAGE6 = " ajouter [message] - Ajoute [message] \195\160 la liste des filtres"; SPAMIAM_USAGE7 = " enlever [id] - Enl\195\168ve l'[id] du message de la liste des filtres"; SPAMIAM_USAGE8 = " La Parole D'Erreur De Debronchements"; SPAMIAM_USAGE9 = " Permet La Parole D'Erreur"; SPAMIAM_ENABLE = "activer"; SPAMIAM_DISABLE = "d\195\169sactiver"; SPAMIAM_FILTERSCMD = "liste"; SPAMIAM_ADD = "ajouter"; SPAMIAM_REMOVE = "enlever"; SPAMIAM_TOGGLE = "basculer"; SPAMIAM_SPEECHOFF = "speechoff"; SPAMIAM_SPEECHON = "speechon"; SPAMIAM_UNKNOWNCOMMAND = "SpamIam : Commande inconnue. Ecrivez /SpamIam ou /sia pour l'aide."; SPAMIAM_SPEECHTEXT1 = "SpamIam: Discours D'Erreur Neutralise."; SPAMIAM_SPEECHTEXT2 = "SpamIam: Discours D'Erreur Permis."; SPAMIAM_CURRENTFILTERS = "Filtres actuels de SpamIam:"; SPAMIAM_SLASHCOMMAND1 = "/spamiam"; SPAMIAM_SLASHCOMMAND2 = "/sia"; SPAMIAM_ADDUSAGE1 = "Utilisation : /SpamIam ajouter [msg]"; SPAMIAM_ADDUSAGE2 = "Exemple : /SpamIam ajouter Bonjour tout le monde !"; SPAMIAM_ADDEDFILTER = "SpamIam ajoute le filtre : "; SPAMIAM_REMOVEUSAGE1 = "Utilisation : /SpamIam enl\195\168ve l'[id]"; SPAMIAM_REMOVEUSAGE2 = "Exemple : /SpamIam enl\195\168ve 2"; SPAMIAM_REMOVEUSAGE3 = "Utiliser /SpamIam liste, pour voir l'ID de tous les filtres"; SPAMIAM_FILTERNOTFOUND = "SpamIam : filtre non trouv\195\169"; SPAMIAM_REMOVEDFILTER = "Filtre enlev\195\169 "; elseif (GetLocale() == "deDE") then SPAMIAM_INIT1 = "SpamIam "; SPAMIAM_V = "v"; SPAMIAM_INIT2 = " geladen. /SpamIam oder /sia zeigt die Optionen an."; SPAMIAM_STATUS1 = "[SpamIam ist "; SPAMIAM_STATUS2 = "]"; SPAMIAM_ENABLED = "aktiv"; SPAMIAM_DISABLED = "inaktiv"; SPAMIAM_HELP = "Hilfe"; SPAMIAM_USAGE1 = "/SpamIam oder /sia mit einem der folgenden Befehle eingeben:"; SPAMIAM_USAGE2 = " aktivieren - aktiviert SpamIam"; SPAMIAM_USAGE3 = " deaktivieren - deaktiviert SpamIam"; SPAMIAM_USAGE4 = " toggle - toggelt den Aktivzustand von SpamIam"; SPAMIAM_USAGE5 = " liste - zeigt die aktuellen Filter und ihre IDs an"; SPAMIAM_USAGE6 = " add [nachricht] - F\195\188gt [message] der Filterliste hinzu"; SPAMIAM_USAGE7 = " remove [id] - L\195\182scht die Nachricht [id] von der Filterliste"; SPAMIAM_USAGE8 = " Sperrungen Storung Rede"; SPAMIAM_USAGE9 = " Ermoglicht Storung Rede"; SPAMIAM_ENABLE = "aktivieren"; SPAMIAM_DISABLE = "deaktivieren"; SPAMIAM_FILTERSCMD = "liste"; SPAMIAM_ADD = "add"; SPAMIAM_REMOVE = "remove"; SPAMIAM_TOGGLE = "toggle"; SPAMIAM_SPEECHOFF = "speechoff"; SPAMIAM_SPEECHON = "speechon"; SPAMIAM_UNKNOWNCOMMAND = "SpamIam: Unbekannter Befehl. /SpamIam oder /sia zeigt die Hilfe an."; SPAMIAM_SPEECHTEXT1 = "SpamIam: Storung Rede Sperrte."; SPAMIAM_SPEECHTEXT2 = "SpamIam: Storung Rede Ermoglicht."; SPAMIAM_CURRENTFILTERS = "Momentane SpamIam-Filter:"; SPAMIAM_SLASHCOMMAND1 = "/spamiam"; SPAMIAM_SLASHCOMMAND2 = "/sia"; SPAMIAM_ADDUSAGE1 = "Benutzung: /SpamIam add [msg]"; SPAMIAM_ADDUSAGE2 = "Beispiel: /SpamIam add Hallo!"; SPAMIAM_ADDEDFILTER = "SpamIam f\195\188gte folgenden Filter der Liste hinzu: "; SPAMIAM_REMOVEUSAGE1 = "Benutzung: /SpamIam remove [id]"; SPAMIAM_REMOVEUSAGE2 = "Beispiel: /SpamIam remove 2"; SPAMIAM_REMOVEUSAGE3 = "/SpamIam liste um die IDs der Filter anzeigen"; SPAMIAM_FILTERNOTFOUND = "SpamIam: Filter nicht gefunden"; SPAMIAM_REMOVEDFILTER = "Filter gel\195\182scht "; end end function SPAMIAM_Toggle() if (SPAMIAM_Enabled == 1) then SPAMIAM_Enabled = 0; else SPAMIAM_Enabled = 1; end SI_PrintStatus(); end function SI_Initialize() this:UnregisterEvent("UNIT_NAME_UPDATE"); this:UnregisterEvent("PLAYER_ENTERING_WORLD"); SPAMIAM_Localize(); if(myAddOnsList) then myAddOnsList.SpamIam = { name = "SpamIam", description = "", version = SPAMIAM_Version, frame = "SpamIamFrame", category = MYADDONS_CATEGORY_CLASS }; end SI_Print(SIC..SPAMIAM_INIT1..SIW..SPAMIAM_V..SPAMIAM_Version..SIC..SPAMIAM_INIT2); end function SPAMIAM_OnEvent() if (event == "UNIT_NAME_UPDATE" and arg1 == "player") or (event=="PLAYER_ENTERING_WORLD") then if (SI_NameRegistered == 1) then return; end local playerName = UnitName("player"); if (playerName ~= UNKNOWNBEING and playerName ~= "Unknown Entity" and playerName ~= nil ) then SI_NameRegistered = 1; SI_Initialize(); end end end function SI_PrintStatus() s = SIC..SPAMIAM_STATUS1..SIW; if (SPAMIAM_Enabled == 1) then s = s..SPAMIAM_ENABLED; else s = s..SPAMIAM_DISABLED; end s = s..SIC..SPAMIAM_STATUS2; SI_Print(s); end function Spamiam_SlashHandler(msg, arg1, arg2) local omsg = msg; if (msg) then msg = string.lower(msg); if (msg == "" or msg == SPAMIAM_HELP) then SI_Print(SIC..SPAMIAM_USAGE1); SI_Print(SIC..SPAMIAM_USAGE2); SI_Print(SIC..SPAMIAM_USAGE3); SI_Print(SIC..SPAMIAM_USAGE4); SI_Print(SIC..SPAMIAM_USAGE5); SI_Print(SIC..SPAMIAM_USAGE6); SI_Print(SIC..SPAMIAM_USAGE7); SI_Print(SIC..SPAMIAM_USAGE8); SI_Print(SIC..SPAMIAM_USAGE9); SI_PrintStatus(); elseif (msg == SPAMIAM_SPEECHOFF) then SetCVar("EnableErrorSpeech", 0); SI_Print(SPAMIAM_SPEECHTEXT1); elseif (msg == SPAMIAM_SPEECHON) then SetCVar("EnableErrorSpeech", 1); SI_Print(SPAMIAM_SPEECHTEXT2); elseif (msg == SPAMIAM_DISABLE) then SPAMIAM_Enabled = 0; SI_PrintStatus(); elseif (msg == SPAMIAM_ENABLE) then SPAMIAM_Enabled = 1; SI_PrintStatus(); elseif (msg == SPAMIAM_FILTERSCMD) then SI_Print(SIW..SPAMIAM_CURRENTFILTERS); for key, text in SPAMIAM_FILTERS do SI_Print(SIC.." ["..SIW..key..SIC.."] "..text); end elseif (msg == SPAMIAM_TOGGLE) then SPAMIAM_Toggle(); elseif (string.sub(msg, 1, string.len(SPAMIAM_ADD)) == SPAMIAM_ADD) then if (string.sub(msg, 1, (string.len(SPAMIAM_ADD)+1)) ~= (SPAMIAM_ADD.." ")) then SI_Print(SPAMIAM_ADDUSAGE1); SI_Print(SPAMIAM_ADDUSAGE2); else str = string.sub(omsg, (string.len(SPAMIAM_ADD)+2), -1); table.insert(SPAMIAM_FILTERS, str); SI_Print(SIC..SPAMIAM_ADDEDFILTER..SIW..str); end elseif (string.sub(msg, 1, string.len(SPAMIAM_REMOVE)) == SPAMIAM_REMOVE) then if (string.sub(msg, 1, (string.len(SPAMIAM_REMOVE)+1)) ~= (SPAMIAM_REMOVE.." ")) then SI_Print(SPAMIAM_REMOVEUSAGE1); SI_Print(SPAMIAM_REMOVEUSAGE2); SI_Print(SPAMIAM_REMOVEUSAGE3); else str = string.sub(omsg, (string.len(SPAMIAM_REMOVE)+2), -1); for key, text in SPAMIAM_FILTERS do if (key == tonumber(str)) then table.remove(SPAMIAM_FILTERS, key); SI_Print(SIC..SPAMIAM_REMOVEDFILTER..SIW..text); return; end end SI_Print(SPAMIAM_FILTERNOTFOUND); end else SI_Print(SPAMIAM_UNKNOWNCOMMAND); end end end function SI_New_UIErrorsFrame_OnEvent(event, message, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9) if (SPAMIAM_Enabled == 1) then for key, text in SPAMIAM_FILTERS do if (text and message) then if (message == text) then return; end end end end SI_Old_UIErrorsFrame_OnEvent(event, message, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9); end