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 // 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 // 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 SendLandAccessListData(List<UUID> avatars, uint accessFlag, int localLandID);
void SendForceClientSelectObjects(List<uint> objectIDs); 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); void SendLandParcelOverlay(byte[] data, int sequence_id);
#region Parcel Methods #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; int notifyCount = ownersAndCount.Count;
ParcelObjectOwnersReplyPacket pack = (ParcelObjectOwnersReplyPacket)PacketPool.Instance.GetPacket(PacketType.ParcelObjectOwnersReply); ParcelObjectOwnersReplyPacket pack = (ParcelObjectOwnersReplyPacket)PacketPool.Instance.GetPacket(PacketType.ParcelObjectOwnersReply);
@ -3445,7 +3445,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
dataBlock[num] = new ParcelObjectOwnersReplyPacket.DataBlock(); dataBlock[num] = new ParcelObjectOwnersReplyPacket.DataBlock();
dataBlock[num].Count = ownersAndCount[owner]; dataBlock[num].Count = ownersAndCount[owner];
if (land.GroupID == owner) if (land.GroupID == owner || groups.Contains(owner))
dataBlock[num].IsGroupOwned = true; dataBlock[num].IsGroupOwned = true;
dataBlock[num].OnlineStatus = true; //TODO: fix me later 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)) if (m_scene.Permissions.CanEditParcel(remote_client.AgentId, this))
{ {
Dictionary<UUID, int> primCount = new Dictionary<UUID, int>(); Dictionary<UUID, int> primCount = new Dictionary<UUID, int>();
List<UUID> groups = new List<UUID>();
lock (primsOverMe) 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."); 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) 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 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) 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)
{ {
} }