37 lines
864 B
Elixir
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
|