Change team down

This commit is contained in:
Valentin Barat
2024-01-31 22:05:48 +01:00
parent a266f776a8
commit a80de2d7dc
3 changed files with 57 additions and 27 deletions

View File

@@ -1627,39 +1627,46 @@ public partial class CS2_SimpleAdmin : BasePlugin, IPluginConfig<CS2_SimpleAdmin
break; break;
} }
bool kill = command.GetArg(3)?.ToLower().Equals("-k") ?? false;
playersToTarget.ForEach(player => playersToTarget.ForEach(player =>
{ {
if (!teamName.Equals("swap")) ChangeTeam(caller, player, _teamName, teamNum, kill);
{ });
if (player.PawnIsAlive && teamNum != CsTeam.Spectator && !command.GetArg(3).ToLower().Equals("-k")) }
player.SwitchTeam(teamNum);
else public void ChangeTeam(CCSPlayerController? caller, CCSPlayerController player, string teamName, CsTeam teamNum, bool kill)
player.ChangeTeam(teamNum); {
} if (!teamName.Equals("swap"))
{
if (player.PawnIsAlive && teamNum != CsTeam.Spectator && !kill)
player.SwitchTeam(teamNum);
else else
player.ChangeTeam(teamNum);
}
else
{
if (player.TeamNum != (byte)CsTeam.Spectator)
{ {
if (player.TeamNum != (byte)CsTeam.Spectator) teamNum = (CsTeam)player.TeamNum == CsTeam.Terrorist ? CsTeam.CounterTerrorist : CsTeam.Terrorist;
teamName = teamNum == CsTeam.Terrorist ? "TT" : "CT";
if (player.PawnIsAlive && !kill)
{ {
CsTeam teamNum = (CsTeam)player.TeamNum == CsTeam.Terrorist ? CsTeam.CounterTerrorist : CsTeam.Terrorist; player.SwitchTeam(teamNum);
_teamName = teamNum == CsTeam.Terrorist ? "TT" : "CT"; }
if (player.PawnIsAlive && !command.GetArg(3).ToLower().Equals("-k")) else
{ {
player.SwitchTeam(teamNum); player.ChangeTeam(teamNum);
}
else
{
player.ChangeTeam(teamNum);
}
} }
} }
}
if (caller == null || caller != null && caller.UserId != null && !silentPlayers.Contains((ushort)caller.UserId)) if (caller == null || caller != null && caller.UserId != null && !silentPlayers.Contains((ushort)caller.UserId))
{ {
StringBuilder sb = new(_localizer!["sa_prefix"]); StringBuilder sb = new(_localizer!["sa_prefix"]);
sb.Append(_localizer["sa_admin_team_message", caller == null ? "Console" : caller.PlayerName, player.PlayerName, _teamName]); sb.Append(_localizer["sa_admin_team_message", caller == null ? "Console" : caller.PlayerName, player.PlayerName, teamName]);
Server.PrintToChatAll(sb.ToString()); Server.PrintToChatAll(sb.ToString());
} }
});
} }
[ConsoleCommand("css_vote")] [ConsoleCommand("css_vote")]

View File

@@ -6,6 +6,7 @@ namespace CS2_SimpleAdmin.Menus
{ {
public static class DurationMenu public static class DurationMenu
{ {
// TODO: Localize
public static Tuple<string, int>[] _durations = new[] public static Tuple<string, int>[] _durations = new[]
{ {
new Tuple<string, int>("1 minute", 1), new Tuple<string, int>("1 minute", 1),

View File

@@ -28,6 +28,7 @@ namespace CS2_SimpleAdmin.Menus
bool hasBan = AdminManager.PlayerHasPermissions(admin, "@css/ban"); bool hasBan = AdminManager.PlayerHasPermissions(admin, "@css/ban");
bool hasChat = AdminManager.PlayerHasPermissions(admin, "@css/chat"); bool hasChat = AdminManager.PlayerHasPermissions(admin, "@css/chat");
// TODO: Localize options
// options added in order // options added in order
options.Add(new ChatMenuOptionData("Who Is", () => PlayersMenu.OpenMenu(admin, "Who is", WhoIs))); options.Add(new ChatMenuOptionData("Who Is", () => PlayersMenu.OpenMenu(admin, "Who is", WhoIs)));
@@ -55,7 +56,7 @@ namespace CS2_SimpleAdmin.Menus
if (hasKick) if (hasKick)
{ {
options.Add(new ChatMenuOptionData("Force Team", () => PlayersMenu.OpenMenu(admin, "Force Team", ForceTeam))); options.Add(new ChatMenuOptionData("Force Team", () => PlayersMenu.OpenMenu(admin, "Force Team", ForceTeamMenu)));
} }
foreach (ChatMenuOptionData menuOptionData in options) foreach (ChatMenuOptionData menuOptionData in options)
@@ -137,6 +138,7 @@ namespace CS2_SimpleAdmin.Menus
private static void GagMenu(CCSPlayerController admin, CCSPlayerController player, int duration) private static void GagMenu(CCSPlayerController admin, CCSPlayerController player, int duration)
{ {
// TODO: Localize and make options in config?
CenterHtmlMenu menu = new CenterHtmlMenu($"Gag {player.PlayerName}"); CenterHtmlMenu menu = new CenterHtmlMenu($"Gag {player.PlayerName}");
List<string> options = new() List<string> options = new()
{ {
@@ -163,6 +165,7 @@ namespace CS2_SimpleAdmin.Menus
private static void MuteMenu(CCSPlayerController admin, CCSPlayerController player, int duration) private static void MuteMenu(CCSPlayerController admin, CCSPlayerController player, int duration)
{ {
// TODO: Localize and make options in config?
CenterHtmlMenu menu = new CenterHtmlMenu($"Mute {player.PlayerName}"); CenterHtmlMenu menu = new CenterHtmlMenu($"Mute {player.PlayerName}");
List<string> options = new() List<string> options = new()
{ {
@@ -189,7 +192,26 @@ namespace CS2_SimpleAdmin.Menus
CS2_SimpleAdmin.Instance.Mute(admin, player, duration, reason); CS2_SimpleAdmin.Instance.Mute(admin, player, duration, reason);
} }
private static void ForceTeam(CCSPlayerController admin, CCSPlayerController player) private static void ForceTeamMenu(CCSPlayerController admin, CCSPlayerController player)
{
// TODO: Localize
CenterHtmlMenu menu = new CenterHtmlMenu($"Force {player.PlayerName}'s Team");
List<ChatMenuOptionData> 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")));
foreach (ChatMenuOptionData menuOptionData in options)
{
string menuName = menuOptionData.name;
menu.AddMenuOption(menuName, (_, _) => { menuOptionData.action?.Invoke(); }, menuOptionData.disabled);
}
MenuManager.OpenCenterHtmlMenu(CS2_SimpleAdmin.Instance, admin, menu);
}
private static void ForceTeam(CCSPlayerController admin, CCSPlayerController player, string teamName)
{ {
// TODO: ForceTeam // TODO: ForceTeam
} }