- Fixed crash when using command on invalid player
- Using banid command to reduce number of queries to database (only if unlock commands enabled in css config)
- Minor changes
This commit is contained in:
Dawid Bepierszcz
2024-06-23 12:59:14 +02:00
parent 8e4724fb3e
commit cdd771511b
10 changed files with 109 additions and 92 deletions

View File

@@ -31,7 +31,7 @@ namespace CS2_SimpleAdmin
public void Slay(CCSPlayerController? caller, CCSPlayerController? player, string? callerName = null, CommandInfo? command = null)
{
if (player != null && !player.IsBot && player.SteamID.ToString().Length != 17)
if (player == null || !player.IsValid || player.Connected != PlayerConnectedState.PlayerConnected)
return;
callerName ??= caller == null ? "Console" : caller.PlayerName;
@@ -94,7 +94,7 @@ namespace CS2_SimpleAdmin
playersToTarget.ForEach(player =>
{
if (!player.IsBot && player.SteamID.ToString().Length != 17)
if (player.Connected != PlayerConnectedState.PlayerConnected)
return;
GiveWeapon(caller, player, weaponName, callerName, command);
@@ -161,10 +161,10 @@ namespace CS2_SimpleAdmin
{
callerName ??= caller == null ? "Console" : caller.PlayerName;
if (player != null && !player.IsBot && player.SteamID.ToString().Length != 17)
if (player == null || !player.IsValid || !player.PawnIsAlive || player.Connected != PlayerConnectedState.PlayerConnected)
return;
player?.RemoveWeapons();
player.RemoveWeapons();
if (command != null)
{
@@ -207,7 +207,7 @@ namespace CS2_SimpleAdmin
public void SetHp(CCSPlayerController? caller, CCSPlayerController? player, int health, CommandInfo? command = null)
{
if (player != null && !player.IsBot && player.SteamID.ToString().Length != 17)
if (player != null && !player.IsBot && player.Connected == PlayerConnectedState.PlayerConnected)
return;
var callerName = caller == null ? "Console" : caller.PlayerName;
@@ -247,7 +247,7 @@ namespace CS2_SimpleAdmin
playersToTarget.ForEach(player =>
{
if (!player.IsBot && player.SteamID.ToString().Length != 17)
if (player.Connected != PlayerConnectedState.PlayerConnected)
return;
if (caller!.CanTarget(player))
@@ -298,7 +298,7 @@ namespace CS2_SimpleAdmin
playersToTarget.ForEach(player =>
{
if (!player.IsBot && player.SteamID.ToString().Length != 17)
if (player.Connected != PlayerConnectedState.PlayerConnected)
return;
if (caller!.CanTarget(player))
@@ -347,7 +347,7 @@ namespace CS2_SimpleAdmin
playersToTarget.ForEach(player =>
{
if (!player.IsBot && player.SteamID.ToString().Length != 17)
if (player.Connected != PlayerConnectedState.PlayerConnected)
return;
if (caller!.CanTarget(player))
@@ -394,7 +394,7 @@ namespace CS2_SimpleAdmin
playersToTarget.ForEach(player =>
{
if (!player.IsBot && player.SteamID.ToString().Length != 17)
if (player.Connected != PlayerConnectedState.PlayerConnected)
return;
if (caller!.CanTarget(player))
@@ -421,7 +421,7 @@ namespace CS2_SimpleAdmin
}
else
{
RemoveFromConcurrentBag(GodPlayers, player.Slot);
GodPlayers.Remove(player.Slot);
}
if (caller != null && SilentPlayers.Contains(caller.Slot)) return;
@@ -455,7 +455,7 @@ namespace CS2_SimpleAdmin
playersToTarget.ForEach(player =>
{
if (!player.IsBot && player.SteamID.ToString().Length != 17)
if (player.Connected != PlayerConnectedState.PlayerConnected)
return;
if (caller!.CanTarget(player))
@@ -538,21 +538,21 @@ namespace CS2_SimpleAdmin
public void ChangeTeam(CCSPlayerController? caller, CCSPlayerController? player, string teamName, CsTeam teamNum, bool kill, string? callerName = null, CommandInfo? command = null)
{
if (player != null && !player.IsBot && player.SteamID.ToString().Length != 17)
if (player == null || !player.IsValid || player.Connected != PlayerConnectedState.PlayerConnected)
return;
callerName ??= caller == null ? "Console" : caller.PlayerName;
if (!teamName.Equals("swap"))
{
if (player != null && player.PawnIsAlive && teamNum != CsTeam.Spectator && !kill && Config.TeamSwitchType == 1)
if (player.PawnIsAlive && teamNum != CsTeam.Spectator && !kill && Config.TeamSwitchType == 1)
player.SwitchTeam(teamNum);
else
player?.ChangeTeam(teamNum);
}
else
{
if (player != null && player.TeamNum != (byte)CsTeam.Spectator)
if (player.TeamNum != (byte)CsTeam.Spectator)
{
var _teamNum = (CsTeam)player.TeamNum == CsTeam.Terrorist ? CsTeam.CounterTerrorist : CsTeam.Terrorist;
teamName = _teamNum == CsTeam.Terrorist ? "TT" : "CT";
@@ -597,14 +597,15 @@ namespace CS2_SimpleAdmin
return;
var targets = GetTarget(command);
var playersToTarget = targets!.Players.Where(player => player is { IsValid: true, IsHLTV: false }).ToList();
if (targets == null) return;
var playersToTarget = targets.Players.Where(player => player is { IsValid: true, IsHLTV: false }).ToList();
Helper.LogCommand(caller, command);
Helper.SendDiscordLogMessage(caller, command, DiscordWebhookClientLog, _localizer);
playersToTarget.ForEach(player =>
{
if (!player.IsBot && player.SteamID.ToString().Length != 17)
if (player.Connected != PlayerConnectedState.PlayerConnected)
return;
if (!caller!.CanTarget(player)) return;
@@ -633,11 +634,12 @@ namespace CS2_SimpleAdmin
var callerName = caller == null ? "Console" : caller.PlayerName;
var targets = GetTarget(command);
var playersToTarget = targets!.Players.Where(player => player is { IsValid: true, IsHLTV: false }).ToList();
if (targets == null) return;
var playersToTarget = targets.Players.Where(player => player is { IsValid: true, IsHLTV: false }).ToList();
playersToTarget.ForEach(player =>
{
if (!player.IsBot && player.SteamID.ToString().Length != 17)
if (player.Connected != PlayerConnectedState.PlayerConnected)
return;
if (caller!.CanTarget(player))
@@ -697,7 +699,7 @@ namespace CS2_SimpleAdmin
playersToTarget.ForEach(player =>
{
if (!player.IsBot && player.SteamID.ToString().Length != 17 || !player.PawnIsAlive)
if (player.Connected != PlayerConnectedState.PlayerConnected || !player.PawnIsAlive)
return;
if (!caller.CanTarget(player)) return;
@@ -742,7 +744,7 @@ namespace CS2_SimpleAdmin
playersToTarget.ForEach(player =>
{
if (!player.IsBot && player.SteamID.ToString().Length != 17 || !player.PawnIsAlive)
if (player.Connected != PlayerConnectedState.PlayerConnected || !player.PawnIsAlive)
return;
if (!caller.CanTarget(player)) return;