Fill in the new OwnerData field in the LLUDP ScriptDialog message.
If we don't do this then viewer 2.8 crashes. Resolves http://opensimulator.org/mantis/view.php?id=5510bulletsim
							parent
							
								
									392d270264
								
							
						
					
					
						commit
						8129e64e2a
					
				| 
						 | 
				
			
			@ -1159,7 +1159,19 @@ namespace OpenSim.Framework
 | 
			
		|||
        void SendAgentAlertMessage(string message, bool modal);
 | 
			
		||||
        void SendLoadURL(string objectname, UUID objectID, UUID ownerID, bool groupOwned, string message, string url);
 | 
			
		||||
 | 
			
		||||
        void SendDialog(string objectname, UUID objectID, string ownerFirstName, string ownerLastName, string msg, UUID textureID, int ch,
 | 
			
		||||
        /// <summary>
 | 
			
		||||
        /// Open a dialog box on the client.
 | 
			
		||||
        /// </summary>
 | 
			
		||||
        /// <param name="objectname"></param>
 | 
			
		||||
        /// <param name="objectID"></param>
 | 
			
		||||
        /// <param name="ownerID">/param>
 | 
			
		||||
        /// <param name="ownerFirstName"></param>
 | 
			
		||||
        /// <param name="ownerLastName"></param>
 | 
			
		||||
        /// <param name="msg"></param>
 | 
			
		||||
        /// <param name="textureID"></param>
 | 
			
		||||
        /// <param name="ch"></param>
 | 
			
		||||
        /// <param name="buttonlabels"></param>
 | 
			
		||||
        void SendDialog(string objectname, UUID objectID, UUID ownerID, string ownerFirstName, string ownerLastName, string msg, UUID textureID, int ch,
 | 
			
		||||
                        string[] buttonlabels);
 | 
			
		||||
 | 
			
		||||
        bool AddMoney(int debit);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -2213,7 +2213,9 @@ namespace OpenSim.Region.ClientStack.LindenUDP
 | 
			
		|||
            OutPacket(loadURL, ThrottleOutPacketType.Task);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public void SendDialog(string objectname, UUID objectID, string ownerFirstName, string ownerLastName, string msg, UUID textureID, int ch, string[] buttonlabels)
 | 
			
		||||
        public void SendDialog(
 | 
			
		||||
            string objectname, UUID objectID, UUID ownerID, string ownerFirstName, string ownerLastName, string msg,
 | 
			
		||||
            UUID textureID, int ch, string[] buttonlabels)
 | 
			
		||||
        {
 | 
			
		||||
            ScriptDialogPacket dialog = (ScriptDialogPacket)PacketPool.Instance.GetPacket(PacketType.ScriptDialog);
 | 
			
		||||
            dialog.Data.ObjectID = objectID;
 | 
			
		||||
| 
						 | 
				
			
			@ -2231,6 +2233,11 @@ namespace OpenSim.Region.ClientStack.LindenUDP
 | 
			
		|||
                buttons[i].ButtonLabel = Util.StringToBytes256(buttonlabels[i]);
 | 
			
		||||
            }
 | 
			
		||||
            dialog.Buttons = buttons;
 | 
			
		||||
 | 
			
		||||
            dialog.OwnerData = new ScriptDialogPacket.OwnerDataBlock[1];
 | 
			
		||||
            dialog.OwnerData[0] = new ScriptDialogPacket.OwnerDataBlock();
 | 
			
		||||
            dialog.OwnerData[0].OwnerID = ownerID;
 | 
			
		||||
 | 
			
		||||
            OutPacket(dialog, ThrottleOutPacketType.Task);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -2293,8 +2300,6 @@ namespace OpenSim.Region.ClientStack.LindenUDP
 | 
			
		|||
                OrbitalPosition = (OrbitalPosition - m_sunPainDaHalfOrbitalCutoff) * 0.6666666667f + m_sunPainDaHalfOrbitalCutoff;
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
            SimulatorViewerTimeMessagePacket viewertime = (SimulatorViewerTimeMessagePacket)PacketPool.Instance.GetPacket(PacketType.SimulatorViewerTimeMessage);
 | 
			
		||||
            viewertime.TimeInfo.SunDirection = Position;
 | 
			
		||||
            viewertime.TimeInfo.SunAngVelocity = Velocity;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -124,7 +124,8 @@ namespace OpenSim.Region.CoreModules.Avatar.Dialog
 | 
			
		|||
 | 
			
		||||
            ScenePresence sp = m_scene.GetScenePresence(avatarID);
 | 
			
		||||
            if (sp != null)
 | 
			
		||||
                sp.ControllingClient.SendDialog(objectName, objectID, ownerFirstName, ownerLastName, message, textureID, ch, buttonlabels);
 | 
			
		||||
                sp.ControllingClient.SendDialog(
 | 
			
		||||
                    objectName, objectID, ownerID, ownerFirstName, ownerLastName, message, textureID, ch, buttonlabels);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public void SendUrlToUser(
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -540,7 +540,7 @@ namespace OpenSim.Region.Examples.SimpleModule
 | 
			
		|||
        {
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public virtual void SendDialog(string objectname, UUID objectID, string ownerFirstName, string ownerLastName, string msg, UUID textureID, int ch, string[] buttonlabels)
 | 
			
		||||
        public virtual void SendDialog(string objectname, UUID objectID, UUID ownerID, string ownerFirstName, string ownerLastName, string msg, UUID textureID, int ch, string[] buttonlabels)
 | 
			
		||||
        {
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1177,7 +1177,7 @@ namespace OpenSim.Region.OptionalModules.Agent.InternetRelayClientView.Server
 | 
			
		|||
            IRC_SendChannelPrivmsg(objectname,url);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public void SendDialog(string objectname, UUID objectID, string ownerFirstName, string ownerLastName, string msg, UUID textureID, int ch, string[] buttonlabels)
 | 
			
		||||
        public void SendDialog(string objectname, UUID objectID, UUID ownerID, string ownerFirstName, string ownerLastName, string msg, UUID textureID, int ch, string[] buttonlabels)
 | 
			
		||||
        {
 | 
			
		||||
            
 | 
			
		||||
        }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1231,20 +1231,36 @@ namespace OpenSim.Region.OptionalModules.Avatar.XmlRpcGroups
 | 
			
		|||
            List<GroupMembershipData> membershipData = m_groupData.GetAgentGroupMemberships(requestingClient.AgentId, dataForAgentID);
 | 
			
		||||
            GroupMembershipData[] membershipArray;
 | 
			
		||||
 | 
			
		||||
            if (requestingClient.AgentId != dataForAgentID)
 | 
			
		||||
            {
 | 
			
		||||
            //  c_scene and property accessor 'is_god' are in support of the opertions to bypass 'hidden' group attributes for
 | 
			
		||||
            // those with a GodLike aspect.
 | 
			
		||||
            Scene c_scene = (Scene) requestingClient.Scene;
 | 
			
		||||
            bool is_god = c_scene.Permissions.IsGod(requestingClient.AgentId);
 | 
			
		||||
 | 
			
		||||
            if(is_god) {
 | 
			
		||||
                Predicate<GroupMembershipData> showInProfile = delegate(GroupMembershipData membership)
 | 
			
		||||
                {
 | 
			
		||||
                    return membership.ListInProfile;
 | 
			
		||||
                };
 | 
			
		||||
 | 
			
		||||
                membershipArray = membershipData.FindAll(showInProfile).ToArray();
 | 
			
		||||
                membershipArray = membershipData.ToArray();
 | 
			
		||||
            }
 | 
			
		||||
            else
 | 
			
		||||
            {
 | 
			
		||||
                membershipArray = membershipData.ToArray();
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
                if (requestingClient.AgentId != dataForAgentID)
 | 
			
		||||
                {
 | 
			
		||||
                    Predicate<GroupMembershipData> showInProfile = delegate(GroupMembershipData membership)
 | 
			
		||||
                    {
 | 
			
		||||
                        return membership.ListInProfile;
 | 
			
		||||
                    };
 | 
			
		||||
 | 
			
		||||
                    membershipArray = membershipData.FindAll(showInProfile).ToArray();
 | 
			
		||||
                }
 | 
			
		||||
                else
 | 
			
		||||
                {
 | 
			
		||||
                    membershipArray = membershipData.ToArray();
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
            if (m_debugEnabled)
 | 
			
		||||
            {
 | 
			
		||||
                m_log.InfoFormat("[GROUPS]: Get group membership information for {0} requested by {1}", dataForAgentID, requestingClient.AgentId);
 | 
			
		||||
| 
						 | 
				
			
			@ -1257,6 +1273,7 @@ namespace OpenSim.Region.OptionalModules.Avatar.XmlRpcGroups
 | 
			
		|||
            return membershipArray;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
        private void SendAgentDataUpdate(IClientAPI remoteClient, UUID dataForAgentID, UUID activeGroupID, string activeGroupName, ulong activeGroupPowers, string activeGroupTitle)
 | 
			
		||||
        {
 | 
			
		||||
            if (m_debugEnabled) m_log.DebugFormat("[GROUPS]: {0} called", System.Reflection.MethodBase.GetCurrentMethod().Name);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -631,7 +631,7 @@ namespace OpenSim.Region.OptionalModules.World.NPC
 | 
			
		|||
        {
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public virtual void SendDialog(string objectname, UUID objectID, string ownerFirstName, string ownerLastName, string msg, UUID textureID, int ch, string[] buttonlabels)
 | 
			
		||||
        public virtual void SendDialog(string objectname, UUID objectID, UUID ownerID, string ownerFirstName, string ownerLastName, string msg, UUID textureID, int ch, string[] buttonlabels)
 | 
			
		||||
        {
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -637,7 +637,7 @@ namespace OpenSim.Tests.Common.Mock
 | 
			
		|||
        {
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public virtual void SendDialog(string objectname, UUID objectID, string ownerFirstName, string ownerLastName, string msg, UUID textureID, int ch, string[] buttonlabels)
 | 
			
		||||
        public virtual void SendDialog(string objectname, UUID objectID, UUID ownerID, string ownerFirstName, string ownerLastName, string msg, UUID textureID, int ch, string[] buttonlabels)
 | 
			
		||||
        {
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue