local _, shared = ... ---@cast shared HeimdallShared local ModuleName = "Dueler" ---@class HeimdallDuelerConfig ---@field enabled boolean ---@field debug boolean ---@field declineOther boolean ---@class Dueler shared.Dueler = { Init = function() local frame = CreateFrame("Frame") frame:RegisterEvent("DUEL_REQUESTED") frame:SetScript("OnEvent", function(self, event, sender) if Heimdall_Data.config.dueler.debug then print(string.format("[%s] Duel request received from: %s", ModuleName, sender)) end if not Heimdall_Data.config.dueler.enabled then if Heimdall_Data.config.dueler.debug then print(string.format("[%s] Module disabled, ignoring duel request", ModuleName)) end return end if Heimdall_Data.config.dueler.debug then print(string.format("[%s] Checking if sender '%s' is in agents list", ModuleName, sender)) end local allow = shared.AgentTracker.IsAgent(sender) if allow then if Heimdall_Data.config.dueler.debug then print(string.format("[%s] Accepting duel from trusted agent: %s", ModuleName, sender)) end AcceptDuel() else if Heimdall_Data.config.dueler.declineOther then if Heimdall_Data.config.dueler.debug then print(string.format("[%s] Auto-declining duel from untrusted sender: %s", ModuleName, sender)) end CancelDuel() else if Heimdall_Data.config.dueler.debug then print( string.format("[%s] Leaving duel request from %s for manual response", ModuleName, sender) ) end end end end) if Heimdall_Data.config.dueler.debug then print( string.format( "[%s] Module initialized with auto-decline: %s", ModuleName, tostring(Heimdall_Data.config.dueler.declineOther) ) ) end print(string.format("[%s] Module initialized", ModuleName)) end, }