From e6272f610adc1b188003e29645865321832e60a0 Mon Sep 17 00:00:00 2001 From: RaidMax Date: Tue, 25 Jun 2024 20:51:03 -0500 Subject: [PATCH] Move/add client getters to ScriptPluginExtensions --- Application/Extensions/ScriptPluginExtensions.cs | 14 ++++++++++++++ SharedLibraryCore/Server.cs | 1 + 2 files changed, 15 insertions(+) diff --git a/Application/Extensions/ScriptPluginExtensions.cs b/Application/Extensions/ScriptPluginExtensions.cs index b6a2c87c..bc6fd5e7 100644 --- a/Application/Extensions/ScriptPluginExtensions.cs +++ b/Application/Extensions/ScriptPluginExtensions.cs @@ -1,7 +1,9 @@ using System.Collections.Generic; using System.Linq; +using Data.Models.Client; using Data.Models.Client.Stats; using Microsoft.EntityFrameworkCore; +using SharedLibraryCore.Interfaces; namespace IW4MAdmin.Application.Extensions; @@ -25,4 +27,16 @@ public static class ScriptPluginExtensions { return set.Where(stat => clientIds.Contains(stat.ClientId) && stat.ServerId == (long)serverId).ToList(); } + + public static EFClient GetClientByNumber(this IGameServer server, int clientNumber) => + server.ConnectedClients.FirstOrDefault(client => client.ClientNumber == clientNumber); + + public static EFClient GetClientByGuid(this IGameServer server, string clientGuid) => + server.ConnectedClients.FirstOrDefault(client => client?.GuidString == clientGuid?.Trim().ToLower()); + + public static EFClient GetClientByXuid(this IGameServer server, string clientGuid) => + server.ConnectedClients.FirstOrDefault(client => client?.XuidString == clientGuid?.Trim().ToLower()); + + public static EFClient GetClientByDecimalGuid(this IGameServer server, string clientGuid) => + server.ConnectedClients.FirstOrDefault(client => client.NetworkId.ToString() == clientGuid?.Trim().ToLower()); } diff --git a/SharedLibraryCore/Server.cs b/SharedLibraryCore/Server.cs index 096794d4..44c7ade5 100644 --- a/SharedLibraryCore/Server.cs +++ b/SharedLibraryCore/Server.cs @@ -434,6 +434,7 @@ namespace SharedLibraryCore public abstract Task GetIdForServer(Server server = null); + [Obsolete("Use the ScriptPluginExtension helper")] public EFClient GetClientByNumber(int clientNumber) => GetClientsAsList().FirstOrDefault(client => client.ClientNumber == clientNumber); }