Merge branch 'daffyyyy:main' into main

This commit is contained in:
Dliix66
2024-04-25 00:26:01 +02:00
committed by GitHub
41 changed files with 1492 additions and 842 deletions

View File

@@ -8,7 +8,7 @@ namespace CS2_SimpleAdmin.Menus
{
public static BaseMenu CreateMenu(string title)
{
return CS2_SimpleAdmin.Instance.Config.UseChatMenu ? new ChatMenu(title) : new CenterHtmlMenu(title);
return CS2_SimpleAdmin.Instance.Config.UseChatMenu ? new ChatMenu(title) : new CenterHtmlMenu(title, CS2_SimpleAdmin.Instance);
}
public static void OpenMenu(CCSPlayerController player, BaseMenu menu)
@@ -44,7 +44,7 @@ namespace CS2_SimpleAdmin.Menus
new ChatMenuOptionData("Manage Server", () => ManageServerMenu.OpenMenu(admin)),
new ChatMenuOptionData("Fun actions", () => FunActionsMenu.OpenMenu(admin)),
};
List<CustomServerCommandData> customCommands = CS2_SimpleAdmin.Instance.Config.CustomServerCommands;
if (customCommands.Count > 0)
{

View File

@@ -69,7 +69,7 @@ namespace CS2_SimpleAdmin.Menus
private static void AddAdmin(CCSPlayerController admin, CCSPlayerController player, string flag)
{
// TODO: Change default immunity?
CS2_SimpleAdmin.Instance.AddAdmin(admin, player.SteamID.ToString(), player.PlayerName, flag, 10);
CS2_SimpleAdmin.AddAdmin(admin, player.SteamID.ToString(), player.PlayerName, flag, 10);
}
private static void RemoveAdmin(CCSPlayerController admin, CCSPlayerController player)

View File

@@ -20,7 +20,7 @@ namespace CS2_SimpleAdmin.Menus
}
BaseMenu menu = AdminMenu.CreateMenu("Manage Players");
List<ChatMenuOptionData> options = new();
List<ChatMenuOptionData> options = [];
// permissions
bool hasSlay = AdminManager.PlayerHasPermissions(admin, "@css/slay");
@@ -71,15 +71,16 @@ namespace CS2_SimpleAdmin.Menus
private static void SlapMenu(CCSPlayerController admin, CCSPlayerController player)
{
BaseMenu menu = AdminMenu.CreateMenu($"Slap: {player.PlayerName}");
List<ChatMenuOptionData> options = new();
// options added in order
options.Add(new ChatMenuOptionData("0 hp", () => ApplySlapAndKeepMenu(admin, player, 0)));
options.Add(new ChatMenuOptionData("1 hp", () => ApplySlapAndKeepMenu(admin, player, 1)));
options.Add(new ChatMenuOptionData("5 hp", () => ApplySlapAndKeepMenu(admin, player, 5)));
options.Add(new ChatMenuOptionData("10 hp", () => ApplySlapAndKeepMenu(admin, player, 10)));
options.Add(new ChatMenuOptionData("50 hp", () => ApplySlapAndKeepMenu(admin, player, 50)));
options.Add(new ChatMenuOptionData("100 hp", () => ApplySlapAndKeepMenu(admin, player, 100)));
List<ChatMenuOptionData> options =
[
// options added in order
new ChatMenuOptionData("0 hp", () => ApplySlapAndKeepMenu(admin, player, 0)),
new ChatMenuOptionData("1 hp", () => ApplySlapAndKeepMenu(admin, player, 1)),
new ChatMenuOptionData("5 hp", () => ApplySlapAndKeepMenu(admin, player, 5)),
new ChatMenuOptionData("10 hp", () => ApplySlapAndKeepMenu(admin, player, 10)),
new ChatMenuOptionData("50 hp", () => ApplySlapAndKeepMenu(admin, player, 50)),
new ChatMenuOptionData("100 hp", () => ApplySlapAndKeepMenu(admin, player, 100)),
];
foreach (ChatMenuOptionData menuOptionData in options)
{
@@ -92,29 +93,37 @@ namespace CS2_SimpleAdmin.Menus
private static void ApplySlapAndKeepMenu(CCSPlayerController admin, CCSPlayerController player, int damage)
{
CS2_SimpleAdmin.Instance.Slap(admin, player, damage);
SlapMenu(admin, player);
if (player is not null && player.IsValid)
{
CS2_SimpleAdmin.Instance.Slap(admin, player, damage);
SlapMenu(admin, player);
}
}
private static void Slay(CCSPlayerController admin, CCSPlayerController player)
{
CS2_SimpleAdmin.Instance.Slay(admin, player);
if (player is not null && player.IsValid)
CS2_SimpleAdmin.Instance.Slay(admin, player);
}
private static void KickMenu(CCSPlayerController admin, CCSPlayerController player)
{
BaseMenu menu = AdminMenu.CreateMenu($"Kick: {player.PlayerName}");
List<string> options = new()
{
List<string> options =
[
"Voice Abuse",
"Chat Abuse",
"Admin disrespect",
"Other"
};
];
foreach (string option in options)
{
menu.AddMenuOption(option, (_, _) => { Kick(admin, player, option); });
menu.AddMenuOption(option, (_, _) =>
{
if (player is not null && player.IsValid)
Kick(admin, player, option);
});
}
AdminMenu.OpenMenu(admin, menu);
@@ -122,24 +131,29 @@ namespace CS2_SimpleAdmin.Menus
private static void Kick(CCSPlayerController admin, CCSPlayerController player, string reason)
{
CS2_SimpleAdmin.Instance.Kick(admin, player, reason);
if (player is not null && player.IsValid)
CS2_SimpleAdmin.Instance.Kick(admin, player, reason);
}
private static void BanMenu(CCSPlayerController admin, CCSPlayerController player, int duration)
{
BaseMenu menu = AdminMenu.CreateMenu($"Ban: {player.PlayerName}");
List<string> options = new()
{
List<string> options =
[
"Hacking",
"Voice Abuse",
"Chat Abuse",
"Admin disrespect",
"Other"
};
];
foreach (string option in options)
{
menu.AddMenuOption(option, (_, _) => { Ban(admin, player, duration, option); });
menu.AddMenuOption(option, (_, _) =>
{
if (player is not null && player.IsValid)
Ban(admin, player, duration, option);
});
}
AdminMenu.OpenMenu(admin, menu);
@@ -147,26 +161,31 @@ namespace CS2_SimpleAdmin.Menus
private static void Ban(CCSPlayerController admin, CCSPlayerController player, int duration, string reason)
{
CS2_SimpleAdmin.Instance.Ban(admin, player, duration, reason);
if (player is not null && player.IsValid)
CS2_SimpleAdmin.Instance.Ban(admin, player, duration, reason);
}
private static void GagMenu(CCSPlayerController admin, CCSPlayerController player, int duration)
{
// TODO: Localize and make options in config?
BaseMenu menu = AdminMenu.CreateMenu($"Gag: {player.PlayerName}");
List<string> options = new()
{
List<string> options =
[
"Advertising",
"Spamming",
"Spectator camera abuse",
"Hate",
"Admin disrespect",
"Other"
};
];
foreach (string option in options)
{
menu.AddMenuOption(option, (_, _) => { Gag(admin, player, duration, option); });
menu.AddMenuOption(option, (_, _) =>
{
if (player is not null && player.IsValid)
Gag(admin, player, duration, option);
});
}
AdminMenu.OpenMenu(admin, menu);
@@ -174,15 +193,16 @@ namespace CS2_SimpleAdmin.Menus
private static void Gag(CCSPlayerController admin, CCSPlayerController player, int duration, string reason)
{
CS2_SimpleAdmin.Instance.Gag(admin, player, duration, reason);
if (player is not null && player.IsValid)
CS2_SimpleAdmin.Instance.Gag(admin, player, duration, reason);
}
private static void MuteMenu(CCSPlayerController admin, CCSPlayerController player, int duration)
{
// TODO: Localize and make options in config?
BaseMenu menu = AdminMenu.CreateMenu($"Mute: {player.PlayerName}");
List<string> options = new()
{
List<string> options =
[
"Shouting",
"Playing music",
"Advertising",
@@ -191,11 +211,15 @@ namespace CS2_SimpleAdmin.Menus
"Hate",
"Admin disrespect",
"Other"
};
];
foreach (string option in options)
{
menu.AddMenuOption(option, (_, _) => { Mute(admin, player, duration, option); });
menu.AddMenuOption(option, (_, _) =>
{
if (player is not null && player.IsValid)
Mute(admin, player, duration, option);
});
}
AdminMenu.OpenMenu(admin, menu);
@@ -203,15 +227,16 @@ namespace CS2_SimpleAdmin.Menus
private static void Mute(CCSPlayerController admin, CCSPlayerController player, int duration, string reason)
{
CS2_SimpleAdmin.Instance.Mute(admin, player, duration, reason);
if (player is not null && player.IsValid)
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?
BaseMenu menu = AdminMenu.CreateMenu($"Silence: {player.PlayerName}");
List<string> options = new()
{
List<string> options =
[
"Shouting",
"Playing music",
"Advertising",
@@ -220,11 +245,15 @@ namespace CS2_SimpleAdmin.Menus
"Hate",
"Admin disrespect",
"Other"
};
];
foreach (string option in options)
{
menu.AddMenuOption(option, (_, _) => { Silence(admin, player, duration, option); });
menu.AddMenuOption(option, (_, _) =>
{
if (player is not null && player.IsValid)
Silence(admin, player, duration, option);
});
}
AdminMenu.OpenMenu(admin, menu);
@@ -232,18 +261,21 @@ namespace CS2_SimpleAdmin.Menus
private static void Silence(CCSPlayerController admin, CCSPlayerController player, int duration, string reason)
{
CS2_SimpleAdmin.Instance.Silence(admin, player, duration, reason);
if (player is not null && player.IsValid)
CS2_SimpleAdmin.Instance.Silence(admin, player, duration, reason);
}
private static void ForceTeamMenu(CCSPlayerController admin, CCSPlayerController player)
{
// TODO: Localize
BaseMenu menu = AdminMenu.CreateMenu($"Force {player.PlayerName}'s Team");
List<ChatMenuOptionData> options = new();
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)));
List<ChatMenuOptionData> options =
[
new ChatMenuOptionData("CT", () => ForceTeam(admin, player, "ct", CsTeam.CounterTerrorist)),
new ChatMenuOptionData("T", () => ForceTeam(admin, player, "t", CsTeam.Terrorist)),
new ChatMenuOptionData("Swap", () => ForceTeam(admin, player, "swap", CsTeam.Spectator)),
new ChatMenuOptionData("Spectator", () => ForceTeam(admin, player, "spec", CsTeam.Spectator)),
];
foreach (ChatMenuOptionData menuOptionData in options)
{
@@ -256,7 +288,8 @@ namespace CS2_SimpleAdmin.Menus
private static void ForceTeam(CCSPlayerController admin, CCSPlayerController player, string teamName, CsTeam teamNum)
{
CS2_SimpleAdmin.Instance.ChangeTeam(admin, player, teamName, teamNum, true);
if (player is not null && player.IsValid)
CS2_SimpleAdmin.Instance.ChangeTeam(admin, player, teamName, teamNum, true);
}
}
}

View File

@@ -1,7 +1,7 @@
using System.Web;
using CounterStrikeSharp.API.Core;
using CounterStrikeSharp.API.Modules.Admin;
using CounterStrikeSharp.API.Modules.Menu;
using System.Web;
namespace CS2_SimpleAdmin.Menus
{
@@ -32,9 +32,13 @@ namespace CS2_SimpleAdmin.Menus
BaseMenu menu = AdminMenu.CreateMenu(menuName);
IEnumerable<CCSPlayerController> players = Helper.GetValidPlayersWithBots();
string playerName = string.Empty;
foreach (CCSPlayerController player in players)
{
string optionName = HttpUtility.HtmlEncode(player.PlayerName);
playerName = player.PlayerName.Length > 26 ? player.PlayerName[..26] : player.PlayerName;
string optionName = HttpUtility.HtmlEncode(playerName);
if (enableFilter != null && enableFilter(player) == false)
continue;