Ejemplo n.º 1
0
        public static void HandleServerSelectionMessage(AuthClient client, ServerSelectionMessage message)
        {
            WorldServer serverById = Singleton <WorldServerManager> .Instance.GetServerById((int)message.serverId);

            if (serverById == null)
            {
                ConnectionHandler.SendSelectServerRefusedMessage(client, serverById, ServerConnectionErrorEnum.SERVER_CONNECTION_ERROR_NO_REASON);
            }
            else
            {
                if (serverById.Status != ServerStatusEnum.ONLINE)
                {
                    ConnectionHandler.SendSelectServerRefusedMessage(client, serverById, ServerConnectionErrorEnum.SERVER_CONNECTION_ERROR_DUE_TO_STATUS);
                }
                else
                {
                    if (serverById.RequiredRole > client.Account.Role)
                    {
                        ConnectionHandler.SendSelectServerRefusedMessage(client, serverById, ServerConnectionErrorEnum.SERVER_CONNECTION_ERROR_ACCOUNT_RESTRICTED);
                    }
                    else
                    {
                        ConnectionHandler.SendSelectServerData(client, serverById);
                    }
                }
            }
        }
Ejemplo n.º 2
0
        public static void SelectedServer(ServerSelectionMessage message, AuthClient client)
        {
            string host      = ConfigurationManager.Instance.IsCustomHost == true ? ConfigurationManager.Instance.RealHost : ConfigurationManager.Instance.Host;
            var    encrypted = AccountsProvider.EncryptTicket(ServersManager.TransfertToGame(client.Account), client.AesKey);

            client.Send(new SelectedServerDataMessage((ushort)ConfigurationManager.Instance.ServerId, host, (ushort)ConfigurationManager.Instance.WorldPort, true, encrypted));
            client.Disconnect();
        }
Ejemplo n.º 3
0
        public void ServerSelectionMessageFrame(AuthClient client, ServerSelectionMessage serverSelectionMessage)
        {
            List <uint> ports = new List <uint>();

            ports.Add(6666);

            client.SendPacket(new SelectedServerDataMessage(serverSelectionMessage.serverId, "127.0.0.1", ports, true, AuthenticationUtils.EncodeTicket(client.salt)));
            client.Disconnect();
        }
Ejemplo n.º 4
0
        public static void HandleServerSelection(BigEndianReader reader, AuthClient client, AuthServer server)
        {
            ServerSelectionMessage message = new ServerSelectionMessage();

            message.Unpack(reader);
            client.Send(new SelectedServerDataMessage(1, "127.0.0.1", 442, true, client.Ticket));
            client.Disconnect();
            //client.Send(new SelectedServerRefusedMessage(message.serverId, (sbyte)ServerConnectionErrorEnum.SERVER_CONNECTION_ERROR_NO_REASON, (sbyte)ServerStatusEnum.NOJOIN));
            //TODO HANDLE SERVER CONNECTION REQUEST FROM CLIENT
        }
Ejemplo n.º 5
0
        public void ServerSelectionMessage(Client client, ServerSelectionMessage serverSelectionMessage)
        {
            Container.Instance().Resolve <IAccountRepository>().Entities().AddOrUpdate(client.Account.Id, client.Account,
                                                                                       (i, account) =>
            {
                account.Ticket   = Guid.NewGuid().ToString();
                account.IsEdited = true;
                return(account);
            });

            client.Send(new SelectedServerDataMessage(serverSelectionMessage.serverId, "localhost", 666, true, client.Account.Ticket, "http://localhost:666"));
        }
Ejemplo n.º 6
0
        public void ServerSelectionMessage(Client client, ServerSelectionMessage serverSelectionMessage)
        {
            //lock (obj)
            Container.Instance().Resolve <IAccountRepository>().Entities().AddOrUpdate(client.Account.Id, client.Account,
                                                                                       (i, account) =>
            {
                account.Ticket   = Guid.NewGuid().ToString();
                account.IsEdited = true;
                return(account);
            });
            //lock (obj)
            Container.Instance().Resolve <AuthRepositoryPersistManager>().ForceSave();
            WorldServer server = Container.Instance().Resolve <IWorldServerManager>().Servers().FirstOrDefault(x => x.Id == serverSelectionMessage.serverId);

            if (server != null)
            {
                client.Send(new SelectedServerDataMessage(serverSelectionMessage.serverId, server.Address, server.Port, true, client.Account.Ticket, server.Access));
            }
            //client.Send(new SelectedServerDataMessage(serverSelectionMessage.serverId, "localhost", 666, true, client.Account.Ticket, "http://localhost:666"));
        }
Ejemplo n.º 7
0
        public static void HandleServerSelectionMessage(AuthClient client, ServerSelectionMessage message)
        {
            var world = WorldServerManager.Instance.GetServerById(message.serverId);

            /* World not exist */
            if (world == null)
            {
                SendSelectServerRefusedMessage(client, message.serverId,
                                               ServerConnectionErrorEnum.SERVER_CONNECTION_ERROR_NO_REASON);
                return;
            }

            /* Wrong state */
            if (world.Status != ServerStatusEnum.ONLINE)
            {
                SendSelectServerRefusedMessage(client, world,
                                               ServerConnectionErrorEnum.SERVER_CONNECTION_ERROR_DUE_TO_STATUS);
                return;
            }

            /* not suscribe */
            if (world.RequireSubscription && client.Account.SubscriptionEnd <= DateTime.Now)
            {
                SendSelectServerRefusedMessage(client, world,
                                               ServerConnectionErrorEnum.SERVER_CONNECTION_ERROR_SUBSCRIBERS_ONLY);
                return;
            }

            /* not the rights */
            if (world.RequiredRole > client.UserGroup.Role && !client.UserGroup.AvailableServers.Contains(world.Id))
            {
                SendSelectServerRefusedMessage(client, world,
                                               ServerConnectionErrorEnum.SERVER_CONNECTION_ERROR_ACCOUNT_RESTRICTED);
                return;
            }

            /* Send client to the server */
            SendSelectServerData(client, world);
        }
Ejemplo n.º 8
0
 public static void OnServerSelectionMessage(AuthClient client, ServerSelectionMessage message)
 {
     client.Write($"trying to connect to server id : {message.ServerId}");
 }
Ejemplo n.º 9
0
 public static void HandleServerSelectionMessage(Client client, ServerSelectionMessage message)
 {
     SendSelectedServerDataMessage(client, message.serverId);
 }
Ejemplo n.º 10
0
 public static void HandleServerSelection(ServerSelectionMessage message, AuthClient client)
 {
     lock (Locker)
         client.ProcessServerSelection(ServerRecord.GetWorldServer(message.serverId));
 }
Ejemplo n.º 11
0
        private void HandleServerSelection(ServersListMessage message)
        {
            var selection = new ServerSelectionMessage((short)(message.servers.FirstOrDefault(server => server.charactersCount > 0 && server.isSelectable == true)).id);

            client.Network.Send(selection);
        }
Ejemplo n.º 12
0
 private void HandleServerSelectionMessage(ServerSelectionMessage message, ConnectedHost source)
 {
     mServer = new Server();
     mServer.Start(RemoteSetting.Default.GameListenPort);
     mServer.ConnectionAccepted += Default_ConnectionAccepted;
 }