Added menu type config

This commit is contained in:
Valentin Barat
2024-02-12 16:41:00 +01:00
parent c2f7b3be08
commit 0a2d19accd
6 changed files with 44 additions and 24 deletions

View File

@@ -30,6 +30,9 @@ namespace CS2_SimpleAdmin
[JsonPropertyName("DatabaseName")] [JsonPropertyName("DatabaseName")]
public string DatabaseName { get; set; } = ""; public string DatabaseName { get; set; } = "";
[JsonPropertyName("UseChatMenu")]
public bool UseChatMenu { get; set; } = false;
[JsonPropertyName("KickTime")] [JsonPropertyName("KickTime")]
public int KickTime { get; set; } = 5; public int KickTime { get; set; } = 5;

View File

@@ -6,6 +6,23 @@ namespace CS2_SimpleAdmin.Menus
{ {
public static class AdminMenu 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) public static void OpenMenu(CCSPlayerController admin)
{ {
if (admin == null || admin.IsValid == false) if (admin == null || admin.IsValid == false)
@@ -20,7 +37,7 @@ namespace CS2_SimpleAdmin.Menus
//bool xpRights = AdminManager.PlayerHasPermissions(admin, "@wcs/xp"); //bool xpRights = AdminManager.PlayerHasPermissions(admin, "@wcs/xp");
CenterHtmlMenu menu = new CenterHtmlMenu("Simple Admin"); BaseMenu menu = AdminMenu.CreateMenu("Simple Admin");
ChatMenuOptionData[] options = new[] ChatMenuOptionData[] options = new[]
{ {
new ChatMenuOptionData("Manage Players", () => ManagePlayersMenu.OpenMenu(admin)), new ChatMenuOptionData("Manage Players", () => ManagePlayersMenu.OpenMenu(admin)),
@@ -35,7 +52,7 @@ namespace CS2_SimpleAdmin.Menus
menu.AddMenuOption(menuName, (_, _) => { menuOptionData.action?.Invoke(); }, menuOptionData.disabled); menu.AddMenuOption(menuName, (_, _) => { menuOptionData.action?.Invoke(); }, menuOptionData.disabled);
} }
MenuManager.OpenCenterHtmlMenu(CS2_SimpleAdmin.Instance, admin, menu); OpenMenu(admin, menu);
} }
} }
} }

View File

@@ -19,7 +19,7 @@ namespace CS2_SimpleAdmin.Menus
public static void OpenMenu(CCSPlayerController admin, string menuName, CCSPlayerController player, Action<CCSPlayerController, CCSPlayerController, int> onSelectAction) public static void OpenMenu(CCSPlayerController admin, string menuName, CCSPlayerController player, Action<CCSPlayerController, CCSPlayerController, int> onSelectAction)
{ {
CenterHtmlMenu menu = new CenterHtmlMenu(menuName); BaseMenu menu = AdminMenu.CreateMenu(menuName);
foreach (Tuple<string, int> duration in _durations) foreach (Tuple<string, int> duration in _durations)
{ {
@@ -27,7 +27,7 @@ namespace CS2_SimpleAdmin.Menus
menu.AddMenuOption(optionName, (_, _) => { onSelectAction?.Invoke(admin, player, duration.Item2); }); menu.AddMenuOption(optionName, (_, _) => { onSelectAction?.Invoke(admin, player, duration.Item2); });
} }
MenuManager.OpenCenterHtmlMenu(CS2_SimpleAdmin.Instance, admin, menu); AdminMenu.OpenMenu(admin, menu);
} }
} }
} }

View File

