Refactor player validation in WasdManager methods

This commit is contained in:
Juzlus 2025-09-12 04:00:35 +02:00
parent f2b9cec14c
commit 6805eaa746
2 changed files with 20 additions and 21 deletions

View file

@ -7,37 +7,32 @@ public class WasdManager : IWasdMenuManager
{ {
public void OpenMainMenu(CCSPlayerController? player, IWasdMenu? menu) public void OpenMainMenu(CCSPlayerController? player, IWasdMenu? menu)
{ {
if(player == null) if(!TryGetPlayer(player, out var menuPlayer)) return;
return; menuPlayer.OpenMainMenu((WasdMenu?)menu);
WASDMenuAPI.Players[player.SteamID].OpenMainMenu((WasdMenu?)menu);
} }
public void CloseMenu(CCSPlayerController? player) public void CloseMenu(CCSPlayerController? player)
{ {
if(player == null) if (!TryGetPlayer(player, out var menuPlayer)) return;
return; menuPlayer.OpenMainMenu(null);
WASDMenuAPI.Players[player.SteamID].OpenMainMenu(null);
} }
public void CloseSubMenu(CCSPlayerController? player) public void CloseSubMenu(CCSPlayerController? player)
{ {
if(player == null) if (!TryGetPlayer(player, out var menuPlayer)) return;
return; menuPlayer.CloseSubMenu();
WASDMenuAPI.Players[player.SteamID].CloseSubMenu();
} }
public void CloseAllSubMenus(CCSPlayerController? player) public void CloseAllSubMenus(CCSPlayerController? player)
{ {
if(player == null) if (!TryGetPlayer(player, out var menuPlayer)) return;
return; menuPlayer.CloseAllSubMenus();
WASDMenuAPI.Players[player.SteamID].CloseAllSubMenus();
} }
public void OpenSubMenu(CCSPlayerController? player, IWasdMenu? menu) public void OpenSubMenu(CCSPlayerController? player, IWasdMenu? menu)
{ {
if (player == null) if (!TryGetPlayer(player, out var menuPlayer)) return;
return; menuPlayer.OpenSubMenu(menu);
WASDMenuAPI.Players[player.SteamID].OpenSubMenu(menu);
} }
public IWasdMenu CreateMenu(string title = "", string controlText = "") public IWasdMenu CreateMenu(string title = "", string controlText = "")
@ -52,15 +47,19 @@ public class WasdManager : IWasdMenuManager
public bool HasMenu(CCSPlayerController? player) public bool HasMenu(CCSPlayerController? player)
{ {
if (player == null) return TryGetPlayer(player, out _);
return false;
return WASDMenuAPI.Players.ContainsKey(player.SteamID);
} }
public void UpdateActiveMenu(CCSPlayerController? player, Dictionary<string, Action<CCSPlayerController, IWasdMenuOption>> list) public void UpdateActiveMenu(CCSPlayerController? player, Dictionary<string, Action<CCSPlayerController, IWasdMenuOption>> list)
{ {
if (player == null) if (!TryGetPlayer(player, out var menuPlayer)) return;
return; menuPlayer.UpdateActiveMenu(list);
WASDMenuAPI.Players[player.SteamID].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);
} }
} }