123 lines
4.7 KiB
Lua
Executable File
123 lines
4.7 KiB
Lua
Executable File
--[[
|
|
Name: Prat_TellTarget
|
|
Revision: $Revision: 16019 $
|
|
Author(s): Curney (asml8ed@gmail.com)
|
|
Krtek (krtek4@gmail.com)
|
|
Inspired by: idChat2_TellTarget by Industrial
|
|
ChatFrameExtender by Satrina
|
|
Website: http://www.wowace.com/files/index.php?path=Prat/
|
|
Documentation: http://www.wowace.com/wiki/Prat/Integrated_Modules#TellTarget
|
|
SVN: http://svn.wowace.com/wowace/trunk/Prat/
|
|
Description: Module for Prat that adds a slash command (/tt) to send a message to your target (default=on).
|
|
Dependencies: Prat
|
|
]]
|
|
|
|
local L = AceLibrary("AceLocale-2.2"):new("PratTellTarget")
|
|
|
|
L:RegisterTranslations("enUS", function() return {
|
|
["TellTarget"] = true,
|
|
["Adds telltarget slash command (/tt)."] = true,
|
|
["Toggle"] = true,
|
|
["Toggle the module on and off."] = true,
|
|
["Target does not exist."] = true,
|
|
["Target is not a player."] = true,
|
|
["No target selected."] = true,
|
|
["NoTarget"] = true,
|
|
} end)
|
|
|
|
L:RegisterTranslations("ruRU", function() return {
|
|
["TellTarget"] = "TellTarget",
|
|
["Adds telltarget slash command (/tt)."] = "Добавляет слеш-команду 'сказать о цели' (/tt).",
|
|
["Toggle"] = "Вкл/Выкл",
|
|
["Toggle the module on and off."] = "Вкл/Выкл модуль.",
|
|
["Target does not exist."] = "Цель не существует.",
|
|
["Target is not a player."] = "Выбранная цель не является игроком.",
|
|
["No target selected."] = "Нет выбранной цели.",
|
|
["NoTarget"] = "Нет цели",
|
|
} end)
|
|
|
|
L:RegisterTranslations("zhCN", function() return {
|
|
["TellTarget"] = "通知目标",
|
|
["Adds telltarget slash command (/tt)."] = "添加通知目标命令(/tt)。",
|
|
["Toggle"] = "切换",
|
|
["Toggle the module on and off."] = "切换此模块的打开与关闭",
|
|
["Target does not exist."] = "目标不存在。",
|
|
["Target is not a player."] = "目标非玩家。",
|
|
["No target selected."] = "无目标选定。",
|
|
["NoTarget"] = "无目标",
|
|
} end)
|
|
|
|
L:RegisterTranslations("koKR", function() return {
|
|
["TellTarget"] = "대상대화",
|
|
["Adds telltarget slash command (/tt)."] = "대상대화를 위한 (/tt) 명령 추가",
|
|
["Toggle"] = "전환",
|
|
["Toggle the module on and off."] = "모듈 켜고 끄기 전환",
|
|
["Target does not exist."] = "대상이 없습니다.",
|
|
["Target is not a player."] = "올바른 대상이 아닙니다.",
|
|
["No target selected."] = "선택된 대상이 없습니다.",
|
|
["NoTarget"] = "대상없음",
|
|
} end)
|
|
|
|
Prat_TellTarget = Prat:NewModule("telltarget")
|
|
|
|
function Prat_TellTarget:OnInitialize()
|
|
self.db = Prat:AcquireDBNamespace("TellTarget")
|
|
Prat:RegisterDefaults("TellTarget", "profile", {
|
|
on = true,
|
|
})
|
|
Prat.Options.args.telltarget = {
|
|
name = L["TellTarget"],
|
|
desc = L["Adds telltarget slash command (/tt)."],
|
|
type = "group",
|
|
args = {
|
|
toggle = {
|
|
name = L["Toggle"],
|
|
desc = L["Toggle the module on and off."],
|
|
type = "toggle",
|
|
get = function() return self.db.profile.on end,
|
|
set = function() self.db.profile.on = Prat:ToggleModuleActive("telltarget") end
|
|
}
|
|
}
|
|
}
|
|
end
|
|
|
|
function Prat_TellTarget:OnEnable()
|
|
self:Hook("ChatEdit_ExtractTellTarget")
|
|
self:Hook("ChatEdit_ParseText")
|
|
end
|
|
|
|
function Prat_TellTarget:TellTarget(msg)
|
|
if not UnitExists("target") then return end
|
|
if not UnitIsPlayer("target") then Prat:Print(L["Target is not a player."]); return end
|
|
if not UnitName("target") then Prat:Print(L["No target selected."]); return end
|
|
local cf = DEFAULT_CHAT_FRAME
|
|
cf.editBox.chatType = "WHISPER"
|
|
cf.editBox.tellTarget = UnitName("target")
|
|
ChatEdit_UpdateHeader(cf.editBox)
|
|
if not cf.editBox:IsVisible() then
|
|
ChatFrame_OpenChat("", cf)
|
|
end
|
|
end
|
|
|
|
function Prat_TellTarget:ChatEdit_ExtractTellTarget(editBox, msg)
|
|
self.hooks["ChatEdit_ExtractTellTarget"](editBox, msg)
|
|
if (editBox.tellTarget == "%t") then
|
|
editBox.tellTarget = UnitName("target") or L["NoTarget"]
|
|
ChatEdit_UpdateHeader(editBox)
|
|
end
|
|
end
|
|
|
|
function Prat_TellTarget:ChatEdit_ParseText(editBox, send)
|
|
self.hooks["ChatEdit_ParseText"](editBox, send)
|
|
local text = editBox:GetText()
|
|
if not (strsub(text, 1, 1) ~= "/") then
|
|
local command = gsub(text, "/([^%s]+)%s(.*)", "/%1", 1)
|
|
if command == "/tt" then
|
|
editBox.chatType = "WHISPER"
|
|
editBox.tellTarget = UnitName("target") or L["NoTarget"]
|
|
ChatEdit_UpdateHeader(editBox)
|
|
editBox:SetText(strsub(text, strlen(command) + 2))
|
|
end
|
|
end
|
|
end
|