64 lines
1.8 KiB
Lua
64 lines
1.8 KiB
Lua
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,
|
|
}
|