- 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;
[MinimumApiVersion(276)]
[MinimumApiVersion(279)]
public partial class CS2_SimpleAdmin : BasePlugin, IPluginConfig<CS2_SimpleAdminConfig>
{
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 ModuleDescription => "Simple admin plugin for Counter-Strike 2 :)";
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)
{

View File

@@ -494,13 +494,13 @@ public partial class CS2_SimpleAdmin
{
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 =>
{
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"], (_, _) =>
{
DurationMenu.OpenMenu(caller, _localizer["sa_ban"], player, (_, _, duration) =>
@@ -564,7 +564,7 @@ public partial class CS2_SimpleAdmin
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 () =>
{

View File

@@ -33,7 +33,7 @@ public partial class CS2_SimpleAdmin
{
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)
return;
//ChatMenu voteMenu = new(_localizer!["sa_admin_vote_menu_title", question]);

View File

@@ -108,6 +108,8 @@ public class CustomServerCommandData
public class MenuConfig
{
[JsonPropertyName("MenuType")] public string MenuType { get; set; } = "selectable";
[JsonPropertyName("Durations")]
public DurationItem[] Durations { get; set; } =
[
@@ -223,7 +225,7 @@ public class OtherSettings
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")]
public string DatabaseHost { get; set; } = "";

View File

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

View File

@@ -20,6 +20,7 @@ using System.Text.Json;
using System.Text.RegularExpressions;
using CounterStrikeSharp.API.Modules.Entities.Constants;
using CS2_SimpleAdmin.Managers;
using MenuManager;
namespace CS2_SimpleAdmin;
@@ -516,6 +517,33 @@ internal static class Helper
CS2_SimpleAdmin._localizer["sa_discord_log_command", $"[{callerName}]({communityUrl})",
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

View File

@@ -8,7 +8,7 @@ public static class AdminMenu
{
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);
}

View File

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