Initial commit
This commit is contained in:
Executable
+122
@@ -0,0 +1,122 @@
|
||||
--[[
|
||||
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
|
||||
Reference in New Issue
Block a user