-- not necessary, but there's too many issues with inspect,
-- try to hope being nearby makes it more likely to work
-- no need to inspect people not in range before pull anyway
- if CheckInteractDistance(id, 1) then
+ if CheckInteractDistance(id, 1) and CanInspect(id) then
if not inspecting then
inspecting = guid;
print("Sending inspect", UnitName(id));
cached.cb = callback;
cached.needItems = needItems;
local elapsed = GetTime() - cached.time;
- if force or (not needItems and (not cached.talent ~= nil or elapsed > 60)) or
+ if force or (not needItems and (not cached.talent or elapsed > 60)) or
(needItems and (not cached.weapon or elapsed > 60)) then
if not pending[guid] or inspecting ~= guid then -- don't send multiple inspects
inspect(id);
end
local function inspectReady(guid)
- if not guid or inspectui then return end
+ if not guid or inspecting ~= guid then print("Got inspect from elsewhere"); return end
local cached = cache[guid];
if cached and cached.id and UnitGUID(cached.id) == guid then
local time = GetTime();
redoGuid = nil;
if InCombatLockdown() and not inspectui then
pending[guid] = true;
- ClearInspectPlayer();
+ if not inspectui then ClearInspectPlayer() end
else
if CanInspect(id) then
if time - cached.time > 60 then -- refresh >1min
-- new inspect
cached.time = time;
- if needItems then
+ if cached.needItems then
cached.weapon = GetInventoryItemLink(id, INVSLOT_MAINHAND);
cached.wrist = GetInventoryItemID(id, INVSLOT_WRIST);
end
cached.talent = selected;
end
end
- ClearInspectPlayer();
+ if not inspectui then ClearInspectPlayer() end
if (cached.needItems and cached.weapon) or
(not cached.needItems and cached.talent ~= nil) then
print("Got inspect done", UnitName(id));