Esempio n. 1
0
 public PluginDownloadEventArgs(PluginDownloadMessage message)
 {
     Message = message;
 }
Esempio n. 2
0
        /// <summary>
        /// Handles an unconnected message, usually from the auth server.
        /// </summary>
        private void HandleUnconnectedMessage(NetIncomingMessage im)
        {
            if (im == null)
            {
                throw new ArgumentNullException(nameof(im));
            }

            // Make sure the unconnected message is coming from the real auth server.
            if (Equals(im.SenderEndPoint, networkManager.AuthEndpoint) &&
                im.SenderEndPoint.Port == Globals.Values.DefaultAuthPort)
            {
                var messageType = (MessageTypes)im.ReadByte();  // Find the type of data message sent
                switch (messageType)
                {
                case MessageTypes.AuthInit:
                {
                    var msg = new AuthInitMessage(im, MessageContext.Client);
                    networkManager.Client.Events.Network.Auth.InitReceived.Invoke(
                        new EventManager.NetEvents.AuthServerEvents.InitEventArgs(msg.Username, msg.UUID,
                                                                                  msg.PrivateKey,
                                                                                  msg.PublicKey));
                    break;
                }

                case MessageTypes.FailedLogin:
                {
                    var msg = new FailedLoginMessage(im, MessageContext.Client);
                    networkManager.Client.Events.Network.Auth.FailedLogin.Invoke(
                        new EventManager.NetEvents.AuthServerEvents.FailedLoginEventArgs(msg.ErrorMessage));
                    break;
                }

                case MessageTypes.Verified:
                {
                    var msg = new VerifiedMessage(im, MessageContext.Client);
                    networkManager.Client.Events.Network.Auth.Verified.Invoke(
                        new EventManager.NetEvents.AuthServerEvents.VerifiedEventArgs(msg.Verified));
                    break;
                }

                case MessageTypes.PluginDownload:
                {
                    var msg = new PluginDownloadMessage(im, MessageContext.Client);
                    networkManager.Client.Events.Network.Auth.PluginDownloadRequested.Invoke(
                        new EventManager.NetEvents.AuthServerEvents.PluginDownloadEventArgs(msg));
                    break;
                }
                }
            }
            else // Message not from auth server, instead from a game server
            {
                var messageType = (MessageTypes)im.ReadByte();  // Find the type of data message sent
                switch (messageType)
                {
                case MessageTypes.ServerInfo:
                {
                    var msg = new ServerInfoMessage(im, MessageContext.Client);

                    networkManager.Client.Events.Network.Game.ServerInfoReceived.Invoke(
                        new EventManager.NetEvents.GameServerEvents.ServerInfoEventArgs(msg.Description, msg.Players,
                                                                                        msg.MaxPlayers, im.SenderEndPoint));
                    break;
                }
                }
            }
        }