Files
odinsea-elixir/lib/odinsea/anticheat/supervisor.ex
2026-02-14 23:12:33 -07:00

37 lines
864 B
Elixir

defmodule Odinsea.AntiCheat.Supervisor do
@moduledoc """
Supervisor for the Anti-Cheat system.
Manages:
- AutobanManager (singleton)
- CheatTracker processes (dynamic)
- LieDetector timeout handler
"""
use Supervisor
def start_link(init_arg) do
Supervisor.start_link(__MODULE__, init_arg, name: __MODULE__)
end
@impl true
def init(_init_arg) do
children = [
# Autoban manager (singleton)
Odinsea.AntiCheat.AutobanManager,
# Lie detector timeout handler
Odinsea.AntiCheat.LieDetector.TimeoutHandler,
# Dynamic supervisor for per-character cheat trackers
{DynamicSupervisor,
name: Odinsea.CheatTrackerSupervisor,
strategy: :one_for_one,
max_restarts: 1000,
max_seconds: 60}
]
Supervisor.init(children, strategy: :one_for_all)
end
end