From af66802b37fee690f5ee7babf8bbb2ba5ce1b605 Mon Sep 17 00:00:00 2001 From: Valentin Barat Date: Tue, 13 Feb 2024 00:33:07 +0100 Subject: [PATCH] Added Change Team --- Commands/playercommands.cs | 86 +++++++++++++++++++++----------------- Menus/ManagePlayersMenu.cs | 19 +++++---- 2 files changed, 57 insertions(+), 48 deletions(-) diff --git a/Commands/playercommands.cs b/Commands/playercommands.cs index c7b9263..39381e6 100644 --- a/Commands/playercommands.cs +++ b/Commands/playercommands.cs @@ -453,50 +453,58 @@ namespace CS2_SimpleAdmin break; } + bool kill = command.GetArg(3).ToLower().Equals("-k"); playersToTarget.ForEach(player => { - if (!player.IsBot && player.SteamID.ToString().Length != 17) - return; - - if (!teamName.Equals("swap")) - { - if (player.PawnIsAlive && teamNum != CsTeam.Spectator && !command.GetArg(3).ToLower().Equals("-k") && Config.TeamSwitchType == 1) - player.SwitchTeam(teamNum); - else - player.ChangeTeam(teamNum); - } - else - { - if (player.TeamNum != (byte)CsTeam.Spectator) - { - CsTeam teamNum = (CsTeam)player.TeamNum == CsTeam.Terrorist ? CsTeam.CounterTerrorist : CsTeam.Terrorist; - _teamName = teamNum == CsTeam.Terrorist ? "TT" : "CT"; - if (player.PawnIsAlive && !command.GetArg(3).ToLower().Equals("-k") && Config.TeamSwitchType == 1) - { - player.SwitchTeam(teamNum); - } - else - { - player.ChangeTeam(teamNum); - } - } - } - - 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_team_message", callerName, player.PlayerName, _teamName]); - _player.PrintToChat(sb.ToString()); - } - } - } + ChangeTeam(caller, player, teamName, teamNum, kill, callerName); }); } + public void ChangeTeam(CCSPlayerController? caller, CCSPlayerController player, string teamName, CsTeam teamNum, bool kill, string callerName = null) + { + if (!player.IsBot && player.SteamID.ToString().Length != 17) + return; + + callerName ??= caller == null ? "Console" : caller.PlayerName; + + if (!teamName.Equals("swap")) + { + if (player.PawnIsAlive && teamNum != CsTeam.Spectator && !kill && Config.TeamSwitchType == 1) + player.SwitchTeam(teamNum); + else + player.ChangeTeam(teamNum); + } + else + { + if (player.TeamNum != (byte)CsTeam.Spectator) + { + CsTeam _teamNum = (CsTeam)player.TeamNum == CsTeam.Terrorist ? CsTeam.CounterTerrorist : CsTeam.Terrorist; + teamName = _teamNum == CsTeam.Terrorist ? "TT" : "CT"; + if (player.PawnIsAlive && !kill && Config.TeamSwitchType == 1) + { + player.SwitchTeam(_teamNum); + } + else + { + player.ChangeTeam(_teamNum); + } + } + } + + 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_team_message", callerName, player.PlayerName, teamName]); + _player.PrintToChat(sb.ToString()); + } + } + } + } + [ConsoleCommand("css_rename", "Rename a player.")] [CommandHelper(1, "<#userid or name> ")] [RequiresPermissions("@css/kick")] diff --git a/Menus/ManagePlayersMenu.cs b/Menus/ManagePlayersMenu.cs index 66f6a16..8afa7b3 100644 --- a/Menus/ManagePlayersMenu.cs +++ b/Menus/ManagePlayersMenu.cs @@ -2,6 +2,7 @@ using CounterStrikeSharp.API; using CounterStrikeSharp.API.Core; using CounterStrikeSharp.API.Modules.Admin; using CounterStrikeSharp.API.Modules.Menu; +using CounterStrikeSharp.API.Modules.Utils; namespace CS2_SimpleAdmin.Menus { @@ -100,7 +101,7 @@ namespace CS2_SimpleAdmin.Menus { CS2_SimpleAdmin.Instance.Slay(admin, player); } - + private static void KickMenu(CCSPlayerController admin, CCSPlayerController player) { BaseMenu menu = AdminMenu.CreateMenu($"Kick: {player.PlayerName}"); @@ -205,7 +206,7 @@ namespace CS2_SimpleAdmin.Menus { CS2_SimpleAdmin.Instance.Mute(admin, player, duration, reason); } - + private static void SilenceMenu(CCSPlayerController admin, CCSPlayerController player, int duration) { // TODO: Localize and make options in config? @@ -229,7 +230,7 @@ namespace CS2_SimpleAdmin.Menus AdminMenu.OpenMenu(admin, menu); } - + private static void Silence(CCSPlayerController admin, CCSPlayerController player, int duration, string reason) { CS2_SimpleAdmin.Instance.Silence(admin, player, duration, reason); @@ -240,10 +241,10 @@ namespace CS2_SimpleAdmin.Menus // TODO: Localize BaseMenu menu = AdminMenu.CreateMenu($"Force {player.PlayerName}'s Team"); List options = new(); - options.Add(new ChatMenuOptionData("CT", () => ForceTeam(admin, player, "ct"))); - options.Add(new ChatMenuOptionData("T", () => ForceTeam(admin, player, "t"))); - options.Add(new ChatMenuOptionData("Swap", () => ForceTeam(admin, player, "swap"))); - options.Add(new ChatMenuOptionData("Spectator", () => ForceTeam(admin, player, "spec"))); + options.Add(new ChatMenuOptionData("CT", () => ForceTeam(admin, player, "ct", CsTeam.CounterTerrorist))); + options.Add(new ChatMenuOptionData("T", () => ForceTeam(admin, player, "t", CsTeam.Terrorist))); + options.Add(new ChatMenuOptionData("Swap", () => ForceTeam(admin, player, "swap", CsTeam.Spectator))); + options.Add(new ChatMenuOptionData("Spectator", () => ForceTeam(admin, player, "spec", CsTeam.Spectator))); foreach (ChatMenuOptionData menuOptionData in options) { @@ -254,9 +255,9 @@ namespace CS2_SimpleAdmin.Menus AdminMenu.OpenMenu(admin, menu); } - private static void ForceTeam(CCSPlayerController admin, CCSPlayerController player, string teamName) + private static void ForceTeam(CCSPlayerController admin, CCSPlayerController player, string teamName, CsTeam teamNum) { - // TODO: ForceTeam + CS2_SimpleAdmin.Instance.ChangeTeam(admin, player, teamName, teamNum, true); } } }