mirror of
https://github.com/brues-code/pfUI.git
synced 2026-10-06 13:40:00 +00:00
nameplates: filter libunitscan by player/npc to dodge name collisions
GetUnitInfo() probed the players table first, so an NPC sharing a name with a known player (e.g. Chromie) inherited the player's class, level, and guild. Adds an isPlayer hint to GetUnitInfo and resolves each plate's actual unit type from its cached GUID via UnitIsPlayer before the lookup. The plate's cache.player gates further work.
This commit is contained in:
@@ -1023,15 +1023,21 @@ end
|
||||
local hpmin, hpmax = plate.original.healthbar:GetMinMaxValues()
|
||||
local name = plate.original.name:GetText()
|
||||
local level = plate.original.level:IsShown() and plate.original.level:GetObjectType() == "FontString" and tonumber(plate.original.level:GetText()) or "??"
|
||||
local class, ulevel, elite, player, guild = GetUnitInfo(name, true)
|
||||
|
||||
|
||||
if not plate.cache.player and plate.cachedGuid then
|
||||
plate.cache.player = UnitIsPlayer(plate.cachedGuid) and "PLAYER" or "NPC"
|
||||
end
|
||||
local isPlayer
|
||||
if plate.cache.player then isPlayer = plate.cache.player == "PLAYER" end
|
||||
local class, ulevel, elite, player, guild = GetUnitInfo(name, true, isPlayer)
|
||||
|
||||
-- Use database level ONLY if current level is ?? (fixes ?? after reload, but doesn't override visible levels)
|
||||
local levelFromDB = false
|
||||
if level == "??" and ulevel and ulevel > 0 then
|
||||
level = ulevel
|
||||
levelFromDB = true
|
||||
end
|
||||
|
||||
|
||||
local target = plate.istarget
|
||||
local mouseover = UnitExists("mouseover") and plate.original.glow:IsShown() or nil
|
||||
local unitstr = target and "target" or mouseover and "mouseover" or nil
|
||||
|
||||
Reference in New Issue
Block a user