--------------------------------------------------------------------------------- -- -- Prat - A framework for World of Warcraft chat mods -- -- Copyright (C) 2006-2018 Prat Development Team -- -- This program is free software; you can redistribute it and/or -- modify it under the terms of the GNU General Public License -- as published by the Free Software Foundation; either version 2 -- of the License, or (at your option) any later version. -- -- This program is distributed in the hope that it will be useful, -- but WITHOUT ANY WARRANTY; without even the implied warranty of -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -- GNU General Public License for more details. -- -- You should have received a copy of the GNU General Public License -- along with this program; if not, write to: -- -- Free Software Foundation, Inc., -- 51 Franklin Street, Fifth Floor, -- Boston, MA 02110-1301, USA. -- -- ------------------------------------------------------------------------------- Prat:AddModuleToLoad(function() local PRAT_MODULE = Prat:RequestModuleName("PopupMessage") if PRAT_MODULE == nil then return end -- create prat module local module = Prat:NewModule(PRAT_MODULE, "LibSink-2.0") local PL = module.PL --[==[@debug@ PL:AddLocale(PRAT_MODULE, "enUS", { ["PopupMessage"] = true, ["Shows messages with your name in a popup."] = true, ["Set Separately"] = true, ["Toggle setting options separately for each chat window."] = true, ["show_name"] = "Show Popups", ["show_desc"] = "Show Popups for each window.", ["Show Popups"] = true, ["Show Popups for each window."] = true, ["show_perframename"] = "Show ChatFrame%d Popups", ["show_perframedesc"] = "Toggles showing popups on and off.", ["showall_name"] = "Show All Popups", ["showall_desc"] = "Show Popups for all chat windows.", ["Show All Popups"] = true, ["Show Popups for all chat windows."] = true, ["Add Nickname"] = true, ["Adds an alternate name to show in popups."] = true, ["Remove Nickname"] = true, ["Removes an alternate name to show in popups."] = true, ["Clear Nickname"] = true, ["Clears alternate name to show in popups."] = true, ["framealpha_name"] = "Popup Frame Alpha", ["framealpha_desc"] = "Set the alpha value of the popup frame when fully faded in.", ["Popup"] = true, ["Shows messages in a popup window."] = true, -- ["Use SCT Message"] = true, -- ["Show the text as an SCT message instead of in its own frame"] = true, }) --@end-debug@]==] -- These Localizations are auto-generated. To help with localization -- please go to http://www.wowace.com/projects/prat-3-0/localization/ --@non-debug@ do local L L = { ["PopupMessage"] = { ["Add Nickname"] = true, ["Adds an alternate name to show in popups."] = true, ["Clear Nickname"] = true, ["Clears alternate name to show in popups."] = true, ["framealpha_desc"] = "Set the alpha value of the popup frame when fully faded in.", ["framealpha_name"] = "Popup Frame Alpha", ["Popup"] = true, ["PopupMessage"] = true, ["Remove Nickname"] = true, ["Removes an alternate name to show in popups."] = true, ["Set Separately"] = true, ["Show All Popups"] = true, ["Show Popups"] = true, ["Show Popups for all chat windows."] = true, ["Show Popups for each window."] = true, ["show_desc"] = "Show Popups for each window.", ["show_name"] = "Show Popups", ["show_perframedesc"] = "Toggles showing popups on and off.", ["show_perframename"] = "Show ChatFrame%d Popups", ["showall_desc"] = "Show Popups for all chat windows.", ["showall_name"] = "Show All Popups", ["Shows messages in a popup window."] = true, ["Shows messages with your name in a popup."] = true, ["Toggle setting options separately for each chat window."] = true, } } PL:AddLocale(PRAT_MODULE, "enUS", L) L = { ["PopupMessage"] = { --[[Translation missing --]] ["Add Nickname"] = "Add Nickname", --[[Translation missing --]] ["Adds an alternate name to show in popups."] = "Adds an alternate name to show in popups.", --[[Translation missing --]] ["Clear Nickname"] = "Clear Nickname", --[[Translation missing --]] ["Clears alternate name to show in popups."] = "Clears alternate name to show in popups.", --[[Translation missing --]] ["framealpha_desc"] = "Set the alpha value of the popup frame when fully faded in.", --[[Translation missing --]] ["framealpha_name"] = "Popup Frame Alpha", --[[Translation missing --]] ["Popup"] = "Popup", --[[Translation missing --]] ["PopupMessage"] = "PopupMessage", --[[Translation missing --]] ["Remove Nickname"] = "Remove Nickname", --[[Translation missing --]] ["Removes an alternate name to show in popups."] = "Removes an alternate name to show in popups.", --[[Translation missing --]] ["Set Separately"] = "Set Separately", --[[Translation missing --]] ["Show All Popups"] = "Show All Popups", --[[Translation missing --]] ["Show Popups"] = "Show Popups", --[[Translation missing --]] ["Show Popups for all chat windows."] = "Show Popups for all chat windows.", --[[Translation missing --]] ["Show Popups for each window."] = "Show Popups for each window.", --[[Translation missing --]] ["show_desc"] = "Show Popups for each window.", --[[Translation missing --]] ["show_name"] = "Show Popups", --[[Translation missing --]] ["show_perframedesc"] = "Toggles showing popups on and off.", --[[Translation missing --]] ["show_perframename"] = "Show ChatFrame%d Popups", --[[Translation missing --]] ["showall_desc"] = "Show Popups for all chat windows.", --[[Translation missing --]] ["showall_name"] = "Show All Popups", --[[Translation missing --]] ["Shows messages in a popup window."] = "Shows messages in a popup window.", --[[Translation missing --]] ["Shows messages with your name in a popup."] = "Shows messages with your name in a popup.", --[[Translation missing --]] ["Toggle setting options separately for each chat window."] = "Toggle setting options separately for each chat window.", } } PL:AddLocale(PRAT_MODULE, "itIT", L) L = { ["PopupMessage"] = { --[[Translation missing --]] ["Add Nickname"] = "Add Nickname", --[[Translation missing --]] ["Adds an alternate name to show in popups."] = "Adds an alternate name to show in popups.", --[[Translation missing --]] ["Clear Nickname"] = "Clear Nickname", --[[Translation missing --]] ["Clears alternate name to show in popups."] = "Clears alternate name to show in popups.", --[[Translation missing --]] ["framealpha_desc"] = "Set the alpha value of the popup frame when fully faded in.", --[[Translation missing --]] ["framealpha_name"] = "Popup Frame Alpha", --[[Translation missing --]] ["Popup"] = "Popup", --[[Translation missing --]] ["PopupMessage"] = "PopupMessage", --[[Translation missing --]] ["Remove Nickname"] = "Remove Nickname", --[[Translation missing --]] ["Removes an alternate name to show in popups."] = "Removes an alternate name to show in popups.", --[[Translation missing --]] ["Set Separately"] = "Set Separately", --[[Translation missing --]] ["Show All Popups"] = "Show All Popups", --[[Translation missing --]] ["Show Popups"] = "Show Popups", --[[Translation missing --]] ["Show Popups for all chat windows."] = "Show Popups for all chat windows.", --[[Translation missing --]] ["Show Popups for each window."] = "Show Popups for each window.", --[[Translation missing --]] ["show_desc"] = "Show Popups for each window.", --[[Translation missing --]] ["show_name"] = "Show Popups", --[[Translation missing --]] ["show_perframedesc"] = "Toggles showing popups on and off.", --[[Translation missing --]] ["show_perframename"] = "Show ChatFrame%d Popups", --[[Translation missing --]] ["showall_desc"] = "Show Popups for all chat windows.", --[[Translation missing --]] ["showall_name"] = "Show All Popups", --[[Translation missing --]] ["Shows messages in a popup window."] = "Shows messages in a popup window.", --[[Translation missing --]] ["Shows messages with your name in a popup."] = "Shows messages with your name in a popup.", --[[Translation missing --]] ["Toggle setting options separately for each chat window."] = "Toggle setting options separately for each chat window.", } } PL:AddLocale(PRAT_MODULE, "ptBR", L) L = { ["PopupMessage"] = { ["Add Nickname"] = "Ajouter un surnom", --[[Translation missing --]] ["Adds an alternate name to show in popups."] = "Adds an alternate name to show in popups.", ["Clear Nickname"] = "Efface le surnom", --[[Translation missing --]] ["Clears alternate name to show in popups."] = "Clears alternate name to show in popups.", ["framealpha_desc"] = "Régler la transparence de la popup lorsqu'elle disparait.", ["framealpha_name"] = "Transparence des popups", ["Popup"] = true, ["PopupMessage"] = "Message popup", ["Remove Nickname"] = "Retirer un surnom", --[[Translation missing --]] ["Removes an alternate name to show in popups."] = "Removes an alternate name to show in popups.", ["Set Separately"] = "Afficher séparément", ["Show All Popups"] = "Afficher toutes les popups", ["Show Popups"] = "Afficher les popups", ["Show Popups for all chat windows."] = "Afficher les popups pour toutes les fenêtres de discussion.", ["Show Popups for each window."] = "Afficher les popups pour chaque fenêtre.", ["show_desc"] = "Afficher les popups pour chaque fenêtre.", ["show_name"] = "Afficher les popups", ["show_perframedesc"] = "Active ou désactive l'affichage des popups.", ["show_perframename"] = "Afficher les popups de la fenêtre de discussion %d", ["showall_desc"] = "Afficher les popups pour toutes les fenêtres de discussion.", ["showall_name"] = "Afficher toutes les popups", ["Shows messages in a popup window."] = "Afficher les messages dans une fenêtre popup.", ["Shows messages with your name in a popup."] = "Afficher les messages avec votre nom dans une popup.", ["Toggle setting options separately for each chat window."] = "Activer des préférences différentes pour chaque fenêtre de discussion.", } } PL:AddLocale(PRAT_MODULE, "frFR",L) L = { ["PopupMessage"] = { ["Add Nickname"] = "Spitzname hinzufügen", ["Adds an alternate name to show in popups."] = "Fügt einen alternativen Namen hinzu, der in Popups angezeigt werden soll.", ["Clear Nickname"] = "Spitznamen löschen", ["Clears alternate name to show in popups."] = "Löscht den alternativen Namen, der in Popups angezeigt werden soll.", ["framealpha_desc"] = "Den Transparenzwert des Popup-Rahmens bei voller Darstellung einstellen.", ["framealpha_name"] = "Transparenz der Popup-Rahmens", ["Popup"] = true, ["PopupMessage"] = "Popup Nachricht", ["Remove Nickname"] = "Spitznamen entfernen", ["Removes an alternate name to show in popups."] = "Entfernt einen alternativen Namen, der in Popups angezeigt werden soll.", ["Set Separately"] = "Einzeln einstellen", ["Show All Popups"] = "Alle Popups anzeigen", ["Show Popups"] = "Popups anzeigen", ["Show Popups for all chat windows."] = "Popups für alle Chatfenster anzeigen.", ["Show Popups for each window."] = "Popups für jedes Fenster anzeigen.", ["show_desc"] = "Popups für jedes Fenster anzeigen.", ["show_name"] = "Popups anzeigen", ["show_perframedesc"] = "Anzeige der Popups ein- und ausschalten.", ["show_perframename"] = "Popups vom Chatfenster%d anzeigen", ["showall_desc"] = "Popups für alle Chatfenster anzeigen.", ["showall_name"] = "Alle Popups anzeigen", ["Shows messages in a popup window."] = "Zeigt Nachrichten in einem Popup-Fenster an.", ["Shows messages with your name in a popup."] = "Zeigt Nachrichten mit deinem Namen in einem Popup an.", ["Toggle setting options separately for each chat window."] = "Optionseinstellungen einzeln für jedes Chatfenster umschalten.", } } PL:AddLocale(PRAT_MODULE, "deDE", L) L = { ["PopupMessage"] = { ["Add Nickname"] = "별명 추가", ["Adds an alternate name to show in popups."] = "팝업에 표시할 별명을 추가합니다.", ["Clear Nickname"] = "별명 전체 삭제", ["Clears alternate name to show in popups."] = "팝업에 표시할 별명을 전체 삭제합니다.", ["framealpha_desc"] = "가장 밝아졌을 때 팝업 창의 투명도를 설정합니다.", ["framealpha_name"] = "팝업 창 투명도", ["Popup"] = "팝업", ["PopupMessage"] = "팝업 메시지", ["Remove Nickname"] = "별명 제거", ["Removes an alternate name to show in popups."] = "팝업에 표시할 별명을 제거합니다.", ["Set Separately"] = "개별 설정", ["Show All Popups"] = "모든 팝업 표시", ["Show Popups"] = "팝업 표시", ["Show Popups for all chat windows."] = "모든 대화창에 팝업을 표시합니다.", ["Show Popups for each window."] = "각 대화창 별로 팝업을 표시합니다.", ["show_desc"] = "각 창 별로 팝업을 표시합니다.", ["show_name"] = "팝업 표시", ["show_perframedesc"] = "팝업 표시 여부를 토글합니다.", ["show_perframename"] = "%d번 대화창 팝업 표시", ["showall_desc"] = "모든 대화창에 팝업을 표시합니다.", ["showall_name"] = "모든 팝업 표시", ["Shows messages in a popup window."] = "팝업창 안에 메시지를 표시합니다.", ["Shows messages with your name in a popup."] = "팝업 창에 당신의 이름과 메시지를 같이 표시합니다.", ["Toggle setting options separately for each chat window."] = "각 대화창 별로 설정 옵션을 끄거나 켭니다.", } } PL:AddLocale(PRAT_MODULE, "koKR",L) L = { ["PopupMessage"] = { --[[Translation missing --]] ["Add Nickname"] = "Add Nickname", --[[Translation missing --]] ["Adds an alternate name to show in popups."] = "Adds an alternate name to show in popups.", --[[Translation missing --]] ["Clear Nickname"] = "Clear Nickname", --[[Translation missing --]] ["Clears alternate name to show in popups."] = "Clears alternate name to show in popups.", --[[Translation missing --]] ["framealpha_desc"] = "Set the alpha value of the popup frame when fully faded in.", --[[Translation missing --]] ["framealpha_name"] = "Popup Frame Alpha", --[[Translation missing --]] ["Popup"] = "Popup", --[[Translation missing --]] ["PopupMessage"] = "PopupMessage", --[[Translation missing --]] ["Remove Nickname"] = "Remove Nickname", --[[Translation missing --]] ["Removes an alternate name to show in popups."] = "Removes an alternate name to show in popups.", --[[Translation missing --]] ["Set Separately"] = "Set Separately", --[[Translation missing --]] ["Show All Popups"] = "Show All Popups", --[[Translation missing --]] ["Show Popups"] = "Show Popups", --[[Translation missing --]] ["Show Popups for all chat windows."] = "Show Popups for all chat windows.", --[[Translation missing --]] ["Show Popups for each window."] = "Show Popups for each window.", --[[Translation missing --]] ["show_desc"] = "Show Popups for each window.", --[[Translation missing --]] ["show_name"] = "Show Popups", --[[Translation missing --]] ["show_perframedesc"] = "Toggles showing popups on and off.", --[[Translation missing --]] ["show_perframename"] = "Show ChatFrame%d Popups", --[[Translation missing --]] ["showall_desc"] = "Show Popups for all chat windows.", --[[Translation missing --]] ["showall_name"] = "Show All Popups", --[[Translation missing --]] ["Shows messages in a popup window."] = "Shows messages in a popup window.", --[[Translation missing --]] ["Shows messages with your name in a popup."] = "Shows messages with your name in a popup.", --[[Translation missing --]] ["Toggle setting options separately for each chat window."] = "Toggle setting options separately for each chat window.", } } PL:AddLocale(PRAT_MODULE, "esMX",L) L = { ["PopupMessage"] = { ["Add Nickname"] = "Добавить ник", ["Adds an alternate name to show in popups."] = "Добавить альтернативное имя для отображения при всплывании.", ["Clear Nickname"] = "Очистить ники", ["Clears alternate name to show in popups."] = "Очистить альтернативные имена для отображения при всплывании.", ["framealpha_desc"] = "Установка прозрачности всплывающего окна при полном затухании.", ["framealpha_name"] = "Прозрачность окна всплывания", ["Popup"] = "Всплывающий", ["PopupMessage"] = "Всплывающее окно ", ["Remove Nickname"] = "Удалить ник", ["Removes an alternate name to show in popups."] = "Удалить альтернативное имя для отображения при всплывании.", ["Set Separately"] = "Разделение", ["Show All Popups"] = "Все всплывающие", ["Show Popups"] = "Показывать всплывания", ["Show Popups for all chat windows."] = "Показывать всплывающие окна для всего чата.", ["Show Popups for each window."] = "Показывать всплывания для всех окон.", ["show_desc"] = "Отображать всплывние для всех окон чата.", ["show_name"] = "Показывать всплывание", ["show_perframedesc"] = "Вкл/Выкл отображение всплывания.", ["show_perframename"] = "Показать всплывание окна %d", ["showall_desc"] = "Показывать всплывающие окна для всего чата.", ["showall_name"] = "Все всплывающие", ["Shows messages in a popup window."] = "Показывать сообщение во всплывающем окне.", ["Shows messages with your name in a popup."] = "Показывать сообщение с вашим именем во всплывающем окне.", ["Toggle setting options separately for each chat window."] = "Вкл/Выкл настройки разделения для всех окон чата.", } } PL:AddLocale(PRAT_MODULE, "ruRU",L) L = { ["PopupMessage"] = { ["Add Nickname"] = "添加昵称", ["Adds an alternate name to show in popups."] = "添加一个显示在弹出中的替换名", ["Clear Nickname"] = "清除昵称", ["Clears alternate name to show in popups."] = "弹出显示清除候补名称", ["framealpha_desc"] = "设置完全消失时弹出框体透明度值", ["framealpha_name"] = "弹出框体透明度", ["Popup"] = "弹出", ["PopupMessage"] = "弹出信息", ["Remove Nickname"] = "移除昵称", ["Removes an alternate name to show in popups."] = "移除在弹出里显示的候补名称", ["Set Separately"] = "个别设置", ["Show All Popups"] = "显示所有弹出", ["Show Popups"] = "显示弹出", ["Show Popups for all chat windows."] = "为所有聊天窗后显示弹出", ["Show Popups for each window."] = "为每个窗口显示弹出", ["show_desc"] = "在每个窗口显示弹出", ["show_name"] = "显示弹出", ["show_perframedesc"] = "弹出开关", ["show_perframename"] = "显示聊天框体%d弹出", ["showall_desc"] = "在所有聊天窗口显示弹出", ["showall_name"] = "显示所有弹出", ["Shows messages in a popup window."] = "在弹出窗口显示信息", ["Shows messages with your name in a popup."] = "在弹出中显示含有你名字的信息", ["Toggle setting options separately for each chat window."] = "分别为每个聊天窗口设置选项", } } PL:AddLocale(PRAT_MODULE, "zhCN",L) L = { ["PopupMessage"] = { ["Add Nickname"] = "Añadir un Apodo", ["Adds an alternate name to show in popups."] = "Añade un nombre alternativo para mostrar en las ventanas emergentes.", ["Clear Nickname"] = "Limpiar Apodo", ["Clears alternate name to show in popups."] = "Limpia el nombre alternativo a mostrar en las ventanas emergentes.", ["framealpha_desc"] = "Establece el valor de transparencia del marco emergente al desaparecer completamente.", ["framealpha_name"] = "Transparencia Marco Emergente", ["Popup"] = "Emergente", ["PopupMessage"] = "Mensaje Emergente", ["Remove Nickname"] = "Eliminar Apodo", ["Removes an alternate name to show in popups."] = "Quita un nombre alternativo para mostrar en las ventanas emergentes.", ["Set Separately"] = "Establecer por Separado", ["Show All Popups"] = "Mostrar Todas las Emergentes", ["Show Popups"] = "Mostrar Emergentes", ["Show Popups for all chat windows."] = "Mostrar Emergentes para todas las ventanas de chat.", ["Show Popups for each window."] = "Mostrar Emergentes para cada ventana.", ["show_desc"] = "Muestra Emergentes para cada ventana.", ["show_name"] = "Mostar Emergentes", ["show_perframedesc"] = "Alterna activación de mostrar ventanas emergentes.", ["show_perframename"] = "Mostrar Marcos Emergentes de Chat %d", ["showall_desc"] = "Mostrar Ventanas Emergentes para todas las ventanas de chat.", ["showall_name"] = "Mostrar Todas las Emergentes", ["Shows messages in a popup window."] = "Muestra mensajes en una ventana emergente.", ["Shows messages with your name in a popup."] = "Muestra mensajes con tu nombre en una ventana emergente.", ["Toggle setting options separately for each chat window."] = "Cambiar opciones de configuración por separado para cada ventana de chat.", } } PL:AddLocale(PRAT_MODULE, "esES",L) L = { ["PopupMessage"] = { ["Add Nickname"] = "新增暱稱", --[[Translation missing --]] ["Adds an alternate name to show in popups."] = "Adds an alternate name to show in popups.", ["Clear Nickname"] = "清除暱稱", --[[Translation missing --]] ["Clears alternate name to show in popups."] = "Clears alternate name to show in popups.", ["framealpha_desc"] = "設定彈出視窗完全淡入時的透明度值", ["framealpha_name"] = "彈出視窗透明度", ["Popup"] = "彈出", ["PopupMessage"] = "彈出訊息", ["Remove Nickname"] = "移除暱稱", --[[Translation missing --]] ["Removes an alternate name to show in popups."] = "Removes an alternate name to show in popups.", ["Set Separately"] = "單獨設定", ["Show All Popups"] = "顯示所有彈出視窗", ["Show Popups"] = "顯示彈出視窗", ["Show Popups for all chat windows."] = "顯示彈出全部聊天視窗。", ["Show Popups for each window."] = "顯示彈出每個視窗。", ["show_desc"] = "顯示彈出每個視窗。", ["show_name"] = "顯示彈出", ["show_perframedesc"] = "換顯示彈出開動和關閉。", ["show_perframename"] = "顯示 ChatFrame%d 彈出", ["showall_desc"] = "顯示彈出全部聊天視窗。", ["showall_name"] = "顯示全部彈出", ["Shows messages in a popup window."] = "顯示在彈出視窗訊息。", --[[Translation missing --]] ["Shows messages with your name in a popup."] = "Shows messages with your name in a popup.", --[[Translation missing --]] ["Toggle setting options separately for each chat window."] = "Toggle setting options separately for each chat window.", } } PL:AddLocale(PRAT_MODULE, "zhTW",L) end --@end-non-debug@ -- -- -- --- -[[ -- Chinese Local : CWDG Translation Team 昏睡墨鱼 (Thomas Mo) -- CWDG site: http://Cwowaddon.com -- $Rev: 80460 $ -- ]] -- -- -- -- local EVENTS_EMOTES = { ["CHAT_MSG_BG_SYSTEM_ALLIANCE"] = true, ["CHAT_MSG_BG_SYSTEM_HORDE"] = true, ["CHAT_MSG_BG_SYSTEM_NEUTRAL"] = true, ["CHAT_MSG_EMOTE"] = true, ["CHAT_MSG_TEXT_EMOTE"] = true, ["CHAT_MSG_MONSTER_EMOTE"] = true, ["CHAT_MSG_MONSTER_SAY"] = true, ["CHAT_MSG_MONSTER_WHISPER"] = true, ["CHAT_MSG_MONSTER_YELL"] = true, ["CHAT_MSG_RAID_BOSS_EMOTE"] = true }; local EVENTS_IGNORE = { ["CHAT_MSG_CHANNEL_NOTICE_USER"] = true, ["CHAT_MSG_SYSTEM"] = true, ["CHAT_MSG_PING"] = true, } Prat:SetModuleDefaults(module.name, { profile = { on = false, separate = true, show = { ChatFrame1 = true }, framealpha = 1.0, nickname = {}, sinkoptions = { ["sink20OutputSink"] = "Popup" }, } }) local pluginOptions = { sink = {} } Prat:SetModuleOptions(module, { name = PL["PopupMessage"], desc = PL["Shows messages with your name in a popup."], type = "group", plugins = pluginOptions, args = { helpheader = { name = "Settings", type = "header", order = 105, }, show = { name = PL["Show Popups"], desc = PL["Show Popups for each window."], type = "multiselect", order = 110, values = Prat.HookedFrameList, get = "GetSubValue", set = "SetSubValue" }, addnick = { name = PL["Add Nickname"], desc = PL["Adds an alternate name to show in popups."], type = "input", order = 140, usage = "", get = false, set = function(info, name) info.handler:AddNickname(name) end }, removenick = { name = PL["Remove Nickname"], desc = PL["Removes an alternate name to show in popups."], type = "select", order = 150, get = function(info) return "" end, values = function(info) return info.handler.db.profile.nickname end, disabled = function(info) return #info.handler.db.profile.nickname == 0 end, set = function(info, value) info.handler:RemoveNickname(value) end }, clearnick = { name = PL["Clear Nickname"], desc = PL["Clears alternate name to show in popups."], type = "execute", order = 160, disabled = function(info) return (#info.handler.db.profile.nickname == 0) end, func = "ClearNickname", }, }, }) --[[------------------------------------------------ Module Event Functions ------------------------------------------------]] -- Prat:SetModuleInit(module, function(self) self:RegisterSink(PL["Popup"], PL["PopupMessage"], PL["Shows messages in a popup window."], "Popup") self:SetSinkStorage(self.db.profile.sinkoptions) pluginOptions.sink["output"] = self:GetSinkAce3OptionsDataTable() pluginOptions.sink["output"].inline = true self.db.profile.show = self.db.profile.show or {} end) function module:OnModuleEnable() Prat.RegisterChatEvent(self, Prat.Events.POST_ADDMESSAGE) self.nickpat = {} for _, v in ipairs(self.db.profile.nickname) do self.nickpat[v] = Prat.GetNamePattern(v) end self.playerName = Prat.GetNamePattern(UnitName("player")) end --[[------------------------------------------------ Core Functions ------------------------------------------------]] -- function module:GetDescription() return PL["Shows messages with your name in a popup."] end -- /dump module.moduleOptions.args.output.get():find("Default") -- /script module.moduleOptions.args.output.set("PopupMessage") -- /dump module.db.profile -- /script module.db.profile.sink10OutputSink = nil function module:Popup(source, text, r, g, b, ...) if Prat_PopupFrame.anim then Prat_PopupFrame.anim:Stop() else Prat_PopupFrame.anim = Prat_PopupFrame:CreateAnimationGroup() Prat_PopupFrame.anim:SetScript("OnFinished", function() Prat_PopupFrameText:Hide() end) local fade1 = Prat_PopupFrame.anim:CreateAnimation("Alpha") fade1:SetDuration(1) fade1:SetToAlpha(module.db.profile.framealpha or 1) fade1:SetEndDelay(4) fade1:SetOrder(1) local fade2 = Prat_PopupFrame.anim:CreateAnimation("Alpha") fade2:SetDuration(5) fade2:SetToAlpha(0) fade2:SetOrder(2) end Prat_PopupFrameText:SetTextColor(r, g, b) Prat_PopupFrameText:SetText(text) local font, _, style = ChatFrame1:GetFont() local _, fontsize = GameFontNormal:GetFont() Prat_PopupFrameText:SetFont(font, fontsize, style) Prat_PopupFrameText:SetNonSpaceWrap(false) Prat_PopupFrame:SetWidth(math.min(math.max(64, Prat_PopupFrameText:GetStringWidth() + 20), 520)) Prat_PopupFrame:SetHeight(64) Prat_PopupFrame:SetBackdropBorderColor(r, g, b) Prat_PopupFrameText:ClearAllPoints() Prat_PopupFrameText:SetPoint("TOPLEFT", Prat_PopupFrame, "TOPLEFT", 10, 10) Prat_PopupFrameText:SetPoint("BOTTOMRIGHT", Prat_PopupFrame, "BOTTOMRIGHT", -10, -10) Prat_PopupFrameText:Show() Prat_PopupFrame:SetAlpha(0) Prat_PopupFrame:Show() Prat_PopupFrame.anim:Play() end local DEBUG --[==[@debug@ DEBUG = true --@end-debug@]==] function module:Prat_PostAddMessage(info, message, frame, event, text, r, g, b, id) if self.pouring then return end if message.LINE_ID and message.LINE_ID == self.lastevent and self.lasteventtype == event then return end if not (EVENTS_EMOTES[event] or EVENTS_IGNORE[event]) then if self.db.profile.showall or self.db.profile.show[frame:GetName()] then if DEBUG or not (message.ORG.PLAYER and self.playerName and message.ORG.PLAYER:match(self.playerName)) then self:CheckText(message.ORG.MESSAGE, message.OUTPUT, event, r, g, b, message.LINE_ID) end end end end function module:AddNickname(name) for _, v in ipairs(self.db.profile.nickname) do if v:lower() == name:lower() then return end end tinsert(self.db.profile.nickname, name) self.nickpat[name] = Prat.GetNamePattern(name) end function module:RemoveNickname(idx) self.nickpat[self.db.profile.nickname[idx]] = nil tremove(self.db.profile.nickname, idx) end function module:ClearNickname() local n = self.db.profile.nickname while #n > 0 do self.nickpat[n[#n]] = nil n[#n] = nil -- tremove(self.db.profile.nickname) end end local tmp_color = {} local function safestr(s) return s or "" end function module:CheckText(text, display_text, event, r, g, b, eventId) -- local textL = safestr(text):lower() local show = false if text:match(self.playerName) then show = true; else for i, v in pairs(self.nickpat) do if v:len() > 0 and text:match(v) then show = true end end end if show then self.lasteventtype = event self.lastevent = eventId self.pouring = true self:Pour(display_text or text, r, g, b) Prat:PlaySound("popup"); self.pouring = nil end end return end) -- Prat:AddModuleToLoad