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); }
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(); }
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); }
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); }
private void ServerStatusUpdateMessageHandler(DofusClient client, ServerStatusUpdateMessage message) { client.Logger.Log( D2OParsing.GetServerName(message.Server.ObjectID) + ": " + (ServerStatusEnum)message.Server.Status, LogMessageType.Default); }