local _, shared = ... ---@cast shared HeimdallShared local ModuleName = "Dueler" ---@diagnostic disable-next-line: missing-fields shared.Dueler = {} function shared.Dueler.Init() 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 = Heimdall_Data.config.agents[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("[Heimdall] Dueler loaded") end