using UnityEngine;
using UnityEngine.SceneManagement;
using Mirror;
/*
Documentation: https://mirror-networking.gitbook.io/docs/components/network-authenticators
API Reference: https://mirror-networking.com/docs/api/Mirror.NetworkAuthenticator.html
*/
public class #SCRIPTNAME# : NetworkAuthenticator
{
#region Messages
public struct AuthRequestMessage : NetworkMessage { }
public struct AuthResponseMessage : NetworkMessage { }
#endregion
#region Server
///
/// Called on server from StartServer to initialize the Authenticator
/// Server message handlers should be registered in this method.
///
public override void OnStartServer()
{
// register a handler for the authentication request we expect from client
NetworkServer.RegisterHandler(OnAuthRequestMessage, false);
}
///
/// Called on server from OnServerAuthenticateInternal when a client needs to authenticate
///
/// Connection to client.
public override void OnServerAuthenticate(NetworkConnection conn) { }
///
/// Called on server when the client's AuthRequestMessage arrives
///
/// Connection to client.
/// The message payload
public void OnAuthRequestMessage(NetworkConnection conn, AuthRequestMessage msg)
{
AuthResponseMessage authResponseMessage = new AuthResponseMessage();
conn.Send(authResponseMessage);
// Accept the successful authentication
ServerAccept(conn);
}
#endregion
#region Client
///
/// Called on client from StartClient to initialize the Authenticator
/// Client message handlers should be registered in this method.
///
public override void OnStartClient()
{
// register a handler for the authentication response we expect from server
NetworkClient.RegisterHandler(OnAuthResponseMessage, false);
}
///
/// Called on client from OnClientAuthenticateInternal when a client needs to authenticate
///
public override void OnClientAuthenticate()
{
AuthRequestMessage authRequestMessage = new AuthRequestMessage();
NetworkClient.Send(authRequestMessage);
}
///
/// Called on client when the server's AuthResponseMessage arrives
///
/// The message payload
public void OnAuthResponseMessage(AuthResponseMessage msg)
{
// Authentication has been accepted
ClientAccept();
}
#endregion
}