Added alive player filter to PlayersMenu

This commit is contained in:
Valentin Barat
2024-02-12 22:09:52 +01:00
parent 9a7a143478
commit 3b6b7fbcab
2 changed files with 18 additions and 12 deletions

View File

@@ -6,7 +6,12 @@ namespace CS2_SimpleAdmin.Menus
{
public static class PlayersMenu
{
public static void OpenMenu(CCSPlayerController admin, string menuName, Action<CCSPlayerController, CCSPlayerController> onSelectAction)
public static void OpenAliveMenu(CCSPlayerController admin, string menuName, Action<CCSPlayerController, CCSPlayerController> onSelectAction, Func<CCSPlayerController, bool> enableFilter = null)
{
OpenMenu(admin, menuName, onSelectAction, p => p.PawnIsAlive);
}
public static void OpenMenu(CCSPlayerController admin, string menuName, Action<CCSPlayerController, CCSPlayerController> onSelectAction, Func<CCSPlayerController, bool> enableFilter = null)
{
BaseMenu menu = AdminMenu.CreateMenu(menuName);
@@ -14,7 +19,10 @@ namespace CS2_SimpleAdmin.Menus
foreach (CCSPlayerController player in players)
{
string optionName = player.PlayerName;
menu.AddMenuOption(optionName, (_, _) => { onSelectAction?.Invoke(admin, player); }, admin.CanTarget(player) == false);
bool enabled = admin.CanTarget(player);
if (enableFilter != null)
enabled &= enableFilter(player);
menu.AddMenuOption(optionName, (_, _) => { onSelectAction?.Invoke(admin, player); }, enabled == false);
}
AdminMenu.OpenMenu(admin, menu);