mirror of
https://github.com/brues-code/pfUI.git
synced 2026-10-20 11:30:48 +00:00
Fix for bug report #6
- Fixes castbar not showing up properly when "ZOOM factor" in nameplates is activated. - Possible fix for nampower error appearing.
This commit is contained in:
+20
-9
@@ -237,6 +237,7 @@ pfUI:RegisterModule("nameplates", "vanilla", function ()
|
|||||||
|
|
||||||
local function PlateCacheDebuffs(self, unitstr, verify)
|
local function PlateCacheDebuffs(self, unitstr, verify)
|
||||||
if not self.debuffcache then self.debuffcache = {} end
|
if not self.debuffcache then self.debuffcache = {} end
|
||||||
|
if not libdebuff then return end -- Safety check
|
||||||
|
|
||||||
for id = 1, 16 do
|
for id = 1, 16 do
|
||||||
local effect, _, texture, stacks, _, duration, timeleft
|
local effect, _, texture, stacks, _, duration, timeleft
|
||||||
@@ -923,9 +924,9 @@ pfUI:RegisterModule("nameplates", "vanilla", function ()
|
|||||||
for i = 1, 16 do
|
for i = 1, 16 do
|
||||||
local effect, rank, texture, stacks, dtype, duration, timeleft
|
local effect, rank, texture, stacks, dtype, duration, timeleft
|
||||||
|
|
||||||
if unitstr and C.nameplates.selfdebuff == "1" then
|
if unitstr and C.nameplates.selfdebuff == "1" and libdebuff then
|
||||||
effect, rank, texture, stacks, dtype, duration, timeleft = libdebuff:UnitOwnDebuff(unitstr, i)
|
effect, rank, texture, stacks, dtype, duration, timeleft = libdebuff:UnitOwnDebuff(unitstr, i)
|
||||||
elseif unitstr then
|
elseif unitstr and libdebuff then
|
||||||
effect, rank, texture, stacks, dtype, duration, timeleft = libdebuff:UnitDebuff(unitstr, i)
|
effect, rank, texture, stacks, dtype, duration, timeleft = libdebuff:UnitDebuff(unitstr, i)
|
||||||
elseif plate.verify == verify then
|
elseif plate.verify == verify then
|
||||||
effect, rank, texture, stacks, dtype, duration, timeleft = plate:UnitDebuff(i)
|
effect, rank, texture, stacks, dtype, duration, timeleft = plate:UnitDebuff(i)
|
||||||
@@ -1141,16 +1142,26 @@ pfUI:RegisterModule("nameplates", "vanilla", function ()
|
|||||||
end
|
end
|
||||||
|
|
||||||
-- OPTIMIZED: UNIT_CASTEVENT implementation
|
-- OPTIMIZED: UNIT_CASTEVENT implementation
|
||||||
if C.nameplates["showcastbar"] == "1" and ( C.nameplates["targetcastbar"] == "0" or target ) then
|
-- Use multiple checks for target detection (target variable, istarget flag, or zoomed state)
|
||||||
local unitstr = target and "target" or nil
|
local isTargetPlate = target or nameplate.istarget or (nameplate.health and nameplate.health.zoomed)
|
||||||
|
if C.nameplates["showcastbar"] == "1" and ( C.nameplates["targetcastbar"] == "0" or isTargetPlate ) then
|
||||||
|
local unitstr = nil
|
||||||
|
local targetGUID = nil
|
||||||
|
|
||||||
-- Use SuperWoW GUID if available
|
-- Get GUID for CastEvents lookup
|
||||||
if superwow_active and not unitstr then
|
if isTargetPlate and superwow_active then
|
||||||
|
-- Get target's GUID for event cache lookup
|
||||||
|
local _, guid = UnitExists("target")
|
||||||
|
targetGUID = guid
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Use SuperWoW GUID for non-target plates
|
||||||
|
if superwow_active and not isTargetPlate then
|
||||||
unitstr = nameplate.parent:GetName(1)
|
unitstr = nameplate.parent:GetName(1)
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Check event-based cast cache first
|
-- Check event-based cast cache first (use GUID)
|
||||||
local castInfo = unitstr and CastEvents[unitstr]
|
local castInfo = (targetGUID and CastEvents[targetGUID]) or (unitstr and CastEvents[unitstr])
|
||||||
|
|
||||||
if castInfo and castInfo.spellID then
|
if castInfo and castInfo.spellID then
|
||||||
-- Check if cast is still valid
|
-- Check if cast is still valid
|
||||||
@@ -1191,7 +1202,7 @@ pfUI:RegisterModule("nameplates", "vanilla", function ()
|
|||||||
-- Fallback to API calls if no event data (for non-SuperWoW or target)
|
-- Fallback to API calls if no event data (for non-SuperWoW or target)
|
||||||
local channel, cast, nameSubtext, text, texture, startTime, endTime, isTradeSkill
|
local channel, cast, nameSubtext, text, texture, startTime, endTime, isTradeSkill
|
||||||
|
|
||||||
if target then
|
if isTargetPlate and UnitExists("target") then
|
||||||
cast, nameSubtext, text, texture, startTime, endTime, isTradeSkill = UnitCastingInfo("target")
|
cast, nameSubtext, text, texture, startTime, endTime, isTradeSkill = UnitCastingInfo("target")
|
||||||
if not cast then
|
if not cast then
|
||||||
channel, nameSubtext, text, texture, startTime, endTime, isTradeSkill = UnitChannelInfo("target")
|
channel, nameSubtext, text, texture, startTime, endTime, isTradeSkill = UnitChannelInfo("target")
|
||||||
|
|||||||
@@ -112,7 +112,10 @@ pfUI:RegisterModule("nampower", "vanilla", function ()
|
|||||||
spellName, spellRank, texture = SpellInfo(spellId)
|
spellName, spellRank, texture = SpellInfo(spellId)
|
||||||
end
|
end
|
||||||
if not spellName and GetSpellNameAndRankForId then
|
if not spellName and GetSpellNameAndRankForId then
|
||||||
spellName, spellRank = GetSpellNameAndRankForId(spellId)
|
local success, name, rank = pcall(GetSpellNameAndRankForId, spellId)
|
||||||
|
if success then
|
||||||
|
spellName, spellRank = name, rank
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
if spellName then
|
if spellName then
|
||||||
|
|||||||
Reference in New Issue
Block a user