85 const std::function<std::size_t(std::size_t)>&
randomIndex = {});
Static utilities for converting between SteamID formats (64-bit, SteamID2, SteamID3).
@ RandomTeam
uses TargetQuery::Team
TargetQuery ParseTargetToken(std::string_view token)
@ Immune
The target outranks the caller; a Denied that names the target, not the verb.
static std::string ReadFile(const std::filesystem::path &path)
@ Ambiguous
a name fragment matched more than one player
@ MultiNotAllowed
a multi-selector was used where the command takes a single target
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)
One failure: a code to branch on, text for the log, and an optional translation key.
bool Targetable
policy verdict, precomputed by the caller
std::string Needle
lowercased name fragment for TargetKind::Name
bool AllowMultiple
permit selectors (@all/@t/...) that match more than one player