diff --git a/Config.cs b/Config.cs index 51a699e..9944c76 100644 --- a/Config.cs +++ b/Config.cs @@ -30,6 +30,9 @@ namespace CS2_SimpleAdmin [JsonPropertyName("DatabaseName")] public string DatabaseName { get; set; } = ""; + [JsonPropertyName("UseChatMenu")] + public bool UseChatMenu { get; set; } = false; + [JsonPropertyName("KickTime")] public int KickTime { get; set; } = 5; diff --git a/Menus/AdminMenu.cs b/Menus/AdminMenu.cs index 1f4d3e0..9240126 100644 --- a/Menus/AdminMenu.cs +++ b/Menus/AdminMenu.cs @@ -6,6 +6,23 @@ 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) @@ -20,7 +37,7 @@ namespace CS2_SimpleAdmin.Menus //bool xpRights = AdminManager.PlayerHasPermissions(admin, "@wcs/xp"); - CenterHtmlMenu menu = new CenterHtmlMenu("Simple Admin"); + BaseMenu menu = AdminMenu.CreateMenu("Simple Admin"); ChatMenuOptionData[] options = new[] { new ChatMenuOptionData("Manage Players", () => ManagePlayersMenu.OpenMenu(admin)), @@ -35,7 +52,7 @@ namespace CS2_SimpleAdmin.Menus menu.AddMenuOption(menuName, (_, _) => { menuOptionData.action?.Invoke(); }, menuOptionData.disabled); } - MenuManager.OpenCenterHtmlMenu(CS2_SimpleAdmin.Instance, admin, menu); + OpenMenu(admin, menu); } } } diff --git a/Menus/DurationMenu.cs b/Menus/DurationMenu.cs index ead4bd0..294643a 100644 --- a/Menus/DurationMenu.cs +++ b/Menus/DurationMenu.cs @@ -19,7 +19,7 @@ namespace CS2_SimpleAdmin.Menus public static void OpenMenu(CCSPlayerController admin, string menuName, CCSPlayerController player, Action onSelectAction) { - CenterHtmlMenu menu = new CenterHtmlMenu(menuName); + BaseMenu menu = AdminMenu.CreateMenu(menuName); foreach (Tuple duration in _durations) { @@ -27,7 +27,7 @@ namespace CS2_SimpleAdmin.Menus menu.AddMenuOption(optionName, (_, _) => { onSelectAction?.Invoke(admin, player, duration.Item2); }); } - MenuManager.OpenCenterHtmlMenu(CS2_SimpleAdmin.Instance, admin, menu); + AdminMenu.OpenMenu(admin, menu); } } } diff --git a/Menus/ManagePlayersMenu.cs b/Menus/ManagePlayersMenu.cs index 097fa21..1b27d19 100644 --- a/Menus/ManagePlayersMenu.cs +++ b/Menus/ManagePlayersMenu.cs @@ -19,7 +19,7 @@ namespace CS2_SimpleAdmin.Menus return; } - CenterHtmlMenu menu = new CenterHtmlMenu("Manage Players"); + BaseMenu menu = AdminMenu.CreateMenu("Manage Players"); List options = new(); // permissions @@ -65,12 +65,12 @@ namespace CS2_SimpleAdmin.Menus menu.AddMenuOption(menuName, (_, _) => { menuOptionData.action?.Invoke(); }, menuOptionData.disabled); } - MenuManager.OpenCenterHtmlMenu(CS2_SimpleAdmin.Instance, admin, menu); + AdminMenu.OpenMenu(admin, menu); } private static void SlapMenu(CCSPlayerController admin, CCSPlayerController player) { - CenterHtmlMenu menu = new CenterHtmlMenu($"Slap {player.PlayerName}"); + BaseMenu menu = AdminMenu.CreateMenu($"Slap {player.PlayerName}"); List options = new(); // options added in order @@ -87,7 +87,7 @@ namespace CS2_SimpleAdmin.Menus menu.AddMenuOption(menuName, (_, _) => { menuOptionData.action?.Invoke(); }, menuOptionData.disabled); } - MenuManager.OpenCenterHtmlMenu(CS2_SimpleAdmin.Instance, admin, menu); + AdminMenu.OpenMenu(admin, menu); } private static void ApplySlapAndKeepMenu(CCSPlayerController admin, CCSPlayerController player, int damage) @@ -108,7 +108,7 @@ namespace CS2_SimpleAdmin.Menus private static void BanMenu(CCSPlayerController admin, CCSPlayerController player, int duration) { - CenterHtmlMenu menu = new CenterHtmlMenu($"Ban {player.PlayerName}"); + BaseMenu menu = AdminMenu.CreateMenu($"Ban {player.PlayerName}"); List options = new() { "Hacking", @@ -123,7 +123,7 @@ namespace CS2_SimpleAdmin.Menus menu.AddMenuOption(option, (_, _) => { Ban(admin, player, duration, option); }); } - MenuManager.OpenCenterHtmlMenu(CS2_SimpleAdmin.Instance, admin, menu); + AdminMenu.OpenMenu(admin, menu); } private static void Ban(CCSPlayerController admin, CCSPlayerController player, int duration, string reason) @@ -134,7 +134,7 @@ namespace CS2_SimpleAdmin.Menus private static void GagMenu(CCSPlayerController admin, CCSPlayerController player, int duration) { // TODO: Localize and make options in config? - CenterHtmlMenu menu = new CenterHtmlMenu($"Gag {player.PlayerName}"); + BaseMenu menu = AdminMenu.CreateMenu($"Gag {player.PlayerName}"); List options = new() { "Advertising", @@ -150,7 +150,7 @@ namespace CS2_SimpleAdmin.Menus menu.AddMenuOption(option, (_, _) => { Gag(admin, player, duration, option); }); } - MenuManager.OpenCenterHtmlMenu(CS2_SimpleAdmin.Instance, admin, menu); + AdminMenu.OpenMenu(admin, menu); } private static void Gag(CCSPlayerController admin, CCSPlayerController player, int duration, string reason) @@ -161,7 +161,7 @@ namespace CS2_SimpleAdmin.Menus private static void MuteMenu(CCSPlayerController admin, CCSPlayerController player, int duration) { // TODO: Localize and make options in config? - CenterHtmlMenu menu = new CenterHtmlMenu($"Mute {player.PlayerName}"); + BaseMenu menu = AdminMenu.CreateMenu($"Mute {player.PlayerName}"); List options = new() { "Shouting", @@ -179,7 +179,7 @@ namespace CS2_SimpleAdmin.Menus menu.AddMenuOption(option, (_, _) => { Mute(admin, player, duration, option); }); } - MenuManager.OpenCenterHtmlMenu(CS2_SimpleAdmin.Instance, admin, menu); + AdminMenu.OpenMenu(admin, menu); } private static void Mute(CCSPlayerController admin, CCSPlayerController player, int duration, string reason) @@ -190,7 +190,7 @@ namespace CS2_SimpleAdmin.Menus private static void SilenceMenu(CCSPlayerController admin, CCSPlayerController player, int duration) { // TODO: Localize and make options in config? - CenterHtmlMenu menu = new CenterHtmlMenu($"Silence {player.PlayerName}"); + BaseMenu menu = AdminMenu.CreateMenu($"Silence {player.PlayerName}"); List options = new() { "Shouting", @@ -208,7 +208,7 @@ namespace CS2_SimpleAdmin.Menus menu.AddMenuOption(option, (_, _) => { Silence(admin, player, duration, option); }); } - MenuManager.OpenCenterHtmlMenu(CS2_SimpleAdmin.Instance, admin, menu); + AdminMenu.OpenMenu(admin, menu); } private static void Silence(CCSPlayerController admin, CCSPlayerController player, int duration, string reason) @@ -219,7 +219,7 @@ namespace CS2_SimpleAdmin.Menus private static void ForceTeamMenu(CCSPlayerController admin, CCSPlayerController player) { // TODO: Localize - CenterHtmlMenu menu = new CenterHtmlMenu($"Force {player.PlayerName}'s Team"); + BaseMenu menu = AdminMenu.CreateMenu($"Force {player.PlayerName}'s Team"); List options = new(); options.Add(new ChatMenuOptionData("CT", () => ForceTeam(admin, player, "ct"))); options.Add(new ChatMenuOptionData("T", () => ForceTeam(admin, player, "t"))); @@ -232,7 +232,7 @@ namespace CS2_SimpleAdmin.Menus menu.AddMenuOption(menuName, (_, _) => { menuOptionData.action?.Invoke(); }, menuOptionData.disabled); } - MenuManager.OpenCenterHtmlMenu(CS2_SimpleAdmin.Instance, admin, menu); + AdminMenu.OpenMenu(admin, menu); } private static void ForceTeam(CCSPlayerController admin, CCSPlayerController player, string teamName) diff --git a/Menus/ManageServerMenu.cs b/Menus/ManageServerMenu.cs index 2a7b777..3ed0645 100644 --- a/Menus/ManageServerMenu.cs +++ b/Menus/ManageServerMenu.cs @@ -19,7 +19,7 @@ namespace CS2_SimpleAdmin.Menus return; } - CenterHtmlMenu menu = new CenterHtmlMenu("Manage Server"); + BaseMenu menu = AdminMenu.CreateMenu("Manage Server"); List options = new(); // permissions @@ -41,12 +41,12 @@ namespace CS2_SimpleAdmin.Menus menu.AddMenuOption(menuName, (_, _) => { menuOptionData.action?.Invoke(); }, menuOptionData.disabled); } - MenuManager.OpenCenterHtmlMenu(CS2_SimpleAdmin.Instance, admin, menu); + AdminMenu.OpenMenu(admin, menu); } public static void ChangeMapMenu(CCSPlayerController admin) { - CenterHtmlMenu menu = new CenterHtmlMenu($"Change Map"); + BaseMenu menu = AdminMenu.CreateMenu($"Change Map"); List options = new(); List maps = CS2_SimpleAdmin.Instance.Config.DefaultMaps;//Server.GetMapList(); @@ -67,7 +67,7 @@ namespace CS2_SimpleAdmin.Menus menu.AddMenuOption(menuName, (_, _) => { menuOptionData.action?.Invoke(); }, menuOptionData.disabled); } - MenuManager.OpenCenterHtmlMenu(CS2_SimpleAdmin.Instance, admin, menu); + AdminMenu.OpenMenu(admin, menu); } private static void ExecuteChangeMap(CCSPlayerController admin, string mapName, bool workshop) diff --git a/Menus/PlayersMenu.cs b/Menus/PlayersMenu.cs index c2cf318..4ed56f5 100644 --- a/Menus/PlayersMenu.cs +++ b/Menus/PlayersMenu.cs @@ -8,7 +8,7 @@ namespace CS2_SimpleAdmin.Menus { public static void OpenMenu(CCSPlayerController admin, string menuName, Action onSelectAction) { - CenterHtmlMenu menu = new CenterHtmlMenu(menuName); + BaseMenu menu = AdminMenu.CreateMenu(menuName); IEnumerable players = Utilities.GetPlayers().Where(p => p.Connected == PlayerConnectedState.PlayerConnected); foreach (CCSPlayerController player in players) @@ -17,7 +17,7 @@ namespace CS2_SimpleAdmin.Menus menu.AddMenuOption(optionName, (_, _) => { onSelectAction?.Invoke(admin, player); }, admin.CanTarget(player) == false); } - MenuManager.OpenCenterHtmlMenu(CS2_SimpleAdmin.Instance, admin, menu); + AdminMenu.OpenMenu(admin, menu); } } }