35 lines
925 B
C#
35 lines
925 B
C#
using FishNet.Object;
|
|
using FishNet.Object.Synchronizing;
|
|
using FishNet.Connection;
|
|
using FishNet;
|
|
using log4net;
|
|
using System.Reflection;
|
|
|
|
public class ClientInstance : NetworkBehaviour
|
|
{
|
|
private static readonly ILog Log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
|
|
#region Sync
|
|
private readonly SyncVar<string> username = new();
|
|
#endregion
|
|
|
|
#region Username
|
|
public string Username { get => username.Value; set => username.Value = value; }
|
|
|
|
#endregion
|
|
#region Helper
|
|
public static ClientInstance ReturnClientInstance(NetworkConnection conn)
|
|
{
|
|
if (InstanceFinder.IsServerStarted && conn != null)
|
|
{
|
|
// Expects the client instance to be the very first object of that connection
|
|
NetworkObject nob = conn.FirstObject;
|
|
return (nob == null) ? null : nob.GetComponent<ClientInstance>();
|
|
}
|
|
else
|
|
{
|
|
Log.Warn("Unable to find client instance");
|
|
return null;
|
|
}
|
|
}
|
|
#endregion
|
|
} |