Exemplo n.º 1
0
        public static void HandleSearchUserCharacters(BigEndianReader reader, AuthClient client, AuthServer server)
        {
            AcquaintanceSearchMessage message = new AcquaintanceSearchMessage();

            message.Unpack(reader);

            foreach (Account a in AccountManager.GetAccounts())
            {
                if (a.Pseudo == message.nickname)
                {
                    List <short> servers = new List <short>();
                    foreach (WorldServer s in server.Servers.Values)
                    {
                        int nbChar = AccountManager.GetNbChar(s.ServerId, a.Id);
                        if (nbChar > 0)
                        {
                            servers.Add((short)s.ServerId);
                        }
                    }
                    client.Send(new AcquaintanceServerListMessage(servers));
                    return;
                }
            }
            client.Send(new AcquaintanceSearchErrorMessage(2));
        }
        public static void HandleAcquaintanceSearchMessage(AuthClient client, AcquaintanceSearchMessage message)
        {
            var account = AccountManager.Instance.FindAccountByNickname(message.nickname);

            if (account == null)
            {
                SendAcquaintanceSearchErrorMessage(client, AcquaintanceErrorEnum.NO_RESULT);
                return;
            }

            SendAcquaintanceSearchServerListMessage(client, account.WorldCharacters.Select(wcr => (short)wcr.WorldId).Distinct());
        }
Exemplo n.º 3
0
        public static void HandleAcquaintanceSearchMessage(AuthClient client, AcquaintanceSearchMessage message)
        {
            Account account = Singleton <AccountManager> .Instance.FindAccountByNickname(message.nickname);

            if (account == null)
            {
                ConnectionHandler.SendAcquaintanceSearchErrorMessage(client, AcquaintanceErrorEnum.NO_RESULT);
            }
            else
            {
                ConnectionHandler.SendAcquaintanceSearchServerListMessage(client, (
                                                                              from wcr in account.WorldCharacters
                                                                              select(ushort) wcr.WorldId).Distinct());
            }
        }
        public static void HandleAcquaintanceSearch(AcquaintanceSearchMessage message, AuthClient client)
        {
            if (client.Account != null)
            {
                lock (Locker) {
                    AccountData searchAccount = AccountRecord.GetAccountByNickname(message.nickname);

                    if (searchAccount == null)
                    {
                        client.Send(new AcquaintanceSearchErrorMessage((sbyte)AcquaintanceErrorEnum.NO_RESULT));
                    }
                    else
                    {
                        client.Send(new AcquaintanceServerListMessage(ServerCharacterRecord.GetAccountActiveServers(searchAccount.Id)));
                    }
                }
            }
        }