Replace BulkContinueOnLoad. Support Primal Nether properly (#21)

* BulkContinueOnLoad is no longer necessary or exists

* Add primal nether as soulbound item so TSM handles it correctly

* query calles iscached, removed redundancy

* missed a then
This commit is contained in:
Jeremy P
2025-10-04 12:57:51 -07:00
committed by GitHub
parent 7899324b3b
commit e854895a9a
4 changed files with 4 additions and 21 deletions
+1 -3
View File
@@ -1314,7 +1314,6 @@ function TSM:ImportGroup(importStr, groupPath)
end
local items = {}
local bulkquerybuffer = {}
local currentSubPath = ""
for _, str in ipairs(TSMAPI:SafeStrSplit(importStr, ",")) do
str = str:trim()
@@ -1338,12 +1337,11 @@ function TSM:ImportGroup(importStr, groupPath)
elseif itemString then
items[itemString] = currentSubPath
local item = Item:CreateFromID(tonumber(noSpaceStr))
if not item:IsCached() then bulkquerybuffer[#bulkquerybuffer+1] = item.itemID end
item:Query()
else
return
end
end
TSMAPI:BulkQuery(bulkquerybuffer)
local num = 0
for itemString, subPath in pairs(items) do
+1 -3
View File
@@ -939,16 +939,14 @@ function private:LoadProfilesPage(container)
end
end
local bulkquerybuffer = {}
for itemString, _ in pairs(TSM.db.profile.items) do
-- check if item is cached
local _,_,itemID = itemString:find("item:(%d+)")
if itemID then
local item = Item:CreateFromID(itemID)
if not item:IsCached() then bulkquerybuffer[#bulkquerybuffer+1] = item.itemID end
item:Query()
end
end
TSMAPI:BulkQuery(bulkquerybuffer)
return profiles
end
+1
View File
@@ -29,4 +29,5 @@ TSMAPI.SOULBOUND_MATS = {
-- ["item:98717:0:0:0:0:0:0"] = true, -- Balanced Trillium Ingot
-- ["item:98619:0:0:0:0:0:0"] = true, -- Celestial Cloth
-- ["item:98617:0:0:0:0:0:0"] = true, -- Hardened Magnificent Hide
["item:23572:0:0:0:0:0:0"] = true, -- Primal Nether
}
+1 -15
View File
@@ -234,14 +234,13 @@ function TSM:OnInitialize()
-- create the main TSM frame
TSM:CreateMainFrame()
local bulkquerybuffer = {}
-- fix any items with spaces in them
for itemString, groupPath in pairs(TSM.db.profile.items) do
-- check if item is cached
local _,_,itemID = itemString:find("item:(%d+)")
if itemID then
local item = Item:CreateFromID(itemID)
if not item:IsCached() then bulkquerybuffer[#bulkquerybuffer+1] = item.itemID end
item:Query()
end
if strfind(itemString, " ") then
local newItemString = gsub(itemString, " ", "")
@@ -249,7 +248,6 @@ function TSM:OnInitialize()
TSM.db.profile.items[itemString] = nil
end
end
TSMAPI:BulkQuery(bulkquerybuffer)
if TSM.db.profile.deValueSource then
TSM.db.profile.destroyValueSource = TSM.db.profile.deValueSource
@@ -714,18 +712,6 @@ function TSM:GetAuctionPlayer(player, player_full)
end
end
-- Bulk load uncached IDs. Divides in to buckets of 50
function TSMAPI:BulkQuery(items)
if not items or #items == 0 then return end
self.QueryTicker = Timer.NewTicker(1, function()
Item:BulkContinueOnLoad(table.take(items, 50), function(id) end, function(id) return GetItemInfo(id) == nil end) -- 3rd parameter (validator) is optional
if #items == 0 then
self.QueryTicker:Cancel()
self.QueryTicker = nil
end
end)
end
-- GetItemPrice TSMAPI-Extension
function TSMAPI:GetItemPrices(itemLink)
if not itemLink then return nil end