From c3219e81c1c8e4934b5236a839eb6946fd07c5c0 Mon Sep 17 00:00:00 2001 From: telkar-rg Date: Mon, 21 Jul 2025 20:01:53 +0200 Subject: [PATCH] added "Func Call Spam Protection" for "CURRENCY_DISPLAY_UPDATE" Event in "DataStore_Currencies" file --- .../DataStore_Currencies/DataStore_Currencies.lua | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/Altoholic-Addon/DataStore_Currencies/DataStore_Currencies.lua b/Altoholic-Addon/DataStore_Currencies/DataStore_Currencies.lua index 8f7b6e2..99d4186 100644 --- a/Altoholic-Addon/DataStore_Currencies/DataStore_Currencies.lua +++ b/Altoholic-Addon/DataStore_Currencies/DataStore_Currencies.lua @@ -6,12 +6,15 @@ if not DataStore then return end local addonName = "DataStore_Currencies" -_G[addonName] = LibStub("AceAddon-3.0"):NewAddon(addonName, "AceConsole-3.0", "AceEvent-3.0") +_G[addonName] = LibStub("AceAddon-3.0"):NewAddon(addonName, "AceConsole-3.0", "AceEvent-3.0", "AceTimer-3.0") local addon = _G[addonName] local THIS_ACCOUNT = "Default" +-- Func Call Spam Protection +local FCSP_timer_OnCurrencyDisplayUpdate + local AddonDB_Defaults = { global = { Characters = { @@ -81,8 +84,15 @@ end -- *** Event Handlers *** local function OnCurrencyDisplayUpdate() + FCSP_timer_UNIT_INVENTORY_CHANGED = nil ScanCurrencies() end +local function FCSP_timer_OnCurrencyDisplayUpdate() + -- this function limits calls to "ScanCurrencies" to max 1 every second + + if FCSP_timer_UNIT_INVENTORY_CHANGED then return end + FCSP_timer_UNIT_INVENTORY_CHANGED = addon:ScheduleTimer(OnCurrencyDisplayUpdate, 1) +end -- ** Mixins ** local function _GetNumCurrencies(character) @@ -178,7 +188,8 @@ function addon:OnInitialize() end function addon:OnEnable() - addon:RegisterEvent("CURRENCY_DISPLAY_UPDATE", OnCurrencyDisplayUpdate) + -- addon:RegisterEvent("CURRENCY_DISPLAY_UPDATE", OnCurrencyDisplayUpdate) + addon:RegisterEvent("CURRENCY_DISPLAY_UPDATE", FCSP_timer_OnCurrencyDisplayUpdate) end function addon:OnDisable()