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); }