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