25 .SteamId =
player->SteamId(),
27 .Team =
pawn.TeamNum(),
28 .Alive =
pawn.IsAlive(),
39 return std::unexpected(
slots.error());
std::expected< std::vector< Player * >, TargetFailure > Resolve(std::string_view token, Player *caller, const TargetRules &rules) override
VoltMod::Pawn Pawn(int slot)
A player's body: health, armor, movement, aim, weapons. The engine replaces it on every spawn; the Co...
std::span< Player *const > All() const
One connected player, owned by PlayerManager for the length of the connection.
Result< Authorized > Authorize(PlayerRef caller, std::optional< PlayerRef > target, std::string_view permission) const
The single gate. Commands, target resolution and menu rows call exactly this.
std::size_t RandomIndex(std::size_t count)
TargetQuery ParseTargetToken(std::string_view token)
static std::string ReadFile(const std::filesystem::path &path)
std::expected< std::vector< int >, TargetFailure > FilterPlayers(std::span< const PlayerView > players, const TargetQuery &query, const TargetRules &rules, int callerSlot, const std::function< std::size_t(std::size_t)> &randomIndex)