56 lines
1.6 KiB
Lua
56 lines
1.6 KiB
Lua
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
|