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")]
public string DatabaseName { get; set; } = "";
[JsonPropertyName("UseChatMenu")]
public bool UseChatMenu { get; set; } = false;
[JsonPropertyName("KickTime")]
public int KickTime { get; set; } = 5;

View File

@@ -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);
}
}
}

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)
{
CenterHtmlMenu menu = new CenterHtmlMenu(menuName);
BaseMenu menu = AdminMenu.CreateMenu(menuName);
foreach (Tuple<string, int> 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);
}
}
}

View File

@@ -19,7 +19,7 @@ namespace CS2_SimpleAdmin.Menus
return;
}
CenterHtmlMenu menu = new CenterHtmlMenu("Manage Players");
BaseMenu menu = AdminMenu.CreateMenu("Manage Players");
List<ChatMenuOptionData> 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<ChatMenuOptionData> 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<string> 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<string> 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<string> 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<string> 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<ChatMenuOptionData> 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)

View File

@@ -19,7 +19,7 @@ namespace CS2_SimpleAdmin.Menus
return;
}
CenterHtmlMenu menu = new CenterHtmlMenu("Manage Server");
BaseMenu menu = AdminMenu.CreateMenu("Manage Server");
List<ChatMenuOptionData> 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<ChatMenuOptionData> options = new();
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);
}
MenuManager.OpenCenterHtmlMenu(CS2_SimpleAdmin.Instance, admin, menu);
AdminMenu.OpenMenu(admin, menu);
}
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)
{
CenterHtmlMenu menu = new CenterHtmlMenu(menuName);
BaseMenu menu = AdminMenu.CreateMenu(menuName);
IEnumerable<CCSPlayerController> 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);
}
}
}