Ejemplo n.º 1
0
        private void OnAuthClientMessageReceived(Client client, NetworkMessage message)
        {
            if (!(client is ConnectionFullSocket))
            {
                throw new ArgumentException("client is not of type ConnectionFullSocket");
            }

            var fs = (ConnectionFullSocket)client;

            if (message is IdentificationSuccessMessage ism)
            {
                HandleIdentificationSuccessMessage(fs, ism);
            }
            if (message is SelectedServerDataMessage ssdm)
            {
                var msg = ssdm;

                Logger.Default.Log("Sélection du serveur " + D2OParsing.GetServerName(msg.ServerId));
                var ticket = AES.DecodeWithAES(msg.Ticket);
                _mTickets.Add(ticket,
                              Tuple.Create(fs.Account,
                                           new SelectedServerDataMessage(msg.ServerId, msg.Address, msg.Port, msg.CanCreateNewCharacter,
                                                                         msg.Ticket)));
                fs.Account.Ticket = ticket;
            }
            if (fs.Account.Network == null)
            {
                throw new NullReferenceException("fs.Bot");
            }
            fs.Account.Network.Dispatcher.Enqueue(message, fs.Account);
        }
Ejemplo n.º 2
0
        private void SelectedServerRefusedMessageHandler(DofusClient client, SelectedServerRefusedMessage message)
        {
            client.Logger.Log($"Le serveur {D2OParsing.GetServerName(message.ServerId)} n'est pas accessible", LogMessageType.Public);
            switch ((ServerConnectionErrorEnum)message.Error)
            {
            case ServerConnectionErrorEnum.SERVER_CONNECTION_ERROR_DUE_TO_STATUS:
                client.Logger.Log($"Status du serveur: {(ServerStatusEnum)message.ServerStatus}", LogMessageType.Public);
                break;

            case ServerConnectionErrorEnum.SERVER_CONNECTION_ERROR_NO_REASON:
                break;

            case ServerConnectionErrorEnum.SERVER_CONNECTION_ERROR_ACCOUNT_RESTRICTED:
                break;

            case ServerConnectionErrorEnum.SERVER_CONNECTION_ERROR_COMMUNITY_RESTRICTED:
                break;

            case ServerConnectionErrorEnum.SERVER_CONNECTION_ERROR_LOCATION_RESTRICTED:
                break;

            case ServerConnectionErrorEnum.SERVER_CONNECTION_ERROR_SUBSCRIBERS_ONLY:
                break;

            case ServerConnectionErrorEnum.SERVER_CONNECTION_ERROR_REGULAR_PLAYERS_ONLY:
                break;
            }
            client.Dispose();
        }
Ejemplo n.º 3
0
 private void SelectedServerDataMessageMessageHandler(DofusClient client, SelectedServerDataMessage message)
 {
     client.Logger.Log("Sélection du serveur " + D2OParsing.GetServerName(message.ServerId));
     client.Account.Ticket = AES.DecodeWithAES(message.Ticket);
     client.Logger.Log("Connexion en cours <" + message.Address + ":" + message.Port + ">");
     client.ChangeRemote(message.Address, message.Port);
 }
Ejemplo n.º 4
0
        private void OnAuthClientMessageReceived(Client client, NetworkMessage message)
        {
            if (!(client is ConnectionFullSocket))
            {
                throw new ArgumentException("client is not of type ConnectionFullSocket");
            }
            //Logger.Default.Log(string.Format("MessageID[{0}] received", message.MessageID));
            var fs = (ConnectionFullSocket)client;

            if (message is IdentificationSuccessMessage ism)
            {
                HandleIdentificationSuccessMessage(fs, ism);
            }
            if (message is SelectedServerDataMessage ssdm)
            {
                var msg = ssdm;
                //Logger.Default.Log(msg.ServerId.ToString());
                Logger.Default.Log("Sélection du serveur " + D2OParsing.GetServerName(msg.ServerId));
                var ticket = string.Join(",", msg.Ticket);
                fs.Account.Ticket = ticket;
                _mTickets.Add(ticket,
                              Tuple.Create(fs.Account,
                                           new SelectedServerDataMessage(msg.ServerId, msg.Address, msg.Ports, msg.CanCreateNewCharacter,
                                                                         msg.Ticket)));
            }
            if (message is SelectedServerRefusedMessage ssrm)
            {
                var msg = ssrm;

                Logger.Default.Log("Impossible de se connecter au serveur " + D2OParsing.GetServerName(msg.ServerId) +
                                   " status " + msg.ServerStatus + " erreur " + msg.Error);

                fs.Disconnect();
            }

            if (fs.Account.Network == null)
            {
                throw new NullReferenceException("fs.Bot");
            }
            fs.Account.Network.Dispatcher.Enqueue(message, fs.Account);
        }
Ejemplo n.º 5
0
 private void ServerStatusUpdateMessageHandler(DofusClient client, ServerStatusUpdateMessage message)
 {
     client.Logger.Log(
         D2OParsing.GetServerName(message.Server.ObjectID) + ": " + (ServerStatusEnum)message.Server.Status,
         LogMessageType.Default);
 }