You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

113 lines
3.2 KiB

---------------------------------------------------------------------------------
--
-- 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:AddModuleExtension(function()
local module = Prat.Addon:GetModule("PlayerNames", true)
if not module then return end
LibStub("AceTimer-3.0"):Embed(module)
local PL = module.PL
module.pluginopts["GlobalPatterns"] = {
coloreverywhere = {
type = "toggle",
name = PL["coloreverywhere_name"],
desc = PL["coloreverywhere_desc"],
order = 220
}
}
Prat.RegisterPattern({
pattern = "|c.-|H.-:.-|h.-|h|r",
matchfunc = function(link) return Prat:RegisterMatch(link) end,
type = "FRAME",
priority = 44
}, module.name)
Prat.RegisterPattern({
pattern = "|H.-:.-|h.-|h",
matchfunc = function(link) return Prat:RegisterMatch(link) end,
type = "FRAME",
priority = 45
}, module.name)
Prat.RegisterPattern({
pattern = "|K.-|k",
matchfunc = function(link) return Prat:RegisterMatch(link) end,
type = "FRAME",
priority = 45
}, module.name)
local ColorPlayer
do
local function Player(name, class)
return Prat.CLR:Player(name, name, class)
end
ColorPlayer = function(name)
return Prat:RegisterMatch(Player(name, module:GetData(name)))
end
end
local function newPattern(name)
return { pattern = Prat.GetNamePattern(name), matchfunc = ColorPlayer, priority = 48 }
end
do
local namePatterns = {}
function module:OnPlayerDataChangedThrottled(Name)
self.timerPlayerData = nil
if self.db.profile.coloreverywhere and Name then
Name = Name:match("(.-)%-.+") or Name
Name = Name:lower()
if not namePatterns[Name] and not Prat.PlayerNameBlackList[Name] and Name:len() > 1 then
namePatterns[Name] = Prat.RegisterPattern(newPattern(Name), self.name)
end
else
for k, v in pairs(namePatterns) do
Prat.UnregisterPattern(v)
namePatterns[k] = nil
end
end
end
function module:OnPlayerDataChanged(Name)
if not self.db.profile.coloreverywhere then return end
self:OnPlayerDataChangedThrottled(Name)
end
end
return
end) -- Prat:AddModuleToLoad