- Possibility to force menu type by config
- Possibility to reload admins by css command `css_admins_reload`
This commit is contained in:
Dawid Bepierszcz
2024-10-24 13:39:11 +02:00
parent b38b9a0751
commit 82b82722a6
8 changed files with 45 additions and 9 deletions

View File

@@ -11,7 +11,7 @@ using MySqlConnector;
namespace CS2_SimpleAdmin; namespace CS2_SimpleAdmin;
[MinimumApiVersion(276)] [MinimumApiVersion(279)]
public partial class CS2_SimpleAdmin : BasePlugin, IPluginConfig<CS2_SimpleAdminConfig> public partial class CS2_SimpleAdmin : BasePlugin, IPluginConfig<CS2_SimpleAdminConfig>
{ {
internal static CS2_SimpleAdmin Instance { get; private set; } = new(); internal static CS2_SimpleAdmin Instance { get; private set; } = new();
@@ -19,7 +19,7 @@ public partial class CS2_SimpleAdmin : BasePlugin, IPluginConfig<CS2_SimpleAdmin
public override string ModuleName => "CS2-SimpleAdmin" + (Helper.IsDebugBuild ? " (DEBUG)" : " (RELEASE)"); public override string ModuleName => "CS2-SimpleAdmin" + (Helper.IsDebugBuild ? " (DEBUG)" : " (RELEASE)");
public override string ModuleDescription => "Simple admin plugin for Counter-Strike 2 :)"; public override string ModuleDescription => "Simple admin plugin for Counter-Strike 2 :)";
public override string ModuleAuthor => "daffyy & Dliix66"; public override string ModuleAuthor => "daffyy & Dliix66";
public override string ModuleVersion => "1.6.4a"; public override string ModuleVersion => "1.6.5a";
public override void Load(bool hotReload) public override void Load(bool hotReload)
{ {

View File

@@ -494,13 +494,13 @@ public partial class CS2_SimpleAdmin
{ {
if (_localizer == null || caller == null) return; if (_localizer == null || caller == null) return;
var disconnectedMenu = MenuApi?.NewMenu(_localizer["sa_menu_disconnected_title"]); var disconnectedMenu = Helper.CreateMenu(_localizer["sa_menu_disconnected_title"]);
DisconnectedPlayers.ForEach(player => DisconnectedPlayers.ForEach(player =>
{ {
disconnectedMenu?.AddMenuOption(player.Name, (_, _) => disconnectedMenu?.AddMenuOption(player.Name, (_, _) =>
{ {
var disconnectedMenuAction = MenuApi?.NewMenu(_localizer["sa_menu_disconnected_action_title"]); var disconnectedMenuAction = Helper.CreateMenu(_localizer["sa_menu_disconnected_action_title"]);
disconnectedMenuAction?.AddMenuOption(_localizer["sa_ban"], (_, _) => disconnectedMenuAction?.AddMenuOption(_localizer["sa_ban"], (_, _) =>
{ {
DurationMenu.OpenMenu(caller, _localizer["sa_ban"], player, (_, _, duration) => DurationMenu.OpenMenu(caller, _localizer["sa_ban"], player, (_, _, duration) =>
@@ -564,7 +564,7 @@ public partial class CS2_SimpleAdmin
var userId = player.UserId.Value; var userId = player.UserId.Value;
IMenu? warnsMenu = MenuApi?.NewMenu(_localizer["sa_admin_warns_menu_title", player.PlayerName]); IMenu? warnsMenu = Helper.CreateMenu(_localizer["sa_admin_warns_menu_title", player.PlayerName]);
Task.Run(async () => Task.Run(async () =>
{ {

View File

@@ -33,7 +33,7 @@ public partial class CS2_SimpleAdmin
{ {
using (new WithTemporaryCulture(player.GetLanguage())) using (new WithTemporaryCulture(player.GetLanguage()))
{ {
IMenu? voteMenu = MenuApi?.NewMenu(_localizer["sa_admin_vote_menu_title", question]); IMenu? voteMenu = Helper.CreateMenu(_localizer["sa_admin_vote_menu_title", question]);
if (voteMenu == null) if (voteMenu == null)
return; return;
//ChatMenu voteMenu = new(_localizer!["sa_admin_vote_menu_title", question]); //ChatMenu voteMenu = new(_localizer!["sa_admin_vote_menu_title", question]);

View File

@@ -108,6 +108,8 @@ public class CustomServerCommandData
public class MenuConfig public class MenuConfig
{ {
[JsonPropertyName("MenuType")] public string MenuType { get; set; } = "selectable";
[JsonPropertyName("Durations")] [JsonPropertyName("Durations")]
public DurationItem[] Durations { get; set; } = public DurationItem[] Durations { get; set; } =
[ [
@@ -223,7 +225,7 @@ public class OtherSettings
public class CS2_SimpleAdminConfig : BasePluginConfig public class CS2_SimpleAdminConfig : BasePluginConfig
{ {
[JsonPropertyName("ConfigVersion")] public override int Version { get; set; } = 22; [JsonPropertyName("ConfigVersion")] public override int Version { get; set; } = 23;
[JsonPropertyName("DatabaseHost")] [JsonPropertyName("DatabaseHost")]
public string DatabaseHost { get; set; } = ""; public string DatabaseHost { get; set; } = "";

View File

@@ -161,6 +161,12 @@ public partial class CS2_SimpleAdmin
var command = info.GetArg(0).ToLower(); var command = info.GetArg(0).ToLower();
if (command == "css_admins_reload")
{
AddTimer(1.0f, () => ReloadAdmins(null));
return HookResult.Continue;
}
if (!command.Contains("say")) if (!command.Contains("say"))
return HookResult.Continue; return HookResult.Continue;

View File

@@ -20,6 +20,7 @@ using System.Text.Json;
using System.Text.RegularExpressions; using System.Text.RegularExpressions;
using CounterStrikeSharp.API.Modules.Entities.Constants; using CounterStrikeSharp.API.Modules.Entities.Constants;
using CS2_SimpleAdmin.Managers; using CS2_SimpleAdmin.Managers;
using MenuManager;
namespace CS2_SimpleAdmin; namespace CS2_SimpleAdmin;
@@ -516,6 +517,33 @@ internal static class Helper
CS2_SimpleAdmin._localizer["sa_discord_log_command", $"[{callerName}]({communityUrl})", CS2_SimpleAdmin._localizer["sa_discord_log_command", $"[{callerName}]({communityUrl})",
commandString])); commandString]));
} }
public static IMenu? CreateMenu(string title)
{
var menuType = CS2_SimpleAdmin.Instance.Config.MenuConfigs.MenuType.ToLower();
var menu = menuType switch
{
_ when menuType.Equals("selectable", StringComparison.CurrentCultureIgnoreCase) =>
CS2_SimpleAdmin.MenuApi?.NewMenu(title),
_ when menuType.Equals("dynamic", StringComparison.CurrentCultureIgnoreCase) =>
CS2_SimpleAdmin.MenuApi?.NewMenuForcetype(title, MenuType.ButtonMenu),
_ when menuType.Equals("center", StringComparison.CurrentCultureIgnoreCase) =>
CS2_SimpleAdmin.MenuApi?.NewMenuForcetype(title, MenuType.CenterMenu),
_ when menuType.Equals("chat", StringComparison.CurrentCultureIgnoreCase) =>
CS2_SimpleAdmin.MenuApi?.NewMenuForcetype(title, MenuType.ChatMenu),
_ when menuType.Equals("console", StringComparison.CurrentCultureIgnoreCase) =>
CS2_SimpleAdmin.MenuApi?.NewMenuForcetype(title, MenuType.ConsoleMenu),
_ => CS2_SimpleAdmin.MenuApi?.NewMenu(title)
};
return menu;
}
} }
public static class PluginInfo public static class PluginInfo

View File

@@ -8,7 +8,7 @@ public static class AdminMenu
{ {
public static IMenu? CreateMenu(string title) public static IMenu? CreateMenu(string title)
{ {
return CS2_SimpleAdmin.MenuApi?.NewMenu(title); return Helper.CreateMenu(title);
// return CS2_SimpleAdmin.Instance.Config.UseChatMenu ? new ChatMenu(title) : new CenterHtmlMenu(title, CS2_SimpleAdmin.Instance); // return CS2_SimpleAdmin.Instance.Config.UseChatMenu ? new ChatMenu(title) : new CenterHtmlMenu(title, CS2_SimpleAdmin.Instance);
} }

View File

@@ -1 +1 @@
1.6.4a 1.6.5a