From 5d62c743ddf79b01f4e4f8520d9267a32e245c64 Mon Sep 17 00:00:00 2001 From: Dawid Bepierszcz <41084667+daffyyyy@users.noreply.github.com> Date: Thu, 20 Feb 2025 01:28:28 +0100 Subject: [PATCH] AntiDLL Module Fix Fixed banning when detecting a forbidden event --- CS2-SimpleAdmin/Helper.cs | 8 +-- .../AntiDLL_CS2_SimpleAdmin.cs | 56 +++++++++++++----- .../AntiDLL-CS2-SimpleAdmin.dll | Bin 9728 -> 10240 bytes .../AntiDLL-CS2-SimpleAdmin.pdb | Bin 15516 -> 15596 bytes Modules/AntiDLL-CS2-SimpleAdmin/settings.ini | 16 ----- 5 files changed, 45 insertions(+), 35 deletions(-) delete mode 100644 Modules/AntiDLL-CS2-SimpleAdmin/settings.ini diff --git a/CS2-SimpleAdmin/Helper.cs b/CS2-SimpleAdmin/Helper.cs index eaf9696..29df5a9 100644 --- a/CS2-SimpleAdmin/Helper.cs +++ b/CS2-SimpleAdmin/Helper.cs @@ -491,7 +491,7 @@ internal static class Helper public static void SendDiscordPenaltyMessage(CCSPlayerController? caller, CCSPlayerController? target, string reason, int duration, PenaltyType penalty, IStringLocalizer? localizer) { if (localizer == null) return; - + var penaltySetting = penalty switch { PenaltyType.Ban => CS2_SimpleAdmin.Instance.Config.Discord.DiscordPenaltyBanSettings, @@ -505,7 +505,7 @@ internal static class Helper var webhookUrl = penaltySetting.FirstOrDefault(s => s.Name.Equals("Webhook"))?.Value; if (string.IsNullOrEmpty(webhookUrl)) return; - + const string defaultCommunityUrl = ""; var callerCommunityUrl = caller != null ? $"<{new SteamID(caller.SteamID).ToCommunityUrl()}>" : defaultCommunityUrl; var targetCommunityUrl = target != null ? $"<{new SteamID(target.SteamID).ToCommunityUrl()}>" : defaultCommunityUrl; @@ -585,10 +585,10 @@ internal static class Helper }); } - public static void SendDiscordPenaltyMessage(CCSPlayerController? caller, string steamId, string reason, int duration, PenaltyType penalty, IStringLocalizer? localizer) + public static void SendDiscordPenaltyMessage(CCSPlayerController? caller, string steamId, string reason, int duration, PenaltyType penalty, IStringLocalizer? localizer) { if (localizer == null) return; - + var penaltySetting = penalty switch { PenaltyType.Ban => CS2_SimpleAdmin.Instance.Config.Discord.DiscordPenaltyBanSettings, diff --git a/Modules/AntiDLL-CS2-SimpleAdmin/AntiDLL_CS2_SimpleAdmin.cs b/Modules/AntiDLL-CS2-SimpleAdmin/AntiDLL_CS2_SimpleAdmin.cs index 0d608e0..2a13f11 100644 --- a/Modules/AntiDLL-CS2-SimpleAdmin/AntiDLL_CS2_SimpleAdmin.cs +++ b/Modules/AntiDLL-CS2-SimpleAdmin/AntiDLL_CS2_SimpleAdmin.cs @@ -1,7 +1,7 @@ -using CounterStrikeSharp.API.ValveConstants.Protobuf; - -namespace AntiDLL_CS2_SimpleAdmin; +namespace AntiDLL_CS2_SimpleAdmin; +using CounterStrikeSharp.API.Core.Attributes.Registration; +using CounterStrikeSharp.API.ValveConstants.Protobuf; using System.Text.Json.Serialization; using CounterStrikeSharp.API; using CounterStrikeSharp.API.Modules.Entities; @@ -9,7 +9,6 @@ using CS2_SimpleAdminApi; using CounterStrikeSharp.API.Core; using CounterStrikeSharp.API.Core.Capabilities; using Microsoft.Extensions.Logging; - using AntiDLL.API; public class PluginConfig : IBasePluginConfig @@ -23,16 +22,17 @@ public class PluginConfig : IBasePluginConfig public sealed class AntiDLL_CS2_SimpleAdmin : BasePlugin, IPluginConfig { + private int _banType; public PluginConfig Config { get; set; } = new(); private readonly HashSet _bannedPlayers = []; + private readonly HashSet _detections = []; private static PluginCapability AntiDll { get; } = new("AntiDLL"); private static PluginCapability SimpleAdminApi { get; } = new("simpleadmin:api"); - private int _banType = 0; private static ICS2_SimpleAdminApi? _simpleAdminApi; public override string ModuleName => "AntiDLL [CS2-SimpleAdmin Module]"; public override string ModuleDescription => "AntiDLL module for CS2-SimpleAdmin integration"; - public override string ModuleVersion => "1.0.0"; + public override string ModuleVersion => "1.0.1"; public override string ModuleAuthor => "daffyy"; public override void Load(bool hotReload) @@ -65,6 +65,9 @@ public sealed class AntiDLL_CS2_SimpleAdmin : BasePlugin, IPluginConfig OnDetection(player, eventName)); + if (!_detections.Add(player.Slot)) return; - } + // if (player.Connected != PlayerConnectedState.PlayerConnected) + // { + // _detections.Add(player.Slot); + // // AddTimer(3.0f, () => OnDetection(player, eventName)); + // return; + // } + + Logger.LogInformation("Detected \"{eventName}\" for \"{player}({steamid})\"", eventName, player.PlayerName, player.SteamID.ToString()); + } + + private void PunishPlayer(CCSPlayerController player) + { if (!_bannedPlayers.Add(player.Slot)) return; - + if (_banType == 1 && _simpleAdminApi != null) { _simpleAdminApi.IssuePenalty(new SteamID(player.SteamID), null, PenaltyType.Ban, Config.Reason, Config.Duration); } else if (Config.BanType == "kick") { - player.Disconnect(NetworkDisconnectionReason.NETWORK_DISCONNECT_KICKED_UNTRUSTEDACCOUNT); + player.Disconnect(NetworkDisconnectionReason.NETWORK_DISCONNECT_KICKED_VACNETABNORMALBEHAVIOR); } else { diff --git a/Modules/AntiDLL-CS2-SimpleAdmin/COMPILED/AntiDLL-CS2-SimpleAdmin/AntiDLL-CS2-SimpleAdmin.dll b/Modules/AntiDLL-CS2-SimpleAdmin/COMPILED/AntiDLL-CS2-SimpleAdmin/AntiDLL-CS2-SimpleAdmin.dll index c4d5ae0ef7291d5f8efba36a83f573daa293e959..2037b4eb67efe0b6f8a82f1f837b339b711c41dc 100644 GIT binary patch delta 4131 zcmai1dvH|M9sZrO_uhR3H@ll;^G-JJO-L{y0Q`?ji8h&Kyx!cxY8;g%Q2E4d9$*Vux%nKcVb$g=E6=CpP~%#Io0Ce< zRKhEdh?##cX*2tI(&r&^)RpjYE0I!H&Mk2%6zp{fUa&XA{F2wPEVIy(pLh*P7?IoW zL_duj1Uj^aGVb?6imYWc>gPlY{YdZNULzmP2M;1dY`Hg661S-N`FClLJsqB8{#bnCfHG(;N$4f9IMM}WM{%6!eJf^ltwOEan=bYlpbAJe9J>nJPH zsL|~xC@xF7lFO2+WV6Uhn2Nbh%2G9=6m+Ral*wr{{}5)1Re6c~feUN0yzD0OB)YfL9aTjljFn!ul-e|ERRsQ? zFR*3O3Y62R#NtvlDpsa7jqbDvY?HW2;yH<*bD=*aGbl2{U%1FqZa=L$DDl2B&Nccu zR8EZhfaah-sN>v$ZjEyf711O)sG9n0UfN4rseo=&yHRph6Twa{JdawIBC69a(vf=?+@~8N3^wRn{LNQHRvOW*w4qb)!UvvJ6xHp>j@LCS}H4bWS~|u0x##&^*j4 z7^62?q8iOSs5*`Hvqr3HLxbSi!A{TvZc&TBkC&F?-TXT+AZ2N zlHQtTnVKlCOSaFJX`R6;38h(q)ddzwv(W?sEp%s^#t~?tyV7ivGD8X-OtX;U0y~^$ zeS8Kh=HWEEjk~~3q*&f%tAz8_E*}*Y}A;xy$YM1 zD$7Nd39JW}!1C&pbRTtEce4z7CT)CMOR#IGs3PV1mUSP?BtMRIl&4=Kjf;jP+b75C zru!wE%2RDW#KRGL=^o|(W8zuqdS1Gwp5)ZRgS>iNL(qgN8$#FTO{gqIf391NDl3iI0@8fN}7eHfZhYv&>pFG zv&+^7I!ZIvX3D0e_Fl+i)(up~p0M9Swd`x_05oEDnxy9pJ+JMe4mM%`0k*R6ucUjG zgY+4x?8mf{joA|qp}9yW=pt>f3*2g-hSN`N2dRghqm#6S{Yrfnn%|MoRAWu_u=Vr; z>8wtjLCFSffI=wt2K|N}vcH95V<>i!n(QA!{+gYo3F+Cv3hn2iKTa2@p7tueG|B$P zED3g$p2TQo=ymk8QjYSd#B87oy%y-BC{1GR39O=>w1(B-FnXNV(m0N;MU+8Lvqh9e zzXTT2pMe#02Dp$)U~Q)Bf!EU-U>9u$u9f8~nzBL}p-=DN&c0 zlsLh5(h>fsl#fgKB`KegNS1?iFYm-^`7M^CI63gSKvmlPjHttU7&sy25k<(`xWG@8 zp8%)SM}$WG8NF>@$;$k}TQ^@MjAkr6!>GQ#GBw>W!c44)1IW3ga# z(M`djP&5|NW9Dnw%S>m^k^1%FREdqF`W<1C>E|o1)D%h0<2lRCb2&AR{;_Z<`hDSN zW_lksPka5=E+ZV%Lt*nvZ@*)EAQ%e{%KCxa&QdYHn}X4?;TQ!)_vJWyqBj^R$$UAt zyxthy-V+Y)8qhYM;GjJZRqkF%mYt&uTSLaKv#l9P&+dA_IRc($NXd^jsqA9<38G#8`d60$g0 zk)14XJmf4cQhbbY4d6*0Rf%(_GZm<-IiAhTrurDqB9SnTOrE$ME}rCL__O$E3kTRV zAGzGgX_#FqxKjujb}P5#xRVpiCJJO+<5N-Kv?uOP&NvZ)jwfG0&z&eo7NFDSqm;iU z8uNHzw|Sv(k=N$q?p>ZS&mIlK^u(R$4;s^7^iE6b;(?})_O=~?U}K}+9MFU9?M=;X z`ryEhmX?-|B^?7xS_cLLK^@9X#kH13v+~pMiJo~1~a@q1z&z0QD9w>e3l+(A(vc8oT(*Rzh9n?;3SU~}-m`40` woaX^x5c+o5n_<7DB7YsU1W^OPR^XtF)XnEB)^XqRQ|`(y*i@tSKLr2f3jhEB delta 3775 zcmai1eQ;FO6+idxd-uIvl4U>0cStrNkWEO!<^z&Qz@z~wAQDADq!^ZD13Ls3vH=D| zvWqxYqzq=B?U0rt=+Kc?3N?%$r7}=khGtquN0~AVBAsEVASxC|+iGcl_wJK|f3z>$ z-#x!`&OP_Md(XZ5NVX;KfA;BOBlzb-WIvavI53KZhzg((Ddokc!JjX3|DcIzzEm_5 zeeD=5@~15)N&|m(D$&DM5wEb8uu|9Me5e9w1=cfcA`4irvQk!JU1Y^MClEnC-$mo3 zQ)dZLMHUgWssr^_8&3wjM6U7z-iL{`@?!4jS3>T9DS7UI)4IXSna|2|UTl9nElQ8#9dQfq;e(~0#9=@6=FW*x||9Vlr3d{h|?t4kfPTS zgd>t46C8`a(j#J6dRK)hVuiA2<-E_pOpaIpbV51#LxP@R2_gpu$1zs81n19z@O}<^=S7DHpE{+6r&V zJs`I?R(^*c)S;imeS&UrbQy?d0<@cY!-bm0oB0^OS@E*6IwwB{y#20t(>7c%U0MYvJq}=tE;Hw~?2? z{?R{KEoG{AQ#GnVh0uh0AXJpBSwb#UgNCruxp zLr|e6afEL%M$=)ruT0zGSF|$y}FCu z(gwJo!_c_NaFhra9nc53i|S~A`)CFoCKo+G$Bj(-8EvCnnxuzxK?xzpelFzLGTNH} z$uYN>E_%Tn;G5_VSpEX~i@1R7JkGs(0ack7v`p&Kw;|kLja|STE~haKi9d!cs8t0m zGGv@S`pn3s9xf-#(B)*O!~mkLq`lCDfi9YbIPzIbIMs6DK%wW0QezD|v>JCo1e>4XlV>Hk(*A?PaaN0X7$&QC`Emv`AmT z1eKVJfe#o<6X+WFWY!jtiCl4B(nm1CBR0E^ePk3?>?!kzxQV@w+U%I{fc4nSB}TCK zkJ~IuFtBYlo2K0)jds}VAV5>$U%n=auJK<(ZOoTm}q#EDvl0&M>3% zkXo=Y0;$IgMqY{~u*5kaE*yrK;h}1UjS5>7&Q|!K!X*mBK$H_OgVrnD4iq#9^e9a( zZC0AkfTc7>Y< zr{w)gKB453O1`AzM%qX}K_SW;LeMN!r`XMi&Wk<3JS8vEq#WiF&uIIAkLw43v-DpA zE0uny^8Z?wK1+-}*46ab>gg1tT{KK-OiRjozwQJ0X4jEDSn+QX%R)x<7t}S(cV5I8ei8P z-rU+9j>l^zw}+@{{@NLl-bhDpG`4p7iuU%9b0W z_D0$8TRtbZ&W(v!$&5zc(qSFV*kko)P7^JioexLXSg&Q4Tc2bO@rAusA}i#FD$;Xb zcNpIXP1Ebz+k00RTHr(C2nP#q82ONGgdm3XQ>#Lj@Y?GCin{V~zF14!j20g2{zx3uSbBgYJWn|gT zb>XbPS?}eQB{<8^79qx10ckGg+pHPPw@hUCmY~xDI3@sJzwj^`TR;vM%Qx}+=j(Tm z&DR2qaRKlpx2Fb#<>07J0Mki0ugO9Da|DR%8NP+g)B}wB$zy0fPlk65^R72D66j44 zAdfdWBvQ)J0f#TSKh2l?X^LaKi6lIuNQS=?@!gg5ysIJ)%! zxLc3|=r#f*LzuckjTm#ANA7J;c+a}-G5^@-|M#CNt?T(A(;<9mXi+PFY?UDb9QnJg z60xIIFMaspzGaOs9$Hj(?I^~7^PG`#V6Z5YpJ*EXqVN$m>@I%H zF~6Qd)PS#?2u;CNw1OJJYtibV>4MY=O)aDbv}(vwTL-L0-w3G&{bc1)2aH(9#?RxI Nnufg-K4pU;<3AB)fS&*W diff --git a/Modules/AntiDLL-CS2-SimpleAdmin/COMPILED/AntiDLL-CS2-SimpleAdmin/AntiDLL-CS2-SimpleAdmin.pdb b/Modules/AntiDLL-CS2-SimpleAdmin/COMPILED/AntiDLL-CS2-SimpleAdmin/AntiDLL-CS2-SimpleAdmin.pdb index 6b3b2960cd9af618b138d1c688e07e424daccea8..a401603541b3809609f6556a4b06980436ba8967 100644 GIT binary patch delta 1400 zcmYk63rtgI6vxkZxzIL%mSW4J6oK+`3Q|g;P$razScG6;OkIGrg`$K4tF%hDY0<%) zI5S*jFoY3x=n|&Ub*&@n9&rOiw+ux_HgW8QnxPAm!OVv2+?HhAZ zg_??m^K$eV`Z}iB&4NDpztzIL&U~)#Y)jxFK~Bp8reUk!Ne+h%Krog7Bm(vUFGPee z193hmko5>tV?0ymA?^sXkact-$~_nZH!Fv1&rV1ppg=MZ6|x1{ij*NbM2|EeO~{{! zo1B0c$wExXQRJlU3@Ig+VQebExx_gKK#ATDJ+3=Za`XY{nH9{XMgo_4=9z`d zycB&9dV1;pX!N50y%<(wg1KDnILl%JS7a3MldN5CQP$gTH$$|eJ*Kb0d(X!mBcJzP z+IBv&ysqs@c1`H-se{Mc6IzOFgLE2YDb1vZdLPX5vT~-A3a2Le^)vkY7k^5hhj=FL~rxs87`KRtLND!X%b;oGp$T;&HLH5XVjajM8`KW`X*H1PIQ z-^I7mZsZ?R&nQ=RKl?EC(|5bOXBMVZy=9O0cBm_hrJ<_8nC$O*KWa4%do?{1Hh#jg zf0!Hy;(l0oXKl&a`Ry(7p}(wCA0Fy3Q2UdcIs&N3%wAcufXba|TjL!q9+!O6?eR&x zU|Y$EKDVb|q$+B=oX7E9Z0{_X=zKXwniqL~_(+7o)bQ6ktLo?dPrq*)tuEN^?9bamY{s#U-0QV|mcvu}+g0Z}#&>mYJaBE`$>Wht0k-h^(wDxk zn~X4IWDdSI_2^=->Ud_}57qp84L7>qY!m2YLyME8UMb2~QUeEk>@SQTY2A2g_ntR2 z-1&bN40S=X9!h_o;GQ{UU$p1LHHu4>V_$V~|F-P8-hcPk-!}D$au1xndn>q1-Z`H% zF5FpJH8rO>C-DhCEA7iVH8i=;WR;ZZH(r?|*7w*o(TVX|NwPetvO*UZr;%1@baJ^w znxrY$R?1|uRNF-U`6u4V2C{}aRX^2I~#`_3FvB5f~5L=j^ zMA&wYH>{?>8wh1a1)-Y5f)WbWfskTTu$MMR0H0#BKuDWIa6zJ;6M&s-34~F;zOJ5) z2YF@*(;yE2GZC+HmeMh_nF|J*9m@zOknEkm2#(6?Kwbm2XQ&@RZK(@58Vj&O$36V`jq=02DL}W80NQb2?LQ|^|D^)A9 zy-F!khNU{g(2i3{QYsZJYR7S?w$mxp+LT4CWwQ$wmsZ;I68`YbeEH7r_Ci5-o zI&@7U{a%ESZ&JY?FfN4`{ln|F2i)xM12lu6<0!isrt4%#S#*TZ5xhY*H30HH9;Kt})% zkOK(zqfk%~2zFT59-IrZ1$0!&S1^1>0Ck*uBY^-ksaE0C2vJ0UIU>-2B#&B)q228&}KktF@fygzM zLQeq9SY!HA737Bm-q6rqPs`_%v65-W}`z;&zXsZ*9L~jNJ4-6zhQi| zzhETOyeWkrcSlvmZP|8Va5KbNAJ?R%p&EohpzN!poY!C8hid>uWN?C)i z7y{pyA1gW@uv-{)YP6j_E%P$$yL7Ad*VYHkw<-G)D&wVmmw%I%yR%Zy-EHl+?->ni z;SEiU*SG!AIK4|3e{tp5cuRdu`Kq~FwrWT;?C#$9^$q^|dkqZ&_1#DMzn4lXx%*CY zKJbgalUDJA{NPW*KDV0{lZf1R*yy5Yrxo@Z^Pao2SNH|(#w-|y+~I8h;;H`Y)s%#sbE z5_!HRM7>8LkxD`}T4{kos+DU46&h`@CQz#g4${h`+F+?>K+IxGVmT3X9!Snsi*XfJ zvo@W>EaV(%F_%QErC4m8(rQub;5g<`I>jOEPj#_*R8|;|?}m+u*qDZmW!R|0#yV^~ zg^g#i@gh|bHW}=OO$=-jVUrS@)Yw#wO)c0ogiSwMMhbkaCbpQn^+q1l38f6Hsjrj* zOi({7J#8TuVkVPfZ}!y-AnvjhmK_QqAVYQp6C)o|=YTMwOQ6#)L?KzM4G{QJjKT?L zM