@@ -19,7 +19,7 @@ namespace CS2_SimpleAdmin.Menus
return; return;
} }
CenterHtmlMenu menu = new CenterHtmlMenu("Manage Players"); BaseMenu menu = AdminMenu.CreateMenu("Manage Players");
List<ChatMenuOptionData> options = new(); List<ChatMenuOptionData> options = new();
// permissions // permissions
@@ -65,12 +65,12 @@ namespace CS2_SimpleAdmin.Menus
menu.AddMenuOption(menuName, (_, _) => { menuOptionData.action?.Invoke(); }, menuOptionData.disabled); 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) private static void SlapMenu(CCSPlayerController admin, CCSPlayerController player)
{ {
CenterHtmlMenu menu = new CenterHtmlMenu($"Slap {player.PlayerName}"); BaseMenu menu = AdminMenu.CreateMenu($"Slap {player.PlayerName}");
List<ChatMenuOptionData> options = new(); List<ChatMenuOptionData> options = new();
// options added in order // options added in order
@@ -87,7 +87,7 @@ namespace CS2_SimpleAdmin.Menus
menu.AddMenuOption(menuName, (_, _) => { menuOptionData.action?.Invoke(); }, menuOptionData.disabled); 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) 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) 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<string> options = new() List<string> options = new()
{ {
"Hacking", "Hacking",
@@ -123,7 +123,7 @@ namespace CS2_SimpleAdmin.Menus
menu.AddMenuOption(option, (_, _) => { Ban(admin, player, duration, option); }); 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) 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) private static void GagMenu(CCSPlayerController admin, CCSPlayerController player, int duration)
{ {
// TODO: Localize and make options in config? // TODO: Localize and make options in config?
CenterHtmlMenu menu = new CenterHtmlMenu($"Gag {player.PlayerName}"); BaseMenu menu = AdminMenu.CreateMenu($"Gag {player.PlayerName}");
List<string> options = new() List<string> options = new()
{ {
"Advertising", "Advertising",
@@ -150,7 +150,7 @@ namespace CS2_SimpleAdmin.Menus
menu.AddMenuOption(option, (_, _) => { Gag(admin, player, duration, option); }); 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) 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) private static void MuteMenu(CCSPlayerController admin, CCSPlayerController player, int duration)
{ {
// TODO: Localize and make options in config? // TODO: Localize and make options in config?
CenterHtmlMenu menu = new CenterHtmlMenu($"Mute {player.PlayerName}"); BaseMenu menu = AdminMenu.CreateMenu($"Mute {player.PlayerName}");
List<string> options = new() List<string> options = new()
{ {
"Shouting", "Shouting",
@@ -179,7 +179,7 @@ namespace CS2_SimpleAdmin.Menus
menu.AddMenuOption(option, (_, _) => { Mute(admin, player, duration, option); }); 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) 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) private static void SilenceMenu(CCSPlayerController admin, CCSPlayerController player, int duration)
{ {
// TODO: Localize and make options in config? // TODO: Localize and make options in config?
CenterHtmlMenu menu = new CenterHtmlMenu($"Silence {player.PlayerName}"); BaseMenu menu = AdminMenu.CreateMenu($"Silence {player.PlayerName}");
List<string> options = new() List<string> options = new()
{ {
"Shouting", "Shouting",
@@ -208,7 +208,7 @@ namespace CS2_SimpleAdmin.Menus
menu.AddMenuOption(option, (_, _) => { Silence(admin, player, duration, option); }); 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) 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) private static void ForceTeamMenu(CCSPlayerController admin, CCSPlayerController player)
{ {
// TODO: Localize // TODO: Localize
CenterHtmlMenu menu = new CenterHtmlMenu($"Force {player.PlayerName}'s Team"); BaseMenu menu = AdminMenu.CreateMenu($"Force {player.PlayerName}'s Team");
List<ChatMenuOptionData> options = new(); List<ChatMenuOptionData> options = new();
options.Add(new ChatMenuOptionData("CT", () => ForceTeam(admin, player, "ct"))); options.Add(new ChatMenuOptionData("CT", () => ForceTeam(admin, player, "ct")));
options.Add(new ChatMenuOptionData("T", () => ForceTeam(admin, player, "t"))); 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); 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) private static void ForceTeam(CCSPlayerController admin, CCSPlayerController player, string teamName)

View File

@@ -19,7 +19,7 @@ namespace CS2_SimpleAdmin.Menus
return; return;
} }
CenterHtmlMenu menu = new CenterHtmlMenu("Manage Server"); BaseMenu menu = AdminMenu.CreateMenu("Manage Server");
List<ChatMenuOptionData> options = new(); List<ChatMenuOptionData> options = new();
// permissions // permissions
@@ -41,12 +41,12 @@ namespace CS2_SimpleAdmin.Menus
menu.AddMenuOption(menuName, (_, _) => { menuOptionData.action?.Invoke(); }, menuOptionData.disabled); 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) public static void ChangeMapMenu(CCSPlayerController admin)
{ {
CenterHtmlMenu menu = new CenterHtmlMenu($"Change Map"); BaseMenu menu = AdminMenu.CreateMenu($"Change Map");
List<ChatMenuOptionData> options = new(); List<ChatMenuOptionData> options = new();
List<string> maps = CS2_SimpleAdmin.Instance.Config.DefaultMaps;//Server.GetMapList(); List<string> maps = CS2_SimpleAdmin.Instance.Config.DefaultMaps;//Server.GetMapList();
@@ -67,7 +67,7 @@ namespace CS2_SimpleAdmin.Menus
menu.AddMenuOption(menuName, (_, _) => { menuOptionData.action?.Invoke(); }, menuOptionData.disabled); 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) private static void ExecuteChangeMap(CCSPlayerController admin, string mapName, bool workshop)

View File

@@ -8,7 +8,7 @@ namespace CS2_SimpleAdmin.Menus
{ {
public static void OpenMenu(CCSPlayerController admin, string menuName, Action<CCSPlayerController, CCSPlayerController> onSelectAction) public static void OpenMenu(CCSPlayerController admin, string menuName, Action<CCSPlayerController, CCSPlayerController> onSelectAction)
{ {
CenterHtmlMenu menu = new CenterHtmlMenu(menuName); BaseMenu menu = AdminMenu.CreateMenu(menuName);
IEnumerable<CCSPlayerController> players = Utilities.GetPlayers().Where(p => p.Connected == PlayerConnectedState.PlayerConnected); IEnumerable<CCSPlayerController> players = Utilities.GetPlayers().Where(p => p.Connected == PlayerConnectedState.PlayerConnected);
foreach (CCSPlayerController player in players) foreach (CCSPlayerController player in players)
@@ -17,7 +17,7 @@ namespace CS2_SimpleAdmin.Menus
menu.AddMenuOption(optionName, (_, _) => { onSelectAction?.Invoke(admin, player); }, admin.CanTarget(player) == false); menu.AddMenuOption(optionName, (_, _) => { onSelectAction?.Invoke(admin, player); }, admin.CanTarget(player) == false);
} }
MenuManager.OpenCenterHtmlMenu(CS2_SimpleAdmin.Instance, admin, menu); AdminMenu.OpenMenu(admin, menu);
} }
} }
} }