Minor changes

This commit is contained in:
Dawid Bepierszcz
2024-02-13 01:35:45 +01:00
parent af66802b37
commit 4e898a6509
16 changed files with 92 additions and 109 deletions

View File

@@ -13,9 +13,9 @@ using System.Collections.Concurrent;
namespace CS2_SimpleAdmin; namespace CS2_SimpleAdmin;
[MinimumApiVersion(163)] [MinimumApiVersion(163)]
public partial class CS2_SimpleAdmin: BasePlugin, IPluginConfig<CS2_SimpleAdminConfig> public partial class CS2_SimpleAdmin : BasePlugin, IPluginConfig<CS2_SimpleAdminConfig>
{ {
public static CS2_SimpleAdmin Instance { get; private set; } = null; public static CS2_SimpleAdmin Instance { get; private set; } = new();
public static IStringLocalizer? _localizer; public static IStringLocalizer? _localizer;
public static Dictionary<string, int> voteAnswers = new Dictionary<string, int>(); public static Dictionary<string, int> voteAnswers = new Dictionary<string, int>();
@@ -38,15 +38,13 @@ public partial class CS2_SimpleAdmin: BasePlugin, IPluginConfig<CS2_SimpleAdminC
public static MemoryFunctionVoid<CBasePlayerController, CCSPlayerPawn, bool, bool>? CBasePlayerController_SetPawnFunc = null; public static MemoryFunctionVoid<CBasePlayerController, CCSPlayerPawn, bool, bool>? CBasePlayerController_SetPawnFunc = null;
public override string ModuleName => "CS2-SimpleAdmin"; public override string ModuleName => "CS2-SimpleAdmin";
public override string ModuleDescription => "Simple admin plugin for Counter-Strike 2 :)"; public override string ModuleDescription => "Simple admin plugin for Counter-Strike 2 :)";
public override string ModuleAuthor => "daffyy"; public override string ModuleAuthor => "daffyy & Dliix66";
public override string ModuleVersion => "1.3.1a"; public override string ModuleVersion => "1.3.2a";
public CS2_SimpleAdminConfig Config { get; set; } = new(); public CS2_SimpleAdminConfig Config { get; set; } = new();
public override void Load(bool hotReload) public override void Load(bool hotReload)
{ {
Instance = this;
registerEvents(); registerEvents();
if (hotReload) if (hotReload)

View File

@@ -12,7 +12,7 @@
<ItemGroup> <ItemGroup>
<PackageReference Include="CounterStrikeSharp.API" Version="1.0.166" /> <PackageReference Include="CounterStrikeSharp.API" Version="1.0.166" />
<PackageReference Include="Dapper" Version="*" /> <PackageReference Include="Dapper" Version="*" />
<PackageReference Include="Discord.Net.Webhook" Version="3.13.0" /> <PackageReference Include="Discord.Net.Webhook" Version="3.13.1" />
<PackageReference Include="MySqlConnector" Version="2.3.5" /> <PackageReference Include="MySqlConnector" Version="2.3.5" />
<PackageReference Include="Newtonsoft.Json" Version="*" /> <PackageReference Include="Newtonsoft.Json" Version="*" />
</ItemGroup> </ItemGroup>

View File

@@ -55,8 +55,9 @@ namespace CS2_SimpleAdmin
}); });
} }
internal void Ban(CCSPlayerController? caller, CCSPlayerController player, int time, string reason, string callerName = null, BanManager banManager = null) internal void Ban(CCSPlayerController? caller, CCSPlayerController player, int time, string reason, string? callerName = null, BanManager? banManager = null)
{ {
if (_database == null) return;
callerName ??= caller == null ? "Console" : caller.PlayerName; callerName ??= caller == null ? "Console" : caller.PlayerName;
banManager ??= new BanManager(_database, Config); banManager ??= new BanManager(_database, Config);

View File

@@ -8,10 +8,9 @@ using CounterStrikeSharp.API.Modules.Commands.Targeting;
using CounterStrikeSharp.API.Modules.Cvars; using CounterStrikeSharp.API.Modules.Cvars;
using CounterStrikeSharp.API.Modules.Entities; using CounterStrikeSharp.API.Modules.Entities;
using CounterStrikeSharp.API.Modules.Utils; using CounterStrikeSharp.API.Modules.Utils;
using CS2_SimpleAdmin.Menus;
using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging;
using System.Text; using System.Text;
using CS2_SimpleAdmin.Menus;
using Discord.Rest;
namespace CS2_SimpleAdmin namespace CS2_SimpleAdmin
{ {
@@ -27,20 +26,16 @@ namespace CS2_SimpleAdmin
{ {
try try
{ {
using (var connection = await _database.GetConnectionAsync()) using var connection = await _database.GetConnectionAsync();
{
var commandText = "ALTER TABLE `sa_mutes` CHANGE `type` `type` ENUM('GAG','MUTE', 'SILENCE', '') CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT 'GAG';"; var commandText = "ALTER TABLE `sa_mutes` CHANGE `type` `type` ENUM('GAG','MUTE', 'SILENCE', '') CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT 'GAG';";
using (var command = connection.CreateCommand()) using var command = connection.CreateCommand();
{
command.CommandText = commandText; command.CommandText = commandText;
await command.ExecuteNonQueryAsync(); await command.ExecuteNonQueryAsync();
} }
}
}
catch (Exception ex) catch (Exception ex)
{ {
Logger.LogError($"{ex.Message}"); Logger.LogError(ex.Message);
} }
}); });
} }
@@ -117,6 +112,7 @@ namespace CS2_SimpleAdmin
public void AddAdmin(CCSPlayerController? caller, string steamid, string name, string flags, int immunity, int time = 0, bool globalAdmin = false, CommandInfo? command = null) public void AddAdmin(CCSPlayerController? caller, string steamid, string name, string flags, int immunity, int time = 0, bool globalAdmin = false, CommandInfo? command = null)
{ {
if (_database == null) return;
AdminSQLManager _adminManager = new(_database); AdminSQLManager _adminManager = new(_database);
_ = _adminManager.AddAdminBySteamId(steamid, name, flags, immunity, time, globalAdmin); _ = _adminManager.AddAdminBySteamId(steamid, name, flags, immunity, time, globalAdmin);
@@ -157,6 +153,7 @@ namespace CS2_SimpleAdmin
public void RemoveAdmin(CCSPlayerController? caller, string steamid, bool globalDelete = false, CommandInfo? command = null) public void RemoveAdmin(CCSPlayerController? caller, string steamid, bool globalDelete = false, CommandInfo? command = null)
{ {
if (_database == null) return;
AdminSQLManager _adminManager = new(_database); AdminSQLManager _adminManager = new(_database);
_ = _adminManager.DeleteAdminBySteamId(steamid, globalDelete); _ = _adminManager.DeleteAdminBySteamId(steamid, globalDelete);
@@ -197,6 +194,7 @@ namespace CS2_SimpleAdmin
public void ReloadAdmins() public void ReloadAdmins()
{ {
if (_database == null) return;
foreach (SteamID steamId in AdminSQLManager._adminCache.Keys.ToList()) foreach (SteamID steamId in AdminSQLManager._adminCache.Keys.ToList())
{ {
if (AdminSQLManager._adminCache.TryRemove(steamId, out _)) if (AdminSQLManager._adminCache.TryRemove(steamId, out _))
@@ -260,7 +258,7 @@ namespace CS2_SimpleAdmin
List<CCSPlayerController> playersToTarget = targets!.Players.Where(player => player != null && player.IsValid && player.SteamID.ToString().Length == 17 && !player.IsHLTV).ToList(); List<CCSPlayerController> playersToTarget = targets!.Players.Where(player => player != null && player.IsValid && player.SteamID.ToString().Length == 17 && !player.IsHLTV).ToList();
Database database = new Database(dbConnectionString); Database database = new(dbConnectionString);
BanManager _banManager = new(database, Config); BanManager _banManager = new(database, Config);
MuteManager _muteManager = new(_database); MuteManager _muteManager = new(_database);
@@ -268,7 +266,7 @@ namespace CS2_SimpleAdmin
{ {
if (caller!.CanTarget(player)) if (caller!.CanTarget(player))
{ {
PlayerInfo playerInfo = new PlayerInfo PlayerInfo playerInfo = new()
{ {
UserId = player.UserId, UserId = player.UserId,
Index = (int)player.Index, Index = (int)player.Index,
@@ -384,7 +382,7 @@ namespace CS2_SimpleAdmin
}); });
} }
public void Kick(CCSPlayerController? caller, CCSPlayerController player, string reason = "Unknown", string callerName = null) public void Kick(CCSPlayerController? caller, CCSPlayerController player, string reason = "Unknown", string? callerName = null)
{ {
callerName ??= caller == null ? "Console" : caller.PlayerName; callerName ??= caller == null ? "Console" : caller.PlayerName;
if (player.PawnIsAlive) if (player.PawnIsAlive)
@@ -430,7 +428,7 @@ namespace CS2_SimpleAdmin
ChangeMap(caller, map, command); ChangeMap(caller, map, command);
} }
public void ChangeMap(CCSPlayerController caller, string map, CommandInfo? command = null) public void ChangeMap(CCSPlayerController? caller, string map, CommandInfo? command = null)
{ {
string callerName = caller == null ? "Console" : caller.PlayerName; string callerName = caller == null ? "Console" : caller.PlayerName;
string _command = string.Empty; string _command = string.Empty;
@@ -506,7 +504,7 @@ namespace CS2_SimpleAdmin
ChangeWorkshopMap(caller, map, command); ChangeWorkshopMap(caller, map, command);
} }
public void ChangeWorkshopMap(CCSPlayerController caller, string map, CommandInfo? command = null) public void ChangeWorkshopMap(CCSPlayerController? caller, string map, CommandInfo? command = null)
{ {
string callerName = caller == null ? "Console" : caller.PlayerName; string callerName = caller == null ? "Console" : caller.PlayerName;
string _command = string.Empty; string _command = string.Empty;
@@ -609,7 +607,7 @@ namespace CS2_SimpleAdmin
RestartGame(caller); RestartGame(caller);
} }
public void RestartGame(CCSPlayerController admin) public static void RestartGame(CCSPlayerController? admin)
{ {
// TODO: Localize // TODO: Localize
var name = admin == null ? "Console" : admin.PlayerName; var name = admin == null ? "Console" : admin.PlayerName;

View File

@@ -55,8 +55,9 @@ namespace CS2_SimpleAdmin
}); });
} }
internal void Gag(CCSPlayerController? caller, CCSPlayerController player, int time, string reason, string callerName = null, MuteManager muteManager = null, PlayerPenaltyManager playerPenaltyManager = null) internal void Gag(CCSPlayerController? caller, CCSPlayerController player, int time, string reason, string? callerName = null, MuteManager? muteManager = null, PlayerPenaltyManager? playerPenaltyManager = null)
{ {
if (_database == null) return;
callerName ??= caller == null ? "Console" : caller.PlayerName; callerName ??= caller == null ? "Console" : caller.PlayerName;
muteManager ??= new MuteManager(_database); muteManager ??= new MuteManager(_database);
playerPenaltyManager ??= new PlayerPenaltyManager(); playerPenaltyManager ??= new PlayerPenaltyManager();
@@ -383,8 +384,9 @@ namespace CS2_SimpleAdmin
}); });
} }
internal void Mute(CCSPlayerController? caller, CCSPlayerController player, int time, string reason, string callerName = null, MuteManager muteManager = null, PlayerPenaltyManager playerPenaltyManager = null) internal void Mute(CCSPlayerController? caller, CCSPlayerController player, int time, string reason, string? callerName = null, MuteManager? muteManager = null, PlayerPenaltyManager? playerPenaltyManager = null)
{ {
if (_database == null) return;
callerName ??= caller == null ? "Console" : caller.PlayerName; callerName ??= caller == null ? "Console" : caller.PlayerName;
muteManager ??= new MuteManager(_database); muteManager ??= new MuteManager(_database);
playerPenaltyManager ??= new PlayerPenaltyManager(); playerPenaltyManager ??= new PlayerPenaltyManager();
@@ -688,8 +690,9 @@ namespace CS2_SimpleAdmin
}); });
} }
internal void Silence(CCSPlayerController? caller, CCSPlayerController player, int time, string reason, string callerName = null, MuteManager muteManager = null, PlayerPenaltyManager playerPenaltyManager = null) internal void Silence(CCSPlayerController? caller, CCSPlayerController player, int time, string reason, string? callerName = null, MuteManager? muteManager = null, PlayerPenaltyManager? playerPenaltyManager = null)
{ {
if (_database == null) return;
callerName ??= caller == null ? "Console" : caller.PlayerName; callerName ??= caller == null ? "Console" : caller.PlayerName;
muteManager ??= new MuteManager(_database); muteManager ??= new MuteManager(_database);
playerPenaltyManager ??= new PlayerPenaltyManager(); playerPenaltyManager ??= new PlayerPenaltyManager();
@@ -716,6 +719,8 @@ namespace CS2_SimpleAdmin
if (TagsDetected) if (TagsDetected)
Server.ExecuteCommand($"css_tag_mute {player!.SteamID}"); Server.ExecuteCommand($"css_tag_mute {player!.SteamID}");
player!.VoiceFlags = VoiceFlags.Muted;
playerPenaltyManager.AddPenalty(player!.Slot, PenaltyType.Silence, DateTime.Now.AddMinutes(time), time); playerPenaltyManager.AddPenalty(player!.Slot, PenaltyType.Silence, DateTime.Now.AddMinutes(time), time);
if (time == 0) if (time == 0)

View File

@@ -16,7 +16,7 @@ namespace CS2_SimpleAdmin
[CommandHelper(minArgs: 2, usage: "<question> [... options ...]", whoCanExecute: CommandUsage.CLIENT_AND_SERVER)] [CommandHelper(minArgs: 2, usage: "<question> [... options ...]", whoCanExecute: CommandUsage.CLIENT_AND_SERVER)]
public void OnVoteCommand(CCSPlayerController? caller, CommandInfo command) public void OnVoteCommand(CCSPlayerController? caller, CommandInfo command)
{ {
string callerName= caller == null ? "Console" : caller.PlayerName; string callerName = caller == null ? "Console" : caller.PlayerName;
if (command.GetArg(1) == null || command.GetArg(1).Length < 0 || command.ArgCount < 2) if (command.GetArg(1) == null || command.GetArg(1).Length < 0 || command.ArgCount < 2)
return; return;
@@ -38,7 +38,7 @@ namespace CS2_SimpleAdmin
for (int i = 2; i <= answersCount - 1; i++) for (int i = 2; i <= answersCount - 1; i++)
{ {
voteAnswers.Add(command.GetArg(i), 0); voteAnswers.Add(command.GetArg(i), 0);
voteMenu.AddMenuOption(command.GetArg(i), Helper.handleVotes); voteMenu.AddMenuOption(command.GetArg(i), Helper.HandleVotes);
} }
foreach (CCSPlayerController _player in Helper.GetValidPlayers()) foreach (CCSPlayerController _player in Helper.GetValidPlayers())

View File

@@ -36,7 +36,7 @@ namespace CS2_SimpleAdmin
}); });
} }
public void NoClip(CCSPlayerController? caller, CCSPlayerController player, string callerName = null) public void NoClip(CCSPlayerController? caller, CCSPlayerController player, string? callerName = null)
{ {
callerName ??= caller == null ? "Console" : caller.PlayerName; callerName ??= caller == null ? "Console" : caller.PlayerName;
player!.Pawn.Value!.ToggleNoclip(); player!.Pawn.Value!.ToggleNoclip();
@@ -84,7 +84,7 @@ namespace CS2_SimpleAdmin
}); });
} }
public void Freeze(CCSPlayerController? caller, CCSPlayerController player, int time, string callerName = null) public void Freeze(CCSPlayerController? caller, CCSPlayerController player, int time, string? callerName = null)
{ {
callerName ??= caller == null ? "Console" : caller.PlayerName; callerName ??= caller == null ? "Console" : caller.PlayerName;
@@ -132,7 +132,7 @@ namespace CS2_SimpleAdmin
}); });
} }
public void Unfreeze(CCSPlayerController? caller, CCSPlayerController player, string callerName = null) public void Unfreeze(CCSPlayerController? caller, CCSPlayerController player, string? callerName = null)
{ {
callerName ??= caller == null ? "Console" : caller.PlayerName; callerName ??= caller == null ? "Console" : caller.PlayerName;

View File

@@ -5,11 +5,11 @@ using CounterStrikeSharp.API.Modules.Admin;
using CounterStrikeSharp.API.Modules.Commands; using CounterStrikeSharp.API.Modules.Commands;
using CounterStrikeSharp.API.Modules.Commands.Targeting; using CounterStrikeSharp.API.Modules.Commands.Targeting;
using CounterStrikeSharp.API.Modules.Entities; using CounterStrikeSharp.API.Modules.Entities;
using CounterStrikeSharp.API.Modules.Entities.Constants;
using CounterStrikeSharp.API.Modules.Memory; using CounterStrikeSharp.API.Modules.Memory;
using CounterStrikeSharp.API.Modules.Utils; using CounterStrikeSharp.API.Modules.Utils;
using System.Collections.Concurrent; using System.Collections.Concurrent;
using System.Text; using System.Text;
using CounterStrikeSharp.API.Modules.Entities.Constants;
namespace CS2_SimpleAdmin namespace CS2_SimpleAdmin
{ {
@@ -38,7 +38,7 @@ namespace CS2_SimpleAdmin
}); });
} }
public void Slay(CCSPlayerController? caller, CCSPlayerController player, string callerName = null) public void Slay(CCSPlayerController? caller, CCSPlayerController player, string? callerName = null)
{ {
if (!player.IsBot && player.SteamID.ToString().Length != 17) if (!player.IsBot && player.SteamID.ToString().Length != 17)
return; return;
@@ -113,17 +113,17 @@ namespace CS2_SimpleAdmin
}); });
} }
public void GiveWeapon(CCSPlayerController? caller, CCSPlayerController player, CsItem weapon, string callerName = null) public void GiveWeapon(CCSPlayerController? caller, CCSPlayerController player, CsItem weapon, string? callerName = null)
{ {
player.GiveNamedItem(weapon); player.GiveNamedItem(weapon);
SubGiveWeapon(caller, player, weapon.ToString(), callerName); SubGiveWeapon(caller, player, weapon.ToString(), callerName);
} }
public void GiveWeapon(CCSPlayerController? caller, CCSPlayerController player, string weaponName, string callerName = null) public void GiveWeapon(CCSPlayerController? caller, CCSPlayerController player, string weaponName, string? callerName = null)
{ {
player.GiveNamedItem(weaponName); player.GiveNamedItem(weaponName);
SubGiveWeapon(caller, player, weaponName, callerName); SubGiveWeapon(caller, player, weaponName, callerName);
} }
public void SubGiveWeapon(CCSPlayerController? caller, CCSPlayerController player, string weaponName, string callerName = null) public void SubGiveWeapon(CCSPlayerController? caller, CCSPlayerController player, string weaponName, string? callerName = null)
{ {
callerName ??= caller == null ? "Console" : caller.PlayerName; callerName ??= caller == null ? "Console" : caller.PlayerName;
@@ -167,7 +167,7 @@ namespace CS2_SimpleAdmin
}); });
} }
public void StripWeapons(CCSPlayerController? caller, CCSPlayerController player, string callerName = null) public void StripWeapons(CCSPlayerController? caller, CCSPlayerController player, string? callerName = null)
{ {
callerName ??= caller == null ? "Console" : caller.PlayerName; callerName ??= caller == null ? "Console" : caller.PlayerName;
@@ -219,11 +219,13 @@ namespace CS2_SimpleAdmin
}); });
} }
public void SetHp(CCSPlayerController? caller, CCSPlayerController player, int health, string callerName = null) public void SetHp(CCSPlayerController? caller, CCSPlayerController player, int health, string? callerName = null)
{ {
if (!player.IsBot && player.SteamID.ToString().Length != 17) if (!player.IsBot && player.SteamID.ToString().Length != 17)
return; return;
callerName = caller == null ? "Console" : caller.PlayerName;
player.SetHp(health); player.SetHp(health);
if (caller == null || caller != null && !silentPlayers.Contains(caller.Slot)) if (caller == null || caller != null && !silentPlayers.Contains(caller.Slot))
@@ -272,7 +274,7 @@ namespace CS2_SimpleAdmin
}); });
} }
public void SetSpeed(CCSPlayerController? caller, CCSPlayerController player, double speed, string callerName = null) public void SetSpeed(CCSPlayerController? caller, CCSPlayerController player, double speed, string? callerName = null)
{ {
callerName ??= caller == null ? "Console" : caller.PlayerName; callerName ??= caller == null ? "Console" : caller.PlayerName;
@@ -321,7 +323,7 @@ namespace CS2_SimpleAdmin
}); });
} }
public void God(CCSPlayerController? caller, CCSPlayerController player, string callerName = null) public void God(CCSPlayerController? caller, CCSPlayerController player, string? callerName = null)
{ {
callerName ??= caller == null ? "Console" : caller.PlayerName; callerName ??= caller == null ? "Console" : caller.PlayerName;
@@ -388,7 +390,7 @@ namespace CS2_SimpleAdmin
}); });
} }
public void Slap(CCSPlayerController? caller, CCSPlayerController player, int damage, string callerName = null) public void Slap(CCSPlayerController? caller, CCSPlayerController player, int damage, string? callerName = null)
{ {
callerName ??= caller == null ? "Console" : caller.PlayerName; callerName ??= caller == null ? "Console" : caller.PlayerName;
player!.Pawn.Value!.Slap(damage); player!.Pawn.Value!.Slap(damage);
@@ -414,7 +416,7 @@ namespace CS2_SimpleAdmin
{ {
string callerName = caller == null ? "Console" : caller.PlayerName; string callerName = caller == null ? "Console" : caller.PlayerName;
string teamName = command.GetArg(2).ToLower(); string teamName = command.GetArg(2).ToLower();
string _teamName; string _teamName = "SPEC";
CsTeam teamNum = CsTeam.Spectator; CsTeam teamNum = CsTeam.Spectator;
TargetResult? targets = GetTarget(command); TargetResult? targets = GetTarget(command);
@@ -456,11 +458,11 @@ namespace CS2_SimpleAdmin
bool kill = command.GetArg(3).ToLower().Equals("-k"); bool kill = command.GetArg(3).ToLower().Equals("-k");
playersToTarget.ForEach(player => playersToTarget.ForEach(player =>
{ {
ChangeTeam(caller, player, teamName, teamNum, kill, callerName); ChangeTeam(caller, player, _teamName.ToLower(), teamNum, kill, callerName);
}); });
} }
public void ChangeTeam(CCSPlayerController? caller, CCSPlayerController player, string teamName, CsTeam teamNum, bool kill, string callerName = null) public void ChangeTeam(CCSPlayerController? caller, CCSPlayerController player, string teamName, CsTeam teamNum, bool kill, string? callerName = null)
{ {
if (!player.IsBot && player.SteamID.ToString().Length != 17) if (!player.IsBot && player.SteamID.ToString().Length != 17)
return; return;
@@ -578,7 +580,7 @@ namespace CS2_SimpleAdmin
}); });
} }
public void Respawn(CCSPlayerController? caller, CCSPlayerController player, string callerName = null) public void Respawn(CCSPlayerController? caller, CCSPlayerController player, string? callerName = null)
{ {
callerName ??= caller == null ? "Console" : caller.PlayerName; callerName ??= caller == null ? "Console" : caller.PlayerName;

View File

@@ -43,6 +43,13 @@ namespace CS2_SimpleAdmin
return Utilities.GetPlayers().FindAll(p => p != null && p.IsValid && p.SteamID.ToString().Length == 17 && p.Connected == PlayerConnectedState.PlayerConnected && !p.IsBot && !p.IsHLTV); return Utilities.GetPlayers().FindAll(p => p != null && p.IsValid && p.SteamID.ToString().Length == 17 && p.Connected == PlayerConnectedState.PlayerConnected && !p.IsBot && !p.IsHLTV);
} }
public static List<CCSPlayerController> GetValidPlayersWithBots()
{
return Utilities.GetPlayers().FindAll(p =>
p != null && p.IsValid && p.SteamID.ToString().Length == 17 && p.Connected == PlayerConnectedState.PlayerConnected && !p.IsBot && !p.IsHLTV ||
p != null && p.IsValid && p.Connected == PlayerConnectedState.PlayerConnected && p.IsBot && !p.IsHLTV
);
}
public static bool IsValidSteamID64(string input) public static bool IsValidSteamID64(string input)
{ {
@@ -64,15 +71,11 @@ namespace CS2_SimpleAdmin
{ {
if (steamid == null || (flags == null && immunity == 0)) if (steamid == null || (flags == null && immunity == 0))
{ {
//Console.WriteLine("Invalid input: steamid is null or both flags and immunity are not provided.");
return; return;
} }
//Console.WriteLine($"Setting immunity for SteamID {steamid} to {immunity}");
if (flags != null) if (flags != null)
{ {
//Console.WriteLine($"Applying flags to SteamID {steamid}:");
foreach (var flag in flags) foreach (var flag in flags)
{ {
@@ -96,33 +99,9 @@ namespace CS2_SimpleAdmin
catch (Exception) catch (Exception)
{ {
return; return;
//Console.WriteLine($"An error occurred: {ex}");
} }
} }
/*
public static TargetResult GetTarget(string target, out CCSPlayerController? player)
{
player = null;
if (target.StartsWith("#") && int.TryParse(target.AsSpan(1), out var userid))
{
player = Utilities.GetPlayerFromUserid(userid);
}
else
{
var matches = GetPlayerFromName(target);
if (matches.Count > 1)
return TargetResult.Multiple;
player = matches.FirstOrDefault();
}
return player?.IsValid == true ? TargetResult.Single : TargetResult.None;
}
*/
public static void KickPlayer(ushort userId, string? reason = null) public static void KickPlayer(ushort userId, string? reason = null)
{ {
Server.ExecuteCommand($"kickid {userId} {reason}"); Server.ExecuteCommand($"kickid {userId} {reason}");
@@ -155,7 +134,7 @@ namespace CS2_SimpleAdmin
return message; return message;
} }
internal static void handleVotes(CCSPlayerController player, ChatMenuOption option) internal static void HandleVotes(CCSPlayerController player, ChatMenuOption option)
{ {
if (CS2_SimpleAdmin.voteInProgress && !CS2_SimpleAdmin.votePlayers.Contains(player.Slot)) if (CS2_SimpleAdmin.voteInProgress && !CS2_SimpleAdmin.votePlayers.Contains(player.Slot))
{ {
@@ -216,7 +195,7 @@ namespace CS2_SimpleAdmin
public unsafe void Set(string str) public unsafe void Set(string str)
{ {
byte[] bytes = this.GetStringBytes(str); byte[] bytes = SchemaString<SchemaClass>.GetStringBytes(str);
for (int i = 0; i < bytes.Length; i++) for (int i = 0; i < bytes.Length; i++)
{ {
@@ -226,7 +205,7 @@ namespace CS2_SimpleAdmin
Unsafe.Write((void*)(this.Handle.ToInt64() + bytes.Length), 0); Unsafe.Write((void*)(this.Handle.ToInt64() + bytes.Length), 0);
} }
private byte[] GetStringBytes(string str) private static byte[] GetStringBytes(string str)
{ {
return Encoding.ASCII.GetBytes(str); return Encoding.ASCII.GetBytes(str);
} }

View File

@@ -1,4 +1,3 @@
using CounterStrikeSharp.API;
using CounterStrikeSharp.API.Core; using CounterStrikeSharp.API.Core;
using CounterStrikeSharp.API.Modules.Menu; using CounterStrikeSharp.API.Modules.Menu;

View File

@@ -7,7 +7,7 @@ namespace CS2_SimpleAdmin.Menus
{ {
public static class FunActionsMenu public static class FunActionsMenu
{ {
private static Dictionary<int, CsItem> _weaponsCache = null; private static Dictionary<int, CsItem>? _weaponsCache = null;
private static Dictionary<int, CsItem> GetWeaponsCache private static Dictionary<int, CsItem> GetWeaponsCache
{ {
get get
@@ -20,6 +20,8 @@ namespace CS2_SimpleAdmin.Menus
_weaponsCache = new(); _weaponsCache = new();
foreach (CsItem item in weaponsArray) foreach (CsItem item in weaponsArray)
{ {
if (item == CsItem.Tablet) continue;
_weaponsCache[(int)item] = item; _weaponsCache[(int)item] = item;
} }
} }
@@ -114,6 +116,8 @@ namespace CS2_SimpleAdmin.Menus
private static void Freeze(CCSPlayerController admin, CCSPlayerController player) private static void Freeze(CCSPlayerController admin, CCSPlayerController player)
{ {
if (!(player.PlayerPawn?.Value?.IsValid ?? false)) return;
if (player.PlayerPawn.Value.MoveType != MoveType_t.MOVETYPE_OBSOLETE) if (player.PlayerPawn.Value.MoveType != MoveType_t.MOVETYPE_OBSOLETE)
CS2_SimpleAdmin.Instance.Freeze(admin, player, -1); CS2_SimpleAdmin.Instance.Freeze(admin, player, -1);
else else

View File

@@ -1,4 +1,3 @@
using CounterStrikeSharp.API;
using CounterStrikeSharp.API.Core; using CounterStrikeSharp.API.Core;
using CounterStrikeSharp.API.Modules.Admin; using CounterStrikeSharp.API.Modules.Admin;
using CounterStrikeSharp.API.Modules.Menu; using CounterStrikeSharp.API.Modules.Menu;

View File

@@ -1,4 +1,3 @@
using CounterStrikeSharp.API;
using CounterStrikeSharp.API.Core; using CounterStrikeSharp.API.Core;
using CounterStrikeSharp.API.Modules.Admin; using CounterStrikeSharp.API.Modules.Admin;
using CounterStrikeSharp.API.Modules.Menu; using CounterStrikeSharp.API.Modules.Menu;
@@ -33,7 +32,7 @@ namespace CS2_SimpleAdmin.Menus
options.Add(new ChatMenuOptionData("Change Map", () => ChangeMapMenu(admin))); options.Add(new ChatMenuOptionData("Change Map", () => ChangeMapMenu(admin)));
} }
options.Add(new ChatMenuOptionData("Restart Game", () => CS2_SimpleAdmin.Instance.RestartGame(admin))); options.Add(new ChatMenuOptionData("Restart Game", () => CS2_SimpleAdmin.RestartGame(admin)));
foreach (ChatMenuOptionData menuOptionData in options) foreach (ChatMenuOptionData menuOptionData in options)
{ {

View File

@@ -1,4 +1,3 @@
using CounterStrikeSharp.API;
using CounterStrikeSharp.API.Core; using CounterStrikeSharp.API.Core;
using CounterStrikeSharp.API.Modules.Menu; using CounterStrikeSharp.API.Modules.Menu;
@@ -6,16 +5,16 @@ namespace CS2_SimpleAdmin.Menus
{ {
public static class PlayersMenu public static class PlayersMenu
{ {
public static void OpenAliveMenu(CCSPlayerController admin, string menuName, Action<CCSPlayerController, CCSPlayerController> onSelectAction, Func<CCSPlayerController, bool> enableFilter = null) public static void OpenAliveMenu(CCSPlayerController admin, string menuName, Action<CCSPlayerController, CCSPlayerController> onSelectAction, Func<CCSPlayerController, bool>? enableFilter = null)
{ {
OpenMenu(admin, menuName, onSelectAction, p => p.PawnIsAlive); OpenMenu(admin, menuName, onSelectAction, p => p.PawnIsAlive);
} }
public static void OpenMenu(CCSPlayerController admin, string menuName, Action<CCSPlayerController, CCSPlayerController> onSelectAction, Func<CCSPlayerController, bool> enableFilter = null) public static void OpenMenu(CCSPlayerController admin, string menuName, Action<CCSPlayerController, CCSPlayerController> onSelectAction, Func<CCSPlayerController, bool>? enableFilter = null)
{ {
BaseMenu menu = AdminMenu.CreateMenu(menuName); BaseMenu menu = AdminMenu.CreateMenu(menuName);
IEnumerable<CCSPlayerController> players = Helper.GetValidPlayers().Where(p => p.Connected == PlayerConnectedState.PlayerConnected); IEnumerable<CCSPlayerController> players = Helper.GetValidPlayersWithBots();
foreach (CCSPlayerController player in players) foreach (CCSPlayerController player in players)
{ {
string optionName = player.PlayerName; string optionName = player.PlayerName;

View File

@@ -62,7 +62,7 @@ Manage your Counter-Strike 2 server by simple commands :)
``` ```
### Requirments ### Requirments
- [CounterStrikeSharp](https://github.com/roflmuffin/CounterStrikeSharp/) **tested on v163** - [CounterStrikeSharp](https://github.com/roflmuffin/CounterStrikeSharp/) **tested on v166**
- MySQL **tested on MySQL (MariaDB) Server version: 10.11.4-MariaDB-1~deb12u1 Debian 12** - MySQL **tested on MySQL (MariaDB) Server version: 10.11.4-MariaDB-1~deb12u1 Debian 12**