From 5a9367ae89edea5a4e29fe60c2816424ff38cfac Mon Sep 17 00:00:00 2001 From: Dawid Bepierszcz <41084667+daffyyyy@users.noreply.github.com> Date: Sat, 19 Oct 2024 03:52:33 +0200 Subject: [PATCH 1/3] 1.6.4a - New give command - Added `@css/permmute` flag to allow perm penalties - Fixed mute when player silenced - Added CleanModule - allow to clean weapons on ground --- CS2-SimpleAdmin/Api/CS2_SimpleAdminApi.cs | 1 - CS2-SimpleAdmin/CS2-SimpleAdmin.cs | 3 +- CS2-SimpleAdmin/Commands/basebans.cs | 2 +- CS2-SimpleAdmin/Commands/basechat.cs | 1 - CS2-SimpleAdmin/Commands/basecommands.cs | 1 - CS2-SimpleAdmin/Commands/basecomms.cs | 26 +++++++- CS2-SimpleAdmin/Commands/basevotes.cs | 1 - CS2-SimpleAdmin/Commands/funcommands.cs | 1 - CS2-SimpleAdmin/Commands/playercommands.cs | 32 ++++++---- CS2-SimpleAdmin/Config.cs | 5 +- CS2-SimpleAdmin/Helper.cs | 50 ++++++++++++++- CS2-SimpleAdmin/VERSION | 2 +- .../CS2-SimpleAdminApi.dll | Bin 0 -> 8192 bytes .../CS2-SimpleAdmin_CleanModule.cs | 59 ++++++++++++++++++ .../CS2-SimpleAdmin_CleanModule.csproj | 20 ++++++ .../CS2-SimpleAdmin_CleanModule.sln | 16 +++++ .../CS2-SimpleAdminApi.dll | Bin 7680 -> 8192 bytes 17 files changed, 193 insertions(+), 27 deletions(-) create mode 100644 Modules/CS2-SimpleAdmin_ExampleModule — kopia/CS2-SimpleAdminApi.dll create mode 100644 Modules/CS2-SimpleAdmin_ExampleModule — kopia/CS2-SimpleAdmin_CleanModule.cs create mode 100644 Modules/CS2-SimpleAdmin_ExampleModule — kopia/CS2-SimpleAdmin_CleanModule.csproj create mode 100644 Modules/CS2-SimpleAdmin_ExampleModule — kopia/CS2-SimpleAdmin_CleanModule.sln diff --git a/CS2-SimpleAdmin/Api/CS2_SimpleAdminApi.cs b/CS2-SimpleAdmin/Api/CS2_SimpleAdminApi.cs index c66c344..2a960a6 100644 --- a/CS2-SimpleAdmin/Api/CS2_SimpleAdminApi.cs +++ b/CS2-SimpleAdmin/Api/CS2_SimpleAdminApi.cs @@ -1,4 +1,3 @@ -using System.Diagnostics; using CounterStrikeSharp.API.Core; using CounterStrikeSharp.API.Modules.Commands; using CounterStrikeSharp.API.Modules.Entities; diff --git a/CS2-SimpleAdmin/CS2-SimpleAdmin.cs b/CS2-SimpleAdmin/CS2-SimpleAdmin.cs index e67a1b4..81a7a05 100644 --- a/CS2-SimpleAdmin/CS2-SimpleAdmin.cs +++ b/CS2-SimpleAdmin/CS2-SimpleAdmin.cs @@ -3,7 +3,6 @@ using CounterStrikeSharp.API.Core.Attributes; using CounterStrikeSharp.API.Core.Capabilities; using CounterStrikeSharp.API.Modules.Commands; using CounterStrikeSharp.API.Modules.Commands.Targeting; -using CounterStrikeSharp.API.Modules.Entities; using CounterStrikeSharp.API.Modules.Memory.DynamicFunctions; using CS2_SimpleAdmin.Managers; using CS2_SimpleAdminApi; @@ -20,7 +19,7 @@ public partial class CS2_SimpleAdmin : BasePlugin, IPluginConfig "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.3b"; + public override string ModuleVersion => "1.6.4a"; public override void Load(bool hotReload) { diff --git a/CS2-SimpleAdmin/Commands/basebans.cs b/CS2-SimpleAdmin/Commands/basebans.cs index 7c2f6cd..7262eb8 100644 --- a/CS2-SimpleAdmin/Commands/basebans.cs +++ b/CS2-SimpleAdmin/Commands/basebans.cs @@ -237,7 +237,7 @@ public partial class CS2_SimpleAdmin { if (caller == null) return true; - bool canPermBan = AdminManager.PlayerHasPermissions(caller, "@css/permban"); + var canPermBan = AdminManager.PlayerHasPermissions(caller, "@css/permban"); if (duration <= 0 && canPermBan == false) { diff --git a/CS2-SimpleAdmin/Commands/basechat.cs b/CS2-SimpleAdmin/Commands/basechat.cs index 3e8896f..bc72d69 100644 --- a/CS2-SimpleAdmin/Commands/basechat.cs +++ b/CS2-SimpleAdmin/Commands/basechat.cs @@ -1,5 +1,4 @@ using CounterStrikeSharp.API.Core; -using CounterStrikeSharp.API.Core.Attributes.Registration; using CounterStrikeSharp.API.Core.Translations; using CounterStrikeSharp.API.Modules.Admin; using CounterStrikeSharp.API.Modules.Commands; diff --git a/CS2-SimpleAdmin/Commands/basecommands.cs b/CS2-SimpleAdmin/Commands/basecommands.cs index 7447c3e..02d29b4 100644 --- a/CS2-SimpleAdmin/Commands/basecommands.cs +++ b/CS2-SimpleAdmin/Commands/basecommands.cs @@ -1,6 +1,5 @@ using CounterStrikeSharp.API; using CounterStrikeSharp.API.Core; -using CounterStrikeSharp.API.Core.Attributes.Registration; using CounterStrikeSharp.API.Core.Translations; using CounterStrikeSharp.API.Modules.Admin; using CounterStrikeSharp.API.Modules.Commands; diff --git a/CS2-SimpleAdmin/Commands/basecomms.cs b/CS2-SimpleAdmin/Commands/basecomms.cs index 4aa3f3d..bdd365c 100644 --- a/CS2-SimpleAdmin/Commands/basecomms.cs +++ b/CS2-SimpleAdmin/Commands/basecomms.cs @@ -1,6 +1,5 @@ using CounterStrikeSharp.API; using CounterStrikeSharp.API.Core; -using CounterStrikeSharp.API.Core.Attributes.Registration; using CounterStrikeSharp.API.Modules.Admin; using CounterStrikeSharp.API.Modules.Commands; using CS2_SimpleAdmin.Managers; @@ -50,6 +49,7 @@ public partial class CS2_SimpleAdmin { if (Database == null || !player.IsValid || !player.UserId.HasValue) return; if (!caller.CanTarget(player)) return; + if (!CheckValidMute(caller, time)) return; // Set default caller name if not provided callerName ??= caller == null ? _localizer?["sa_console"] ?? "Console" : caller.PlayerName; @@ -126,6 +126,7 @@ public partial class CS2_SimpleAdmin : (_localizer?["sa_unknown"] ?? "Unknown"); int.TryParse(command.GetArg(2), out var time); + if (!CheckValidMute(caller, time)) return; // Get player and admin info var adminInfo = caller != null && caller.UserId.HasValue ? PlayersInfo[caller.UserId.Value] : null; @@ -264,6 +265,7 @@ public partial class CS2_SimpleAdmin { if (Database == null || !player.IsValid || !player.UserId.HasValue) return; if (!caller.CanTarget(player)) return; + if (!CheckValidMute(caller, time)) return; // Set default caller name if not provided callerName ??= caller == null ? _localizer?["sa_console"] ?? "Console" : caller.PlayerName; @@ -343,6 +345,7 @@ public partial class CS2_SimpleAdmin : (_localizer?["sa_unknown"] ?? "Unknown"); int.TryParse(command.GetArg(2), out var time); + if (!CheckValidMute(caller, time)) return; // Get player and admin info var adminInfo = caller != null && caller.UserId.HasValue ? PlayersInfo[caller.UserId.Value] : null; @@ -483,6 +486,7 @@ public partial class CS2_SimpleAdmin { if (Database == null || !player.IsValid || !player.UserId.HasValue) return; if (!caller.CanTarget(player)) return; + if (!CheckValidMute(caller, time)) return; // Set default caller name if not provided callerName ??= caller == null ? _localizer?["sa_console"] ?? "Console" : caller.PlayerName; @@ -499,6 +503,7 @@ public partial class CS2_SimpleAdmin // Add penalty to the player's penalty manager PlayerPenaltyManager.AddPenalty(player.Slot, PenaltyType.Silence, Time.ActualDateTime().AddMinutes(time), time); + player.VoiceFlags = VoiceFlags.Muted; // Determine message keys and arguments based on silence time (permanent or timed) var (messageKey, activityMessageKey, playerArgs, adminActivityArgs) = time == 0 @@ -559,6 +564,7 @@ public partial class CS2_SimpleAdmin : (_localizer?["sa_unknown"] ?? "Unknown"); int.TryParse(command.GetArg(2), out var time); + if (!CheckValidMute(caller, time)) return; // Get player and admin info var adminInfo = caller != null && caller.UserId.HasValue ? PlayersInfo[caller.UserId.Value] : null; @@ -663,4 +669,22 @@ public partial class CS2_SimpleAdmin command.ReplyToCommand($"Unsilenced offline player with pattern {pattern}."); } } + + private bool CheckValidMute(CCSPlayerController? caller, int duration) + { + if (caller == null) return true; + + var canPermMute = AdminManager.PlayerHasPermissions(caller, "@css/permmute"); + + if (duration <= 0 && canPermMute == false) + { + caller.PrintToChat($"{_localizer!["sa_prefix"]} {_localizer["sa_ban_perm_restricted"]}"); + return false; + } + + if (duration <= Config.OtherSettings.MaxMuteDuration || canPermMute) return true; + + caller.PrintToChat($"{_localizer!["sa_prefix"]} {_localizer["sa_ban_max_duration_exceeded", Config.OtherSettings.MaxMuteDuration]}"); + return false; + } } \ No newline at end of file diff --git a/CS2-SimpleAdmin/Commands/basevotes.cs b/CS2-SimpleAdmin/Commands/basevotes.cs index f65d9dc..374c8d8 100644 --- a/CS2-SimpleAdmin/Commands/basevotes.cs +++ b/CS2-SimpleAdmin/Commands/basevotes.cs @@ -1,5 +1,4 @@ using CounterStrikeSharp.API.Core; -using CounterStrikeSharp.API.Core.Attributes.Registration; using CounterStrikeSharp.API.Core.Translations; using CounterStrikeSharp.API.Modules.Admin; using CounterStrikeSharp.API.Modules.Commands; diff --git a/CS2-SimpleAdmin/Commands/funcommands.cs b/CS2-SimpleAdmin/Commands/funcommands.cs index 19b52a1..9f67c47 100644 --- a/CS2-SimpleAdmin/Commands/funcommands.cs +++ b/CS2-SimpleAdmin/Commands/funcommands.cs @@ -1,5 +1,4 @@ using CounterStrikeSharp.API.Core; -using CounterStrikeSharp.API.Core.Attributes.Registration; using CounterStrikeSharp.API.Modules.Admin; using CounterStrikeSharp.API.Modules.Commands; diff --git a/CS2-SimpleAdmin/Commands/playercommands.cs b/CS2-SimpleAdmin/Commands/playercommands.cs index 5debea2..c9ae79c 100644 --- a/CS2-SimpleAdmin/Commands/playercommands.cs +++ b/CS2-SimpleAdmin/Commands/playercommands.cs @@ -67,18 +67,11 @@ public partial class CS2_SimpleAdmin var weaponName = command.GetArg(2); // check if item is typed - if (weaponName.Length < 5) - { - command.ReplyToCommand($"No weapon typed."); - return; - } - - // check if item is valid - if (!weaponName.Contains("weapon_") && !weaponName.Contains("item_")) - { - command.ReplyToCommand($"{weaponName} is not a valid item."); - return; - } + // if (weaponName.Length < 2) + // { + // command.ReplyToCommand($"No weapon typed."); + // return; + // } // check if weapon is knife if (weaponName.Contains("_knife") || weaponName.Contains("bayonet")) @@ -105,9 +98,22 @@ public partial class CS2_SimpleAdmin // Set default caller name if not provided callerName ??= caller != null ? caller.PlayerName : _localizer?["sa_console"] ?? "Console"; + var weapons = WeaponHelper.GetWeaponsByPartialName(weaponName); + + switch (weapons.Count) + { + case 0: + return; + case > 1: + { + var weaponList = string.Join(", ", weapons.Select(w => w.EnumMemberValue)); + command?.ReplyToCommand($"Found weapons with a similar name: {weaponList}"); + return; + } + } // Give weapon to the player - player.GiveNamedItem(weaponName); + player.GiveNamedItem(weapons.First().EnumValue); // Log the command if (command == null) diff --git a/CS2-SimpleAdmin/Config.cs b/CS2-SimpleAdmin/Config.cs index f523734..df40481 100644 --- a/CS2-SimpleAdmin/Config.cs +++ b/CS2-SimpleAdmin/Config.cs @@ -201,6 +201,9 @@ public class OtherSettings [JsonPropertyName("MaxBanDuration")] public int MaxBanDuration { get; set; } = 60 * 24 * 7; + + [JsonPropertyName("MaxMuteDuration")] + public int MaxMuteDuration { get; set; } = 60 * 24 * 7; [JsonPropertyName("ExpireOldIpBans")] public int ExpireOldIpBans { get; set; } = 0; @@ -220,7 +223,7 @@ public class OtherSettings public class CS2_SimpleAdminConfig : BasePluginConfig { - [JsonPropertyName("ConfigVersion")] public override int Version { get; set; } = 21; + [JsonPropertyName("ConfigVersion")] public override int Version { get; set; } = 22; [JsonPropertyName("DatabaseHost")] public string DatabaseHost { get; set; } = ""; diff --git a/CS2-SimpleAdmin/Helper.cs b/CS2-SimpleAdmin/Helper.cs index ce6f797..238360a 100644 --- a/CS2-SimpleAdmin/Helper.cs +++ b/CS2-SimpleAdmin/Helper.cs @@ -1,5 +1,4 @@ -using System.Globalization; -using CounterStrikeSharp.API; +using CounterStrikeSharp.API; using CounterStrikeSharp.API.Core; using CounterStrikeSharp.API.Core.Translations; using CounterStrikeSharp.API.Modules.Admin; @@ -15,9 +14,11 @@ using Microsoft.Extensions.Logging; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; +using System.Runtime.Serialization; using System.Text; using System.Text.Json; using System.Text.RegularExpressions; +using CounterStrikeSharp.API.Modules.Entities.Constants; using CS2_SimpleAdmin.Managers; namespace CS2_SimpleAdmin; @@ -625,4 +626,47 @@ public static class Time return utcNow; } } -} \ No newline at end of file +} + +public static class WeaponHelper +{ + private static readonly Lazy> WeaponsEnumCache = new(BuildEnumMemberMap); + + private static Dictionary BuildEnumMemberMap() + { + var dictionary = new Dictionary(); + + foreach (var field in typeof(CsItem).GetFields(BindingFlags.Public | BindingFlags.Static)) + { + var attribute = field.GetCustomAttribute(); + if (attribute?.Value == null) continue; + if (field.GetValue(null) is not CsItem csItem) + continue; + var enumValue = field.GetValue(null); + + dictionary.TryAdd(attribute.Value, csItem); + } + + return dictionary; + } + + public static CsItem? GetEnumFromWeaponName(string weaponName) + { + if (WeaponsEnumCache.Value.TryGetValue(weaponName, out var csItem)) + { + return csItem; + } + + return null; + } + + public static List<(string EnumMemberValue, CsItem EnumValue)> GetWeaponsByPartialName(string input) + { + var matchingWeapons = WeaponsEnumCache.Value + .Where(kvp => kvp.Key.Contains(input)) + .Select(kvp => (kvp.Key, kvp.Value)) + .ToList(); + + return matchingWeapons; + } +} diff --git a/CS2-SimpleAdmin/VERSION b/CS2-SimpleAdmin/VERSION index 12bfe62..9ff7676 100644 --- a/CS2-SimpleAdmin/VERSION +++ b/CS2-SimpleAdmin/VERSION @@ -1 +1 @@ -1.6.3b \ No newline at end of file +1.6.4a \ No newline at end of file diff --git a/Modules/CS2-SimpleAdmin_ExampleModule — kopia/CS2-SimpleAdminApi.dll b/Modules/CS2-SimpleAdmin_ExampleModule — kopia/CS2-SimpleAdminApi.dll new file mode 100644 index 0000000000000000000000000000000000000000..b7283c2ce01b88b33c2ac23f9b052051fb11fdbe GIT binary patch literal 8192 zcmeHMYit}>6+U-%XLs$yj=iz-XkMEpw4sm1kH&RMO1<$qiQ71FvyR4$2);E;qq%Y2_ZsQ(x}U9o zQtkTL`k{lC6D!(P6eU?Qi zAB5gLO!N@Fz>b(*#)uX}cHd^Aq1kP3#m9&uHSH1bJ8Ss3YaVgI|8^MwZL(J1Zg5g! zL}PK=vD4thwjL0?&`a>tlpa_gx6Nz;9obeI!^67P;;AV;MB8duAs=JEqOffm>2!QO z>~0}aBK^-{n~jl0r-MCHp zp67i$d`-M9-r3gKzJ>Qerz~(9LABw7M6aU0is_VVTlqohPC_j5zH`{Ajkyf$!NUqW}`M2E-?JP`y2`}7b!A7H#k@FBr% zB0nJXYXR19yJ)yc=pMQZ{S~mD_R>?KdRj`K0zRkzQwvcTJsasVD#PBzzz}sx|DR|) zYBe;}(}Q{)bY88q*)(xN0{yIXTS`KPQZ)jgRkS%F{iMsm$lb}Ijp@A zd=ovPzaG4k>U{2)a4i(0E?N|sqEP5gI!43O9s0+B^@7U-Og|cAyia310r`5`p^gI& zX~%$Z^=aT?^%>xx_8H8y5^_an7304Ie%Ry-EPKZMY5kYsTJC%FXieMM@OP_R!v%VNCcmC;XjRWkbcmLQ)AR>;*ej-k8aOr}d*+NO81qVXi?fp}`n)pImWHZ&l5d5$^64XZ4lfp7prM*I?Ny`l-*o z8NN!bq8EJbK57H^qR&08J&c~O_}q7~zE$+9&yC2qzx$jSR%m1!=iJYO1GiAuJZQq+(lBlcG<;293TW^H$__bQT$<85lygIg9i9 zPGA$Y3vLli2=)u!EO@J+0aRoGTj@^VB{jgI|?w=6a5VS;cROk~z zpAh;1p`Q`@jNnUxuZWy9)~p0$g6jo)1QUW|8e2Oiw4w35hS1Z3M+NT}JR$gi^f@K; z89@q&{enG$V}jFy_Y0m1@GPf%{(~kfj)uvPgSyV&Jg@GC^ z!P$!7F9=B;kXv+Mv$RJc(-1j}fGyMjds=}SuJ0wFmjg9KY%}PUKn<^pOF^#!YKY-h z&})Divek0X>wp>}bS3CZfg0j)73ht?75~jiNDbWi7W1QPN7gRv~ZL<*^PLHnJsi zs8qz5PD)6_SQl*_C}c`m^F5SuO(WNzq~1a)@0vEh7acNF2MxOzPYm|cVIDm?N~yBr znz?vyA)7TthZEmn=1tp5)1>K+dRj7sPSBPS**?d#L6*E~hv}wF`>=?NOlEXXelTm4 zO?%MH8(G&fGl@*b%#dy73Wv>wTIU_O;27HKoAsVUqodo5^dY?QZMV#9hPHaP&6Owe zlW@wM?z@fLJkr5}W3iv-_D@>o!i_@(*T|-E;MYLkzc53 z#IWaU>o3CZw&~0>ER`*|bIjXSnCva&az;KwX}|WDLN|-^Wa~Z3L11{4!ETin_9W#Q zl7?#zSs?t-+Kc#O)(eR8P`PMQQG&yx=MPXsq-_$r3lW?v!mGB#C6s3pE`oWSo08^u zX>yX!O;uJoNmWV0am?I!wmf9HwH=2H8zH_Ozs=3}73@QE`)|jr!=~*Z6y`Se=O+qw z&XDt%U9eYgAwOYFmTc))RkGKdNEs8RTi%Pa>Qv=&ocpq7&dj^)(V8aD3!-PQnKh0G zRnuNsXem3zDi_rRz6X*s2{S?S+bj~^r3nB#xvQhKOyzyOF6=kAcGZA z#&_?GJ?4a;%Oo-@2bMT&XBbXyHK$n`Yx$y|1CWFar;sN;W*mupLU`+WiC&@;E^Q!x z+SJ>d@`UVcn{%p7MM;MgPrC&hDAh1L1I|AoNz0hb7aZ40I}4=ixR=!(oC>kPsSNeE zisf=fI2Bt+KeF7-x-NRf^@D|51K65Eq3wNwo+=tVTYoNv=$$?dK zJXUP+NZuMTloMjLpK#Jms0Hk+OuNsuvNdyZ0$)P>tcOVdCGEU0mFwDO9so!x*rk_3K6=I!(_wO7P z@dd;r18?Lx@OiopbP*Jn(Yt?s@*it@l8gN5NI|cT6CZVR?jhcMp$e0qL{9t1JMCqSSY4}hHkE+7ED#qSUuEY zy^&~NV`GF1rjG<;6zyYZ;Z;XlWJoDmW>HB*B__*4mcyGoV*{HoauY^^Xk?;=p~O&* zDE}34Eq^%~(w2?bMsar`-*+T!7Woz#I%pT(=P2}JKN4N9XhnQ?-w#frkXKakW+d>sYTj*n{iBkEKX7v{=L zXPc4kZZkT&I?XMcjft-Dj;>DQ+VqwVV{>~~x6xsAr@P17uEEb-F}B__S;1}y5DGw) zjS8>rM2q_JnaVpsBY|LZebdWz{7Q*%q@E49}$iU>(&vjYb1!km*vxR`QVdaW1U z0WGtaKUd}dCG&WIzi7&TMND7ZC_zp*GjrtJZzrBxdWepAAAeZ{8mEPZDTUwE!_-H6 zLG|N*T6Tl)2X6QN*M*)AzVo4eR#)uAy=E0ebT9>0apL zJBjBgV?_oyq!^T5=`ArX6~%rqNlQgBt|>ejFS7UT>T5&7RWs`t zhCUk_tLtv3IP9-H1e^KyKYPxVzIeZcuc|9~JM+e|t}OnzY(gSevMH73d2;cCE zCg~t%Avxf~GVdN=&fe#FD}G?k^W=Xzzqc=g&|832CHT^ "[CS2-SimpleAdmin] Clean module"; + public override string ModuleDescription => "Module allows you to remove all weapons lying on the ground"; + public override string ModuleVersion => "v1.0.0"; + public override string ModuleAuthor => "daffyy"; + + private static ICS2_SimpleAdminApi? _sharedApi; + private readonly PluginCapability _pluginCapability = new("simpleadmin:api"); + + public override void OnAllPluginsLoaded(bool hotReload) + { + _sharedApi = _pluginCapability.Get(); + + if (_sharedApi == null) + { + Logger.LogError("CS2-SimpleAdmin SharedApi not found"); + Unload(false); + } + } + + [ConsoleCommand("css_clean")] + [ConsoleCommand("css_clear")] + [RequiresPermissions("@css/cheat")] + public void OnCleanCommand(CCSPlayerController? caller, CommandInfo commandInfo) + { + var weapons = Utilities.FindAllEntitiesByDesignerName("weapon_"); + var defusers = Utilities.FindAllEntitiesByDesignerName("item_cutters"); + + foreach (var weapon in weapons) + { + if (!weapon.IsValid || weapon.State != CSWeaponState_t.WEAPON_NOT_CARRIED) + continue; + + weapon.Remove(); + } + + foreach (var defuser in defusers) + { + if (!defuser.IsValid || defuser.OwnerEntity.Value != null) + continue; + + defuser.Remove(); + } + + _sharedApi?.LogCommand(caller, commandInfo); + } +} \ No newline at end of file diff --git a/Modules/CS2-SimpleAdmin_ExampleModule — kopia/CS2-SimpleAdmin_CleanModule.csproj b/Modules/CS2-SimpleAdmin_ExampleModule — kopia/CS2-SimpleAdmin_CleanModule.csproj new file mode 100644 index 0000000..1aac41c --- /dev/null +++ b/Modules/CS2-SimpleAdmin_ExampleModule — kopia/CS2-SimpleAdmin_CleanModule.csproj @@ -0,0 +1,20 @@ + + + + net8.0 + CS2_SimpleAdmin_CleanModule + enable + enable + + + + + + + + + CS2-SimpleAdminApi.dll + + + + diff --git a/Modules/CS2-SimpleAdmin_ExampleModule — kopia/CS2-SimpleAdmin_CleanModule.sln b/Modules/CS2-SimpleAdmin_ExampleModule — kopia/CS2-SimpleAdmin_CleanModule.sln new file mode 100644 index 0000000..f9e05b4 --- /dev/null +++ b/Modules/CS2-SimpleAdmin_ExampleModule — kopia/CS2-SimpleAdmin_CleanModule.sln @@ -0,0 +1,16 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CS2-SimpleAdmin_CleanModule", "CS2-SimpleAdmin_CleanModule.csproj", "{D940F3E9-0E3F-467A-B336-149E3A624FB6}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {D940F3E9-0E3F-467A-B336-149E3A624FB6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D940F3E9-0E3F-467A-B336-149E3A624FB6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D940F3E9-0E3F-467A-B336-149E3A624FB6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D940F3E9-0E3F-467A-B336-149E3A624FB6}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection +EndGlobal diff --git a/Modules/CS2-SimpleAdmin_ExampleModule/CS2-SimpleAdminApi.dll b/Modules/CS2-SimpleAdmin_ExampleModule/CS2-SimpleAdminApi.dll index c2dbdee66b66088a8c5ff7fa730a18f884167f3c..b7283c2ce01b88b33c2ac23f9b052051fb11fdbe 100644 GIT binary patch delta 3208 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 DFVV5I From b38b9a075142e356bfea29ba837554aec9f6cd59 Mon Sep 17 00:00:00 2001 From: Dawid Bepierszcz <41084667+daffyyyy@users.noreply.github.com> Date: Sat, 19 Oct 2024 09:07:25 +0200 Subject: [PATCH 2/3] Updated clean module --- .../CS2-SimpleAdminApi.dll | Bin .../CS2-SimpleAdmin_CleanModule.cs | 0 .../CS2-SimpleAdmin_CleanModule.csproj | 0 .../CS2-SimpleAdmin_CleanModule.sln | 0 .../compiled/CS2-SimpleAdmin_CleanModule.zip | Bin 0 -> 18338 bytes 5 files changed, 0 insertions(+), 0 deletions(-) rename Modules/{CS2-SimpleAdmin_ExampleModule — kopia => CS2-SimpleAdmin_CleanModule}/CS2-SimpleAdminApi.dll (100%) rename Modules/{CS2-SimpleAdmin_ExampleModule — kopia => CS2-SimpleAdmin_CleanModule}/CS2-SimpleAdmin_CleanModule.cs (100%) rename Modules/{CS2-SimpleAdmin_ExampleModule — kopia => CS2-SimpleAdmin_CleanModule}/CS2-SimpleAdmin_CleanModule.csproj (100%) rename Modules/{CS2-SimpleAdmin_ExampleModule — kopia => CS2-SimpleAdmin_CleanModule}/CS2-SimpleAdmin_CleanModule.sln (100%) create mode 100644 Modules/CS2-SimpleAdmin_CleanModule/compiled/CS2-SimpleAdmin_CleanModule.zip diff --git a/Modules/CS2-SimpleAdmin_ExampleModule — kopia/CS2-SimpleAdminApi.dll b/Modules/CS2-SimpleAdmin_CleanModule/CS2-SimpleAdminApi.dll similarity index 100% rename from Modules/CS2-SimpleAdmin_ExampleModule — kopia/CS2-SimpleAdminApi.dll rename to Modules/CS2-SimpleAdmin_CleanModule/CS2-SimpleAdminApi.dll diff --git a/Modules/CS2-SimpleAdmin_ExampleModule — kopia/CS2-SimpleAdmin_CleanModule.cs b/Modules/CS2-SimpleAdmin_CleanModule/CS2-SimpleAdmin_CleanModule.cs similarity index 100% rename from Modules/CS2-SimpleAdmin_ExampleModule — kopia/CS2-SimpleAdmin_CleanModule.cs rename to Modules/CS2-SimpleAdmin_CleanModule/CS2-SimpleAdmin_CleanModule.cs diff --git a/Modules/CS2-SimpleAdmin_ExampleModule — kopia/CS2-SimpleAdmin_CleanModule.csproj b/Modules/CS2-SimpleAdmin_CleanModule/CS2-SimpleAdmin_CleanModule.csproj similarity index 100% rename from Modules/CS2-SimpleAdmin_ExampleModule — kopia/CS2-SimpleAdmin_CleanModule.csproj rename to Modules/CS2-SimpleAdmin_CleanModule/CS2-SimpleAdmin_CleanModule.csproj diff --git a/Modules/CS2-SimpleAdmin_ExampleModule — kopia/CS2-SimpleAdmin_CleanModule.sln b/Modules/CS2-SimpleAdmin_CleanModule/CS2-SimpleAdmin_CleanModule.sln similarity index 100% rename from Modules/CS2-SimpleAdmin_ExampleModule — kopia/CS2-SimpleAdmin_CleanModule.sln rename to Modules/CS2-SimpleAdmin_CleanModule/CS2-SimpleAdmin_CleanModule.sln diff --git a/Modules/CS2-SimpleAdmin_CleanModule/compiled/CS2-SimpleAdmin_CleanModule.zip b/Modules/CS2-SimpleAdmin_CleanModule/compiled/CS2-SimpleAdmin_CleanModule.zip new file mode 100644 index 0000000000000000000000000000000000000000..86f6558ddfe67b5c09eb9d83702552f43d25f416 GIT binary patch literal 18338 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 Date: Thu, 24 Oct 2024 13:39:11 +0200 Subject: [PATCH 3/3] 1.6.5a - Possibility to force menu type by config - Possibility to reload admins by css command `css_admins_reload` --- CS2-SimpleAdmin/CS2-SimpleAdmin.cs | 4 ++-- CS2-SimpleAdmin/Commands/basecommands.cs | 6 ++--- CS2-SimpleAdmin/Commands/basevotes.cs | 2 +- CS2-SimpleAdmin/Config.cs | 4 +++- CS2-SimpleAdmin/Events.cs | 6 +++++ CS2-SimpleAdmin/Helper.cs | 28 ++++++++++++++++++++++++ CS2-SimpleAdmin/Menus/AdminMenu.cs | 2 +- CS2-SimpleAdmin/VERSION | 2 +- 8 files changed, 45 insertions(+), 9 deletions(-) diff --git a/CS2-SimpleAdmin/CS2-SimpleAdmin.cs b/CS2-SimpleAdmin/CS2-SimpleAdmin.cs index 81a7a05..e6a2f04 100644 --- a/CS2-SimpleAdmin/CS2-SimpleAdmin.cs +++ b/CS2-SimpleAdmin/CS2-SimpleAdmin.cs @@ -11,7 +11,7 @@ using MySqlConnector; namespace CS2_SimpleAdmin; -[MinimumApiVersion(276)] +[MinimumApiVersion(279)] public partial class CS2_SimpleAdmin : BasePlugin, IPluginConfig { internal static CS2_SimpleAdmin Instance { get; private set; } = new(); @@ -19,7 +19,7 @@ public partial class CS2_SimpleAdmin : BasePlugin, IPluginConfig "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) { diff --git a/CS2-SimpleAdmin/Commands/basecommands.cs b/CS2-SimpleAdmin/Commands/basecommands.cs index 02d29b4..4fcd745 100644 --- a/CS2-SimpleAdmin/Commands/basecommands.cs +++ b/CS2-SimpleAdmin/Commands/basecommands.cs @@ -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 () => { diff --git a/CS2-SimpleAdmin/Commands/basevotes.cs b/CS2-SimpleAdmin/Commands/basevotes.cs index 374c8d8..68908d7 100644 --- a/CS2-SimpleAdmin/Commands/basevotes.cs +++ b/CS2-SimpleAdmin/Commands/basevotes.cs @@ -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]); diff --git a/CS2-SimpleAdmin/Config.cs b/CS2-SimpleAdmin/Config.cs index df40481..bf492b3 100644 --- a/CS2-SimpleAdmin/Config.cs +++ b/CS2-SimpleAdmin/Config.cs @@ -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; } = ""; diff --git a/CS2-SimpleAdmin/Events.cs b/CS2-SimpleAdmin/Events.cs index e92329f..132c3b8 100644 --- a/CS2-SimpleAdmin/Events.cs +++ b/CS2-SimpleAdmin/Events.cs @@ -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; diff --git a/CS2-SimpleAdmin/Helper.cs b/CS2-SimpleAdmin/Helper.cs index 238360a..11fac5f 100644 --- a/CS2-SimpleAdmin/Helper.cs +++ b/CS2-SimpleAdmin/Helper.cs @@ -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 diff --git a/CS2-SimpleAdmin/Menus/AdminMenu.cs b/CS2-SimpleAdmin/Menus/AdminMenu.cs index ad78c0c..8757351 100644 --- a/CS2-SimpleAdmin/Menus/AdminMenu.cs +++ b/CS2-SimpleAdmin/Menus/AdminMenu.cs @@ -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); } diff --git a/CS2-SimpleAdmin/VERSION b/CS2-SimpleAdmin/VERSION index 9ff7676..6842fcb 100644 --- a/CS2-SimpleAdmin/VERSION +++ b/CS2-SimpleAdmin/VERSION @@ -1 +1 @@ -1.6.4a \ No newline at end of file +1.6.5a \ No newline at end of file