diff --git a/CS2-SimpleAdmin.cs b/CS2-SimpleAdmin.cs index 0769fc0..66ab3fa 100644 --- a/CS2-SimpleAdmin.cs +++ b/CS2-SimpleAdmin.cs @@ -9,13 +9,11 @@ using Microsoft.Extensions.Localization; using Microsoft.Extensions.Logging; using MySqlConnector; using System.Collections.Concurrent; -using System.Text; -using CS2_SimpleAdmin.Menus; namespace CS2_SimpleAdmin; [MinimumApiVersion(163)] -public partial class CS2_SimpleAdmin : BasePlugin, IPluginConfig +public partial class CS2_SimpleAdmin: BasePlugin, IPluginConfig { public static CS2_SimpleAdmin Instance { get; private set; } = null; public static BasePlugin? _plugin = null; @@ -30,6 +28,9 @@ public partial class CS2_SimpleAdmin : BasePlugin, IPluginConfig bag, int playerSlot) { - var tempList = new List(); + List tempList = new List(); while (!bag.IsEmpty) { if (bag.TryTake(out int item) && item != playerSlot) @@ -150,10 +151,10 @@ public partial class CS2_SimpleAdmin : BasePlugin, IPluginConfig + { + await banManager.BanPlayer(playerInfo, adminInfo, reason, time); + }); + + AddTimer(Config.KickTime, () => Helper.KickPlayer((ushort)player!.UserId!), CounterStrikeSharp.API.Modules.Timers.TimerFlags.STOP_ON_MAPCHANGE); + + if (playerInfo.IpAddress != null && !bannedPlayers.Contains(playerInfo.IpAddress)) + bannedPlayers.Add(playerInfo.IpAddress); + if (!bannedPlayers.Contains(player!.SteamID.ToString())) + bannedPlayers.Add(player.SteamID.ToString()); + + if (time == 0) + { + if (!player.IsBot && !player.IsHLTV) + using (new WithTemporaryCulture(player.GetLanguage())) { - player.Pawn.Value!.Freeze(); + player!.PrintToCenter(_localizer!["sa_player_ban_message_perm", reason, caller == null ? "Console" : caller.PlayerName]); } - PlayerInfo playerInfo = new PlayerInfo + if (caller == null || caller != null && !silentPlayers.Contains(caller.Slot)) + { + foreach (CCSPlayerController _player in Helper.GetValidPlayers()) { - SteamId = player?.SteamID.ToString(), - Name = player?.PlayerName, - IpAddress = player?.IpAddress?.Split(":")[0] - }; - - PlayerInfo adminInfo = new PlayerInfo - { - SteamId = caller?.SteamID.ToString(), - Name = caller?.PlayerName, - IpAddress = caller?.IpAddress?.Split(":")[0] - }; - - Task.Run(async () => - { - await _banManager.BanPlayer(playerInfo, adminInfo, reason, time); - }); - - AddTimer(Config.KickTime, () => Helper.KickPlayer((ushort)player!.UserId!), CounterStrikeSharp.API.Modules.Timers.TimerFlags.STOP_ON_MAPCHANGE); - - if (playerInfo.IpAddress != null && !bannedPlayers.Contains(playerInfo.IpAddress)) - bannedPlayers.Add(playerInfo.IpAddress); - if (!bannedPlayers.Contains(player!.SteamID.ToString())) - bannedPlayers.Add(player.SteamID.ToString()); - - if (time == 0) - { - if (!player.IsBot && !player.IsHLTV) - using (new WithTemporaryCulture(player.GetLanguage())) - { - player!.PrintToCenter(_localizer!["sa_player_ban_message_perm", reason, caller == null ? "Console" : caller.PlayerName]); - } - - if (caller == null || caller != null && !silentPlayers.Contains(caller.Slot)) + using (new WithTemporaryCulture(_player.GetLanguage())) { - foreach (CCSPlayerController _player in Helper.GetValidPlayers()) - { - using (new WithTemporaryCulture(_player.GetLanguage())) - { - StringBuilder sb = new(_localizer!["sa_prefix"]); - sb.Append(_localizer["sa_admin_ban_message_perm", callerName, player.PlayerName, reason]); - _player.PrintToChat(sb.ToString()); - } - } - } - } - else - { - 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]); - } - if (caller == null || caller != null && !silentPlayers.Contains(caller.Slot)) - { - foreach (CCSPlayerController _player in Helper.GetValidPlayers()) - { - using (new WithTemporaryCulture(_player.GetLanguage())) - { - StringBuilder sb = new(_localizer!["sa_prefix"]); - sb.Append(_localizer["sa_admin_ban_message_time", callerName, player.PlayerName, reason, time]); - _player.PrintToChat(sb.ToString()); - } - } + StringBuilder sb = new(_localizer!["sa_prefix"]); + sb.Append(_localizer["sa_admin_ban_message_perm", callerName, player.PlayerName, reason]); + _player.PrintToChat(sb.ToString()); } } } - }); + } + else + { + 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]); + } + if (caller == null || caller != null && !silentPlayers.Contains(caller.Slot)) + { + foreach (CCSPlayerController _player in Helper.GetValidPlayers()) + { + using (new WithTemporaryCulture(_player.GetLanguage())) + { + StringBuilder sb = new(_localizer!["sa_prefix"]); + sb.Append(_localizer["sa_admin_ban_message_time", callerName, player.PlayerName, reason, time]); + _player.PrintToChat(sb.ToString()); + } + } + } + } } [ConsoleCommand("css_addban")] diff --git a/Commands/basecommands.cs b/Commands/basecommands.cs index 2858c0a..a146b55 100644 --- a/Commands/basecommands.cs +++ b/Commands/basecommands.cs @@ -10,6 +10,7 @@ using CounterStrikeSharp.API.Modules.Entities; using CounterStrikeSharp.API.Modules.Utils; using Microsoft.Extensions.Logging; using System.Text; +using Discord.Rest; namespace CS2_SimpleAdmin { @@ -364,50 +365,61 @@ namespace CS2_SimpleAdmin if (caller!.CanTarget(player)) { - if (player.PawnIsAlive) - { - player.Pawn.Value!.Freeze(); - } - - if (command.ArgCount >= 2) - { - if (!player.IsBot && !player.IsHLTV) - using (new WithTemporaryCulture(player.GetLanguage())) - { - player.PrintToCenter(_localizer!["sa_player_kick_message", reason, caller == null ? "Console" : caller.PlayerName]); - } - AddTimer(Config.KickTime, () => Helper.KickPlayer((ushort)player.UserId!, reason), CounterStrikeSharp.API.Modules.Timers.TimerFlags.STOP_ON_MAPCHANGE); - } - else - { - AddTimer(Config.KickTime, () => Helper.KickPlayer((ushort)player.UserId!), CounterStrikeSharp.API.Modules.Timers.TimerFlags.STOP_ON_MAPCHANGE); - } - - if (caller == null || caller != null && caller.UserId != null && !silentPlayers.Contains(caller.Slot)) - { - foreach (CCSPlayerController _player in Helper.GetValidPlayers()) - { - using (new WithTemporaryCulture(_player.GetLanguage())) - { - StringBuilder sb = new(_localizer!["sa_prefix"]); - sb.Append(_localizer["sa_admin_kick_message", callerName, player.PlayerName, reason]); - _player.PrintToChat(sb.ToString()); - } - } - } + Kick(caller, player, reason, callerName); } }); } + public void Kick(CCSPlayerController? caller, CCSPlayerController player, string reason = "Unknown", string callerName = null) + { + callerName ??= caller == null ? "Console" : caller.PlayerName; + if (player.PawnIsAlive) + { + player.Pawn.Value!.Freeze(); + } + + if (string.IsNullOrEmpty(reason) == false) + { + if (!player.IsBot && !player.IsHLTV) + using (new WithTemporaryCulture(player.GetLanguage())) + { + player.PrintToCenter(_localizer!["sa_player_kick_message", reason, caller == null ? "Console" : caller.PlayerName]); + } + AddTimer(Config.KickTime, () => Helper.KickPlayer((ushort)player.UserId!, reason), CounterStrikeSharp.API.Modules.Timers.TimerFlags.STOP_ON_MAPCHANGE); + } + else + { + AddTimer(Config.KickTime, () => Helper.KickPlayer((ushort)player.UserId!), CounterStrikeSharp.API.Modules.Timers.TimerFlags.STOP_ON_MAPCHANGE); + } + + if (caller == null || caller != null && caller.UserId != null && !silentPlayers.Contains(caller.Slot)) + { + foreach (CCSPlayerController _player in Helper.GetValidPlayers()) + { + using (new WithTemporaryCulture(_player.GetLanguage())) + { + StringBuilder sb = new(_localizer!["sa_prefix"]); + sb.Append(_localizer["sa_admin_kick_message", callerName, player.PlayerName, reason]); + _player.PrintToChat(sb.ToString()); + } + } + } + } + [ConsoleCommand("css_changemap")] [ConsoleCommand("css_map")] [RequiresPermissions("@css/changemap")] [CommandHelper(minArgs: 1, usage: "", whoCanExecute: CommandUsage.CLIENT_AND_SERVER)] public void OnMapCommand(CCSPlayerController? caller, CommandInfo command) + { + string? map = command.GetCommandString.Split(" ")[1]; + ChangeMap(caller, map, command); + } + + public void ChangeMap(CCSPlayerController caller, string map, CommandInfo? command = null) { string callerName = caller == null ? "Console" : caller.PlayerName; string _command = string.Empty; - string? map = command.GetCommandString.Split(" ")[1]; if (map.StartsWith("ws:")) { @@ -423,7 +435,8 @@ namespace CS2_SimpleAdmin if (_discordWebhookClientLog != null && _localizer != null) { string communityUrl = caller != null ? "<" + new SteamID(caller.SteamID).ToCommunityUrl().ToString() + ">" : ""; - _discordWebhookClientLog.SendMessageAsync(Helper.GenerateMessageDiscord(_localizer["sa_discord_log_command", $"[{callerName}]({communityUrl})", command.GetCommandString])); + string commandName = command?.GetCommandString ?? "css_changemap"; + _discordWebhookClientLog.SendMessageAsync(Helper.GenerateMessageDiscord(_localizer["sa_discord_log_command", $"[{callerName}]({communityUrl})", commandName])); } AddTimer(2.0f, () => @@ -435,7 +448,13 @@ namespace CS2_SimpleAdmin { if (!Server.IsMapValid(map)) { - command.ReplyToCommand($"Map {map} not found."); + string msg = $"Map {map} not found."; + if (command != null) + command.ReplyToCommand(msg); + else if (caller != null && caller.IsValid) + caller.PrintToChat(msg); + else + Server.PrintToConsole(msg); return; } } @@ -468,10 +487,15 @@ namespace CS2_SimpleAdmin [CommandHelper(1, "")] [RequiresPermissions("@css/changemap")] public void OnWorkshopMapCommand(CCSPlayerController? caller, CommandInfo command) + { + string? map = command.GetArg(1); + ChangeWorkshopMap(caller, map, command); + } + + public void ChangeWorkshopMap(CCSPlayerController caller, string map, CommandInfo? command = null) { string callerName = caller == null ? "Console" : caller.PlayerName; string _command = string.Empty; - string? map = command.GetArg(1); if (long.TryParse(map, out long mapId)) { @@ -498,7 +522,8 @@ namespace CS2_SimpleAdmin if (_discordWebhookClientLog != null && _localizer != null) { string communityUrl = caller != null ? "<" + new SteamID(caller.SteamID).ToCommunityUrl().ToString() + ">" : ""; - _discordWebhookClientLog.SendMessageAsync(Helper.GenerateMessageDiscord(_localizer["sa_discord_log_command", $"[{callerName}]({communityUrl})", command.GetCommandString])); + string commandName = command?.GetCommandString ?? "css_changewsmap"; + _discordWebhookClientLog.SendMessageAsync(Helper.GenerateMessageDiscord(_localizer["sa_discord_log_command", $"[{callerName}]({communityUrl})", commandName])); } AddTimer(2.0f, () => @@ -558,5 +583,24 @@ namespace CS2_SimpleAdmin command.ReplyToCommand($"{callerName} executed command {command.ArgString}."); Logger.LogInformation($"{callerName} executed command ({command.ArgString})."); } + + [ConsoleCommand("css_rr")] + [ConsoleCommand("css_rg")] + [ConsoleCommand("css_restart")] + [ConsoleCommand("css_restartgame")] + [RequiresPermissions("@css/generic")] + [CommandHelper(minArgs: 1, usage: "", whoCanExecute: CommandUsage.CLIENT_AND_SERVER)] + public void OnRestartCommand(CCSPlayerController? caller, CommandInfo command) + { + RestartGame(caller); + } + + public void RestartGame(CCSPlayerController admin) + { + // TODO: Localize + var name = admin == null ? "Console" : admin.PlayerName; + Server.PrintToChatAll($"[SimpleAdmin] {name}: Restarting game..."); + Server.ExecuteCommand("mp_restartgame 2"); + } } } diff --git a/Commands/basecomms.cs b/Commands/basecomms.cs index 2464caa..da3673e 100644 --- a/Commands/basecomms.cs +++ b/Commands/basecomms.cs @@ -50,78 +50,87 @@ namespace CS2_SimpleAdmin { if (caller!.CanTarget(player)) { - PlayerInfo playerInfo = new PlayerInfo + Gag(caller, player, time, reason, callerName, _muteManager, playerPenaltyManager); + } + }); + } + + internal void Gag(CCSPlayerController? caller, CCSPlayerController player, int time, string reason, string callerName = null, MuteManager muteManager = null, PlayerPenaltyManager playerPenaltyManager = null) + { + callerName ??= caller == null ? "Console" : caller.PlayerName; + muteManager ??= new MuteManager(_database); + playerPenaltyManager ??= new PlayerPenaltyManager(); + + PlayerInfo playerInfo = new PlayerInfo + { + SteamId = player?.SteamID.ToString(), + Name = player?.PlayerName, + IpAddress = player?.IpAddress?.Split(":")[0] + }; + + PlayerInfo adminInfo = new PlayerInfo + { + SteamId = caller?.SteamID.ToString(), + Name = caller?.PlayerName, + IpAddress = caller?.IpAddress?.Split(":")[0] + }; + + Task.Run(async () => + { + await muteManager.MutePlayer(playerInfo, adminInfo, reason, time); + }); + + if (TagsDetected) + Server.ExecuteCommand($"css_tag_mute {player!.SteamID}"); + + playerPenaltyManager.AddPenalty(player!.Slot, PenaltyType.Gag, DateTime.Now.AddMinutes(time), time); + + if (time == 0) + { + if (!player!.IsBot && !player.IsHLTV) + { + using (new WithTemporaryCulture(player.GetLanguage())) { - SteamId = player?.SteamID.ToString(), - Name = player?.PlayerName, - IpAddress = player?.IpAddress?.Split(":")[0] - }; - - PlayerInfo adminInfo = new PlayerInfo - { - SteamId = caller?.SteamID.ToString(), - Name = caller?.PlayerName, - IpAddress = caller?.IpAddress?.Split(":")[0] - }; - - Task.Run(async () => - { - await _muteManager.MutePlayer(playerInfo, adminInfo, reason, time); - }); - - if (TagsDetected) - Server.ExecuteCommand($"css_tag_mute {player!.SteamID}"); - - playerPenaltyManager.AddPenalty(player!.Slot, PenaltyType.Gag, DateTime.Now.AddMinutes(time), time); - - if (time == 0) - { - if (!player!.IsBot && !player.IsHLTV) - { - using (new WithTemporaryCulture(player.GetLanguage())) - { - player.PrintToCenter(_localizer!["sa_player_gag_message_perm", reason, caller == null ? "Console" : caller.PlayerName]); - } - } - - if (caller == null || caller != null && !silentPlayers.Contains(caller.Slot)) - { - foreach (CCSPlayerController _player in Helper.GetValidPlayers()) - { - using (new WithTemporaryCulture(_player.GetLanguage())) - { - StringBuilder sb = new(_localizer!["sa_prefix"]); - sb.Append(_localizer["sa_admin_gag_message_perm", callerName, player.PlayerName, reason]); - _player.PrintToChat(sb.ToString()); - } - } - } + player.PrintToCenter(_localizer!["sa_player_gag_message_perm", reason, caller == null ? "Console" : caller.PlayerName]); } - else - { - 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]); - } - } + } - if (caller == null || caller != null && caller != null && !silentPlayers.Contains(caller.Slot)) + if (caller == null || caller != null && !silentPlayers.Contains(caller.Slot)) + { + foreach (CCSPlayerController _player in Helper.GetValidPlayers()) + { + using (new WithTemporaryCulture(_player.GetLanguage())) { - foreach (CCSPlayerController _player in Helper.GetValidPlayers()) - { - using (new WithTemporaryCulture(_player.GetLanguage())) - { - StringBuilder sb = new(_localizer!["sa_prefix"]); - sb.Append(_localizer["sa_admin_gag_message_time", callerName, player.PlayerName, reason, time]); - _player.PrintToChat(sb.ToString()); - } - } + StringBuilder sb = new(_localizer!["sa_prefix"]); + sb.Append(_localizer["sa_admin_gag_message_perm", callerName, player.PlayerName, reason]); + _player.PrintToChat(sb.ToString()); } } } - }); + } + else + { + 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]); + } + } + + if (caller == null || caller != null && caller != null && !silentPlayers.Contains(caller.Slot)) + { + foreach (CCSPlayerController _player in Helper.GetValidPlayers()) + { + using (new WithTemporaryCulture(_player.GetLanguage())) + { + StringBuilder sb = new(_localizer!["sa_prefix"]); + sb.Append(_localizer["sa_admin_gag_message_time", callerName, player.PlayerName, reason, time]); + _player.PrintToChat(sb.ToString()); + } + } + } + } } [ConsoleCommand("css_addgag")] @@ -369,72 +378,81 @@ namespace CS2_SimpleAdmin { if (caller!.CanTarget(player)) { - PlayerInfo playerInfo = new PlayerInfo + Mute(caller, player, time, reason, callerName, _muteManager, playerPenaltyManager); + } + }); + } + + internal void Mute(CCSPlayerController? caller, CCSPlayerController player, int time, string reason, string callerName = null, MuteManager muteManager = null, PlayerPenaltyManager playerPenaltyManager = null) + { + callerName ??= caller == null ? "Console" : caller.PlayerName; + muteManager ??= new MuteManager(_database); + playerPenaltyManager ??= new PlayerPenaltyManager(); + + PlayerInfo playerInfo = new PlayerInfo + { + SteamId = player?.SteamID.ToString(), + Name = player?.PlayerName, + IpAddress = player?.IpAddress?.Split(":")[0] + }; + + PlayerInfo adminInfo = new PlayerInfo + { + SteamId = caller?.SteamID.ToString(), + Name = caller?.PlayerName, + IpAddress = caller?.IpAddress?.Split(":")[0] + }; + + player!.VoiceFlags = VoiceFlags.Muted; + + Task.Run(async () => + { + await muteManager.MutePlayer(playerInfo, adminInfo, reason, time, 1); + }); + + playerPenaltyManager.AddPenalty(player!.Slot, PenaltyType.Mute, DateTime.Now.AddMinutes(time), time); + + if (time == 0) + { + if (!player.IsBot && !player.IsHLTV) + using (new WithTemporaryCulture(player.GetLanguage())) { - SteamId = player?.SteamID.ToString(), - Name = player?.PlayerName, - IpAddress = player?.IpAddress?.Split(":")[0] - }; - - PlayerInfo adminInfo = new PlayerInfo - { - SteamId = caller?.SteamID.ToString(), - Name = caller?.PlayerName, - IpAddress = caller?.IpAddress?.Split(":")[0] - }; - - player!.VoiceFlags = VoiceFlags.Muted; - - Task.Run(async () => - { - await _muteManager.MutePlayer(playerInfo, adminInfo, reason, time, 1); - }); - - 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]); - } - - if (caller == null || caller != null && !silentPlayers.Contains(caller.Slot)) - { - foreach (CCSPlayerController _player in Helper.GetValidPlayers()) - { - using (new WithTemporaryCulture(_player.GetLanguage())) - { - StringBuilder sb = new(_localizer!["sa_prefix"]); - sb.Append(_localizer["sa_admin_mute_message_perm", callerName, player.PlayerName, reason]); - _player.PrintToChat(sb.ToString()); - } - } - } + player!.PrintToCenter(_localizer!["sa_player_mute_message_perm", reason, caller == null ? "Console" : caller.PlayerName]); } - else + + if (caller == null || caller != null && !silentPlayers.Contains(caller.Slot)) + { + foreach (CCSPlayerController _player in Helper.GetValidPlayers()) { - if (!player.IsBot && !player.IsHLTV) - using (new WithTemporaryCulture(player.GetLanguage())) - { - player!.PrintToCenter(_localizer!["sa_player_mute_message_time", reason, time, caller == null ? "Console" : caller.PlayerName]); - } - if (caller == null || caller != null && !silentPlayers.Contains(caller.Slot)) + using (new WithTemporaryCulture(_player.GetLanguage())) { - foreach (CCSPlayerController _player in Helper.GetValidPlayers()) - { - using (new WithTemporaryCulture(_player.GetLanguage())) - { - StringBuilder sb = new(_localizer!["sa_prefix"]); - sb.Append(_localizer["sa_admin_mute_message_time", callerName, player.PlayerName, reason, time]); - _player.PrintToChat(sb.ToString()); - } - } + StringBuilder sb = new(_localizer!["sa_prefix"]); + sb.Append(_localizer["sa_admin_mute_message_perm", callerName, player.PlayerName, reason]); + _player.PrintToChat(sb.ToString()); } } } - }); + } + else + { + if (!player.IsBot && !player.IsHLTV) + using (new WithTemporaryCulture(player.GetLanguage())) + { + player!.PrintToCenter(_localizer!["sa_player_mute_message_time", reason, time, caller == null ? "Console" : caller.PlayerName]); + } + if (caller == null || caller != null && !silentPlayers.Contains(caller.Slot)) + { + foreach (CCSPlayerController _player in Helper.GetValidPlayers()) + { + using (new WithTemporaryCulture(_player.GetLanguage())) + { + StringBuilder sb = new(_localizer!["sa_prefix"]); + sb.Append(_localizer["sa_admin_mute_message_time", callerName, player.PlayerName, reason, time]); + _player.PrintToChat(sb.ToString()); + } + } + } + } } [ConsoleCommand("css_addmute")] diff --git a/Commands/playercommands.cs b/Commands/playercommands.cs index d295ba6..332950c 100644 --- a/Commands/playercommands.cs +++ b/Commands/playercommands.cs @@ -33,25 +33,32 @@ namespace CS2_SimpleAdmin playersToTarget.ForEach(player => { - if (!player.IsBot && player.SteamID.ToString().Length != 17) - return; + Slay(caller, player, callerName); + }); + } - player.CommitSuicide(false, true); + public void Slay(CCSPlayerController? caller, CCSPlayerController player, string callerName = null) + { + if (!player.IsBot && player.SteamID.ToString().Length != 17) + return; - if (caller == null || caller != null && !silentPlayers.Contains(caller.Slot)) + callerName ??= caller == null ? "Console" : caller.PlayerName; + + player.CommitSuicide(false, true); + + if (caller == null || caller != null && !silentPlayers.Contains(caller.Slot)) + { + foreach (CCSPlayerController _player in Helper.GetValidPlayers()) { - foreach (CCSPlayerController _player in Helper.GetValidPlayers()) + using (new WithTemporaryCulture(_player.GetLanguage())) { - using (new WithTemporaryCulture(_player.GetLanguage())) - { - StringBuilder sb = new(_localizer!["sa_prefix"]); - sb.Append(_localizer["sa_admin_slay_message", callerName, player.PlayerName]); - _player.PrintToChat(sb.ToString()); - } + StringBuilder sb = new(_localizer!["sa_prefix"]); + sb.Append(_localizer["sa_admin_slay_message", callerName, player.PlayerName]); + _player.PrintToChat(sb.ToString()); } } - }); + } } [ConsoleCommand("css_give")] @@ -339,24 +346,30 @@ namespace CS2_SimpleAdmin if (caller!.CanTarget(player)) { - player!.Pawn.Value!.Slap(damage); - - if (caller == null || caller != null && !silentPlayers.Contains(caller.Slot)) - { - foreach (CCSPlayerController _player in Helper.GetValidPlayers()) - { - using (new WithTemporaryCulture(_player.GetLanguage())) - { - StringBuilder sb = new(_localizer!["sa_prefix"]); - sb.Append(_localizer["sa_admin_slap_message", callerName, player.PlayerName]); - _player.PrintToChat(sb.ToString()); - } - } - } + Slap(caller, player, damage); } }); } + public void Slap(CCSPlayerController? caller, CCSPlayerController player, int damage, string callerName = null) + { + callerName ??= caller == null ? "Console" : caller.PlayerName; + player!.Pawn.Value!.Slap(damage); + + if (caller == null || caller != null && !silentPlayers.Contains(caller.Slot)) + { + foreach (CCSPlayerController _player in Helper.GetValidPlayers()) + { + using (new WithTemporaryCulture(_player.GetLanguage())) + { + StringBuilder sb = new(_localizer!["sa_prefix"]); + sb.Append(_localizer["sa_admin_slap_message", callerName, player.PlayerName]); + _player.PrintToChat(sb.ToString()); + } + } + } + } + [ConsoleCommand("css_team")] [RequiresPermissions("@css/kick")] [CommandHelper(minArgs: 2, usage: "<#userid or name> [] [-k]", whoCanExecute: CommandUsage.CLIENT_AND_SERVER)] diff --git a/Menus/ManagePlayersMenu.cs b/Menus/ManagePlayersMenu.cs index 106f3f0..17c0e08 100644 --- a/Menus/ManagePlayersMenu.cs +++ b/Menus/ManagePlayersMenu.cs @@ -67,11 +67,6 @@ namespace CS2_SimpleAdmin.Menus MenuManager.OpenCenterHtmlMenu(CS2_SimpleAdmin.Instance, admin, menu); } - private static void WhoIs(CCSPlayerController admin, CCSPlayerController player) - { - CS2_SimpleAdmin.Instance.Who(admin, player); - } - private static void SlapMenu(CCSPlayerController admin, CCSPlayerController player) { CenterHtmlMenu menu = new CenterHtmlMenu($"Slap {player.PlayerName}"); diff --git a/Menus/ManageServerMenu.cs b/Menus/ManageServerMenu.cs index 23aeeee..8e713ee 100644 --- a/Menus/ManageServerMenu.cs +++ b/Menus/ManageServerMenu.cs @@ -73,7 +73,9 @@ namespace CS2_SimpleAdmin.Menus private static void ExecuteChangeMap(CCSPlayerController admin, string mapName, bool workshop) { if (workshop) - CS2_SimpleAdmin.Instance.ChangeWSMap(admin, mapName); + CS2_SimpleAdmin.Instance.ChangeWorkshopMap(admin, mapName); + else + CS2_SimpleAdmin.Instance.ChangeMap(admin, mapName); } } }