45 lines
1.3 KiB
C#
45 lines
1.3 KiB
C#
using GTANetworkAPI;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Text;
|
|
|
|
/**
|
|
* @overview Life of German Reallife - Client Service (ClientService.cs)
|
|
* @author hydrant
|
|
* @copyright (c) 2008 - 2018 Life of German
|
|
*/
|
|
|
|
namespace reallife_gamemode.Server.Services
|
|
{
|
|
class ClientService
|
|
{
|
|
public static Client GetClientByName(string name)
|
|
{
|
|
/* Funktionsaufbau: Prüft erst, ob ein Spieler mit exakt diesem Namen online ist
|
|
* Wenn Ja: Wird dieser zurückgegeben
|
|
* Wenn Nein: Wird der erste Spieler zurückgegeben, dessen Namen mit dem eingegebenen Parameter übereinstimmt
|
|
* Gibt "null" zurück, falls kein Client gefunden wurde
|
|
*/
|
|
Client toReturn = null;
|
|
name = name.ToLower();
|
|
|
|
List<Client> playerList = NAPI.Pools.GetAllPlayers();
|
|
|
|
if(int.TryParse(name, out int id))
|
|
{
|
|
toReturn = playerList.Find(p => p.Handle.Value == id);
|
|
return toReturn;
|
|
}
|
|
|
|
toReturn = playerList.Find(p => p.Name.ToLower() == name);
|
|
|
|
if(toReturn == null)
|
|
{
|
|
toReturn = playerList.Find(p => p.Name.ToLower().StartsWith(name));
|
|
}
|
|
|
|
return toReturn;
|
|
}
|
|
}
|
|
}
|