diff --git a/OpenSim/Client/MXP/ClientStack/MXPClientView.cs b/OpenSim/Client/MXP/ClientStack/MXPClientView.cs
index d7afb4e436..04b9c3824e 100644
--- a/OpenSim/Client/MXP/ClientStack/MXPClientView.cs
+++ b/OpenSim/Client/MXP/ClientStack/MXPClientView.cs
@@ -668,6 +668,7 @@ namespace OpenSim.Client.MXP.ClientStack
public event ParcelGodForceOwner OnParcelGodForceOwner;
public event ParcelReclaim OnParcelReclaim;
public event ParcelReturnObjectsRequest OnParcelReturnObjectsRequest;
+ public event ParcelDeedToGroup OnParcelDeedToGroup;
public event RegionInfoRequest OnRegionInfoRequest;
public event EstateCovenantRequest OnEstateCovenantRequest;
public event FriendActionDelegate OnApproveFriendRequest;
diff --git a/OpenSim/Framework/IClientAPI.cs b/OpenSim/Framework/IClientAPI.cs
index 064e9657bc..27cf44fb3f 100644
--- a/OpenSim/Framework/IClientAPI.cs
+++ b/OpenSim/Framework/IClientAPI.cs
@@ -192,6 +192,8 @@ namespace OpenSim.Framework
public delegate void ParcelReturnObjectsRequest(
int local_id, uint return_type, UUID[] agent_ids, UUID[] selected_ids, IClientAPI remote_client);
+ public delegate void ParcelDeedToGroup( int local_id, UUID group_id, IClientAPI remote_client);
+
public delegate void EstateOwnerMessageRequest(
UUID AgentID, UUID SessionID, UUID TransactionID, UUID Invoice, byte[] Method, byte[][] Parameters,
IClientAPI remote_client);
@@ -673,6 +675,7 @@ namespace OpenSim.Framework
event ParcelGodForceOwner OnParcelGodForceOwner;
event ParcelReclaim OnParcelReclaim;
event ParcelReturnObjectsRequest OnParcelReturnObjectsRequest;
+ event ParcelDeedToGroup OnParcelDeedToGroup;
event RegionInfoRequest OnRegionInfoRequest;
event EstateCovenantRequest OnEstateCovenantRequest;
diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs
index 73406283ea..b5064341e2 100644
--- a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs
+++ b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs
@@ -260,6 +260,8 @@ namespace OpenSim.Region.ClientStack.LindenUDP
private UUIDNameRequest handlerUUIDGroupNameRequest;
+ private ParcelDeedToGroup handlerParcelDeedToGroup;
+
private RequestObjectPropertiesFamily handlerObjectGroupRequest;
private ScriptReset handlerScriptReset;
private GetScriptRunning handlerGetScriptRunning;
@@ -1014,6 +1016,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
public event ParcelGodForceOwner OnParcelGodForceOwner;
public event ParcelReclaim OnParcelReclaim;
public event ParcelReturnObjectsRequest OnParcelReturnObjectsRequest;
+ public event ParcelDeedToGroup OnParcelDeedToGroup;
public event RegionInfoRequest OnRegionInfoRequest;
public event EstateCovenantRequest OnEstateCovenantRequest;
public event FriendActionDelegate OnApproveFriendRequest;
@@ -3441,7 +3444,13 @@ namespace OpenSim.Region.ClientStack.LindenUDP
{
dataBlock[num] = new ParcelObjectOwnersReplyPacket.DataBlock();
dataBlock[num].Count = ownersAndCount[owner];
- dataBlock[num].IsGroupOwned = false; //TODO: fix me when group support is added
+
+ if (m_GroupsModule != null)
+ {
+ //TODO: There's probably a better way to do this.
+ GroupProfileData gpd;
+ dataBlock[num].IsGroupOwned = m_GroupsModule.GetGroupProfile(owner, out gpd);
+ }
dataBlock[num].OnlineStatus = true; //TODO: fix me later
dataBlock[num].OwnerID = owner;
@@ -8596,6 +8605,23 @@ namespace OpenSim.Region.ClientStack.LindenUDP
}
break;
+
+
+ case PacketType.ParcelDeedToGroup:
+ ParcelDeedToGroupPacket parcelDeedToGroup = (ParcelDeedToGroupPacket)Pack;
+ if (m_GroupsModule != null)
+ {
+ handlerParcelDeedToGroup = OnParcelDeedToGroup;
+ if (handlerParcelDeedToGroup != null)
+ {
+ handlerParcelDeedToGroup(parcelDeedToGroup.Data.LocalID, parcelDeedToGroup.Data.GroupID,this);
+
+ }
+ }
+
+ break;
+
+
case PacketType.GroupNoticesListRequest:
GroupNoticesListRequestPacket groupNoticesListRequest =
(GroupNoticesListRequestPacket)Pack;
diff --git a/OpenSim/Region/Examples/SimpleModule/MyNpcCharacter.cs b/OpenSim/Region/Examples/SimpleModule/MyNpcCharacter.cs
index a6e55f484e..0e9d2551c3 100644
--- a/OpenSim/Region/Examples/SimpleModule/MyNpcCharacter.cs
+++ b/OpenSim/Region/Examples/SimpleModule/MyNpcCharacter.cs
@@ -166,6 +166,7 @@ namespace OpenSim.Region.Examples.SimpleModule
public event ParcelAccessListUpdateRequest OnParcelAccessListUpdateRequest;
public event ParcelSelectObjects OnParcelSelectObjects;
public event ParcelObjectOwnerRequest OnParcelObjectOwnerRequest;
+ public event ParcelDeedToGroup OnParcelDeedToGroup;
public event ObjectDeselect OnObjectDeselect;
public event RegionInfoRequest OnRegionInfoRequest;
public event EstateCovenantRequest OnEstateCovenantRequest;
diff --git a/OpenSim/Region/Framework/Interfaces/IGroupsModule.cs b/OpenSim/Region/Framework/Interfaces/IGroupsModule.cs
index dad08ba1a3..85b8cac461 100644
--- a/OpenSim/Region/Framework/Interfaces/IGroupsModule.cs
+++ b/OpenSim/Region/Framework/Interfaces/IGroupsModule.cs
@@ -64,5 +64,14 @@ namespace OpenSim.Region.Framework.Interfaces
void LeaveGroupRequest(IClientAPI remoteClient, UUID GroupID);
void EjectGroupMemberRequest(IClientAPI remoteClient, UUID GroupID, UUID EjecteeID);
void InviteGroupRequest(IClientAPI remoteClient, UUID GroupID, UUID InviteeID, UUID RoleID);
+
+
+ ///
+ /// Retrieve group profile.
+ ///
+ ///
+ ///
+ /// False if group does not exist
+ bool GetGroupProfile(UUID GroupID, out GroupProfileData GroupProfile);
}
}
diff --git a/OpenSim/Region/OptionalModules/World/NPC/NPCAvatar.cs b/OpenSim/Region/OptionalModules/World/NPC/NPCAvatar.cs
index 8b733cd315..aff26b63fa 100644
--- a/OpenSim/Region/OptionalModules/World/NPC/NPCAvatar.cs
+++ b/OpenSim/Region/OptionalModules/World/NPC/NPCAvatar.cs
@@ -270,6 +270,7 @@ namespace OpenSim.Region.OptionalModules.World.NPC
public event ParcelAccessListUpdateRequest OnParcelAccessListUpdateRequest;
public event ParcelSelectObjects OnParcelSelectObjects;
public event ParcelObjectOwnerRequest OnParcelObjectOwnerRequest;
+ public event ParcelDeedToGroup OnParcelDeedToGroup;
public event ObjectDeselect OnObjectDeselect;
public event RegionInfoRequest OnRegionInfoRequest;
public event EstateCovenantRequest OnEstateCovenantRequest;
diff --git a/OpenSim/Tests/Common/Mock/TestClient.cs b/OpenSim/Tests/Common/Mock/TestClient.cs
index 0f75d70460..15e92da470 100644
--- a/OpenSim/Tests/Common/Mock/TestClient.cs
+++ b/OpenSim/Tests/Common/Mock/TestClient.cs
@@ -177,6 +177,7 @@ namespace OpenSim.Tests.Common.Mock
public event ParcelAccessListUpdateRequest OnParcelAccessListUpdateRequest;
public event ParcelSelectObjects OnParcelSelectObjects;
public event ParcelObjectOwnerRequest OnParcelObjectOwnerRequest;
+ public event ParcelDeedToGroup OnParcelDeedToGroup;
public event ObjectDeselect OnObjectDeselect;
public event RegionInfoRequest OnRegionInfoRequest;
public event EstateCovenantRequest OnEstateCovenantRequest;