diff --git a/Torch.API/Managers/IMultiplayerManagerServer.cs b/Torch.API/Managers/IMultiplayerManagerServer.cs index b0247ba..82c7f42 100644 --- a/Torch.API/Managers/IMultiplayerManagerServer.cs +++ b/Torch.API/Managers/IMultiplayerManagerServer.cs @@ -20,5 +20,17 @@ namespace Torch.API.Managers /// Bans or unbans a player from the game. /// void BanPlayer(ulong steamId, bool banned = true); + + /// + /// List of the banned SteamID's + /// + List BannedPlayers { get; } + + /// + /// Checks if the player with the given SteamID is banned. + /// + /// The SteamID of the player. + /// True if the player is banned; otherwise false. + bool IsBanned(ulong steamId); } } diff --git a/Torch.Server/Managers/MultiplayerManagerDedicated.cs b/Torch.Server/Managers/MultiplayerManagerDedicated.cs index 3a9b331..3f0b1b8 100644 --- a/Torch.Server/Managers/MultiplayerManagerDedicated.cs +++ b/Torch.Server/Managers/MultiplayerManagerDedicated.cs @@ -31,6 +31,9 @@ namespace Torch.Server.Managers private static Func> _waitingForGroup; #pragma warning restore 649 + /// + public List BannedPlayers => MySandboxGame.ConfigDedicated.Banned; + private Dictionary _gameOwnerIds = new Dictionary(); /// @@ -50,6 +53,9 @@ namespace Torch.Server.Managers }); } + /// + public bool IsBanned(ulong steamId) => _isClientBanned.Invoke(MyMultiplayer.Static, steamId) || MySandboxGame.ConfigDedicated.Banned.Contains(steamId); + /// public override void Attach() { @@ -107,7 +113,7 @@ namespace Torch.Server.Managers private void ValidateAuthTicketResponse(ulong steamID, JoinResult response, ulong steamOwner) { _log.Debug($"ValidateAuthTicketResponse(user={steamID}, response={response}, owner={steamOwner}"); - if (_isClientBanned.Invoke(MyMultiplayer.Static, steamOwner) || MySandboxGame.ConfigDedicated.Banned.Contains(steamOwner)) + if (IsBanned(steamOwner)) { _userRejected.Invoke((MyDedicatedServerBase)MyMultiplayer.Static, steamID, JoinResult.BannedByAdmins); _raiseClientKicked.Invoke((MyDedicatedServerBase)MyMultiplayer.Static, steamID);