Files
CS2-SimpleAdmin/Menus/AdminMenu.cs
2024-02-12 16:41:00 +01:00

59 lines
1.7 KiB
C#

using CounterStrikeSharp.API.Core;
using CounterStrikeSharp.API.Modules.Admin;
using CounterStrikeSharp.API.Modules.Menu;
namespace CS2_SimpleAdmin.Menus
{
public static class AdminMenu
{
public static BaseMenu CreateMenu(string title)
{
return CS2_SimpleAdmin.Instance.Config.UseChatMenu ? new ChatMenu(title) : new CenterHtmlMenu(title);
}
public static void OpenMenu(CCSPlayerController player, BaseMenu menu)
{
if (menu is CenterHtmlMenu centerHtmlMenu)
{
MenuManager.OpenCenterHtmlMenu(CS2_SimpleAdmin.Instance, player, centerHtmlMenu);
}
else if (menu is ChatMenu chatMenu)
{
MenuManager.OpenChatMenu(player, chatMenu);
}
}
public static void OpenMenu(CCSPlayerController admin)
{
if (admin == null || admin.IsValid == false)
return;
if (AdminManager.PlayerHasPermissions(admin, "@css/generic") == false)
{
// TODO: Localize
admin.PrintToChat("[Simple Admin] You do not have permissions to use this command.");
return;
}
//bool xpRights = AdminManager.PlayerHasPermissions(admin, "@wcs/xp");
BaseMenu menu = AdminMenu.CreateMenu("Simple Admin");
ChatMenuOptionData[] options = new[]
{
new ChatMenuOptionData("Manage Players", () => ManagePlayersMenu.OpenMenu(admin)),
new ChatMenuOptionData("Manage Server", () => ManageServerMenu.OpenMenu(admin)),
new ChatMenuOptionData("Fun actions", null),
new ChatMenuOptionData("Manage Admins", null)
};
foreach (ChatMenuOptionData menuOptionData in options)
{
string menuName = menuOptionData.name;
menu.AddMenuOption(menuName, (_, _) => { menuOptionData.action?.Invoke(); }, menuOptionData.disabled);
}
OpenMenu(admin, menu);
}
}
}