using FishNet.Connection; using FishNet.Managing; using System; using UnityEngine; namespace FishNet.Authenticating { /// /// When inherited from this can be used to create a custom authentication process before clients may communicate with the server. /// public abstract class Authenticator : MonoBehaviour { #region Public. /// /// True if this authenticator has been intiialzied. /// public bool Initialized { get; private set; } #endregion #region Protected. /// /// NetworkManager for this Authenticator. /// protected NetworkManager NetworkManager { get; private set; } #endregion /// /// Called when authenticator has concluded a result for a connection. Boolean is true if authentication passed, false if failed. /// Server listens for this event automatically. /// public abstract event Action OnAuthenticationResult; /// /// Initializes this script for use. /// /// public virtual void InitializeOnce(NetworkManager networkManager) { NetworkManager = networkManager; Initialized = true; } /// /// Called on the server immediately after a client connects. Can be used to send data to the client for authentication. /// /// Connection which is not yet authenticated. public virtual void OnRemoteConnection(NetworkConnection connection) { } } }