roll: use cmatch parser and squash item patterns

This commit is contained in:
shagu
2020-08-02 12:21:35 +02:00
parent 362336b10a
commit c059bba4ab
+9 -7
View File
@@ -2,11 +2,13 @@ pfUI:RegisterModule("roll", "vanilla:tbc", function ()
pfUI.roll = CreateFrame("Frame", "pfLootRoll", UIParent)
pfUI.roll.frames = {}
pfUI.roll.LOOT_ROLL_GREED = string.gsub(string.gsub(LOOT_ROLL_GREED, "%%s|Hitem:%%d:%%d:%%d:%%d|h%[%%s%]|h%%s", "(.+)"), "%%s", "(.+)")
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", "(.+)")
-- squash vanilla item placeholders
local LOOT_ROLL_GREED = string.gsub(LOOT_ROLL_GREED, "%%s|Hitem:%%d:%%d:%%d:%%d|h%[%%s%]|h%%s", "%%s")
local LOOT_ROLL_NEED = string.gsub(LOOT_ROLL_NEED, "%%s|Hitem:%%d:%%d:%%d:%%d|h%[%%s%]|h%%s", "%%s")
local LOOT_ROLL_PASSED = 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);
-- try to detect the everyone string
local _, _, everyone, _ = strfind(LOOT_ROLL_ALL_PASSED, LOOT_ROLL_PASSED);
pfUI.roll.blacklist = { YOU, everyone }
pfUI.roll.cache = {}
@@ -14,19 +16,19 @@ pfUI:RegisterModule("roll", "vanilla:tbc", function ()
pfUI.roll.scan = CreateFrame("Frame", "pfLootRollMonitor", UIParent)
pfUI.roll.scan:RegisterEvent("CHAT_MSG_LOOT")
pfUI.roll.scan:SetScript("OnEvent", function()
local _, _, player, item = strfind(arg1, pfUI.roll.LOOT_ROLL_GREED);
local player, item = cmatch(arg1, LOOT_ROLL_GREED);
if player and item then
pfUI.roll:AddCache(item, player, "GREED")
return
end
local _, _, player, item = strfind(arg1, pfUI.roll.LOOT_ROLL_NEED);
local player, item = cmatch(arg1, LOOT_ROLL_NEED);
if player and item then
pfUI.roll:AddCache(item, player, "NEED")
return
end
local _, _, player, item = strfind(arg1, pfUI.roll.LOOT_ROLL_PASSED);
local player, item = cmatch(arg1, LOOT_ROLL_PASSED);
if player and item then
pfUI.roll:AddCache(item, player, "PASS")
return