Added Change Team

This commit is contained in:
Valentin Barat
2024-02-13 00:33:07 +01:00
parent 6c44281ca5
commit af66802b37
2 changed files with 57 additions and 48 deletions

View File

@@ -453,50 +453,58 @@ namespace CS2_SimpleAdmin
break; break;
} }
bool kill = command.GetArg(3).ToLower().Equals("-k");
playersToTarget.ForEach(player => playersToTarget.ForEach(player =>
{ {
if (!player.IsBot && player.SteamID.ToString().Length != 17) ChangeTeam(caller, player, teamName, teamNum, kill, callerName);
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());
}
}
}
}); });
} }
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.")] [ConsoleCommand("css_rename", "Rename a player.")]
[CommandHelper(1, "<#userid or name> <new name>")] [CommandHelper(1, "<#userid or name> <new name>")]
[RequiresPermissions("@css/kick")] [RequiresPermissions("@css/kick")]

View File

@@ -2,6 +2,7 @@ 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;
using CounterStrikeSharp.API.Modules.Utils;
namespace CS2_SimpleAdmin.Menus namespace CS2_SimpleAdmin.Menus
{ {
@@ -100,7 +101,7 @@ namespace CS2_SimpleAdmin.Menus
{ {
CS2_SimpleAdmin.Instance.Slay(admin, player); CS2_SimpleAdmin.Instance.Slay(admin, player);
} }
private static void KickMenu(CCSPlayerController admin, CCSPlayerController player) private static void KickMenu(CCSPlayerController admin, CCSPlayerController player)
{ {
BaseMenu menu = AdminMenu.CreateMenu($"Kick: {player.PlayerName}"); BaseMenu menu = AdminMenu.CreateMenu($"Kick: {player.PlayerName}");
@@ -205,7 +206,7 @@ namespace CS2_SimpleAdmin.Menus
{ {
CS2_SimpleAdmin.Instance.Mute(admin, player, duration, reason); CS2_SimpleAdmin.Instance.Mute(admin, player, duration, reason);
} }
private static void SilenceMenu(CCSPlayerController admin, CCSPlayerController player, int duration) private static void SilenceMenu(CCSPlayerController admin, CCSPlayerController player, int duration)
{ {
// TODO: Localize and make options in config? // TODO: Localize and make options in config?
@@ -229,7 +230,7 @@ namespace CS2_SimpleAdmin.Menus
AdminMenu.OpenMenu(admin, menu); AdminMenu.OpenMenu(admin, menu);
} }
private static void Silence(CCSPlayerController admin, CCSPlayerController player, int duration, string reason) private static void Silence(CCSPlayerController admin, CCSPlayerController player, int duration, string reason)
{ {
CS2_SimpleAdmin.Instance.Silence(admin, player, duration, reason); CS2_SimpleAdmin.Instance.Silence(admin, player, duration, reason);
@@ -240,10 +241,10 @@ namespace CS2_SimpleAdmin.Menus
// TODO: Localize // TODO: Localize
BaseMenu menu = AdminMenu.CreateMenu($"Force {player.PlayerName}'s Team"); BaseMenu menu = AdminMenu.CreateMenu($"Force {player.PlayerName}'s Team");
List<ChatMenuOptionData> options = new(); List<ChatMenuOptionData> options = new();
options.Add(new ChatMenuOptionData("CT", () => ForceTeam(admin, player, "ct"))); options.Add(new ChatMenuOptionData("CT", () => ForceTeam(admin, player, "ct", CsTeam.CounterTerrorist)));
options.Add(new ChatMenuOptionData("T", () => ForceTeam(admin, player, "t"))); options.Add(new ChatMenuOptionData("T", () => ForceTeam(admin, player, "t", CsTeam.Terrorist)));
options.Add(new ChatMenuOptionData("Swap", () => ForceTeam(admin, player, "swap"))); options.Add(new ChatMenuOptionData("Swap", () => ForceTeam(admin, player, "swap", CsTeam.Spectator)));
options.Add(new ChatMenuOptionData("Spectator", () => ForceTeam(admin, player, "spec"))); options.Add(new ChatMenuOptionData("Spectator", () => ForceTeam(admin, player, "spec", CsTeam.Spectator)));
foreach (ChatMenuOptionData menuOptionData in options) foreach (ChatMenuOptionData menuOptionData in options)
{ {
@@ -254,9 +255,9 @@ namespace CS2_SimpleAdmin.Menus
AdminMenu.OpenMenu(admin, menu); 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);
} }
} }
} }