From 2c6ba756f1f31524450a61521b67029c17bab3c6 Mon Sep 17 00:00:00 2001 From: shagu Date: Thu, 6 Jul 2017 18:46:44 +0200 Subject: [PATCH] roll: reduce occurrence of invalid values --- modules/roll.lua | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/modules/roll.lua b/modules/roll.lua index 5dae0af9..945fb07e 100644 --- a/modules/roll.lua +++ b/modules/roll.lua @@ -6,6 +6,9 @@ pfUI:RegisterModule("roll", function () pfUI.roll.LOOT_ROLL_NEED = string.gsub(string.gsub(LOOT_ROLL_NEED, "%%s|Hitem:%%d:%%d:%%d:%%d|h%[%%s%]|h%%s", "(.+)"), "%%s", "(.+)") pfUI.roll.LOOT_ROLL_PASSED = string.gsub(string.gsub(LOOT_ROLL_PASSED, "%%s|Hitem:%%d:%%d:%%d:%%d|h%[%%s%]|h%%s", "(.+)"), "%%s", "(.+)") + local _, _, everyone, _ = strfind(LOOT_ROLL_ALL_PASSED, pfUI.roll.LOOT_ROLL_PASSED); + pfUI.roll.blacklist = { YOU, everyone } + pfUI.roll.cache = {} pfUI.roll.scan = CreateFrame("Frame", "pfLootRollMonitor", UIParent) @@ -31,6 +34,11 @@ pfUI:RegisterModule("roll", function () end) function pfUI.roll:AddCache(hyperlink, name, roll) + -- skip invalid names + for _, invalid in pairs(pfUI.roll.blacklist) do + if name == invalid then return end + end + local _, _, itemLink = string.find(hyperlink, "(item:%d+:%d+:%d+:%d+)"); local itemName = GetItemInfo(itemLink) @@ -44,6 +52,11 @@ pfUI:RegisterModule("roll", function () pfUI.roll.cache[itemName] = { ["GREED"] = {}, ["NEED"] = {}, ["PASS"] = {}, ["TIMESTAMP"] = GetTime() } end + -- ignore already listed names + for _, existing in pairs(pfUI.roll.cache[itemName][roll]) do + if name == existing then return end + end + table.insert(pfUI.roll.cache[itemName][roll], name) for id=1,4 do @@ -235,6 +248,14 @@ pfUI:RegisterModule("roll", function () end) function _G.GroupLootFrame_OpenNewFrame(id, rollTime) + -- clear cache if possible + local nothing = nil + for i=1,4 do + visible = visible or pfUI.roll.frames[i]:IsVisible() + end + if not visible then pfUI.roll.cache = {} end + + -- setup roll frames for i=1,4 do if not pfUI.roll.frames[i]:IsVisible() then pfUI.roll.frames[i].rollID = id