You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
303 lines
8.1 KiB
303 lines
8.1 KiB
---------------------------------------------------------------------------------
|
|
--
|
|
-- Prat - A framework for World of Warcraft chat mods
|
|
--
|
|
-- Copyright (C) 2006-2018 Prat Development Team
|
|
--
|
|
-- This program is free software; you can redistribute it and/or
|
|
-- modify it under the terms of the GNU General Public License
|
|
-- as published by the Free Software Foundation; either version 2
|
|
-- of the License, or (at your option) any later version.
|
|
--
|
|
-- This program is distributed in the hope that it will be useful,
|
|
-- but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
-- GNU General Public License for more details.
|
|
--
|
|
-- You should have received a copy of the GNU General Public License
|
|
-- along with this program; if not, write to:
|
|
--
|
|
-- Free Software Foundation, Inc.,
|
|
-- 51 Franklin Street, Fifth Floor,
|
|
-- Boston, MA 02110-1301, USA.
|
|
--
|
|
--
|
|
-------------------------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
|
|
Prat:AddModuleToLoad(function()
|
|
|
|
local PRAT_MODULE = Prat:RequestModuleName("TellTarget")
|
|
|
|
if PRAT_MODULE == nil then
|
|
return
|
|
end
|
|
|
|
local module = Prat:NewModule(PRAT_MODULE, "AceHook-3.0")
|
|
|
|
local PL = module.PL
|
|
|
|
--[==[@debug@
|
|
PL:AddLocale(PRAT_MODULE, "enUS", {
|
|
["TellTarget"] = true,
|
|
["Adds telltarget slash command (/tt)."] = true,
|
|
["Target does not exist."] = true,
|
|
["Target is not a player."] = true,
|
|
["No target selected."] = true,
|
|
["NoTarget"] = true,
|
|
["/tt"] = true,
|
|
})
|
|
--@end-debug@]==]
|
|
|
|
-- These Localizations are auto-generated. To help with localization
|
|
-- please go to http://www.wowace.com/projects/prat-3-0/localization/
|
|
--@non-debug@
|
|
do
|
|
local L
|
|
|
|
|
|
L = {
|
|
["TellTarget"] = {
|
|
["/tt"] = true,
|
|
["Adds telltarget slash command (/tt)."] = true,
|
|
["No target selected."] = true,
|
|
["NoTarget"] = true,
|
|
["Target does not exist."] = true,
|
|
["Target is not a player."] = true,
|
|
["TellTarget"] = true,
|
|
}
|
|
}
|
|
|
|
|
|
PL:AddLocale(PRAT_MODULE, "enUS",L)
|
|
|
|
|
|
|
|
L = {
|
|
["TellTarget"] = {
|
|
["/tt"] = true,
|
|
["Adds telltarget slash command (/tt)."] = "Ajoute la commande telltarget (/tt) pour envoyer un message privé au joueur ciblé.",
|
|
["No target selected."] = "Pas de cible sélectionnée.",
|
|
["NoTarget"] = "PasDeCible",
|
|
["Target does not exist."] = "La cible n'existe pas.",
|
|
["Target is not a player."] = "La cible n'est pas un joueur.",
|
|
["TellTarget"] = true,
|
|
}
|
|
}
|
|
|
|
|
|
PL:AddLocale(PRAT_MODULE, "frFR",L)
|
|
|
|
|
|
|
|
L = {
|
|
["TellTarget"] = {
|
|
["/tt"] = true,
|
|
["Adds telltarget slash command (/tt)."] = "Fügt den Slash-Befehl Ziel Sagen (/tt) hinzu.",
|
|
["No target selected."] = "Kein Ziel ausgewählt.",
|
|
["NoTarget"] = "KeinZiel",
|
|
["Target does not exist."] = "Ziel existiert nicht.",
|
|
["Target is not a player."] = "Ziel ist kein Spieler.",
|
|
["TellTarget"] = "Ziel Sagen",
|
|
}
|
|
}
|
|
|
|
|
|
PL:AddLocale(PRAT_MODULE, "deDE",L)
|
|
|
|
|
|
|
|
L = {
|
|
["TellTarget"] = {
|
|
["/tt"] = "/ㅅㅅ",
|
|
["Adds telltarget slash command (/tt)."] = "대상에게 말하기 슬래쉬 명령어를 추가합니다 (/tt).",
|
|
["No target selected."] = "대상이 선택되지 않았습니다.",
|
|
["NoTarget"] = "대상 없음",
|
|
["Target does not exist."] = "대상이 존재하지 않습니다.",
|
|
["Target is not a player."] = "대상이 플레이어가 아닙니다.",
|
|
["TellTarget"] = "대상에게 말하기",
|
|
}
|
|
}
|
|
|
|
|
|
PL:AddLocale(PRAT_MODULE, "koKR",L)
|
|
|
|
|
|
|
|
L = {
|
|
["TellTarget"] = {
|
|
--[[Translation missing --]]
|
|
["/tt"] = "/tt",
|
|
--[[Translation missing --]]
|
|
["Adds telltarget slash command (/tt)."] = "Adds telltarget slash command (/tt).",
|
|
--[[Translation missing --]]
|
|
["No target selected."] = "No target selected.",
|
|
--[[Translation missing --]]
|
|
["NoTarget"] = "NoTarget",
|
|
--[[Translation missing --]]
|
|
["Target does not exist."] = "Target does not exist.",
|
|
--[[Translation missing --]]
|
|
["Target is not a player."] = "Target is not a player.",
|
|
--[[Translation missing --]]
|
|
["TellTarget"] = "TellTarget",
|
|
}
|
|
}
|
|
|
|
|
|
PL:AddLocale(PRAT_MODULE, "esMX",L)
|
|
|
|
|
|
|
|
L = {
|
|
["TellTarget"] = {
|
|
["/tt"] = true,
|
|
["Adds telltarget slash command (/tt)."] = "Добавляет слеш-команду 'сказать о цели' (/tt).",
|
|
["No target selected."] = "Нет выбранной цели.",
|
|
["NoTarget"] = "Нет цели",
|
|
["Target does not exist."] = "Цель не существует.",
|
|
["Target is not a player."] = "Выбранная цель не является игроком.",
|
|
["TellTarget"] = "Сказать цели",
|
|
}
|
|
}
|
|
|
|
|
|
PL:AddLocale(PRAT_MODULE, "ruRU",L)
|
|
|
|
|
|
|
|
L = {
|
|
["TellTarget"] = {
|
|
["/tt"] = true,
|
|
["Adds telltarget slash command (/tt)."] = "添加目标告知斜杠命令(/tt).",
|
|
["No target selected."] = "无目标被选取",
|
|
["NoTarget"] = "无目标",
|
|
["Target does not exist."] = "目标不存在",
|
|
["Target is not a player."] = "目标不是一个玩家",
|
|
["TellTarget"] = "告知目标",
|
|
}
|
|
}
|
|
|
|
|
|
PL:AddLocale(PRAT_MODULE, "zhCN",L)
|
|
|
|
|
|
|
|
L = {
|
|
["TellTarget"] = {
|
|
["/tt"] = true,
|
|
["Adds telltarget slash command (/tt)."] = "Añade comando decir a objetivo (/tt).",
|
|
["No target selected."] = "Sin objetivo seleccionado.",
|
|
["NoTarget"] = "SinObjetivo",
|
|
["Target does not exist."] = "El Objetivo no existe.",
|
|
["Target is not a player."] = "El Objetivo no es un jugador.",
|
|
["TellTarget"] = "DecirObjetivo",
|
|
}
|
|
}
|
|
|
|
|
|
PL:AddLocale(PRAT_MODULE, "esES",L)
|
|
|
|
|
|
|
|
L = {
|
|
["TellTarget"] = {
|
|
["/tt"] = true,
|
|
["Adds telltarget slash command (/tt)."] = "新增 telltarget 快捷命令(/tt)",
|
|
["No target selected."] = "未選取目標",
|
|
["NoTarget"] = "沒有目標",
|
|
["Target does not exist."] = "目標並不存在",
|
|
["Target is not a player."] = "目標並不是玩家",
|
|
["TellTarget"] = true,
|
|
}
|
|
}
|
|
|
|
|
|
PL:AddLocale(PRAT_MODULE, "zhTW",L)
|
|
|
|
|
|
end
|
|
--@end-non-debug@
|
|
|
|
-- create prat module
|
|
|
|
Prat:SetModuleDefaults(module.name, {
|
|
profile = {
|
|
on = true,
|
|
}
|
|
})
|
|
|
|
Prat:SetModuleOptions(module.name, {
|
|
name = PL["TellTarget"],
|
|
desc = PL["Adds telltarget slash command (/tt)."],
|
|
type = "group",
|
|
args = {
|
|
info = {
|
|
name = PL["Adds telltarget slash command (/tt)."],
|
|
type = "description",
|
|
}
|
|
}
|
|
})
|
|
|
|
--[[------------------------------------------------
|
|
Module Event Functions
|
|
------------------------------------------------]] --
|
|
function module:OnModuleEnable()
|
|
self:HookScript(ChatFrame1EditBox, "OnTextChanged")
|
|
end
|
|
|
|
function module:OnModuleDisable()
|
|
self:UnhookAll()
|
|
end
|
|
|
|
--[[------------------------------------------------
|
|
Core Functions
|
|
------------------------------------------------]] --
|
|
|
|
function module:GetDescription()
|
|
return PL["Adds telltarget slash command (/tt)."]
|
|
end
|
|
|
|
function module:OnTextChanged(editBox, ...)
|
|
local command, msg = editBox:GetText():match("^(/%S+)%s(.*)$")
|
|
if command == "/tt" or command == PL["/tt"] then
|
|
self:SendTellToTarget(editBox.chatFrame, msg, editBox)
|
|
end
|
|
self.hooks[editBox].OnTextChanged(editBox, ...)
|
|
end
|
|
|
|
function module:SendTellToTarget(frame, text, editBox)
|
|
if frame == nil then frame = DEFAULT_CHAT_FRAME end
|
|
|
|
local unitname, realm, fullname
|
|
if UnitIsPlayer("target") then
|
|
unitname, realm = UnitName("target")
|
|
if unitname then
|
|
if realm and UnitRealmRelationship("target") ~= LE_REALM_RELATION_SAME then
|
|
fullname = unitname .. "-" .. realm
|
|
else
|
|
fullname = unitname
|
|
end
|
|
end
|
|
end
|
|
|
|
local target = fullname and fullname:gsub(" ", "") or PL["NoTarget"]
|
|
|
|
if editBox then
|
|
editBox:SetAttribute("chatType", "WHISPER");
|
|
editBox:SetAttribute("tellTarget", target);
|
|
editBox:SetText(text)
|
|
ChatEdit_UpdateHeader(editBox);
|
|
else
|
|
ChatFrame_SendTell(target, frame)
|
|
end
|
|
end
|
|
|
|
local function TellTarget(msg)
|
|
module:SendTellToTarget(SELECTED_CHAT_FRAME, msg)
|
|
end
|
|
|
|
return
|
|
end) -- Prat:AddModuleToLoad
|