mirror of
https://github.com/daffyyyy/CS2-SimpleAdmin.git
synced 2026-02-18 02:41:55 +00:00
- Ability to set the plugin mode (MultiServerMode) - When its `true`, then plugin respects penalties from all servers, when its `false` then plugin respects penalties only from this server - Renamed command `css_reladmin` to `css_reloadadmins` (It reload admins and groups) - Groups
64 lines
2.0 KiB
C#
64 lines
2.0 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, CS2_SimpleAdmin.Instance);
|
|
}
|
|
|
|
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;
|
|
}
|
|
|
|
BaseMenu menu = CreateMenu("Simple Admin");
|
|
List<ChatMenuOptionData> options =
|
|
[
|
|
new ChatMenuOptionData("Manage Players", () => ManagePlayersMenu.OpenMenu(admin)),
|
|
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)
|
|
{
|
|
options.Add(new ChatMenuOptionData("Custom Commands", () => CustomCommandsMenu.OpenMenu(admin)));
|
|
}
|
|
|
|
if (AdminManager.PlayerHasPermissions(admin, "@css/root"))
|
|
options.Add(new ChatMenuOptionData("Manage Admins", () => ManageAdminsMenu.OpenMenu(admin)));
|
|
|
|
foreach (ChatMenuOptionData menuOptionData in options)
|
|
{
|
|
string menuName = menuOptionData.name;
|
|
menu.AddMenuOption(menuName, (_, _) => { menuOptionData.action?.Invoke(); }, menuOptionData.disabled);
|
|
}
|
|
|
|
OpenMenu(admin, menu);
|
|
}
|
|
}
|
|
} |