Beispiel #1
0
        public static PacketProcessResult HandleNameQuery(PacketProcessor p)
        {
            CMSG_NAME_QUERY data = new CMSG_NAME_QUERY();

            data.Read(p.CurrentPacket);

            p.ClientConnection.CurrentSession.HandleNameQuery(data);

            return(PacketProcessResult.Processed);
        }
Beispiel #2
0
        public static async Task OnNameQuery(WorldClient client, byte[] data)
        {
            var request   = new CMSG_NAME_QUERY(data);
            var character = DataStore.GetCharacter(request.CharacterID);

            if (character is null)
            {
                return;
            }
            await client.SendPacket(new SMSG_NAME_QUERY_RESPONSE(character));
        }
Beispiel #3
0
        public static async Task OnNameQuery(PacketHandlerContext c)
        {
            var request   = new CMSG_NAME_QUERY(c.Packet);
            var character = c.World.CharacterService.GetCharacter(request.CharacterID);

            if (character is null)
            {
                return;
            }
            await c.Client.SendPacket(new SMSG_NAME_QUERY_RESPONSE(character, c.Client.Build));
        }
Beispiel #4
0
        public async Task HandleNameQuery(CMSG_NAME_QUERY pkt)
        {
            var player = GrainFactory.GetGrain <IPlayer>(pkt.guid.ToInt64());
            var valid  = await player.IsValid();

            var guid_packed = new PackedGUID(pkt.guid);

            PacketOut p = new PacketOut(RealmOp.SMSG_NAME_QUERY_RESPONSE);

            p.Write(guid_packed);

            if (!valid)
            {
                p.Write((byte)1); //unknown
                await SendPacket(p);

                return;
            }

            p.Write((byte)0); //known
            p.WriteCString(await player.GetName());

            var realmid = await player.GetRealmID();

            if (realmid != await GetRealmID()) //player is on a different realm to this session, append their realm name
            {
                var realm_manager = GrainFactory.GetGrain <IRealmManager>(0);
                p.WriteCString(await realm_manager.GetRealmName((int)realmid));
            }
            else
            {
                p.Write((byte)0); //null string aka same realm aka dont show anything extra
            }
            p.Write(await player.GetRace());
            p.Write(await player.GetGender());
            p.Write(await player.GetClass());
            p.Write((byte)0); //isNameDeclined

            await SendPacket(p);
        }