private void HandleConnectionApproval(NetIncomingMessage message) { if (!ConfigData.AllowConnections || DateTime.UtcNow > blockConnectionsAfter) { message.SenderConnection.Deny(); return; } string authKey = message.ReadString(); if (authKey == ConfigData.AuthKey) { message.SenderConnection.Approve(); int worldServerIdentifier = message.ReadInt32(); string worldServerName = message.ReadString(); string worldServerAddress = message.ReadString(); int worldServerPort = message.ReadInt32(); WorldServerManager.OnWorldServerConnected(message.SenderConnection, worldServerIdentifier, worldServerName, worldServerAddress, worldServerPort); } else { message.SenderConnection.Deny(); } }
public override void Tick(double deltaTime) { NetIncomingMessage message; while ((message = Server.ReadMessage()) != null) { switch (message.MessageType) { case NetIncomingMessageType.ConnectionApproval: HandleConnectionApproval(message); break; case NetIncomingMessageType.Data: HandleIncomingMessage(message); break; case NetIncomingMessageType.StatusChanged: { switch ((NetConnectionStatus)message.PeekByte()) { case NetConnectionStatus.Disconnected: WorldServerManager.OnWorldServerDisconnected(message.SenderConnection); break; } } break; } } }
internal BaseGameListener(WorldServerManager world) { World = world; }