diff --git a/Menus/FunActionsMenu.cs b/Menus/FunActionsMenu.cs new file mode 100644 index 0000000..27a4924 --- /dev/null +++ b/Menus/FunActionsMenu.cs @@ -0,0 +1,76 @@ +using CounterStrikeSharp.API.Core; +using CounterStrikeSharp.API.Modules.Admin; +using CounterStrikeSharp.API.Modules.Menu; + +namespace CS2_SimpleAdmin.Menus +{ + public static class FunActionsMenu + { + 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 = AdminMenu.CreateMenu("Fun Actions"); + List options = new(); + + // permissions + bool hasCheats = AdminManager.PlayerHasPermissions(admin, "@css/cheats"); + bool hasSlay = AdminManager.PlayerHasPermissions(admin, "@css/slay"); + + // TODO: Localize options + // options added in order + + if (hasCheats) + { + options.Add(new ChatMenuOptionData("God Mode", () => PlayersMenu.OpenMenu(admin, "God Mode", GodMode))); + options.Add(new ChatMenuOptionData("No Clip", () => PlayersMenu.OpenMenu(admin, "No Clip", NoClip))); + options.Add(new ChatMenuOptionData("Respawn", () => PlayersMenu.OpenMenu(admin, "Respawn", Respawn))); + options.Add(new ChatMenuOptionData("Give Weapon", () => PlayersMenu.OpenMenu(admin, "Give Weapon", GiveWeaponMenu))); + } + + if (hasSlay) + { + options.Add(new ChatMenuOptionData("Strip All Weapons", () => PlayersMenu.OpenMenu(admin, "Strip All Weapons", StripWeapons))); + options.Add(new ChatMenuOptionData("Freeze", () => PlayersMenu.OpenMenu(admin, "Freeze", Freeze))); + options.Add(new ChatMenuOptionData("HP", () => PlayersMenu.OpenMenu(admin, "HP", HP))); + options.Add(new ChatMenuOptionData("Speed", () => PlayersMenu.OpenMenu(admin, "Speed", Speed))); + } + + + options.Add(new ChatMenuOptionData("Restart Game", () => CS2_SimpleAdmin.Instance.RestartGame(admin))); + + foreach (ChatMenuOptionData menuOptionData in options) + { + string menuName = menuOptionData.name; + menu.AddMenuOption(menuName, (_, _) => { menuOptionData.action?.Invoke(); }, menuOptionData.disabled); + } + + AdminMenu.OpenMenu(admin, menu); + } + + + private static void GodMode(CCSPlayerController admin, CCSPlayerController player) { } + + private static void NoClip(CCSPlayerController admin, CCSPlayerController player) { } + + private static void Respawn(CCSPlayerController admin, CCSPlayerController player) { } + + private static void GiveWeaponMenu(CCSPlayerController admin, CCSPlayerController player) { } + + private static void StripWeapons(CCSPlayerController admin, CCSPlayerController player) { } + + private static void Freeze(CCSPlayerController admin, CCSPlayerController player) { } + + private static void HP(CCSPlayerController admin, CCSPlayerController player) { } + + private static void Speed(CCSPlayerController admin, CCSPlayerController player) { } + } +}