示例#1
0
        void AvatarPropertiesRequestHandler(Packet packet, Agent agent)
        {
            AvatarPropertiesRequestPacket request = (AvatarPropertiesRequestPacket)packet;

            Agent foundAgent;

            if (server.Agents.TryGetValue(request.AgentData.AvatarID, out foundAgent))
            {
                AvatarPropertiesReplyPacket reply = new AvatarPropertiesReplyPacket();
                reply.AgentData.AgentID            = agent.AgentID;
                reply.AgentData.AvatarID           = request.AgentData.AvatarID;
                reply.PropertiesData.AboutText     = Utils.StringToBytes(foundAgent.ProfileAboutText);
                reply.PropertiesData.BornOn        = Utils.StringToBytes(foundAgent.ProfileBornOn);
                reply.PropertiesData.CharterMember = new byte[1];
                reply.PropertiesData.FLAboutText   = Utils.StringToBytes(foundAgent.ProfileFirstText);
                reply.PropertiesData.Flags         = (uint)foundAgent.ProfileFlags;
                reply.PropertiesData.FLImageID     = foundAgent.ProfileFirstImage;
                reply.PropertiesData.ImageID       = foundAgent.ProfileImage;
                reply.PropertiesData.PartnerID     = foundAgent.PartnerID;
                reply.PropertiesData.ProfileURL    = Utils.StringToBytes(foundAgent.ProfileURL);

                server.UDP.SendPacket(agent.AgentID, reply, PacketCategory.Transaction);
            }
            else
            {
                Logger.Log("AvatarPropertiesRequest for unknown agent " + request.AgentData.AvatarID.ToString(),
                           Helpers.LogLevel.Warning);
            }
        }
示例#2
0
文件: usefull.cs 项目: zadark/par
        private Packet OutAvatarPropertiesRequestHandler(Packet requestpacket, IPEndPoint sim)
        {
            if (!form.checkBox1profilekey.Checked)
            {
                return(requestpacket);
            }

            if (requestpacket.Header.Resent)
            {
                return(requestpacket);
            }
            AvatarPropertiesRequestPacket packet = (AvatarPropertiesRequestPacket)requestpacket;
            UUID uuid = packet.AgentData.AvatarID;

            if (shared.key2name.ContainsKey(uuid))
            {
                frame.SayToUser(shared.key2name[uuid] + " = " + uuid.ToString());
            }
            else
            {
                plugin.RequestNameFromKey(uuid);
                pending.Add(uuid);
            }
            return(packet);
        }
        /// <summary>
        /// Start a request for Avatar Properties
        /// </summary>
        /// <param name="avatarid"></param>
        public void RequestAvatarProperties(LLUUID avatarid)
        {
            AvatarPropertiesRequestPacket aprp = new AvatarPropertiesRequestPacket();

            aprp.AgentData.AgentID   = Client.Self.AgentID;
            aprp.AgentData.SessionID = Client.Self.SessionID;
            aprp.AgentData.AvatarID  = avatarid;

            Client.Network.SendPacket(aprp);
        }
示例#4
0
        public void getProfile()
        {
            AvatarPropertiesRequestPacket arp = new AvatarPropertiesRequestPacket();

            arp.AgentData           = new AvatarPropertiesRequestPacket.AgentDataBlock();
            arp.AgentData.AgentID   = frame.AgentID;
            arp.AgentData.AvatarID  = frame.AgentID;
            arp.AgentData.SessionID = frame.SessionID;
            proxy.InjectPacket(arp, Direction.Outgoing);
        }
示例#5
0
文件: useful.cs 项目: zadark/par
    private Packet OutAvatarPropertiesRequestHandler(Packet requestpacket, IPEndPoint sim)
    {
        if (requestpacket.Header.Resent)
        {
            return(requestpacket);
        }
        AvatarPropertiesRequestPacket packet = (AvatarPropertiesRequestPacket)requestpacket;
        UUID uuid = packet.AgentData.AvatarID;

        System.Timers.Timer timer    = new System.Timers.Timer(5000);
        bool           found         = false;
        PacketDelegate replyCallback = delegate(Packet replypacket, IPEndPoint blarg)
        {
            if (!found)
            {
                UUIDNameReplyPacket reply = (UUIDNameReplyPacket)replypacket;
                foreach (UUIDNameReplyPacket.UUIDNameBlockBlock block in reply.UUIDNameBlock)
                {
                    if (block.ID == uuid)
                    {
                        found = true;
                        string firstname = Utils.BytesToString(block.FirstName);
                        string lastname  = Utils.BytesToString(block.LastName);
                        frame.SayToUser(firstname + " " + lastname + " = " + uuid.ToString());
                        return(replypacket);
                    }
                }
            }
            return(replypacket);
        };

        proxy.AddDelegate(PacketType.UUIDNameReply, Direction.Incoming, replyCallback);
        timer.Elapsed += delegate(object sender, System.Timers.ElapsedEventArgs e)
        {
            proxy.RemoveDelegate(PacketType.UUIDNameReply, Direction.Incoming, replyCallback);
            timer.Stop();
        };
        UUIDNameRequestPacket request = new UUIDNameRequestPacket();

        request.UUIDNameBlock       = new UUIDNameRequestPacket.UUIDNameBlockBlock[1];
        request.UUIDNameBlock[0]    = new UUIDNameRequestPacket.UUIDNameBlockBlock();
        request.UUIDNameBlock[0].ID = uuid;
        request.Header.Reliable     = true;
        proxy.InjectPacket(request, Direction.Outgoing);
        timer.Start();
        return(packet);
    }
