public void UpdateAvatar(Avatar a)
        {
            //Basic profile properties
            AvatarPropertiesUpdatePacket apup = new AvatarPropertiesUpdatePacket();

            AvatarPropertiesUpdatePacket.AgentDataBlock adb = new AvatarPropertiesUpdatePacket.AgentDataBlock();
            adb.AgentID    = a.ID;
            adb.SessionID  = Client.Network.SessionID;
            apup.AgentData = adb;
            AvatarPropertiesUpdatePacket.PropertiesDataBlock pdb = new AvatarPropertiesUpdatePacket.PropertiesDataBlock();
            pdb.AllowPublish    = a.AllowPublish;
            pdb.FLAboutText     = Helpers.StringToField(a.FirstLifeText);
            pdb.FLImageID       = a.FirstLifeImage;
            pdb.ImageID         = a.ProfileImage;
            pdb.MaturePublish   = a.MaturePublish;
            pdb.ProfileURL      = Helpers.StringToField(a.ProfileURL);
            apup.PropertiesData = pdb;
            //Intrests
            AvatarInterestsUpdatePacket aiup = new AvatarInterestsUpdatePacket();

            AvatarInterestsUpdatePacket.AgentDataBlock iadb = new AvatarInterestsUpdatePacket.AgentDataBlock();
            iadb.AgentID   = a.ID;
            iadb.SessionID = Client.Network.SessionID;
            aiup.AgentData = iadb;
            AvatarInterestsUpdatePacket.PropertiesDataBlock ipdb = new AvatarInterestsUpdatePacket.PropertiesDataBlock();
            ipdb.LanguagesText  = Helpers.StringToField(a.LanguagesText);
            ipdb.SkillsMask     = a.SkillsMask;
            ipdb.SkillsText     = Helpers.StringToField(a.SkillsText);
            ipdb.WantToMask     = a.WantToMask;
            ipdb.WantToText     = Helpers.StringToField(a.WantToText);
            aiup.PropertiesData = ipdb;
            //Send packets
            Client.Network.SendPacket(apup);
            Client.Network.SendPacket(aiup);
        }
Beispiel #2
0
        private void AvatarInterestsUpdateHandler(Packet packet, LLAgent agent)
        {
            AvatarInterestsUpdatePacket update = (AvatarInterestsUpdatePacket)packet;

            User user;

            if (m_userClient != null && m_userClient.TryGetUser(agent.ID, out user))
            {
                OSDMap map = new OSDMap
                {
                    { "WantMask", OSD.FromInteger((int)update.PropertiesData.WantToMask) },
                    { "WantText", OSD.FromString(Utils.BytesToString(update.PropertiesData.WantToText)) },
                    { "SkillsMask", OSD.FromInteger((int)update.PropertiesData.SkillsMask) },
                    { "SkillsText", OSD.FromString(Utils.BytesToString(update.PropertiesData.SkillsText)) },
                    { "Languages", OSD.FromString(Utils.BytesToString(update.PropertiesData.LanguagesText)) }
                };

                m_userClient.UpdateUserFields(agent.ID, new OSDMap {
                    { "LLInterests", map }
                });
            }
            else
            {
                m_log.Warn("Could not find user " + agent.ID + ", not updating profile interests for " + agent.Name);
                SendAvatarInterests(agent, agent.ID, null);
            }
        }
