Files
survival-game/Assets/ScriptTemplates/52-Mirror__Network Authenticator-NewNetworkAuthenticator.cs.txt
2025-06-16 15:14:23 +02:00

107 lines
3.3 KiB
Plaintext

using System;
using System.Collections;
using System.Collections.Generic;
using Mirror;
using UnityEngine;
/*
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
/// <summary>
/// Called on server from StartServer to initialize the Authenticator
/// <para>Server message handlers should be registered in this method.</para>
/// </summary>
public override void OnStartServer()
{
// register a handler for the authentication request we expect from client
NetworkServer.RegisterHandler<AuthRequestMessage>(OnAuthRequestMessage, false);
}
/// <summary>
/// Called on server from OnServerConnectInternal when a client needs to authenticate
/// </summary>
/// <param name="conn">Connection to client.</param>
public override void OnServerAuthenticate(NetworkConnectionToClient conn) { }
/// <summary>
/// Called on server when the client's AuthRequestMessage arrives
/// </summary>
/// <param name="conn">Connection to client.</param>
/// <param name="msg">The message payload</param>
public void OnAuthRequestMessage(NetworkConnectionToClient conn, AuthRequestMessage msg)
{
AuthResponseMessage authResponseMessage = new AuthResponseMessage();
conn.Send(authResponseMessage);
// Accept the successful authentication
ServerAccept(conn);
}
/// <summary>
/// Called when server stops, used to unregister message handlers if needed.
/// </summary>
public override void OnStopServer()
{
// Unregister the handler for the authentication request
NetworkServer.UnregisterHandler<AuthRequestMessage>();
}
#endregion
#region Client
/// <summary>
/// Called on client from StartClient to initialize the Authenticator
/// <para>Client message handlers should be registered in this method.</para>
/// </summary>
public override void OnStartClient()
{
// register a handler for the authentication response we expect from server
NetworkClient.RegisterHandler<AuthResponseMessage>(OnAuthResponseMessage, false);
}
/// <summary>
/// Called on client from OnClientConnectInternal when a client needs to authenticate
/// </summary>
public override void OnClientAuthenticate()
{
AuthRequestMessage authRequestMessage = new AuthRequestMessage();
NetworkClient.Send(authRequestMessage);
}
/// <summary>
/// Called on client when the server's AuthResponseMessage arrives
/// </summary>
/// <param name="msg">The message payload</param>
public void OnAuthResponseMessage(AuthResponseMessage msg)
{
// Authentication has been accepted
ClientAccept();
}
/// <summary>
/// Called when client stops, used to unregister message handlers if needed.
/// </summary>
public override void OnStopClient()
{
// Unregister the handler for the authentication response
NetworkClient.UnregisterHandler<AuthResponseMessage>();
}
#endregion
}