mirror of
https://github.com/brues-code/pfUI.git
synced 2026-10-30 23:46:57 +00:00
Drop named-unit frames and the pfValidUnits global
CreateUnitFrame and CreateCastbar could take a character name instead of a unit token, but every caller passes a token, so that mode and the empty-label guards around it were dead. The OnClick TargetByName branch could never run anyway: label was always a string, and "" is truthy. With that gone, the aggro scan was the only reader of pfValidUnits, so its unit list now lives in unitframes.lua and is built once at load. /focusname resolves the name with UnitTokenFromName (exact first, then prefix) instead of swapping the target and muting UIErrorsFrame.
This commit is contained in:
+5
-28
@@ -29,38 +29,15 @@ pfUI:RegisterModule("focus", function ()
|
||||
end)
|
||||
|
||||
-- /focus and /clearfocus live in ClassicAPI's SlashCommandsRegistry now.
|
||||
-- /focusname is pfUI-specific because the engine has no name→GUID
|
||||
-- lookup for off-screen units — we resolve via a short target-swap.
|
||||
-- `/focus Name` takes the nearest prefix match; /focusname tries the exact
|
||||
-- name first, so "Bob" still wins over a nearer "Bobby".
|
||||
|
||||
pfUI.api.RegisterSlashCommand("PFFOCUSNAME", { '/focusname', '/pffocusname' }, function(msg)
|
||||
if msg == "" then return end
|
||||
|
||||
local prevGUID = UnitGUID("target")
|
||||
local prevPlayer = UnitIsUnit("target", "player")
|
||||
|
||||
-- Suppress async "Unknown unit" errors fired by TargetByName misses.
|
||||
UIErrorsFrame:UnregisterEvent("UI_ERROR_MESSAGE")
|
||||
|
||||
-- Try exact match first, then prefix match via /target.
|
||||
TargetByName(msg, true)
|
||||
if not UnitExists("target") then
|
||||
SlashCmdList.TARGET(msg)
|
||||
end
|
||||
|
||||
if UnitExists("target") then
|
||||
FocusUnit("target")
|
||||
end
|
||||
|
||||
RunNextFrame(function()
|
||||
UIErrorsFrame:RegisterEvent("UI_ERROR_MESSAGE")
|
||||
end)
|
||||
|
||||
if prevGUID and prevGUID ~= "0x0000000000000000" then
|
||||
TargetUnit(prevGUID)
|
||||
elseif prevPlayer then
|
||||
TargetUnit("player")
|
||||
else
|
||||
ClearTarget()
|
||||
local unit = UnitTokenFromName(msg, true) or UnitTokenFromName(msg)
|
||||
if unit then
|
||||
FocusUnit(unit)
|
||||
end
|
||||
end, true)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user