Files
coa-chatter/Modules/Telltarget.lua
T

56 lines
1.7 KiB
Lua

local mod = Chatter:NewModule("Tell Target (/tt)", "AceHook-3.0", "AceEvent-3.0", "AceConsole-3.0")
local L = LibStub("AceLocale-3.0"):GetLocale("Chatter")
mod.modName = L["Tell Target (/tt)"]
local UnitIsPlayer = _G.UnitIsPlayer
local UnitCanAssist = _G.UnitCanAssist
local UnitIsCharmed = _G.UnitIsCharmed
local SendChatMessage = _G.SendChatMessage
local UnitIsSameServer = _G.UnitIsSameServer
local UnitName = _G.UnitName
local gsub = _G.string.gsub
function mod:OnEnable()
-- self:SecureHook("ChatEdit_ParseText")
for i = 1, 10 do
self:HookScript(_G["ChatFrame" .. i .. "EditBox"], "OnTextChanged")
end
if not self.slashCommandRegistered then
self:RegisterChatCommand("tt", "SendChatMessage")
self.slashCommandRegistered = true
end
end
function mod:OnTextChanged(obj)
local text = obj:GetText()
if text:sub(1, 4) == "/tt " then
self:TellTarget(obj.chatFrame, text:sub(5))
end
self.hooks[obj].OnTextChanged(obj)
end
function mod:TellTarget(frame, msg)
local unitname, realm
if UnitIsPlayer("target") and (UnitIsFriend("player", "target") or UnitIsCharmed("target")) then
unitname, realm = UnitName("target")
if unitname then unitname = gsub(unitname, " ", "") end
if unitname and not UnitIsSameServer("player", "target") then
unitname = unitname .. "-" .. gsub(realm, " ", "")
end
end
ChatFrame_SendTell((unitname or "InvalidTarget"), frame)
_G[frame:GetName() .. "EditBox"]:SetText(msg)
end
function mod:Info()
return L["Enables the /tt command to send a tell to your target."]
end
function mod:SendChatMessage(input)
if UnitIsPlayer("target") and (UnitCanAssist("player", "target") or UnitIsCharmed("target"))then
SendChatMessage(input, "WHISPER", nil, UnitName("target"))
end
end