Initial commit: Chatter v1.2.11 (Curse package)
This commit is contained in:
@@ -0,0 +1,65 @@
|
||||
local mod = Chatter:NewModule("ChatLink", "AceHook-3.0")
|
||||
local L = LibStub("AceLocale-3.0"):GetLocale("Chatter")
|
||||
mod.modName = L["Chat Link"]
|
||||
|
||||
local gsub = _G.string.gsub
|
||||
local find = _G.string.find
|
||||
local GetChannelName = _G.GetChannelName
|
||||
local EnumerateServerChannels = _G.EnumerateServerChannels
|
||||
local select = _G.select
|
||||
|
||||
local serverChannels = {}
|
||||
local function excludeChannels(...)
|
||||
for i = 1, select("#", ...) do
|
||||
local name = select(i, ...)
|
||||
serverChannels[name] = true
|
||||
end
|
||||
end
|
||||
|
||||
function mod:Decorate(frame)
|
||||
if not self:IsHooked(frame,"AddMessage") then
|
||||
self:RawHook(frame, "AddMessage", true)
|
||||
end
|
||||
end
|
||||
|
||||
function mod:OnEnable()
|
||||
excludeChannels(EnumerateServerChannels())
|
||||
for i = 1, NUM_CHAT_WINDOWS do
|
||||
local cf = _G["ChatFrame" .. i]
|
||||
if cf ~= COMBATLOG then
|
||||
self:RawHook(cf, "AddMessage", true)
|
||||
end
|
||||
end
|
||||
for index,name in ipairs(self.TempChatFrames) do
|
||||
local cf = _G[name]
|
||||
if cf then
|
||||
self:RawHook(cf, "AddMessage", true)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function mod:OnDisable()
|
||||
end
|
||||
|
||||
function mod:ParseLinks(text)
|
||||
if not text then return nil end
|
||||
text = gsub(text, "{CLINK:item:(%x+):([%d-]-:[%d-]-:[%d-]-:[%d-]-:[%d-]-:[%d-]-:[%d-]-:[%d-]-:[%d-]-):([^}]-)}", "|c%1|Hitem:%2|h[%3]|h|r")
|
||||
text = gsub(text, "{CLINK:talent:(%x+):([%d-]-:[%d-]-):([^}]-)}", "|c%1|Htalent:%2|h[%3]|h|r")
|
||||
text = gsub(text, "{CLINK:glyph:(%x+):([%d-]-:[%d-]-):([^}]-)}", "|c%1|Hglyph:%2|h[%3]|h|r")
|
||||
text = gsub(text, "{CLINK:enchant:(%x+):([%d-]-):([^}]-)}", "|c%1|Henchant:%2|h[%3]|h|r")
|
||||
text = gsub(text, "{CLINK:spell:(%x+):([%d-]-):([^}]-)}", "|c%1|Hspell:%2|h[%3]|h|r")
|
||||
text = gsub(text, "{CLINK:quest:(%x+):([%d-]-):([%d-]-):([^}]-)}", "|c%1|Hquest:%2:%3|h[%4]|h|r")
|
||||
text = gsub(text, "{CLINK:(%x+):([%d-]-:[%d-]-:[%d-]-:[%d-]-:[%d-]-:[%d-]-:[%d-]-:[%d-]-:[%d-]-):([^}]-)}", "|c%1|Hitem:%2|h[%3]|h|r")
|
||||
text = gsub(text, "{CLINK:trade:(%x+):(%-?%d-:%-?%d-:.*:.*):([^}]-)}", "|c%1|Htrade:%2|h[%3]|h|r")
|
||||
-- {CLINK:achievement:ffffff00:780:00000000001ED5C3:1:12:16:8:4294967295:4294967295:4294967295:4294967295:Explore Redridge Mountains}
|
||||
text = gsub(text, "{CLINK:achievement:(%x+):(%-?%d-:%-?%x-:%-?%d-:%-?%d-:%-?%d-:%-?%d-:%-?%d-:%-?%d-:%-?%d-:%-?%d-):([^}]-)}", "|c%1|Hachievement:%2|h[%3]|h|r")
|
||||
return text
|
||||
end
|
||||
|
||||
function mod:AddMessage(frame, text, ...)
|
||||
return self.hooks[frame].AddMessage(frame, mod:ParseLinks(text), ...)
|
||||
end
|
||||
|
||||
function mod:Info()
|
||||
return L["Lets you link items, enchants, spells, talents, achievements and quests in custom channels."]
|
||||
end
|
||||
Reference in New Issue
Block a user