vanilla-wow-addons – Rev 1
?pathlinks?
assert( oRA, "oRA not found!")
------------------------------
-- Are you local? --
------------------------------
local L = AceLibrary("AceLocale-2.2"):new("oRALAssist")
----------------------------
-- Localization --
----------------------------
L:RegisterTranslations("enUS", function() return {
["assist"] = true,
["Assist"] = true,
["assistleader"] = true,
["Options for assist."] = true,
["Leader/Assist"] = true,
["Tank %s. not available."] = true,
["You need to have a target to assign it to a tank."] = true,
["Assigning %s to %s."] = true,
["No free tanks found."] = true,
["assign"] = true,
["Assign Target"] = true,
["Assign a target to a maintank."] = true,
["Assign Maintank"] = true,
["free"] = true,
["First Free"] = true,
["Assign the first free MainTank."] = true,
["Request Assist"] = true,
} end )
L:RegisterTranslations("koKR", function() return {
["Assist"] = "지원",
["Options for assist."] = "지원 기능에 대한 설정",
["Leader/Assist"] = "공격대장/지원",
["Tank %s. not available."] = "%s 메인탱커를 사용할 수 없습니다.",
["You need to have a target to assign it to a tank."] = "먼저 탱커로 지정할 대상을 선택해야 합니다.",
["Assigning %s to %s."] = "%s|1을;를; %s|1로;으로; 지정합니다.",
["No free tanks found."] = "빈 탱커목록을 찾을 수가 없습니다.",
["assign"] = "지정",
["Assign Target"] = "대상 지정",
["Assign a target to a maintank."] = "대상을 메인탱커로 지정합니다",
["Assign Maintank"] = "메인탱커 지정",
["free"] = "공란",
["First Free"] = "첫번재 공란",
["Assign the first free MainTank."] = "메인탱커의 첫번재 공란으로 지정합니다.",
["Request Assist"] = "지원요청",
} end )
L:RegisterTranslations("zhCN", function() return {
["assist"] = "协助MT",
["Assist"] = "协助MT",
["assistleader"] = "assistleader",
["Options for assist."] = "协助MT的选项",
["Leader/Assist"] = "Leader/Assist",
["Tank %s. not available."] = "MT%s不存在",
["You need to have a target to assign it to a tank."] = "你必需先选中一个目标然后再分配给MT",
["Assigning %s to %s."] = "%s分配给%s",
["No free tanks found."] = "没有空闲的MT",
["assign"] = "分配",
["Assign Target"] = "分配目标",
["Assign a target to a maintank."] = "分配目标给MT",
["Assign Maintank"] = "分配MT",
["free"] = "空闲",
["First Free"] = "第一个空闲",
["Assign the first free MainTank."] = "分配给第一个空闲的MT",
["Request Assist"] = "需要协助",
} end )
L:RegisterTranslations("zhTW", function() return {
["assist"] = "協助主坦",
["Assist"] = "協助主坦",
["assistleader"] = "assistleader",
["Options for assist."] = "協助主坦的選項",
["Leader/Assist"] = "領隊/協助",
["Tank %s. not available."] = "主坦 %s 不存在",
["You need to have a target to assign it to a tank."] = "你必需先選中一個目標然後再分配給主坦",
["Assigning %s to %s."] = "%s 分配給 %s",
["No free tanks found."] = "沒有空閒的主坦",
["assign"] = "分配",
["Assign Target"] = "分配目標",
["Assign a target to a maintank."] = "分配目標給主坦",
["Assign Maintank"] = "分配主坦",
["free"] = "空閑",
["First Free"] = "第一個空閒",
["Assign the first free MainTank."] = "分配給第一個空閒的主坦",
["Request Assist"] = "請求協助",
} end )
L:RegisterTranslations("frFR", function() return {
--["assist"] = true,
["Assist"] = "Aide",
--["assistleader"] = true,
["Options for assist."] = "Options concernant l'aide.",
["Leader/Assist"] = "Chef/Aide",
["Tank %s. not available."] = "Tank %s non disponible.",
["You need to have a target to assign it to a tank."] = "Vous devez avoir une cible pour l'assigner \195\160 un tank.",
["Assigning %s to %s."] = "Assignation de %s \195\160 %s.",
["No free tanks found."] = "Aucun tank libre n'a \195\169t\195\169 trouv\195\169.",
--["assign"] = true,
["Assign Target"] = "Assigner une cible",
["Assign a target to a maintank."] = "Assigne une cible \195\160 un maintank.",
["Assign Maintank"] = "Assigner un maintank",
--["free"] = true,
["First Free"] = "Premier libre",
["Assign the first free MainTank."] = "Assigne le premier maintank libre.",
["Request Assist"] = "Demander de l'aide",
} end )
----------------------------------
-- Module Declaration --
----------------------------------
oRALAssist = oRA:NewModule(L["assistleader"])
oRALAssist.defaults = {
}
oRALAssist.leader = true
oRALAssist.name = L["Leader/Assist"]
oRALAssist.consoleCmd = L["assist"]
oRALAssist.consoleOptions = {
type = "group",
desc = L["Options for assist."],
name = L["Assist"],
args = {
[L["assign"]] = {
name = L["Assign Target"], type = "group",
desc = L["Assign a target to a maintank."],
disabled = function() return not oRA:IsModuleActive(oRALAssist) or not oRALAssist:IsValidRequest() end,
args = {
["1"] = {
name = "1.", type = "execute", desc = L["Assign Maintank"].." 1",
func = function() oRALAssist:AssignNumber("1") end,
disabled = function() return not oRALAssist.core.maintanktable[1] end,
order = 1,
},
["2"] = {
name = "2.", type = "execute", desc = L["Assign Maintank"].." 2",
func = function() oRALAssist:AssignNumber("2") end,
disabled = function() return not oRALAssist.core.maintanktable[2] end,
order = 2,
},
["3"] = {
name = "3.", type = "execute", desc = L["Assign Maintank"].." 3",
func = function() oRALAssist:AssignNumber("3") end,
disabled = function() return not oRALAssist.core.maintanktable[3] end,
order = 3,
},
["4"] = {
name = "4.", type = "execute", desc = L["Assign Maintank"].." 4",
func = function() oRALAssist:AssignNumber("4") end,
disabled = function() return not oRALAssist.core.maintanktable[4] end,
order = 4,
},
["5"] = {
name = "5.", type = "execute", desc = L["Assign Maintank"].." 5",
func = function() oRALAssist:AssignNumber("5") end,
disabled = function() return not oRALAssist.core.maintanktable[5] end,
order = 5,
},
["6"] = {
name = "6.", type = "execute", desc = L["Assign Maintank"].." 6",
func = function() oRALAssist:AssignNumber("6") end,
disabled = function() return not oRALAssist.core.maintanktable[6] end,
order = 6,
},
["7"] = {
name = "7.", type = "execute", desc = L["Assign Maintank"].." 7",
func = function() oRALAssist:AssignNumber("7") end,
disabled = function() return not oRALAssist.core.maintanktable[7] end,
order = 7,
},
["8"] = {
name = "8.", type = "execute", desc = L["Assign Maintank"].." 8",
func = function() oRALAssist:AssignNumber("8") end,
disabled = function() return not oRALAssist.core.maintanktable[8] end,
order = 8,
},
["9"] = {
name = "9.", type = "execute", desc = L["Assign Maintank"].." 9",
func = function() oRALAssist:AssignNumber("9") end,
disabled = function() return not oRALAssist.core.maintanktable[9] end,
order = 9,
},
["10"] = {
name = "10.", type = "execute", desc = L["Assign Maintank"].." 10",
func = function() oRALAssist:AssignNumber("10") end,
disabled = function() return not oRALAssist.core.maintanktable[10] end,
order = 10,
},
["free"] = {
name = L["First Free"], type="execute", desc = L["Assign the first free MainTank."],
func = function()
oRALAssist:AssignFree()
end,
order = 11,
}
}
},
}
}
------------------------------
-- Initialization --
------------------------------
function oRALAssist:OnEnable()
self:RegisterEvent("oRA_MainTankUpdate")
self:RegisterEvent("oRA_JoinedRaid", "oRA_MainTankUpdate")
self:RegisterEvent("RosterLib_RosterChanged", function() self:oRA_MainTankUpdate() end)
end
function oRALAssist:OnDisable()
self:UnregisterAllEvents()
end
------------------------------
-- Event Handlers --
------------------------------
function oRALAssist:oRA_MainTankUpdate( maintanktable )
if not maintanktable then maintanktable = self.core.maintanktable end
for k = 1, 10, 1 do
self.core.consoleOptions.args[L["assist"]].args[L["assign"]].args[tostring(k)].name = tostring(k).."."
end
for k,v in pairs(maintanktable) do
if self:IsValidRequest(v,true) then
self.core.consoleOptions.args[L["assist"]].args[L["assign"]].args[tostring(k)].name = tostring(k)..". "..v
end
end
end
------------------------------
-- Command Handlers --
------------------------------
function oRALAssist:AssignNumber( number )
if not self:IsPromoted() then return end
number = tonumber(number)
if not UnitName("target") then
self:Print( L["You need to have a target to assign it to a tank."] )
return
end
if not self.core.maintanktable[number] or not self.core.roster:GetUnitIDFromName(self.core.maintanktable[number]) then
self:Print( string.format( L["Tank %s. not available."], number) )
return
end
self:SendMessage("ASSISTME "..self.core.maintanktable[number] )
self:Print( string.format( L["Assigning %s to %s."], UnitName("target"), self.core.maintanktable[number] ) )
end
function oRALAssist:AssignFree( )
if not self:IsPromoted() then return end
if not UnitName("target") then
self:Print( L["You need to have a target to assign it to a tank."] )
return
end
for k,v in pairs(self.core.maintanktable) do
local unitid = self.core.roster:GetUnitIDFromName(v)
if unitid and not UnitName( unitid .. "target" ) then
self:AssignNumber( k )
return
end
end
self:Print( L["No free tanks found."] )
end