Skip to content

Commit

Permalink
Simplify RegisterHandler (#160)
Browse files Browse the repository at this point in the history
BREAKING CHANGE: NetworkConneciton.RegisterHandler only needs message class
  • Loading branch information
paulpach committed Apr 8, 2020
1 parent 3c6a4ae commit f4f5167
Show file tree
Hide file tree
Showing 8 changed files with 17 additions and 19 deletions.
4 changes: 2 additions & 2 deletions Assets/Mirror/Authenticators/BasicAuthenticator.cs
Original file line number Diff line number Diff line change
Expand Up @@ -30,12 +30,12 @@ public class AuthResponseMessage : MessageBase
public override void OnServerAuthenticate(NetworkConnection conn)
{
// wait for AuthRequestMessage from client
conn.RegisterHandler<NetworkConnection, AuthRequestMessage>(OnAuthRequestMessage, false);
conn.RegisterHandler<AuthRequestMessage>(OnAuthRequestMessage, false);
}

public override void OnClientAuthenticate(NetworkConnection conn)
{
conn.RegisterHandler<NetworkConnection, AuthResponseMessage>(OnAuthResponseMessage, false);
conn.RegisterHandler<AuthResponseMessage>(OnAuthResponseMessage, false);

var authRequestMessage = new AuthRequestMessage
{
Expand Down
2 changes: 1 addition & 1 deletion Assets/Mirror/Examples/Chat/Scripts/ChatNetworkManager.cs
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ public class CreatePlayerMessage : MessageBase

public override void OnServerConnect(NetworkConnection conn)
{
conn.RegisterHandler<NetworkConnection, CreatePlayerMessage>(OnCreatePlayer);
conn.RegisterHandler<CreatePlayerMessage>(OnCreatePlayer);
}

public void OnAuthenticated(NetworkConnection conn)
Expand Down
5 changes: 2 additions & 3 deletions Assets/Mirror/Runtime/INetworkConnection.cs
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,8 @@ public interface INetworkConnection
{
void Disconnect();

void RegisterHandler<C, T>(Action<C, T> handler, bool requireAuthentication = true)
where T : IMessageBase, new()
where C : NetworkConnection;
void RegisterHandler<T>(Action<NetworkConnection, T> handler, bool requireAuthentication = true)
where T : IMessageBase, new();

void RegisterHandler<T>(Action<T> handler, bool requireAuthentication = true) where T : IMessageBase, new();

Expand Down
5 changes: 2 additions & 3 deletions Assets/Mirror/Runtime/NetworkConnection.cs
Original file line number Diff line number Diff line change
Expand Up @@ -159,9 +159,8 @@ void AdapterFunction(NetworkConnection conn, NetworkReader reader, int channelId
/// <typeparam name="T">Message type</typeparam>
/// <param name="handler">Function handler which will be invoked for when this message type is received.</param>
/// <param name="requireAuthentication">True if the message requires an authenticated connection</param>
public void RegisterHandler<C, T>(Action<C, T> handler, bool requireAuthentication = true)
public void RegisterHandler<T>(Action<NetworkConnection, T> handler, bool requireAuthentication = true)
where T : IMessageBase, new()
where C : NetworkConnection
{
int msgType = MessagePacker.GetId<T>();
if (LogFilter.Debug && messageHandlers.ContainsKey(msgType))
Expand All @@ -180,7 +179,7 @@ void AdapterFunction(NetworkConnection conn, NetworkReader reader, int channelId
/// <param name="requireAuthentication">True if the message requires an authenticated connection</param>
public void RegisterHandler<T>(Action<T> handler, bool requireAuthentication = true) where T : IMessageBase, new()
{
RegisterHandler<NetworkConnection, T>((_, value) => { handler(value); }, requireAuthentication);
RegisterHandler<T>((_, value) => { handler(value); }, requireAuthentication);
}

/// <summary>
Expand Down
8 changes: 4 additions & 4 deletions Assets/Mirror/Runtime/NetworkManager.cs
Original file line number Diff line number Diff line change
Expand Up @@ -623,8 +623,8 @@ void FinishLoadSceneServerOnly()

void RegisterServerMessages(NetworkConnection connection)
{
connection.RegisterHandler<NetworkConnection, ReadyMessage>(OnServerReadyMessageInternal);
connection.RegisterHandler<NetworkConnection, RemovePlayerMessage>(OnServerRemovePlayerMessageInternal);
connection.RegisterHandler<ReadyMessage>(OnServerReadyMessageInternal);
connection.RegisterHandler<RemovePlayerMessage>(OnServerRemovePlayerMessageInternal);
}

// called after successful authentication
Expand Down Expand Up @@ -668,8 +668,8 @@ void OnServerRemovePlayerMessageInternal(NetworkConnection conn, RemovePlayerMes

void RegisterClientMessages(NetworkConnection connection)
{
connection.RegisterHandler<NetworkConnection, NotReadyMessage>(OnClientNotReadyMessageInternal);
connection.RegisterHandler<NetworkConnection, SceneMessage>(OnClientSceneInternal, false);
connection.RegisterHandler<NotReadyMessage>(OnClientNotReadyMessageInternal);
connection.RegisterHandler<SceneMessage>(OnClientSceneInternal, false);
}

// called after successful authentication
Expand Down
8 changes: 4 additions & 4 deletions Assets/Mirror/Runtime/NetworkServer.cs
Original file line number Diff line number Diff line change
Expand Up @@ -144,10 +144,10 @@ void Initialize()

internal void RegisterMessageHandlers(NetworkConnection connection)
{
connection.RegisterHandler<NetworkConnection, ReadyMessage>(OnClientReadyMessage);
connection.RegisterHandler<NetworkConnection, CommandMessage>(OnCommandMessage);
connection.RegisterHandler<NetworkConnection, RemovePlayerMessage>(OnRemovePlayerMessage);
connection.RegisterHandler<NetworkConnection, NetworkPingMessage>(Time.OnServerPing, false);
connection.RegisterHandler<ReadyMessage>(OnClientReadyMessage);
connection.RegisterHandler<CommandMessage>(OnCommandMessage);
connection.RegisterHandler<RemovePlayerMessage>(OnRemovePlayerMessage);
connection.RegisterHandler<NetworkPingMessage>(Time.OnServerPing, false);
}

/// <summary>
Expand Down
2 changes: 1 addition & 1 deletion Assets/Mirror/Runtime/PlayerSpawner.cs
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ public virtual void Start()
private void OnServerAuthenticated(NetworkConnection connection)
{
// wait for client to send us an AddPlayerMessage
connection.RegisterHandler<NetworkConnection, AddPlayerMessage>(OnServerAddPlayerInternal);
connection.RegisterHandler<AddPlayerMessage>(OnServerAddPlayerInternal);
}

/// <summary>
Expand Down
2 changes: 1 addition & 1 deletion Assets/Mirror/Tests/Runtime/NetworkServerTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -182,7 +182,7 @@ public IEnumerator RegisterMessage2()

Action<NetworkConnection, WovenTestMessage> func = Substitute.For<Action<NetworkConnection, WovenTestMessage>>();

connectionToClient.RegisterHandler<NetworkConnection, WovenTestMessage> (func);
connectionToClient.RegisterHandler<WovenTestMessage> (func);

connectionToServer.Send(message);

Expand Down

0 comments on commit f4f5167

Please sign in to comment.