84 lines
1.8 KiB
Lua
84 lines
1.8 KiB
Lua
if not WeakAurasSaved.Cyka then WeakAurasSaved.Cyka = {} end
|
|
if not WeakAurasSaved.Cyka.Cache then WeakAurasSaved.Cyka.Cache = {} end
|
|
if not WeakAurasSaved.Cyka.Cache.PlayerInfo then WeakAurasSaved.Cyka.Cache.PlayerInfo = {} end
|
|
|
|
local allianceRaces = {
|
|
"Draenai",
|
|
"Dwarf",
|
|
"Gnome",
|
|
"Human",
|
|
"Night Elf",
|
|
"Worgen",
|
|
}
|
|
|
|
PlayerController = {
|
|
nearbyPlayers = {},
|
|
addPlayer = function(self, name) self.nearbyPlayers[name] = Player:New(name) end,
|
|
getPlayers = function(self) end,
|
|
process = function(guid)
|
|
if self.nearbyPlayers[guid] == nil then
|
|
self.addPlayer(guid)
|
|
else
|
|
end
|
|
end,
|
|
}
|
|
|
|
Player = {
|
|
guid = nil,
|
|
lastSighted = nil,
|
|
info = nil,
|
|
update = function(self) self.lastSighted = GetTime() end,
|
|
getFormatted = function(self)
|
|
-- Color by class
|
|
-- Format time
|
|
return info.name .. " " .. self.lastSighted
|
|
end,
|
|
}
|
|
PlayerInfo = {
|
|
class = nil,
|
|
race = nil,
|
|
name = nil,
|
|
isHostile = nil,
|
|
}
|
|
|
|
function Player:New(guid)
|
|
o = {}
|
|
setmetatable(o, self)
|
|
self.__index = self
|
|
|
|
o.guid = guid or ""
|
|
o.lastSighted = GetTime()
|
|
o.info = PlayerInfo:New(guid)
|
|
|
|
return o
|
|
end
|
|
function PlayerInfo:New(guid)
|
|
o = {}
|
|
setmetatable(o, self)
|
|
self.__index = self
|
|
|
|
local info
|
|
if WeakAurasSaved.Cyka.Cache.PlayerInfo[guid] then
|
|
info = WeakAurasSaved.Cyka.Cache.PlayerInfo[guid]
|
|
else
|
|
info = GetPlayerInfoByGUID(guid)
|
|
WeakAurasSaved.Cyka.Cache.PlayerInfo[guid] = {
|
|
class = info.class,
|
|
race = info.race,
|
|
name = info.name,
|
|
isHostile = allianceRaces[race] ~= nil,
|
|
}
|
|
end
|
|
o.class = info.class or ""
|
|
o.race = info.race or ""
|
|
o.name = info.name or ""
|
|
o.isHostile = info.isHostile or true
|
|
|
|
return o
|
|
end
|
|
|
|
aura_env.processEvent = function(caster, target)
|
|
PlayerController:process(caster)
|
|
PlayerController:process(target)
|
|
end
|