Beispiel #3
0
        /// <summary>
        /// Update agents profile interests
        /// </summary>
        /// <param name="interests">selection of interests from <seealso cref="T:OpenMetaverse.Avatar.Interests"/> struct</param>
        public void UpdateInterests(Avatar.Interests interests)
        {
            AvatarInterestsUpdatePacket aiup = new AvatarInterestsUpdatePacket();
            aiup.AgentData.AgentID = id;
            aiup.AgentData.SessionID = sessionID;
            aiup.PropertiesData.LanguagesText = Utils.StringToBytes(interests.LanguagesText);
            aiup.PropertiesData.SkillsMask = interests.SkillsMask;
            aiup.PropertiesData.SkillsText = Utils.StringToBytes(interests.SkillsText);
            aiup.PropertiesData.WantToMask = interests.WantToMask;
            aiup.PropertiesData.WantToText = Utils.StringToBytes(interests.WantToText);

            Client.Network.SendPacket(aiup);
        }
        /// <summary>
        /// Synchronize the local profile and interests information to the server
        /// </summary>
        public void SetAvatarInformation()
        {
            // Basic profile properties
            AvatarPropertiesUpdatePacket apup = new AvatarPropertiesUpdatePacket();

            apup.AgentData.AgentID = this.ID;
            apup.AgentData.SessionID = Client.Network.SessionID;
            apup.PropertiesData.AboutText = Helpers.StringToField(this.ProfileProperties.AboutText);
            apup.PropertiesData.AllowPublish = this.ProfileProperties.AllowPublish;
            apup.PropertiesData.FLAboutText = Helpers.StringToField(this.ProfileProperties.FirstLifeText);
            apup.PropertiesData.FLImageID = this.ProfileProperties.FirstLifeImage;
            apup.PropertiesData.ImageID = this.ProfileProperties.ProfileImage;
            apup.PropertiesData.MaturePublish = this.ProfileProperties.MaturePublish;
            apup.PropertiesData.ProfileURL = Helpers.StringToField(this.ProfileProperties.ProfileURL);

            // Interests
            AvatarInterestsUpdatePacket aiup = new AvatarInterestsUpdatePacket();

            aiup.AgentData.AgentID = this.ID;
            aiup.AgentData.SessionID = Client.Network.SessionID;
            aiup.PropertiesData.LanguagesText = Helpers.StringToField(this.ProfileInterests.LanguagesText);
            aiup.PropertiesData.SkillsMask = this.ProfileInterests.SkillsMask;
            aiup.PropertiesData.SkillsText = Helpers.StringToField(this.ProfileInterests.SkillsText);
            aiup.PropertiesData.WantToMask = this.ProfileInterests.WantToMask;
            aiup.PropertiesData.WantToText = Helpers.StringToField(this.ProfileInterests.WantToText);

            //Send packets
            Client.Network.SendPacket(apup);
            Client.Network.SendPacket(aiup);
        }
 public void UpdateAvatar(Avatar a)
 {
     //Basic profile properties
     AvatarPropertiesUpdatePacket apup = new AvatarPropertiesUpdatePacket();
     AvatarPropertiesUpdatePacket.AgentDataBlock adb = new AvatarPropertiesUpdatePacket.AgentDataBlock();
     adb.AgentID = a.ID;
     adb.SessionID = Client.Network.SessionID;
     apup.AgentData = adb;
     AvatarPropertiesUpdatePacket.PropertiesDataBlock pdb = new AvatarPropertiesUpdatePacket.PropertiesDataBlock();
     pdb.AllowPublish = a.AllowPublish;
     pdb.FLAboutText = Helpers.StringToField(a.FirstLifeText);
     pdb.FLImageID = a.FirstLifeImage;
     pdb.ImageID = a.ProfileImage;
     pdb.MaturePublish = a.MaturePublish;
     pdb.ProfileURL = Helpers.StringToField(a.ProfileURL);
     apup.PropertiesData = pdb;
     //Intrests
     AvatarInterestsUpdatePacket aiup = new AvatarInterestsUpdatePacket();
     AvatarInterestsUpdatePacket.AgentDataBlock iadb = new AvatarInterestsUpdatePacket.AgentDataBlock();
     iadb.AgentID = a.ID;
     iadb.SessionID = Client.Network.SessionID;
     aiup.AgentData = iadb;
     AvatarInterestsUpdatePacket.PropertiesDataBlock ipdb = new AvatarInterestsUpdatePacket.PropertiesDataBlock();
     ipdb.LanguagesText = Helpers.StringToField(a.LanguagesText);
     ipdb.SkillsMask = a.SkillsMask;
     ipdb.SkillsText = Helpers.StringToField(a.SkillsText);
     ipdb.WantToMask = a.WantToMask;
     ipdb.WantToText = Helpers.StringToField(a.WantToText);
     aiup.PropertiesData = ipdb;
     //Send packets
     Client.Network.SendPacket(apup);
     Client.Network.SendPacket(aiup);
 }