- Config upgrade
- Translatable  and customizable menu
- More async
- Minor changes
This commit is contained in:
Dawid Bepierszcz
2024-04-29 00:04:42 +02:00
parent aefa6c6355
commit c321502937
37 changed files with 1078 additions and 701 deletions

View File

@@ -3,7 +3,6 @@ using CounterStrikeSharp.API.Core.Attributes.Registration;
using CounterStrikeSharp.API.Core.Translations;
using CounterStrikeSharp.API.Modules.Admin;
using CounterStrikeSharp.API.Modules.Commands;
using CounterStrikeSharp.API.Modules.Commands.Targeting;
using System.Text;
namespace CS2_SimpleAdmin
@@ -23,7 +22,7 @@ namespace CS2_SimpleAdmin
var targets = GetTarget(command);
if (targets == null) return;
var playersToTarget = targets!.Players.Where(player => player.IsValid && player.SteamID.ToString().Length == 17 && !player.IsHLTV).ToList();
var playersToTarget = targets.Players.Where(player => player.IsValid && player.SteamID.ToString().Length == 17 && !player.IsHLTV).ToList();
if (playersToTarget.Count > 1 && Config.DisableDangerousCommands || playersToTarget.Count == 0)
{
@@ -31,7 +30,7 @@ namespace CS2_SimpleAdmin
}
Database database = new(dbConnectionString);
BanManager _banManager = new(database, Config);
BanManager banManager = new(database, Config);
int.TryParse(command.GetArg(2), out var time);
@@ -42,7 +41,7 @@ namespace CS2_SimpleAdmin
{
if (caller!.CanTarget(player))
{
Ban(caller, player, time, reason, callerName, _banManager, command);
Ban(caller, player, time, reason, callerName, banManager, command);
}
});
}
@@ -84,7 +83,7 @@ namespace CS2_SimpleAdmin
if (playerInfo.IpAddress != null && !bannedPlayers.Contains(playerInfo.IpAddress))
bannedPlayers.Add(playerInfo.IpAddress);
if (!bannedPlayers.Contains(player!.SteamID.ToString()))
if (!bannedPlayers.Contains(player.SteamID.ToString()))
bannedPlayers.Add(player.SteamID.ToString());
if (time == 0)
@@ -92,7 +91,7 @@ namespace CS2_SimpleAdmin
if (!player.IsBot && !player.IsHLTV)
using (new WithTemporaryCulture(player.GetLanguage()))
{
player!.PrintToCenter(_localizer!["sa_player_ban_message_perm", reason, caller == null ? "Console" : caller.PlayerName]);
player.PrintToCenter(_localizer!["sa_player_ban_message_perm", reason, caller == null ? "Console" : caller.PlayerName]);
}
if (caller == null || !silentPlayers.Contains(caller.Slot))
@@ -113,7 +112,7 @@ namespace CS2_SimpleAdmin
if (!player.IsBot && !player.IsHLTV)
using (new WithTemporaryCulture(player.GetLanguage()))
{
player!.PrintToCenter(_localizer!["sa_player_ban_message_time", reason, time, caller == null ? "Console" : caller.PlayerName]);
player.PrintToCenter(_localizer!["sa_player_ban_message_time", reason, time, caller == null ? "Console" : caller.PlayerName]);
}
if (caller == null || !silentPlayers.Contains(caller.Slot))
{
@@ -158,8 +157,6 @@ namespace CS2_SimpleAdmin
var reason = _localizer?["sa_unknown"] ?? "Unknown";
Database database = new(dbConnectionString);
int.TryParse(command.GetArg(2), out var time);
if (command.ArgCount >= 3 && command.GetArg(3).Length > 0)
@@ -184,7 +181,7 @@ namespace CS2_SimpleAdmin
return;
}
player!.Pawn.Value!.Freeze();
player.Pawn.Value!.Freeze();
if (player.UserId.HasValue)
AddTimer(Config.KickTime, () => Helper.KickPlayer(player.UserId.Value), CounterStrikeSharp.API.Modules.Timers.TimerFlags.STOP_ON_MAPCHANGE);
@@ -193,7 +190,7 @@ namespace CS2_SimpleAdmin
if (!player.IsBot && !player.IsHLTV)
using (new WithTemporaryCulture(player.GetLanguage()))
{
player!.PrintToCenter(_localizer!["sa_player_ban_message_perm", reason, caller == null ? "Console" : caller.PlayerName]);
player.PrintToCenter(_localizer!["sa_player_ban_message_perm", reason, caller == null ? "Console" : caller.PlayerName]);
}
if (caller == null || !silentPlayers.Contains(caller.Slot))
{
@@ -213,7 +210,7 @@ namespace CS2_SimpleAdmin
if (player is { IsBot: false, IsHLTV: false })
using (new WithTemporaryCulture(player.GetLanguage()))
{
player!.PrintToCenter(_localizer!["sa_player_ban_message_time", reason, time, caller == null ? "Console" : caller.PlayerName]);
player.PrintToCenter(_localizer!["sa_player_ban_message_time", reason, time, caller == null ? "Console" : caller.PlayerName]);
}
if (caller == null || !silentPlayers.Contains(caller.Slot))
@@ -236,15 +233,15 @@ namespace CS2_SimpleAdmin
Task.Run(async () =>
{
BanManager _banManager = new(_database, Config);
await _banManager.AddBanBySteamid(steamid, adminInfo, reason, time);
BanManager banManager = new(_database, Config);
await banManager.AddBanBySteamid(steamid, adminInfo, reason, time);
});
Helper.LogCommand(caller, command);
Helper.SendDiscordLogMessage(caller, command, _discordWebhookClientLog, _localizer);
//Helper.SendDiscordPenaltyMessage(caller, player, reason, time, Helper.PenaltyType.Ban, _discordWebhookClientPenalty, _localizer);
command?.ReplyToCommand($"Banned player with steamid {steamid}.");
command.ReplyToCommand($"Banned player with steamid {steamid}.");
}
[ConsoleCommand("css_banip")]
@@ -295,14 +292,14 @@ namespace CS2_SimpleAdmin
return;
}
player!.Pawn.Value!.Freeze();
player.Pawn.Value!.Freeze();
if (time == 0)
{
if (player is { IsBot: false, IsHLTV: false })
using (new WithTemporaryCulture(player.GetLanguage()))
{
player!.PrintToCenter(_localizer!["sa_player_ban_message_perm", reason, caller == null ? "Console" : caller.PlayerName]);
player.PrintToCenter(_localizer!["sa_player_ban_message_perm", reason, caller == null ? "Console" : caller.PlayerName]);
}
if (caller == null || !silentPlayers.Contains(caller.Slot))
@@ -320,10 +317,10 @@ namespace CS2_SimpleAdmin
}
else
{
if (!player.IsBot && !player.IsHLTV)
if (player is { IsBot: false, IsHLTV: false })
using (new WithTemporaryCulture(player.GetLanguage()))
{
player!.PrintToCenter(_localizer!["sa_player_ban_message_time", reason, time, caller == null ? "Console" : caller.PlayerName]);
player.PrintToCenter(_localizer!["sa_player_ban_message_time", reason, time, caller == null ? "Console" : caller.PlayerName]);
}
if (caller == null || !silentPlayers.Contains(caller.Slot))
{
@@ -352,14 +349,14 @@ namespace CS2_SimpleAdmin
Task.Run(async () =>
{
BanManager _banManager = new(_database, Config);
await _banManager.AddBanByIp(ipAddress, adminInfo, reason, time);
BanManager banManager = new(_database, Config);
await banManager.AddBanByIp(ipAddress, adminInfo, reason, time);
});
Helper.LogCommand(caller, command);
Helper.SendDiscordLogMessage(caller, command, _discordWebhookClientLog, _localizer);
command?.ReplyToCommand($"Banned player with IP address {ipAddress}.");
command.ReplyToCommand($"Banned player with IP address {ipAddress}.");
}
[ConsoleCommand("css_unban")]
@@ -380,8 +377,8 @@ namespace CS2_SimpleAdmin
var pattern = command.GetArg(1);
var reason = command.GetArg(2);
BanManager _banManager = new(_database, Config);
Task.Run(async () => await _banManager.UnbanPlayer(pattern, callerSteamId, reason));
BanManager banManager = new(_database, Config);
Task.Run(async () => await banManager.UnbanPlayer(pattern, callerSteamId, reason));
Helper.SendDiscordLogMessage(caller, command, _discordWebhookClientLog, _localizer);
Helper.LogCommand(caller, command);

View File

@@ -3,7 +3,6 @@ using CounterStrikeSharp.API.Core.Attributes.Registration;
using CounterStrikeSharp.API.Core.Translations;
using CounterStrikeSharp.API.Modules.Admin;
using CounterStrikeSharp.API.Modules.Commands;
using CounterStrikeSharp.API.Modules.Commands.Targeting;
using CounterStrikeSharp.API.Modules.Memory;
using CounterStrikeSharp.API.Modules.Utils;
using System.Text;
@@ -18,7 +17,6 @@ namespace CS2_SimpleAdmin
public void OnAdminToAdminSayCommand(CCSPlayerController? caller, CommandInfo command)
{
if (caller == null || !caller.IsValid || command.GetCommandString[command.GetCommandString.IndexOf(' ')..].Length == 0) return;
var callerName = caller.PlayerName;
Helper.SendDiscordLogMessage(caller, command, _discordWebhookClientLog, _localizer);
Helper.LogCommand(caller, command);
@@ -45,7 +43,6 @@ namespace CS2_SimpleAdmin
{
if (command.GetCommandString[command.GetCommandString.IndexOf(' ')..].Length == 0) return;
var callerName = caller == null ? "Console" : caller.PlayerName;
var utf8BytesString = Encoding.UTF8.GetBytes(command.GetCommandString[command.GetCommandString.IndexOf(' ')..]);
var utf8String = Encoding.UTF8.GetString(utf8BytesString);
@@ -72,7 +69,7 @@ namespace CS2_SimpleAdmin
var targets = GetTarget(command);
if (targets == null) return;
var playersToTarget = targets!.Players.Where(player => player.IsValid && player.SteamID.ToString().Length == 17 && !player.IsHLTV).ToList();
var playersToTarget = targets.Players.Where(player => player.IsValid && player.SteamID.ToString().Length == 17 && !player.IsHLTV).ToList();
//Helper.LogCommand(caller, command);
@@ -95,7 +92,6 @@ namespace CS2_SimpleAdmin
[RequiresPermissions("@css/chat")]
public void OnAdminCenterSayCommand(CCSPlayerController? caller, CommandInfo command)
{
var callerName = caller == null ? "Console" : caller.PlayerName;
var utf8BytesString = Encoding.UTF8.GetBytes(command.GetCommandString[command.GetCommandString.IndexOf(' ')..]);
var utf8String = Encoding.UTF8.GetString(utf8BytesString);
@@ -110,7 +106,6 @@ namespace CS2_SimpleAdmin
[RequiresPermissions("@css/chat")]
public void OnAdminHudSayCommand(CCSPlayerController? caller, CommandInfo command)
{
var callerName = caller == null ? "Console" : caller.PlayerName;
var utf8BytesString = Encoding.UTF8.GetBytes(command.GetCommandString[command.GetCommandString.IndexOf(' ')..]);
var utf8String = Encoding.UTF8.GetString(utf8BytesString);

View File

@@ -4,7 +4,6 @@ using CounterStrikeSharp.API.Core.Attributes.Registration;
using CounterStrikeSharp.API.Core.Translations;
using CounterStrikeSharp.API.Modules.Admin;
using CounterStrikeSharp.API.Modules.Commands;
using CounterStrikeSharp.API.Modules.Commands.Targeting;
using CounterStrikeSharp.API.Modules.Cvars;
using CounterStrikeSharp.API.Modules.Entities;
using CounterStrikeSharp.API.Modules.Utils;
@@ -97,7 +96,6 @@ namespace CS2_SimpleAdmin
public void OnAddAdminCommand(CCSPlayerController? caller, CommandInfo command)
{
if (_database == null) return;
var callerName = caller == null ? "Console" : caller.PlayerName;
if (!Helper.IsValidSteamId64(command.GetArg(1)))
{
@@ -120,10 +118,8 @@ namespace CS2_SimpleAdmin
var flags = command.GetArg(3);
var globalAdmin = command.GetArg(4).ToLower().Equals("-g") || command.GetArg(5).ToLower().Equals("-g") ||
command.GetArg(6).ToLower().Equals("-g");
var immunity = 0;
int.TryParse(command.GetArg(4), out immunity);
var time = 0;
int.TryParse(command.GetArg(5), out time);
int.TryParse(command.GetArg(4), out var immunity);
int.TryParse(command.GetArg(5), out var time);
AddAdmin(caller, steamid, name, flags, immunity, time, globalAdmin, command);
}
@@ -131,10 +127,10 @@ namespace CS2_SimpleAdmin
public static 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);
var flagsList = flags.Split(',').Select(flag => flag.Trim()).ToList();
_ = _adminManager.AddAdminBySteamId(steamid, name, flagsList, immunity, time, globalAdmin);
_ = adminManager.AddAdminBySteamId(steamid, name, flagsList, immunity, time, globalAdmin);
if (command != null)
Helper.SendDiscordLogMessage(caller, command, _discordWebhookClientLog, _localizer);
@@ -155,7 +151,6 @@ namespace CS2_SimpleAdmin
public void OnDelAdminCommand(CCSPlayerController? caller, CommandInfo command)
{
if (_database == null) return;
var callerName = caller == null ? "Console" : caller.PlayerName;
if (!Helper.IsValidSteamId64(command.GetArg(1)))
{
@@ -172,16 +167,16 @@ namespace CS2_SimpleAdmin
public void RemoveAdmin(CCSPlayerController? caller, string steamid, bool globalDelete = false, CommandInfo? command = null)
{
if (_database == null) return;
AdminSQLManager _adminManager = new(_database);
_ = _adminManager.DeleteAdminBySteamId(steamid, globalDelete);
AdminSQLManager adminManager = new(_database);
_ = adminManager.DeleteAdminBySteamId(steamid, globalDelete);
AddTimer(2, () =>
{
if (string.IsNullOrEmpty(steamid) || !SteamID.TryParse(steamid, out var steamId) ||
steamId == null) return;
if (AdminSQLManager._adminCache.ContainsKey(steamId))
if (AdminSQLManager.AdminCache.ContainsKey(steamId))
{
AdminSQLManager._adminCache.TryRemove(steamId, out _);
AdminSQLManager.AdminCache.TryRemove(steamId, out _);
}
AdminManager.ClearPlayerPermissions(steamId);
@@ -222,19 +217,18 @@ namespace CS2_SimpleAdmin
var groupName = command.GetArg(1);
var flags = command.GetArg(2);
var immunity = 0;
int.TryParse(command.GetArg(3), out immunity);
int.TryParse(command.GetArg(3), out var immunity);
AddGroup(caller, groupName, flags, immunity, command);
}
public static void AddGroup(CCSPlayerController? caller, string name, string flags, int immunity, CommandInfo? command = null)
private static void AddGroup(CCSPlayerController? caller, string name, string flags, int immunity, CommandInfo? command = null)
{
if (_database == null) return;
AdminSQLManager _adminManager = new(_database);
AdminSQLManager adminManager = new(_database);
var flagsList = flags.Split(',').Select(flag => flag.Trim()).ToList();
_ = _adminManager.AddGroup(name, flagsList, immunity);
_ = adminManager.AddGroup(name, flagsList, immunity);
if (command != null)
Helper.SendDiscordLogMessage(caller, command, _discordWebhookClientLog, _localizer);
@@ -270,8 +264,8 @@ namespace CS2_SimpleAdmin
private void RemoveGroup(CCSPlayerController? caller, string name, CommandInfo? command = null)
{
if (_database == null) return;
AdminSQLManager _adminManager = new(_database);
_ = _adminManager.DeleteGroup(name);
AdminSQLManager adminManager = new(_database);
_ = adminManager.DeleteGroup(name);
AddTimer(2, () =>
{
@@ -307,21 +301,21 @@ namespace CS2_SimpleAdmin
{
if (_database == null) return;
for (var index = 0; index < AdminSQLManager._adminCache.Keys.ToList().Count; index++)
for (var index = 0; index < AdminSQLManager.AdminCache.Keys.ToList().Count; index++)
{
var steamId = AdminSQLManager._adminCache.Keys.ToList()[index];
if (!AdminSQLManager._adminCache.TryRemove(steamId, out _)) continue;
var steamId = AdminSQLManager.AdminCache.Keys.ToList()[index];
if (!AdminSQLManager.AdminCache.TryRemove(steamId, out _)) continue;
AdminManager.ClearPlayerPermissions(steamId);
AdminManager.RemovePlayerAdminData(steamId);
}
AdminSQLManager _adminManager = new(_database);
AdminSQLManager adminManager = new(_database);
Task.Run(async () =>
{
await _adminManager.CrateGroupsJsonFile();
await _adminManager.CreateAdminsJsonFile();
await adminManager.CrateGroupsJsonFile();
await adminManager.CreateAdminsJsonFile();
AdminManager.LoadAdminData(ModuleDirectory + "/data/admins.json");
AdminManager.LoadAdminGroups(ModuleDirectory + "/data/groups.json");
@@ -369,7 +363,6 @@ namespace CS2_SimpleAdmin
public void OnWhoCommand(CCSPlayerController? caller, CommandInfo command)
{
if (_database == null) return;
var callerName = caller == null ? "Console" : caller.PlayerName;
var targets = GetTarget(command);
if (targets == null) return;
@@ -377,11 +370,11 @@ namespace CS2_SimpleAdmin
Helper.LogCommand(caller, command);
//Helper.SendDiscordLogMessage(caller, command, _discordWebhookClientLog, _localizer);
var playersToTarget = targets!.Players.Where(player => player.IsValid && player.SteamID.ToString().Length == 17 && !player.IsHLTV).ToList();
var playersToTarget = targets.Players.Where(player => player.IsValid && player.SteamID.ToString().Length == 17 && !player.IsHLTV).ToList();
Database database = new(dbConnectionString);
BanManager _banManager = new(database, Config);
MuteManager _muteManager = new(_database);
BanManager banManager = new(database, Config);
MuteManager muteManager = new(_database);
playersToTarget.ForEach(player =>
{
@@ -390,19 +383,15 @@ namespace CS2_SimpleAdmin
PlayerInfo playerInfo = new()
{
UserId = player.UserId.Value,
Index = (int)player.Index,
SteamId = player?.SteamID.ToString(),
Name = player?.PlayerName,
IpAddress = player?.IpAddress?.Split(":")[0]
SteamId = player.SteamID.ToString(),
Name = player.PlayerName,
IpAddress = player.IpAddress?.Split(":")[0]
};
Task.Run(async () =>
{
var totalBans = 0;
var totalMutes = 0;
totalBans = await _banManager.GetPlayerBans(playerInfo);
totalMutes = await _muteManager.GetPlayerMutes(playerInfo.SteamId!);
var totalBans = await banManager.GetPlayerBans(playerInfo);
var totalMutes = await muteManager.GetPlayerMutes(playerInfo.SteamId);
await Server.NextFrameAsync(() =>
{
@@ -410,7 +399,7 @@ namespace CS2_SimpleAdmin
printMethod($"--------- INFO ABOUT \"{playerInfo.Name}\" ---------");
printMethod($"• Clan: \"{player!.Clan}\" Name: \"{playerInfo.Name}\"");
printMethod($"• Clan: \"{player.Clan}\" Name: \"{playerInfo.Name}\"");
printMethod($"• UserID: \"{playerInfo.UserId}\"");
if (playerInfo.SteamId != null)
printMethod($"• SteamID64: \"{playerInfo.SteamId}\"");
@@ -443,13 +432,13 @@ namespace CS2_SimpleAdmin
if (caller != null)
{
caller!.PrintToConsole($"--------- PLAYER LIST ---------");
caller.PrintToConsole($"--------- PLAYER LIST ---------");
playersToTarget.ForEach(player =>
{
caller!.PrintToConsole(
caller.PrintToConsole(
$"• [#{player.UserId}] \"{player.PlayerName}\" (IP Address: \"{player.IpAddress?.Split(":")[0]}\" SteamID64: \"{player.SteamID}\")");
});
caller!.PrintToConsole($"--------- END PLAYER LIST ---------");
caller.PrintToConsole($"--------- END PLAYER LIST ---------");
}
else
{
@@ -475,7 +464,7 @@ namespace CS2_SimpleAdmin
if (targets == null)
return;
var playersToTarget = targets!.Players
var playersToTarget = targets.Players
.Where(player => player is { IsValid: true, IsHLTV: false }).ToList();
if (playersToTarget.Count > 1 && Config.DisableDangerousCommands || playersToTarget.Count == 0)
@@ -498,7 +487,7 @@ namespace CS2_SimpleAdmin
});
}
public void Kick(CCSPlayerController? caller, CCSPlayerController? player, string reason = "Unknown", string? callerName = null, CommandInfo? command = null)
public void Kick(CCSPlayerController? caller, CCSPlayerController? player, string? reason = "Unknown", string? callerName = null, CommandInfo? command = null)
{
callerName ??= caller == null ? "Console" : caller.PlayerName;
if (player != null && player.PawnIsAlive)
@@ -555,20 +544,17 @@ namespace CS2_SimpleAdmin
public void ChangeMap(CCSPlayerController? caller, string map, CommandInfo? command = null)
{
var callerName = caller == null ? "Console" : caller.PlayerName;
string _command;
map = map.ToLower();
if (map.StartsWith("ws:"))
{
_command = long.TryParse(map.Replace("ws:", ""), out var mapId)
var issuedCommand = long.TryParse(map.Replace("ws:", ""), out var mapId)
? $"host_workshop_map {mapId}"
: $"ds_workshop_changelevel {map.Replace("ws:", "")}";
AddTimer(3.0f, () =>
{
Server.ExecuteCommand(_command);
Server.ExecuteCommand(issuedCommand);
}, CounterStrikeSharp.API.Modules.Timers.TimerFlags.STOP_ON_MAPCHANGE);
}
else
@@ -622,12 +608,9 @@ namespace CS2_SimpleAdmin
public void ChangeWorkshopMap(CCSPlayerController? caller, string map, CommandInfo? command = null)
{
var callerName = caller == null ? "Console" : caller.PlayerName;
string _command;
map = map.ToLower();
_command = long.TryParse(map, out var mapId) ? $"host_workshop_map {mapId}" : $"ds_workshop_changelevel {map}";
var issuedCommand = long.TryParse(map, out var mapId) ? $"host_workshop_map {mapId}" : $"ds_workshop_changelevel {map}";
if (caller == null || !silentPlayers.Contains(caller.Slot))
{
@@ -644,7 +627,7 @@ namespace CS2_SimpleAdmin
AddTimer(3.0f, () =>
{
Server.ExecuteCommand(_command);
Server.ExecuteCommand(issuedCommand);
}, CounterStrikeSharp.API.Modules.Timers.TimerFlags.STOP_ON_MAPCHANGE);
if (command == null) return;

View File

@@ -4,7 +4,6 @@ using CounterStrikeSharp.API.Core.Attributes.Registration;
using CounterStrikeSharp.API.Core.Translations;
using CounterStrikeSharp.API.Modules.Admin;
using CounterStrikeSharp.API.Modules.Commands;
using CounterStrikeSharp.API.Modules.Commands.Targeting;
using System.Text;
namespace CS2_SimpleAdmin
@@ -19,41 +18,39 @@ namespace CS2_SimpleAdmin
if (_database == null) return;
var callerName = caller == null ? "Console" : caller.PlayerName;
var time = 0;
var reason = _localizer?["sa_unknown"] ?? "Unknown";
var targets = GetTarget(command);
if (targets == null) return;
var playersToTarget = targets!.Players.Where(player => player.IsValid && player.SteamID.ToString().Length == 17 && !player.IsHLTV).ToList();
var playersToTarget = targets.Players.Where(player => player.IsValid && player.SteamID.ToString().Length == 17 && !player.IsHLTV).ToList();
if (playersToTarget.Count > 1 && Config.DisableDangerousCommands || playersToTarget.Count == 0)
{
return;
}
int.TryParse(command.GetArg(2), out time);
int.TryParse(command.GetArg(2), out var time);
if (command.ArgCount >= 3 && command.GetArg(3).Length > 0)
reason = command.GetArg(3);
MuteManager _muteManager = new(_database);
MuteManager muteManager = new(_database);
var playerPenaltyManager = new PlayerPenaltyManager();
playersToTarget.ForEach(player =>
{
if (caller!.CanTarget(player))
{
Gag(caller, player, time, reason, callerName, _muteManager, playerPenaltyManager, command);
Gag(caller, player, time, reason, callerName, muteManager, playerPenaltyManager, command);
}
});
}
internal void Gag(CCSPlayerController? caller, CCSPlayerController? player, int time, string reason, string? callerName = null, MuteManager? muteManager = null, PlayerPenaltyManager? playerPenaltyManager = null, CommandInfo? command = null)
internal static void Gag(CCSPlayerController? caller, CCSPlayerController? player, int time, string reason, string? callerName = null, MuteManager? muteManager = null, PlayerPenaltyManager? playerPenaltyManager = null, CommandInfo? command = null)
{
if (_database == null) return;
callerName ??= caller == null ? "Console" : caller.PlayerName;
muteManager ??= new MuteManager(_database);
playerPenaltyManager ??= new PlayerPenaltyManager();
var playerInfo = new PlayerInfo
{
@@ -80,7 +77,7 @@ namespace CS2_SimpleAdmin
PlayerPenaltyManager.AddPenalty(player!.Slot, PenaltyType.Gag, DateTime.Now.AddMinutes(time), time);
if (time == 0)
{
if (!player!.IsBot && !player.IsHLTV)
if (!player.IsBot && !player.IsHLTV)
{
using (new WithTemporaryCulture(player.GetLanguage()))
{
@@ -103,11 +100,11 @@ namespace CS2_SimpleAdmin
}
else
{
if (!player!.IsBot && !player.IsHLTV)
if (!player.IsBot && !player.IsHLTV)
{
using (new WithTemporaryCulture(player.GetLanguage()))
{
player!.PrintToCenter(_localizer!["sa_player_gag_message_time", reason, time, caller == null ? "Console" : caller.PlayerName]);
player.PrintToCenter(_localizer!["sa_player_gag_message_time", reason, time, caller == null ? "Console" : caller.PlayerName]);
}
}
@@ -152,13 +149,11 @@ namespace CS2_SimpleAdmin
return;
}
var time = 0;
var reason = _localizer?["sa_unknown"] ?? "Unknown";
MuteManager _muteManager = new(_database);
var playerPenaltyManager = new PlayerPenaltyManager();
MuteManager muteManager = new(_database);
int.TryParse(command.GetArg(2), out time);
int.TryParse(command.GetArg(2), out var time);
if (command.ArgCount >= 3 && command.GetArg(3).Length > 0)
reason = command.GetArg(3);
@@ -187,7 +182,7 @@ namespace CS2_SimpleAdmin
if (!player.IsBot && !player.IsHLTV)
using (new WithTemporaryCulture(player.GetLanguage()))
{
player!.PrintToCenter(_localizer!["sa_player_gag_message_perm", reason, caller == null ? "Console" : caller.PlayerName]);
player.PrintToCenter(_localizer!["sa_player_gag_message_perm", reason, caller == null ? "Console" : caller.PlayerName]);
}
if (caller == null || !silentPlayers.Contains(caller.Slot))
@@ -208,7 +203,7 @@ namespace CS2_SimpleAdmin
if (player is { IsBot: false, IsHLTV: false })
using (new WithTemporaryCulture(player.GetLanguage()))
{
player!.PrintToCenter(_localizer!["sa_player_gag_message_time", reason, time, caller == null ? "Console" : caller.PlayerName]);
player.PrintToCenter(_localizer!["sa_player_gag_message_time", reason, time, caller == null ? "Console" : caller.PlayerName]);
}
if (caller == null || !silentPlayers.Contains(caller.Slot))
@@ -226,9 +221,9 @@ namespace CS2_SimpleAdmin
}
if (TagsDetected)
Server.ExecuteCommand($"css_tag_mute {player!.SteamID}");
Server.ExecuteCommand($"css_tag_mute {player.SteamID}");
PlayerPenaltyManager.AddPenalty(player!.Slot, PenaltyType.Gag, DateTime.Now.AddMinutes(time), time);
PlayerPenaltyManager.AddPenalty(player.Slot, PenaltyType.Gag, DateTime.Now.AddMinutes(time), time);
}
Helper.SendDiscordPenaltyMessage(caller, player, reason, time, Helper.PenaltyType.Gag, _discordWebhookClientPenalty, _localizer);
@@ -236,13 +231,13 @@ namespace CS2_SimpleAdmin
Task.Run(async () =>
{
await _muteManager.AddMuteBySteamid(steamid, adminInfo, reason, time, 0);
await muteManager.AddMuteBySteamid(steamid, adminInfo, reason, time);
});
Helper.SendDiscordLogMessage(caller, command, _discordWebhookClientLog, _localizer);
Helper.LogCommand(caller, command);
command?.ReplyToCommand($"Gagged player with steamid {steamid}.");
command.ReplyToCommand($"Gagged player with steamid {steamid}.");
}
[ConsoleCommand("css_ungag")]
@@ -251,7 +246,6 @@ namespace CS2_SimpleAdmin
public void OnUngagCommand(CCSPlayerController? caller, CommandInfo command)
{
if (_database == null) return;
var callerName = caller == null ? "Console" : caller.PlayerName;
var callerSteamId = caller?.SteamID.ToString() ?? "Console";
var foundPlayerName = string.Empty;
@@ -270,9 +264,7 @@ namespace CS2_SimpleAdmin
var found = false;
var pattern = command.GetArg(1);
MuteManager _muteManager = new(_database);
var playerPenaltyManager = new PlayerPenaltyManager();
MuteManager muteManager = new(_database);
if (Helper.IsValidSteamId64(pattern))
{
@@ -282,10 +274,10 @@ namespace CS2_SimpleAdmin
var player = matches.FirstOrDefault();
if (player != null && player.IsValid)
{
PlayerPenaltyManager.RemovePenaltiesByType(player!.Slot, PenaltyType.Gag);
PlayerPenaltyManager.RemovePenaltiesByType(player.Slot, PenaltyType.Gag);
if (TagsDetected)
Server.ExecuteCommand($"css_tag_unmute {player!.SteamID}");
Server.ExecuteCommand($"css_tag_unmute {player.SteamID}");
found = true;
foundPlayerName = player.PlayerName;
@@ -301,12 +293,12 @@ namespace CS2_SimpleAdmin
var player = matches.FirstOrDefault();
if (player != null && player.IsValid)
{
PlayerPenaltyManager.RemovePenaltiesByType(player!.Slot, PenaltyType.Gag);
PlayerPenaltyManager.RemovePenaltiesByType(player.Slot, PenaltyType.Gag);
if (TagsDetected)
Server.ExecuteCommand($"css_tag_unmute {player!.SteamID.ToString()}");
Server.ExecuteCommand($"css_tag_unmute {player.SteamID.ToString()}");
pattern = player!.SteamID.ToString();
pattern = player.SteamID.ToString();
found = true;
foundPlayerName = player.PlayerName;
@@ -317,12 +309,12 @@ namespace CS2_SimpleAdmin
if (found)
{
Task.Run(async () => { await _muteManager.UnmutePlayer(foundPlayerSteamId64, callerSteamId, reason, 0); }); // Unmute by type 0 (gag)
Task.Run(async () => { await muteManager.UnmutePlayer(foundPlayerSteamId64, callerSteamId, reason); }); // Unmute by type 0 (gag)
command.ReplyToCommand($"Ungaged player {foundPlayerName}.");
}
else
{
Task.Run(async () => { await _muteManager.UnmutePlayer(pattern, callerSteamId, reason, 0); }); // Unmute by type 0 (gag)
Task.Run(async () => { await muteManager.UnmutePlayer(pattern, callerSteamId, reason); }); // Unmute by type 0 (gag)
command.ReplyToCommand($"Ungaged offline player with pattern {pattern}.");
}
@@ -365,31 +357,30 @@ namespace CS2_SimpleAdmin
if (_database == null) return;
var callerName = caller == null ? "Console" : caller.PlayerName;
var time = 0;
var reason = _localizer?["sa_unknown"] ?? "Unknown";
var targets = GetTarget(command);
if (targets == null) return;
var playersToTarget = targets!.Players.Where(player => player.IsValid && player.SteamID.ToString().Length == 17 && !player.IsHLTV).ToList();
var playersToTarget = targets.Players.Where(player => player.IsValid && player.SteamID.ToString().Length == 17 && !player.IsHLTV).ToList();
if (playersToTarget.Count > 1 && Config.DisableDangerousCommands || playersToTarget.Count == 0)
{
return;
}
int.TryParse(command.GetArg(2), out time);
int.TryParse(command.GetArg(2), out var time);
if (command.ArgCount >= 3 && command.GetArg(3).Length > 0)
reason = command.GetArg(3);
MuteManager _muteManager = new(_database);
MuteManager muteManager = new(_database);
var playerPenaltyManager = new PlayerPenaltyManager();
playersToTarget.ForEach(player =>
{
if (caller!.CanTarget(player))
{
Mute(caller, player, time, reason, callerName, _muteManager, playerPenaltyManager, command);
Mute(caller, player, time, reason, callerName, muteManager, playerPenaltyManager, command);
}
});
}
@@ -421,14 +412,14 @@ namespace CS2_SimpleAdmin
await muteManager.MutePlayer(playerInfo, adminInfo, reason, time, 1);
});
PlayerPenaltyManager.AddPenalty(player!.Slot, PenaltyType.Mute, DateTime.Now.AddMinutes(time), time);
PlayerPenaltyManager.AddPenalty(player.Slot, PenaltyType.Mute, DateTime.Now.AddMinutes(time), time);
if (time == 0)
{
if (!player.IsBot && !player.IsHLTV)
using (new WithTemporaryCulture(player.GetLanguage()))
{
player!.PrintToCenter(_localizer!["sa_player_mute_message_perm", reason, caller == null ? "Console" : caller.PlayerName]);
player.PrintToCenter(_localizer!["sa_player_mute_message_perm", reason, caller == null ? "Console" : caller.PlayerName]);
}
if (caller == null || !silentPlayers.Contains(caller.Slot))
@@ -449,7 +440,7 @@ namespace CS2_SimpleAdmin
if (player is { IsBot: false, IsHLTV: false })
using (new WithTemporaryCulture(player.GetLanguage()))
{
player!.PrintToCenter(_localizer!["sa_player_mute_message_time", reason, time, caller == null ? "Console" : caller.PlayerName]);
player.PrintToCenter(_localizer!["sa_player_mute_message_time", reason, time, caller == null ? "Console" : caller.PlayerName]);
}
if (caller == null || !silentPlayers.Contains(caller.Slot))
{
@@ -493,13 +484,11 @@ namespace CS2_SimpleAdmin
return;
}
var time = 0;
var reason = _localizer?["sa_unknown"] ?? "Unknown";
MuteManager _muteManager = new(_database);
var playerPenaltyManager = new PlayerPenaltyManager();
MuteManager muteManager = new(_database);
int.TryParse(command.GetArg(2), out time);
int.TryParse(command.GetArg(2), out var time);
if (command.ArgCount >= 3 && command.GetArg(3).Length > 0)
reason = command.GetArg(3);
@@ -523,14 +512,14 @@ namespace CS2_SimpleAdmin
return;
}
PlayerPenaltyManager.AddPenalty(player!.Slot, PenaltyType.Mute, DateTime.Now.AddMinutes(time), time);
PlayerPenaltyManager.AddPenalty(player.Slot, PenaltyType.Mute, DateTime.Now.AddMinutes(time), time);
if (time == 0)
{
if (player is { IsBot: false, IsHLTV: false })
using (new WithTemporaryCulture(player.GetLanguage()))
{
player!.PrintToCenter(_localizer!["sa_player_mute_message_perm", reason, caller == null ? "Console" : caller.PlayerName]);
player.PrintToCenter(_localizer!["sa_player_mute_message_perm", reason, caller == null ? "Console" : caller.PlayerName]);
}
if (caller == null || !silentPlayers.Contains(caller.Slot))
{
@@ -550,7 +539,7 @@ namespace CS2_SimpleAdmin
if (player is { IsBot: false, IsHLTV: false })
using (new WithTemporaryCulture(player.GetLanguage()))
{
player!.PrintToCenter(_localizer!["sa_player_mute_message_time", reason, time, caller == null ? "Console" : caller.PlayerName]);
player.PrintToCenter(_localizer!["sa_player_mute_message_time", reason, time, caller == null ? "Console" : caller.PlayerName]);
}
if (caller == null || !silentPlayers.Contains(caller.Slot))
{
@@ -572,13 +561,13 @@ namespace CS2_SimpleAdmin
Task.Run(async () =>
{
await _muteManager.AddMuteBySteamid(steamid, adminInfo, reason, time, 1);
await muteManager.AddMuteBySteamid(steamid, adminInfo, reason, time, 1);
});
Helper.SendDiscordLogMessage(caller, command, _discordWebhookClientLog, _localizer);
Helper.LogCommand(caller, command);
command?.ReplyToCommand($"Muted player with steamid {steamid}.");
command.ReplyToCommand($"Muted player with steamid {steamid}.");
}
[ConsoleCommand("css_unmute")]
@@ -587,7 +576,6 @@ namespace CS2_SimpleAdmin
public void OnUnmuteCommand(CCSPlayerController? caller, CommandInfo command)
{
if (_database == null) return;
var callerName = caller == null ? "Console" : caller.PlayerName;
var callerSteamId = caller?.SteamID.ToString() ?? "Console";
var foundPlayerName = string.Empty;
@@ -605,8 +593,7 @@ namespace CS2_SimpleAdmin
var pattern = command.GetArg(1);
var found = false;
MuteManager _muteManager = new(_database);
PlayerPenaltyManager playerPenaltyManager = new();
MuteManager muteManager = new(_database);
if (Helper.IsValidSteamId64(pattern))
{
@@ -616,7 +603,7 @@ namespace CS2_SimpleAdmin
var player = matches.FirstOrDefault();
if (player != null && player.IsValid)
{
PlayerPenaltyManager.RemovePenaltiesByType(player!.Slot, PenaltyType.Mute);
PlayerPenaltyManager.RemovePenaltiesByType(player.Slot, PenaltyType.Mute);
player.VoiceFlags = VoiceFlags.Normal;
found = true;
foundPlayerName = player.PlayerName;
@@ -632,7 +619,7 @@ namespace CS2_SimpleAdmin
var player = matches.FirstOrDefault();
if (player != null && player.IsValid)
{
PlayerPenaltyManager.RemovePenaltiesByType(player!.Slot, PenaltyType.Mute);
PlayerPenaltyManager.RemovePenaltiesByType(player.Slot, PenaltyType.Mute);
player.VoiceFlags = VoiceFlags.Normal;
pattern = player.SteamID.ToString();
found = true;
@@ -644,12 +631,12 @@ namespace CS2_SimpleAdmin
if (found)
{
Task.Run(async () => { await _muteManager.UnmutePlayer(foundPlayerSteamId64, callerSteamId, reason, 1); }); // Unmute by type 1 (mute)
Task.Run(async () => { await muteManager.UnmutePlayer(foundPlayerSteamId64, callerSteamId, reason, 1); }); // Unmute by type 1 (mute)
command.ReplyToCommand($"Unmuted player {foundPlayerName}.");
}
else
{
Task.Run(async () => { await _muteManager.UnmutePlayer(pattern, callerSteamId, reason, 1); }); // Unmute by type 1 (mute)
Task.Run(async () => { await muteManager.UnmutePlayer(pattern, callerSteamId, reason, 1); }); // Unmute by type 1 (mute)
command.ReplyToCommand($"Unmuted offline player with pattern {pattern}.");
}
@@ -687,31 +674,30 @@ namespace CS2_SimpleAdmin
if (_database == null) return;
var callerName = caller == null ? "Console" : caller.PlayerName;
var time = 0;
var reason = CS2_SimpleAdmin._localizer?["sa_unknown"] ?? "Unknown";
var targets = GetTarget(command);
if (targets == null) return;
var playersToTarget = targets!.Players.Where(player => player.IsValid && player.SteamID.ToString().Length == 17 && !player.IsHLTV).ToList();
var playersToTarget = targets.Players.Where(player => player.IsValid && player.SteamID.ToString().Length == 17 && !player.IsHLTV).ToList();
if (playersToTarget.Count > 1 && Config.DisableDangerousCommands || playersToTarget.Count == 0)
{
return;
}
int.TryParse(command.GetArg(2), out time);
int.TryParse(command.GetArg(2), out var time);
if (command.ArgCount >= 3 && command.GetArg(3).Length > 0)
reason = command.GetArg(3);
MuteManager _muteManager = new(_database);
MuteManager muteManager = new(_database);
var playerPenaltyManager = new PlayerPenaltyManager();
playersToTarget.ForEach(player =>
{
if (caller!.CanTarget(player))
{
Silence(caller, player, time, reason, callerName, _muteManager, playerPenaltyManager, command);
Silence(caller, player, time, reason, callerName, muteManager, playerPenaltyManager, command);
}
});
}
@@ -721,7 +707,6 @@ namespace CS2_SimpleAdmin
if (_database == null) return;
callerName ??= caller == null ? "Console" : caller.PlayerName;
muteManager ??= new MuteManager(_database);
playerPenaltyManager ??= new PlayerPenaltyManager();
var playerInfo = new PlayerInfo
{
@@ -746,11 +731,11 @@ namespace CS2_SimpleAdmin
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 (!player!.IsBot && !player.IsHLTV)
if (!player.IsBot && !player.IsHLTV)
{
using (new WithTemporaryCulture(player.GetLanguage()))
{
@@ -773,11 +758,11 @@ namespace CS2_SimpleAdmin
}
else
{
if (!player!.IsBot && !player.IsHLTV)
if (!player.IsBot && !player.IsHLTV)
{
using (new WithTemporaryCulture(player.GetLanguage()))
{
player!.PrintToCenter(_localizer!["sa_player_silence_message_time", reason, time, caller == null ? "Console" : caller.PlayerName]);
player.PrintToCenter(_localizer!["sa_player_silence_message_time", reason, time, caller == null ? "Console" : caller.PlayerName]);
}
}
@@ -823,13 +808,11 @@ namespace CS2_SimpleAdmin
return;
}
var time = 0;
var reason = CS2_SimpleAdmin._localizer?["sa_unknown"] ?? "Unknown";
var reason = _localizer?["sa_unknown"] ?? "Unknown";
MuteManager _muteManager = new(_database);
var playerPenaltyManager = new PlayerPenaltyManager();
MuteManager muteManager = new(_database);
int.TryParse(command.GetArg(2), out time);
int.TryParse(command.GetArg(2), out var time);
if (command.ArgCount >= 3 && command.GetArg(3).Length > 0)
reason = command.GetArg(3);
@@ -854,16 +837,16 @@ namespace CS2_SimpleAdmin
}
if (TagsDetected)
Server.ExecuteCommand($"css_tag_mute {player!.SteamID}");
Server.ExecuteCommand($"css_tag_mute {player.SteamID}");
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 (!player.IsBot && !player.IsHLTV)
using (new WithTemporaryCulture(player.GetLanguage()))
{
player!.PrintToCenter(_localizer!["sa_player_silence_message_perm", reason, caller == null ? "Console" : caller.PlayerName]);
player.PrintToCenter(_localizer!["sa_player_silence_message_perm", reason, caller == null ? "Console" : caller.PlayerName]);
}
if (caller == null || !silentPlayers.Contains(caller.Slot))
{
@@ -883,7 +866,7 @@ namespace CS2_SimpleAdmin
if (!player.IsBot && !player.IsHLTV)
using (new WithTemporaryCulture(player.GetLanguage()))
{
player!.PrintToCenter(_localizer!["sa_player_silence_message_time", reason, time, caller == null ? "Console" : caller.PlayerName]);
player.PrintToCenter(_localizer!["sa_player_silence_message_time", reason, time, caller == null ? "Console" : caller.PlayerName]);
}
if (caller == null || !silentPlayers.Contains(caller.Slot))
{
@@ -904,13 +887,13 @@ namespace CS2_SimpleAdmin
}
Task.Run(async () =>
{
await _muteManager.AddMuteBySteamid(steamid, adminInfo, reason, time, 2);
await muteManager.AddMuteBySteamid(steamid, adminInfo, reason, time, 2);
});
Helper.SendDiscordLogMessage(caller, command, _discordWebhookClientLog, _localizer);
Helper.LogCommand(caller, command);
command?.ReplyToCommand($"Silenced player with steamid {steamid}.");
command.ReplyToCommand($"Silenced player with steamid {steamid}.");
}
[ConsoleCommand("css_unsilence")]
@@ -919,7 +902,6 @@ namespace CS2_SimpleAdmin
public void OnUnsilenceCommand(CCSPlayerController? caller, CommandInfo command)
{
if (_database == null) return;
var callerName = caller == null ? "Console" : caller.PlayerName;
var callerSteamId = caller?.SteamID.ToString() ?? "Console";
var foundPlayerName = string.Empty;
@@ -937,8 +919,7 @@ namespace CS2_SimpleAdmin
var pattern = command.GetArg(1);
var found = false;
MuteManager _muteManager = new(_database);
PlayerPenaltyManager playerPenaltyManager = new();
MuteManager muteManager = new(_database);
if (Helper.IsValidSteamId64(pattern))
{
@@ -949,9 +930,9 @@ namespace CS2_SimpleAdmin
if (player != null && player.IsValid)
{
if (TagsDetected)
Server.ExecuteCommand($"css_tag_unmute {player!.SteamID}");
Server.ExecuteCommand($"css_tag_unmute {player.SteamID}");
PlayerPenaltyManager.RemovePenaltiesByType(player!.Slot, PenaltyType.Silence);
PlayerPenaltyManager.RemovePenaltiesByType(player.Slot, PenaltyType.Silence);
player.VoiceFlags = VoiceFlags.Normal;
found = true;
foundPlayerName = player.PlayerName;
@@ -968,9 +949,9 @@ namespace CS2_SimpleAdmin
if (player != null && player.IsValid)
{
if (TagsDetected)
Server.ExecuteCommand($"css_tag_unmute {player!.SteamID}");
Server.ExecuteCommand($"css_tag_unmute {player.SteamID}");
PlayerPenaltyManager.RemovePenaltiesByType(player!.Slot, PenaltyType.Silence);
PlayerPenaltyManager.RemovePenaltiesByType(player.Slot, PenaltyType.Silence);
player.VoiceFlags = VoiceFlags.Normal;
pattern = player.SteamID.ToString();
found = true;
@@ -982,15 +963,13 @@ namespace CS2_SimpleAdmin
if (found)
{
Task.Run(async () => { await _muteManager.UnmutePlayer(foundPlayerSteamId64, callerSteamId, reason, 2); }); // Unmute by type 2 (silence)
Task.Run(async () => { await muteManager.UnmutePlayer(foundPlayerSteamId64, callerSteamId, reason, 2); }); // Unmute by type 2 (silence)
command.ReplyToCommand($"Unsilenced player {foundPlayerName}.");
return;
}
else
{
Task.Run(async () => { await _muteManager.UnmutePlayer(pattern, callerSteamId, reason, 2); }); // Unmute by type 2 (silence)
Task.Run(async () => { await muteManager.UnmutePlayer(pattern, callerSteamId, reason, 2); }); // Unmute by type 2 (silence)
command.ReplyToCommand($"Unsilenced offline player with pattern {pattern}.");
return;
}
/*
TargetResult? targets = GetTarget(command);

View File

@@ -15,8 +15,7 @@ namespace CS2_SimpleAdmin
[CommandHelper(minArgs: 2, usage: "<question> [... options ...]", whoCanExecute: CommandUsage.CLIENT_AND_SERVER)]
public void OnVoteCommand(CCSPlayerController? caller, CommandInfo command)
{
var callerName = caller == null ? "Console" : caller.PlayerName;
if (command.GetArg(1) == null || command.GetArg(1).Length < 0 || command.ArgCount < 2)
if (command.ArgCount < 2)
return;
Helper.SendDiscordLogMessage(caller, command, _discordWebhookClientLog, _localizer);
@@ -47,8 +46,8 @@ namespace CS2_SimpleAdmin
voteMenu.PostSelectAction = PostSelectAction.Close;
Helper.PrintToCenterAll(_localizer!["sa_admin_vote_message", caller == null ? "Console" : caller.PlayerName, question]);
StringBuilder sb = new(_localizer!["sa_prefix"]);
Helper.PrintToCenterAll(_localizer["sa_admin_vote_message", caller == null ? "Console" : caller.PlayerName, question]);
StringBuilder sb = new(_localizer["sa_prefix"]);
sb.Append(_localizer["sa_admin_vote_message", caller == null ? "Console" : caller.PlayerName, question]);
player.PrintToChat(sb.ToString());

View File

@@ -3,7 +3,6 @@ using CounterStrikeSharp.API.Core.Attributes.Registration;
using CounterStrikeSharp.API.Core.Translations;
using CounterStrikeSharp.API.Modules.Admin;
using CounterStrikeSharp.API.Modules.Commands;
using CounterStrikeSharp.API.Modules.Commands.Targeting;
using System.Text;
namespace CS2_SimpleAdmin

View File

@@ -3,7 +3,6 @@ using CounterStrikeSharp.API.Core.Attributes.Registration;
using CounterStrikeSharp.API.Core.Translations;
using CounterStrikeSharp.API.Modules.Admin;
using CounterStrikeSharp.API.Modules.Commands;
using CounterStrikeSharp.API.Modules.Commands.Targeting;
using CounterStrikeSharp.API.Modules.Entities.Constants;
using CounterStrikeSharp.API.Modules.Memory;
using CounterStrikeSharp.API.Modules.Utils;
@@ -22,7 +21,7 @@ namespace CS2_SimpleAdmin
var targets = GetTarget(command);
if (targets == null) return;
var playersToTarget = targets!.Players.Where(player => player.IsValid && player is { PawnIsAlive: true, IsHLTV: false }).ToList();
var playersToTarget = targets.Players.Where(player => player.IsValid && player is { PawnIsAlive: true, IsHLTV: false }).ToList();
playersToTarget.ForEach(player =>
{
@@ -66,7 +65,7 @@ namespace CS2_SimpleAdmin
var targets = GetTarget(command);
if (targets == null) return;
var playersToTarget = targets!.Players.Where(player => player.IsValid && player is { PawnIsAlive: true, IsHLTV: false }).ToList();
var playersToTarget = targets.Players.Where(player => player.IsValid && player is { PawnIsAlive: true, IsHLTV: false }).ToList();
var weaponName = command.GetArg(2);
// check if item is typed
@@ -104,10 +103,10 @@ namespace CS2_SimpleAdmin
public void GiveWeapon(CCSPlayerController? caller, CCSPlayerController player, CsItem weapon, string? callerName = null)
{
Helper.LogCommand(caller, $"css_give {player?.PlayerName} {weapon.ToString()}");
Helper.LogCommand(caller, $"css_give {player.PlayerName} {weapon.ToString()}");
player?.GiveNamedItem(weapon);
SubGiveWeapon(caller, player!, weapon.ToString(), callerName);
player.GiveNamedItem(weapon);
SubGiveWeapon(caller, player, weapon.ToString(), callerName);
}
private void GiveWeapon(CCSPlayerController? caller, CCSPlayerController player, string weaponName, string? callerName = null, CommandInfo? command = null)
@@ -118,8 +117,8 @@ namespace CS2_SimpleAdmin
Helper.SendDiscordLogMessage(caller, command, _discordWebhookClientLog, _localizer);
}
player?.GiveNamedItem(weaponName);
SubGiveWeapon(caller, player!, weaponName, callerName);
player.GiveNamedItem(weaponName);
SubGiveWeapon(caller, player, weaponName, callerName);
}
private void SubGiveWeapon(CCSPlayerController? caller, CCSPlayerController player, string weaponName, string? callerName = null)
@@ -147,7 +146,7 @@ namespace CS2_SimpleAdmin
var targets = GetTarget(command);
if (targets == null) return;
var playersToTarget = targets!.Players.Where(player => player.IsValid && player is { PawnIsAlive: true, IsHLTV: false }).ToList();
var playersToTarget = targets.Players.Where(player => player.IsValid && player is { PawnIsAlive: true, IsHLTV: false }).ToList();
playersToTarget.ForEach(player =>
{
@@ -190,29 +189,28 @@ namespace CS2_SimpleAdmin
[CommandHelper(minArgs: 1, usage: "<#userid or name> <health>", whoCanExecute: CommandUsage.CLIENT_AND_SERVER)]
public void OnHpCommand(CCSPlayerController? caller, CommandInfo command)
{
var callerName = caller == null ? "Console" : caller.PlayerName;
int.TryParse(command.GetArg(2), out var health);
var targets = GetTarget(command);
if (targets == null) return;
var playersToTarget = targets!.Players.Where(player => player.IsValid && player is { PawnIsAlive: true, IsHLTV: false }).ToList();
var playersToTarget = targets.Players.Where(player => player.IsValid && player is { PawnIsAlive: true, IsHLTV: false }).ToList();
playersToTarget.ForEach(player =>
{
if (caller!.CanTarget(player))
{
SetHp(caller, player, health, callerName, command);
SetHp(caller, player, health, command);
}
});
}
public void SetHp(CCSPlayerController? caller, CCSPlayerController? player, int health, string? callerName = null, CommandInfo? command = null)
public void SetHp(CCSPlayerController? caller, CCSPlayerController? player, int health, CommandInfo? command = null)
{
if (player != null && !player.IsBot && player.SteamID.ToString().Length != 17)
return;
callerName = caller == null ? "Console" : caller.PlayerName;
var callerName = caller == null ? "Console" : caller.PlayerName;
player.SetHp(health);
@@ -245,7 +243,7 @@ namespace CS2_SimpleAdmin
var targets = GetTarget(command);
if (targets == null) return;
var playersToTarget = targets!.Players.Where(player => player.IsValid && player is { PawnIsAlive: true, IsHLTV: false }).ToList();
var playersToTarget = targets.Players.Where(player => player.IsValid && player is { PawnIsAlive: true, IsHLTV: false }).ToList();
playersToTarget.ForEach(player =>
{
@@ -289,15 +287,14 @@ namespace CS2_SimpleAdmin
public void OnGravityCommand(CCSPlayerController? caller, CommandInfo command)
{
var callerName = caller == null ? "Console" : caller.PlayerName;
var gravity = 1.0;
double.TryParse(command.GetArg(2), out gravity);
double.TryParse(command.GetArg(2), out var gravity);
var targets = GetTarget(command);
if (targets == null) return;
Helper.SendDiscordLogMessage(caller, command, _discordWebhookClientLog, _localizer);
var playersToTarget = targets!.Players.Where(player => player.IsValid && player is { PawnIsAlive: true, IsHLTV: false }).ToList();
var playersToTarget = targets.Players.Where(player => player.IsValid && player is { PawnIsAlive: true, IsHLTV: false }).ToList();
playersToTarget.ForEach(player =>
{
@@ -346,7 +343,7 @@ namespace CS2_SimpleAdmin
var targets = GetTarget(command);
if (targets == null) return;
var playersToTarget = targets!.Players.Where(player => player.IsValid && player is { PawnIsAlive: true, IsHLTV: false }).ToList();
var playersToTarget = targets.Players.Where(player => player.IsValid && player is { PawnIsAlive: true, IsHLTV: false }).ToList();
playersToTarget.ForEach(player =>
{
@@ -393,7 +390,7 @@ namespace CS2_SimpleAdmin
var targets = GetTarget(command);
if (targets == null) return;
var playersToTarget = targets!.Players.Where(player => player.IsValid && player is { PawnIsAlive: true, IsHLTV: false }).ToList();
var playersToTarget = targets.Players.Where(player => player.IsValid && player is { PawnIsAlive: true, IsHLTV: false }).ToList();
playersToTarget.ForEach(player =>
{
@@ -444,13 +441,12 @@ namespace CS2_SimpleAdmin
[CommandHelper(minArgs: 1, usage: "<#userid or name> [damage]", whoCanExecute: CommandUsage.CLIENT_AND_SERVER)]
public void OnSlapCommand(CCSPlayerController? caller, CommandInfo command)
{
var callerName = caller == null ? "Console" : caller.PlayerName;
var damage = 0;
var targets = GetTarget(command);
if (targets == null) return;
var playersToTarget = targets!.Players.Where(player => player.IsValid && player is { PawnIsAlive: true, IsHLTV: false }).ToList();
var playersToTarget = targets.Players.Where(player => player.IsValid && player is { PawnIsAlive: true, IsHLTV: false }).ToList();
if (command.ArgCount >= 2)
{
@@ -505,7 +501,7 @@ namespace CS2_SimpleAdmin
var targets = GetTarget(command);
if (targets == null) return;
var playersToTarget = targets!.Players.Where(player => player is { IsValid: true, IsHLTV: false }).ToList();
var playersToTarget = targets.Players.Where(player => player is { IsValid: true, IsHLTV: false }).ToList();
switch (teamName)
{
@@ -655,10 +651,10 @@ namespace CS2_SimpleAdmin
{
callerName ??= caller == null ? "Console" : caller.PlayerName;
if (CBasePlayerController_SetPawnFunc == null || player?.PlayerPawn.Value == null || !player.PlayerPawn.IsValid) return;
if (CBasePlayerControllerSetPawnFunc == null || player?.PlayerPawn.Value == null || !player.PlayerPawn.IsValid) return;
var playerPawn = player.PlayerPawn.Value;
CBasePlayerController_SetPawnFunc.Invoke(player, playerPawn, true, false);
CBasePlayerControllerSetPawnFunc.Invoke(player, playerPawn, true, false);
VirtualFunction.CreateVoid<CCSPlayerController>(player.Handle,
GameData.GetOffset("CCSPlayerController_Respawn"))(player);
@@ -689,14 +685,12 @@ namespace CS2_SimpleAdmin
{
if (caller == null || !caller.PawnIsAlive) return;
var callerName = caller.PlayerName;
var targets = GetTarget(command);
if (targets == null || targets.Count() > 1)
return;
var playersToTarget = targets!.Players.Where(player => player is { IsValid: true, IsHLTV: false }).ToList();
var playersToTarget = targets.Players.Where(player => player is { IsValid: true, IsHLTV: false }).ToList();
Helper.LogCommand(caller, command);
Helper.SendDiscordLogMessage(caller, command, _discordWebhookClientLog, _localizer);
@@ -706,13 +700,13 @@ namespace CS2_SimpleAdmin
if (!player.IsBot && player.SteamID.ToString().Length != 17 || !player.PawnIsAlive)
return;
if (!caller!.CanTarget(player)) return;
caller!.TeleportPlayer(player);
caller!.Pawn.Value!.ToggleNoclip();
if (!caller.CanTarget(player)) return;
caller.TeleportPlayer(player);
caller.Pawn.Value!.ToggleNoclip();
AddTimer(3, () =>
{
caller!.Pawn.Value!.ToggleNoclip();
caller.Pawn.Value!.ToggleNoclip();
});
if (silentPlayers.Contains(caller.Slot)) return;
@@ -736,14 +730,12 @@ namespace CS2_SimpleAdmin
{
if (caller == null || !caller.PawnIsAlive) return;
var callerName = caller.PlayerName;
var targets = GetTarget(command);
if (targets == null || targets.Count() > 1)
return;
var playersToTarget = targets!.Players.Where(player => player is { IsValid: true, IsHLTV: false }).ToList();
var playersToTarget = targets.Players.Where(player => player is { IsValid: true, IsHLTV: false }).ToList();
Helper.LogCommand(caller, command);
Helper.SendDiscordLogMessage(caller, command, _discordWebhookClientLog, _localizer);
@@ -753,13 +745,13 @@ namespace CS2_SimpleAdmin
if (!player.IsBot && player.SteamID.ToString().Length != 17 || !player.PawnIsAlive)
return;
if (!caller!.CanTarget(player)) return;
player!.TeleportPlayer(caller!);
caller!.Pawn.Value!.ToggleNoclip();
if (!caller.CanTarget(player)) return;
player.TeleportPlayer(caller);
caller.Pawn.Value!.ToggleNoclip();
AddTimer(3, () =>
{
caller!.Pawn.Value!.ToggleNoclip();
caller.Pawn.Value!.ToggleNoclip();
});
if (silentPlayers.Contains(caller.Slot)) return;