From 5499501fd805e90dbc419dce7829f401052ac5da Mon Sep 17 00:00:00 2001 From: Anch Date: Sat, 28 Oct 2023 20:40:56 +1300 Subject: [PATCH] soulbound and in collection check --- ProfessionMenu/ProfessionMenu.lua | 17 ++++++++++++++++- ProfessionMenu/ProfessionMenu.toc | 2 +- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/ProfessionMenu/ProfessionMenu.lua b/ProfessionMenu/ProfessionMenu.lua index 03d2f2f..fc1d61d 100644 --- a/ProfessionMenu/ProfessionMenu.lua +++ b/ProfessionMenu/ProfessionMenu.lua @@ -149,6 +149,21 @@ function PM:UNIT_SPELLCAST_SUCCEEDED(event, arg1, arg2) PM:RemoveItem(arg2) end +local cTip = CreateFrame("GameTooltip","cTooltip",nil,"GameTooltipTemplate") + +local function IsSoulbound(bag, slot) + cTip:SetOwner(UIParent, "ANCHOR_NONE") + cTip:SetBagItem(bag, slot) + cTip:Show() + for i = 1,cTip:NumLines() do + if(_G["cTooltipTextLeft"..i]:GetText()==ITEM_SOULBOUND) then + return true + end + end + cTip:Hide() + return false +end + -- returns true, if player has item with given ID in inventory or bags and it's not on cooldown function PM:HasItem(itemID) local item, found, id @@ -179,7 +194,7 @@ function PM:RemoveItem(arg2) for _, item in ipairs(items) do if arg2 == item[2] then local found, bag, slot = PM:HasItem(item[1]) - if found then + if found and C_VanityCollection.IsCollectionItemOwned(item[1]) and IsSoulbound(bag, slot) then PickupContainerItem(bag, slot) DeleteCursorItem() end diff --git a/ProfessionMenu/ProfessionMenu.toc b/ProfessionMenu/ProfessionMenu.toc index f25787e..f72ed6b 100644 --- a/ProfessionMenu/ProfessionMenu.toc +++ b/ProfessionMenu/ProfessionMenu.toc @@ -7,6 +7,6 @@ ## X-Category: Profession ## X-OptionsFrame: ProfessionMenuOptionsFrame ## DefaultState: enabled -## Version: 0.9 +## Version: 0.10 embeds.xml