From c39fedcc3ab684ddf18faa5f65f00dba39efdc2b Mon Sep 17 00:00:00 2001 From: shagu Date: Mon, 3 Sep 2018 20:40:49 +0200 Subject: [PATCH] chat: allow to send playerlinks on shift-click --- modules/chat.lua | 35 +++++++++++++++++++++++++---------- 1 file changed, 25 insertions(+), 10 deletions(-) diff --git a/modules/chat.lua b/modules/chat.lua index 3a3b39c3..cf7ba187 100644 --- a/modules/chat.lua +++ b/modules/chat.lua @@ -785,8 +785,8 @@ pfUI:RegisterModule("chat", function () wcol = string.format("%02x%02x%02x",cr * 255,cg * 255, cb * 255) -- read and parse chat bracket settings - local left = string.sub(C.chat.text.bracket, 1, 1) - local right = string.sub(C.chat.text.bracket, 2, 2) + local left = "|r" .. string.sub(C.chat.text.bracket, 1, 1) + local right = string.sub(C.chat.text.bracket, 2, 2) .. "|r" -- read and parse chat time bracket settings local tleft = string.sub(C.chat.text.timebracket, 1, 1) @@ -814,8 +814,8 @@ pfUI:RegisterModule("chat", function () local r,g,b,a = strsplit(",", C.chat.text.timecolor) local timecolorhex = string.format("%02x%02x%02x%02x", a*255, r*255, g*255, b*255) - local r,g,b,a = strsplit(",", C.chat.text.unknowncolor) - local unknowncolorhex = string.format("%02x%02x%02x%02x", a*255, r*255, g*255, b*255) + local r,g,b = strsplit(",", C.chat.text.unknowncolor) + local unknowncolorhex = string.format("%02x%02x%02x", r*255, g*255, b*255) for i=1,NUM_CHAT_WINDOWS do if not _G["ChatFrame"..i].HookAddMessage then @@ -844,23 +844,21 @@ pfUI:RegisterModule("chat", function () if C.chat.text.classcolor == "1" then for name in string.gfind(text, "|Hplayer:(.-)|h") do - local cname + local color = unknowncolorhex -- search player in database if pfUI_playerDB[name] and pfUI_playerDB[name].class ~= nil then local class = pfUI_playerDB[name].class if class ~= UNKNOWN then - local color = string.format("%02x%02x%02x", + color = string.format("%02x%02x%02x", RAID_CLASS_COLORS[class].r * 255, RAID_CLASS_COLORS[class].g * 255, RAID_CLASS_COLORS[class].b * 255) - cname = left .. "|cff" .. color .. name .. "|r" .. right end - else - cname = left .. "|c" .. unknowncolorhex .. name .. "|r" .. right end - text = string.gsub(text, "|Hplayer:"..name.."|h%["..name.."%]|h(.-:-)", "|Hplayer:"..name.."|h"..cname.."|h%1") + text = string.gsub(text, "|Hplayer:"..name.."|h%["..name.."%]|h(.-:-)", + left.."|cff"..color.."|Hplayer:"..name.."|h" .. name .. "|h|r"..right.."%1") end end @@ -891,4 +889,21 @@ pfUI:RegisterModule("chat", function () end end end + + -- create playerlinks on shift-click + local pfHookSetItemRef = SetItemRef + _G.SetItemRef = function(link, text, button) + if ( strsub(link, 1, 6) == "player" ) then + local name = strsub(link, 8) + if ( name and (strlen(name) > 0) ) then + name = gsub(name, "([^%s]*)%s+([^%s]*)%s+([^%s]*)", "%3"); + name = gsub(name, "([^%s]*)%s+([^%s]*)", "%2"); + if IsShiftKeyDown() and ChatFrameEditBox:IsVisible() then + ChatFrameEditBox:Insert("|cffffffff|Hplayer:"..name.."|h["..name.."]|h|r") + return + end + end + end + pfHookSetItemRef(link, text, button) + end end)