From 6805eaa746e952ef6e2630422df9285327e1dd38 Mon Sep 17 00:00:00 2001 From: Juzlus Date: Fri, 12 Sep 2025 04:00:35 +0200 Subject: [PATCH] Refactor player validation in WasdManager methods --- .../Classes/WasdManager.cs | 41 +++++++++--------- .../plugins/jRandomSkills/WASDMenuAPI.dll | Bin 15360 -> 15360 bytes 2 files changed, 20 insertions(+), 21 deletions(-) diff --git a/WASDMenuAPI - SRC Files/Classes/WasdManager.cs b/WASDMenuAPI - SRC Files/Classes/WasdManager.cs index f6322ea..96d067a 100644 --- a/WASDMenuAPI - SRC Files/Classes/WasdManager.cs +++ b/WASDMenuAPI - SRC Files/Classes/WasdManager.cs @@ -7,37 +7,32 @@ public class WasdManager : IWasdMenuManager { public void OpenMainMenu(CCSPlayerController? player, IWasdMenu? menu) { - if(player == null) - return; - WASDMenuAPI.Players[player.SteamID].OpenMainMenu((WasdMenu?)menu); + if(!TryGetPlayer(player, out var menuPlayer)) return; + menuPlayer.OpenMainMenu((WasdMenu?)menu); } public void CloseMenu(CCSPlayerController? player) { - if(player == null) - return; - WASDMenuAPI.Players[player.SteamID].OpenMainMenu(null); + if (!TryGetPlayer(player, out var menuPlayer)) return; + menuPlayer.OpenMainMenu(null); } public void CloseSubMenu(CCSPlayerController? player) { - if(player == null) - return; - WASDMenuAPI.Players[player.SteamID].CloseSubMenu(); + if (!TryGetPlayer(player, out var menuPlayer)) return; + menuPlayer.CloseSubMenu(); } public void CloseAllSubMenus(CCSPlayerController? player) { - if(player == null) - return; - WASDMenuAPI.Players[player.SteamID].CloseAllSubMenus(); + if (!TryGetPlayer(player, out var menuPlayer)) return; + menuPlayer.CloseAllSubMenus(); } public void OpenSubMenu(CCSPlayerController? player, IWasdMenu? menu) { - if (player == null) - return; - WASDMenuAPI.Players[player.SteamID].OpenSubMenu(menu); + if (!TryGetPlayer(player, out var menuPlayer)) return; + menuPlayer.OpenSubMenu(menu); } public IWasdMenu CreateMenu(string title = "", string controlText = "") @@ -52,15 +47,19 @@ public class WasdManager : IWasdMenuManager public bool HasMenu(CCSPlayerController? player) { - if (player == null) - return false; - return WASDMenuAPI.Players.ContainsKey(player.SteamID); + return TryGetPlayer(player, out _); } public void UpdateActiveMenu(CCSPlayerController? player, Dictionary> list) { - if (player == null) - return; - WASDMenuAPI.Players[player.SteamID].UpdateActiveMenu(list); + if (!TryGetPlayer(player, out var menuPlayer)) return; + menuPlayer.UpdateActiveMenu(list); + } + + private bool TryGetPlayer(CCSPlayerController? player, out WasdMenuPlayer menuPlayer) + { + menuPlayer = null!; + if (player == null || !player.IsValid || player.IsBot || player.SteamID == 0) return false; + return WASDMenuAPI.Players.TryGetValue(player.SteamID, out menuPlayer); } } \ No newline at end of file diff --git a/jRandomSkills - Server Files/plugins/jRandomSkills/WASDMenuAPI.dll b/jRandomSkills - Server Files/plugins/jRandomSkills/WASDMenuAPI.dll index 6004f5793e9527bb374bcaa5a9eaa12fd7c657a5..b7744d5efcca8f1b9065b56a759469c63bfd4fb9 100644 GIT binary patch delta 4909 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 GQuDv8{(SWS delta 4882 zcmb7I32+ou8vftwW4b#BlSu-E0GV7QB*Pt04uKesa0CcJkwZzAfW(88B9PPnRx25N2DsfkTQiQs>#B%0-A%a}Ju z6o|0bEZmF}aOSHVA4vw?Fpy||Hj(g}hhE~%knLiEC$t#~3%nKDEMJPB){0DsQ6~d9 z!kGeWaq@sWoN>Uforyr9rF#_#O_1J6*xId>$aLhYu0(o%zixe2r9(JtPV-t5`-tgY zd*b`v(}{-Hnv^LjF|~d& zP;ay`hWY}Op`z4*k|13i*Zrcnv>=2yrq2&!TrSq_qM-UBRfc{%=qF-|JH`CM=5)8d z(2q(Ts8KI;XYoulOo1|At1n|)zFt3`za2B7m_lgmd{dZ^&aO(;&gU?@oA1VKMB zW0|t};wjVXu}n021YV2^wsbM6kaGFVeHyjWzIsPq;_`d+phi!FB* zQDK;96Goa_)wrx~>9q|QH|^^|)QiRNyn!ip9C*GHQ#;AKmuGQJ)pOTOwtX;r?iJdUFh8q>rH)vVbV#x&@|~+3bPcB zQn*XuDUGeoD#LpUU(wn_4(*{y!l4GBN$=6;Mlzi>i!_H$D9uCG=Ppuva5ZTON}BXO zFq!6BVFau}fJu*-bM5Qt4U>aEBz9yNV|*fF^F!ZhcU2Z zagF~36m_tP+q#lZm z_1;X&ba$G^LzS=%SGt|H&n~CcB21-7TuEs(m9*?IjaMw48Eiw*LM3J3Bgm4sOF`Gk z7T{LV3apYIaF5t1P5Q)s5V%1;0!+6V_Zuz1Ar^dGIwhU}DReyGDuc1v^yD!5we>rs zxJPi(s7n2Th(o>%iMrAq#vkBw26NRF4eSF>rgwn7=p$sfCiFL{CW$(dK9mRHagKc| z!=2b-+dYVD40UxF`|U9rjt-wC9k6CaKLy|4x`Tl#+&jIIu$V9 zl$X-CJ`=nthtq-q+_vA$NLmku`u^06q)itXpHyr$9>trqk$BJKz|~YmPimLZh=BE> zXSFdjUNJxESeh2t7UPjN7BPZ`AHeZ9&L(JPX2YF;rn0_wBk49qhCPBp(m*pr|bXUbc^4#i?N;y z{<*F%Y_aofox%H}qz1GisIz>hY2dMD;fH|@v}t`v;QfuyjtrnfeStXt2C1*%3QHAE zQdp^Qj=~zCpgLeW-308RFrBtTHfa|yipMR>i8R_CgePW>Q4YMx{iL zM}+Lxl>7$pUgyus=Y6zNZ5+gpitnu5D0V*%p%~pBN)sh?(&{HhQMFS}qtN06kw~uZ zRA^5Tm7)=aOQ_ObOEsbz=h`?lu~d9R$IV7DRmmB`*A#~C7dMGz);2K*LD$xC-8?tS>{}q`wM%8<5AePw78Z_?gmwru4_5*`W);LYJ&aU zC`g;08z8I71W!~=fIM9bm0XA59r|h|A5s27vZs*j6P27NTWPYDrc`pVQl%+Xni{34 zQJNa1sdXifpc!~fwkq=$C2v>q%fMIkPZb^oVgwp{>Ke=0N*=3m6V(cv6s}R$%}U;? zn-%U=ctq!kB7-r{jS;2ae+5h(F5mSV`0yo{W(ZY!jNoa)Csf2nJQw7iC# zd~Joi+j}S{FaC1QS`nX_7uUR$!cEq-iy9Y9YFu<+sI7>{iry7*Ggc+6 zvihZsHFZlHyesaCMw$-b&y0#x zkxFJrM)D$-9+FZTQ6W<)A*4mpWO}4jM8dGjl%_3ulp>SjuMNr-@oxr?5rb(%?+?z9 zsF;E0F}4p;PyD*=S>g|a5sy5a7o`3Jvkta(UQJ1Ec+cuD@4V?BTgo4J>#Iwx9d&cP z`$`rM4wQGCQzG?m_N~}?!?=SlJt&JaP8{YR&cXF9%h9&%uJXi8Z`{!R-uj`n@#JCu Q(q!V0c*=-VqHSR4e_5Gk;Q#;t