vanilla-wow-addons – Rev 1
?pathlinks?

local mod = klhtm
local me = { }
mod.unit = me
--[[
Unit.lua
Contains helper functions for finding players and units and their properties. Most involve iterating through the raid group.
]]
--[[
mod.unit.findunitidfromname(name)
Returns the unitid of the player in your group whose name is <name>.
Only works on players or pets in your raid or party, or yourself.
Returns nil if there is no match to <name>.
]]
me.findunitidfromname = function(name)
if name == UnitName("player") then
return "player"
end
local x
if GetNumRaidMembers() > 0 then
for x = 1, 40 do
if UnitName("raid" .. x) == name then
return "raid" .. x
end
end
for x = 1, 40 do
if UnitName("raidpet" .. x) == name then
return "raidpet" .. x
end
end
elseif GetNumPartyMembers() > 0 then
for x = 1, 4 do
if UnitName("party" .. x) == name then
return "party" .. x
end
end
for x = 1, 4 do
if UnitName("partypet" .. x) == name then
return "partypet" .. x
end
end
end
end
--[[
mod.unit.findnearbybossname()
Searches the target of everyone in the raid group, looking for a worldboss.
Returns: the name of the worldboss, or nil.
]]
me.findnearbybossname = function()
local x
for x = 1, 40 do
if UnitClassification("raid" .. x) == "worldboss" then
return UnitName("raid" .. x)
end
end
end
--[[
mod.unit.isplayeringroup(name)
Returns: true if the player is in your group, nil otherwise
]]
me.isplayeringroup = function(name)
-- raid group
if GetNumRaidMembers() > 0 then
for x = 1, 40 do
if UnitName("raid" .. x) == name then
return true
end
end
-- party (check for self separately)
elseif GetNumPartyMembers() > 0 then
for x = 1, 4 do
if UnitName("party" .. x) == name then
return true
end
end
if name == UnitName("player") then
return true
end
end
if name == UnitName("player") then
return true
end
end
--[[
mod.unit.isplayerofficer(playername)
Returns: true if <playername> is an officer / leader, nil otherwise.
This is for the purpose of sending "special" commands, like setting the master target.
]]
me.isplayerofficer = function(playername)
local name
local rank
if GetNumRaidMembers() > 0 then
for i = 1, 40 do
name, rank = GetRaidRosterInfo(i)
if name == playername then
if rank > 0 then
return true
else
return nil
end
end
end
elseif GetNumPartyMembers() > 0 then
if UnitIsPartyLeader("player") == 1 and playername == UnitName("player") then
return true
else
for i = 1, 4 do
if UnitName("party" .. i) == playername then
if UnitIsPartyLeader("party" .. i) == 1 then
return true
else
return nil
end
end
end
end
else
return true -- single player = officer
end
end
Generated by GNU Enscript 1.6.5.90.