Correctly flag group owned prims in the land prim list

0.6.5-rc1
Melanie Thielker 2009-04-16 01:01:40 +00:00
parent ac96722c1d
commit 4b85cbf0b6
7 changed files with 11 additions and 8 deletions

View File

@ -1228,7 +1228,7 @@ namespace OpenSim.Client.MXP.ClientStack
// Need to translate to MXP somehow
}
public void SendLandObjectOwners(LandData land, Dictionary<UUID, int> ownersAndCount)
public void SendLandObjectOwners(LandData land, List<UUID> groups, Dictionary<UUID, int> ownersAndCount)
{
// Need to translate to MXP somehow
}

View File

@ -996,7 +996,7 @@ namespace OpenSim.Framework
void SendLandAccessListData(List<UUID> avatars, uint accessFlag, int localLandID);
void SendForceClientSelectObjects(List<uint> objectIDs);
void SendLandObjectOwners(LandData land, Dictionary<UUID, int> ownersAndCount);
void SendLandObjectOwners(LandData land, List<UUID> groups, Dictionary<UUID, int> ownersAndCount);
void SendLandParcelOverlay(byte[] data, int sequence_id);
#region Parcel Methods

View File

@ -3420,7 +3420,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
}
}
public void SendLandObjectOwners(LandData land, Dictionary<UUID, int> ownersAndCount)
public void SendLandObjectOwners(LandData land, List<UUID> groups, Dictionary<UUID, int> ownersAndCount)
{
int notifyCount = ownersAndCount.Count;
ParcelObjectOwnersReplyPacket pack = (ParcelObjectOwnersReplyPacket)PacketPool.Instance.GetPacket(PacketType.ParcelObjectOwnersReply);
@ -3445,7 +3445,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
dataBlock[num] = new ParcelObjectOwnersReplyPacket.DataBlock();
dataBlock[num].Count = ownersAndCount[owner];
if (land.GroupID == owner)
if (land.GroupID == owner || groups.Contains(owner))
dataBlock[num].IsGroupOwned = true;
dataBlock[num].OnlineStatus = true; //TODO: fix me later

View File

@ -699,6 +699,7 @@ namespace OpenSim.Region.CoreModules.World.Land
if (m_scene.Permissions.CanEditParcel(remote_client.AgentId, this))
{
Dictionary<UUID, int> primCount = new Dictionary<UUID, int>();
List<UUID> groups = new List<UUID>();
lock (primsOverMe)
{
@ -726,6 +727,8 @@ namespace OpenSim.Region.CoreModules.World.Land
{
m_log.Error("[LAND]: Unable to match a prim with it's owner.");
}
if (obj.OwnerID == obj.GroupID && (!groups.Contains(obj.OwnerID)))
groups.Add(obj.OwnerID);
}
}
catch (InvalidOperationException)
@ -734,7 +737,7 @@ namespace OpenSim.Region.CoreModules.World.Land
}
}
remote_client.SendLandObjectOwners(landData, primCount);
remote_client.SendLandObjectOwners(landData, groups, primCount);
}
}

View File

@ -885,7 +885,7 @@ namespace OpenSim.Region.Examples.SimpleModule
{
}
public void SendLandObjectOwners(LandData land, Dictionary<UUID, int> ownersAndCount)
public void SendLandObjectOwners(LandData land, List<UUID> groups, Dictionary<UUID, int> ownersAndCount)
{
}

View File

@ -892,7 +892,7 @@ namespace OpenSim.Region.OptionalModules.World.NPC
public void SendForceClientSelectObjects(List<uint> objectIDs)
{
}
public void SendLandObjectOwners(LandData land, Dictionary<UUID, int> ownersAndCount)
public void SendLandObjectOwners(LandData land, List<UUID> groups, Dictionary<UUID, int> ownersAndCount)
{
}
public void SendLandParcelOverlay(byte[] data, int sequence_id)

View File

@ -929,7 +929,7 @@ namespace OpenSim.Tests.Common.Mock
{
}
public void SendLandObjectOwners(LandData land, Dictionary<UUID, int> ownersAndCount)
public void SendLandObjectOwners(LandData land, List<UUID> groups, Dictionary<UUID, int> ownersAndCount)
{
}