mirror of
https://github.com/daffyyyy/CS2-SimpleAdmin.git
synced 2026-02-17 18:39:07 +00:00
32 lines
1.2 KiB
C#
32 lines
1.2 KiB
C#
using CounterStrikeSharp.API;
|
|
using CounterStrikeSharp.API.Core;
|
|
using CounterStrikeSharp.API.Modules.Menu;
|
|
|
|
namespace CS2_SimpleAdmin.Menus
|
|
{
|
|
public static class PlayersMenu
|
|
{
|
|
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);
|
|
|
|
IEnumerable<CCSPlayerController> players = Utilities.GetPlayers().Where(p => p.Connected == PlayerConnectedState.PlayerConnected);
|
|
foreach (CCSPlayerController player in players)
|
|
{
|
|
string optionName = player.PlayerName;
|
|
bool enabled = admin.CanTarget(player);
|
|
if (enableFilter != null)
|
|
enabled &= enableFilter(player);
|
|
menu.AddMenuOption(optionName, (_, _) => { onSelectAction?.Invoke(admin, player); }, enabled == false);
|
|
}
|
|
|
|
AdminMenu.OpenMenu(admin, menu);
|
|
}
|
|
}
|
|
}
|