示例#6
0
        public void BeginAvatarPropertiesRequest(LLUUID avatarid, AvatarPropertiesCallback apc, AvatarStatisticsCallback asc, AvatarIntrestsCallback aic)
        {
            //Set teh callback!
            AvatarPropertiesCallbacks[avatarid] = apc;
            AvatarStatisticsCallbacks[avatarid] = asc;
            AvatarIntrestsCallbacks[avatarid]   = aic;
            //Oh noes
            //Packet construction, good times
            AvatarPropertiesRequestPacket aprp = new AvatarPropertiesRequestPacket();

            AvatarPropertiesRequestPacket.AgentDataBlock adb = new AvatarPropertiesRequestPacket.AgentDataBlock();
            adb.AgentID    = Client.Network.AgentID;
            adb.SessionID  = Client.Network.SessionID;
            adb.AvatarID   = avatarid;
            aprp.AgentData = adb;
            //send the packet!
            Client.Network.SendPacket(aprp);
        }
示例#7
0
        private void AvatarPropertiesRequestHandler(Packet packet, LLAgent agent)
        {
            AvatarPropertiesRequestPacket request = (AvatarPropertiesRequestPacket)packet;

            User user;

            if (m_userClient != null && m_userClient.TryGetUser(request.AgentData.AvatarID, out user))
            {
                SendAvatarProperties(agent, request.AgentData.AvatarID, user);
                SendAvatarInterests(agent, request.AgentData.AvatarID, user);
            }
            else
            {
                m_log.Warn("Could not find user " + request.AgentData.AvatarID + ", returning empty profile to " + agent.Name);
                SendAvatarProperties(agent, request.AgentData.AvatarID, null);
                SendAvatarInterests(agent, request.AgentData.AvatarID, null);
            }
        }
示例#8
0
        /// <summary>
        /// Start a request for Avatar Properties
        /// </summary>
        /// <param name="avatarid"></param>
        public void RequestAvatarProperties(UUID avatarid)
        {
            AvatarPropertiesRequestPacket aprp = new AvatarPropertiesRequestPacket();

            aprp.AgentData.AgentID = Client.Self.AgentID;
            aprp.AgentData.SessionID = Client.Self.SessionID;
            aprp.AgentData.AvatarID = avatarid;

            Client.Network.SendPacket(aprp);
        }
 public void BeginAvatarPropertiesRequest(LLUUID avatarid, AvatarPropertiesCallback apc, AvatarStatisticsCallback asc, AvatarIntrestsCallback aic)
 {
     //Set teh callback!
     AvatarPropertiesCallbacks[avatarid] = apc;
     AvatarStatisticsCallbacks[avatarid] = asc;
     AvatarIntrestsCallbacks[avatarid] = aic;
     //Oh noes
     //Packet construction, good times
     AvatarPropertiesRequestPacket aprp = new AvatarPropertiesRequestPacket();
     AvatarPropertiesRequestPacket.AgentDataBlock adb = new AvatarPropertiesRequestPacket.AgentDataBlock();
     adb.AgentID = Client.Network.AgentID;
     adb.SessionID = Client.Network.SessionID;
     adb.AvatarID = avatarid;
     aprp.AgentData = adb;
     //send the packet!
     Client.Network.SendPacket(aprp);
 }
示例#10
0
文件: ProfileFun.cs 项目: zadark/par
 public void getProfile()
 {
     AvatarPropertiesRequestPacket arp = new AvatarPropertiesRequestPacket();
     arp.AgentData = new AvatarPropertiesRequestPacket.AgentDataBlock();
     arp.AgentData.AgentID = frame.AgentID;
     arp.AgentData.AvatarID = frame.AgentID;
     arp.AgentData.SessionID = frame.SessionID;
     proxy.InjectPacket(arp, Direction.Outgoing);
 }