diff --git a/CS2-SimpleAdmin.cs b/CS2-SimpleAdmin.cs index 4ce5272..313931b 100644 --- a/CS2-SimpleAdmin.cs +++ b/CS2-SimpleAdmin.cs @@ -23,6 +23,7 @@ public partial class CS2_SimpleAdmin : BasePlugin, IPluginConfig gaggedPlayers = new ConcurrentBag(); public static ConcurrentBag mutedPlayers = new ConcurrentBag(); + public static List loadedPlayers = new List(); public static Dictionary voteAnswers = new Dictionary(); public static List GodPlayers = new List(); public static bool TagsDetected = false; @@ -33,7 +34,7 @@ public partial class CS2_SimpleAdmin : BasePlugin, IPluginConfig "CS2-SimpleAdmin"; public override string ModuleDescription => "Simple admin plugin for Counter-Strike 2 :)"; public override string ModuleAuthor => "daffyy"; - public override string ModuleVersion => "1.2.6b"; + public override string ModuleVersion => "1.2.6c"; public CS2_SimpleAdminConfig Config { get; set; } = new(); @@ -123,7 +124,7 @@ public partial class CS2_SimpleAdmin : BasePlugin, IPluginConfig(OnClientAuthorized); + RegisterListener(OnClientConnected); //RegisterEventHandler(OnPlayerFullConnect); RegisterListener(OnClientDisconnect); RegisterListener(OnMapStart); @@ -124,6 +125,38 @@ public partial class CS2_SimpleAdmin return HookResult.Continue; } + private void OnClientConnected(int playerSlot) + { + CCSPlayerController? player = Utilities.GetPlayerFromSlot(playerSlot); + + if (player == null || !player.IsValid || player.IpAddress == null || loadedPlayers.Contains((int)player.Index) || player.IsBot || player.IsHLTV) + return; + + PlayerInfo playerInfo = new PlayerInfo + { + UserId = player.UserId, + Index = (int)player.Index, + SteamId = player?.AuthorizedSteamID?.SteamId64.ToString(), + Name = player?.PlayerName, + IpAddress = player?.IpAddress.Split(":")[0] + }; + + Task.Run(async () => + { + BanManager _banManager = new(dbConnectionString); + bool isBanned = await _banManager.IsPlayerBanned(playerInfo); + Server.NextFrame(() => + { + if (player == null || !player.IsValid) return; + if (isBanned) + { + Helper.KickPlayer((ushort)player.UserId!, "Banned"); + return; + } + }); + }); + } + private void OnClientAuthorized(int playerSlot, SteamID steamID) { CCSPlayerController? player = Utilities.GetPlayerFromSlot(playerSlot); @@ -142,7 +175,6 @@ public partial class CS2_SimpleAdmin Task.Run(async () => { - BanManager _banManager = new(dbConnectionString); bool isBanned = await _banManager.IsPlayerBanned(playerInfo); @@ -158,6 +190,7 @@ public partial class CS2_SimpleAdmin if (isBanned) { Helper.KickPlayer((ushort)player.UserId!, "Banned"); + Console.WriteLine("Authorized banned"); return; } @@ -277,6 +310,9 @@ public partial class CS2_SimpleAdmin } } */ + + if (!loadedPlayers.Contains((int)player.Index)) + loadedPlayers.Add((int)player.Index); }); }); } @@ -308,6 +344,9 @@ public partial class CS2_SimpleAdmin GodPlayers.Remove((int)player.Index); } + if (loadedPlayers.Contains((int)player.Index)) + loadedPlayers.Remove((int)player.Index); + if (player.AuthorizedSteamID != null) { //string steamIdString = player.AuthorizedSteamID.SteamId64.ToString();