Interface IPlayerService
- Namespace
- Uncreated.Warfare.Players.Management
- Assembly
- Uncreated.Warfare.dll
Handles keeping track of online WarfarePlayer's.
public interface IPlayerService
- Extension Methods
Properties
OnlinePlayers
List of all online players. Not to be accessed from any thread other than the game thread.
ReadOnlyTrackingList<WarfarePlayer> OnlinePlayers { get; }
Property Value
Exceptions
Methods
CreateOfflinePlayerAsync(CSteamID, CancellationToken)
Create an IPlayer instance from a possibly offline player and fetch their usernames for display.
ValueTask<IPlayer> CreateOfflinePlayerAsync(CSteamID steam64, CancellationToken token = default)
Parameters
steam64CSteamIDtokenCancellationToken
Returns
GetOnlinePlayer(ulong)
Get a player who's known to be online. Not to be invoked from any thread other than the game thread.
WarfarePlayer GetOnlinePlayer(ulong steam64)
Parameters
steam64ulong
Returns
Exceptions
GetOnlinePlayerOrNull(ulong)
Get a player if they're online, otherwise null. Not to be invoked from any thread other than the game thread.
WarfarePlayer? GetOnlinePlayerOrNull(ulong steam64)
Parameters
steam64ulong
Returns
Exceptions
GetOnlinePlayerOrNullThreadSafe(ulong)
Get a player if they're online, otherwise null.
WarfarePlayer? GetOnlinePlayerOrNullThreadSafe(ulong steam64)
Parameters
steam64ulong
Returns
GetOnlinePlayerThreadSafe(ulong)
Get a player who's known to be online.
WarfarePlayer GetOnlinePlayerThreadSafe(ulong steam64)
Parameters
steam64ulong
Returns
Exceptions
GetThreadsafePlayerList()
Gets a copy of the player list for working on non-game threads.
IReadOnlyList<WarfarePlayer> GetThreadsafePlayerList()
Returns
IsPlayerOnline(ulong)
Quickly check if a player is online.
bool IsPlayerOnline(ulong steam64)
Parameters
steam64ulong
Returns
Exceptions
IsPlayerOnlineThreadSafe(ulong)
Quickly check if a player is online.
bool IsPlayerOnlineThreadSafe(ulong steam64)
Parameters
steam64ulong
Returns
ReleasePlayerConnectionLock()
Re-allow players to join after calling TakePlayerConnectionLock(CancellationToken).
void ReleasePlayerConnectionLock()
SubscribeToPlayerEvent<TDelegate>(Action<WarfarePlayer, TDelegate>, TDelegate)
Subscribes to an instance event on a player.
void SubscribeToPlayerEvent<TDelegate>(Action<WarfarePlayer, TDelegate> subscribe, TDelegate value) where TDelegate : MulticastDelegate
Parameters
subscribeAction<WarfarePlayer, TDelegate>valueTDelegate
Type Parameters
TDelegate
TakePlayerConnectionLock(CancellationToken)
Temporarily stop players from joining. Note that the lock will already be taken on startup and only has to be released whenever players are first allowed to join.
Task TakePlayerConnectionLock(CancellationToken token)
Parameters
tokenCancellationToken
Returns
Remarks
Call ReleasePlayerConnectionLock() to allow players to join again.
UnsubscribeFromPlayerEvent<TDelegate>(Action<WarfarePlayer, TDelegate>, TDelegate)
Unsubscribes from an instance event on a player.
void UnsubscribeFromPlayerEvent<TDelegate>(Action<WarfarePlayer, TDelegate> unsubscribe, TDelegate value) where TDelegate : MulticastDelegate
Parameters
unsubscribeAction<WarfarePlayer, TDelegate>valueTDelegate
Type Parameters
TDelegate