From 510a2bd0185085c97f43c69cb70f9fd22d929f48 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B8rgen=20Lien=20Sell=C3=A6g?= Date: Sun, 8 Feb 2026 00:04:17 +0100 Subject: [PATCH] guard custom price eval and slider value MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 💘 Generated with Crush Assisted-by: GPT-5.2-Codex via Crush --- TradeSkillMaster/Core/Prices.lua | 11 +++++++++-- TradeSkillMaster/GUI/TSMWidgets/TSMSlider.lua | 7 +++++++ 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/TradeSkillMaster/Core/Prices.lua b/TradeSkillMaster/Core/Prices.lua index 42921b0..3ca5cba 100644 --- a/TradeSkillMaster/Core/Prices.lua +++ b/TradeSkillMaster/Core/Prices.lua @@ -514,8 +514,15 @@ function TSMAPI:ParseCustomPrice(priceString, badPriceSource) return nil, err end - customPriceCache[priceString] = func - return func + local function safeFunc(itemString) + local success, value = pcall(func, itemString) + if success then + return value + end + end + + customPriceCache[priceString] = safeFunc + return safeFunc end function TSMAPI:GetCustomPriceSourceValue(itemString, key) diff --git a/TradeSkillMaster/GUI/TSMWidgets/TSMSlider.lua b/TradeSkillMaster/GUI/TSMWidgets/TSMSlider.lua index 6b0e65b..dd557fa 100644 --- a/TradeSkillMaster/GUI/TSMWidgets/TSMSlider.lua +++ b/TradeSkillMaster/GUI/TSMWidgets/TSMSlider.lua @@ -158,6 +158,13 @@ local methods = { end, ["SetValue"] = function(self, value) + if value == nil then + value = self.min or 0 + end + value = tonumber(value) + if not value then + return + end self.slider.setup = true self.slider:SetValue(value) self.value = value