From e2ed1a4e1f2776e5b929207f1ca6e271a4d6f6e1 Mon Sep 17 00:00:00 2001 From: mingchen Date: Sun, 16 Dec 2007 19:53:27 +0000 Subject: *Adding and Removing Avatars from the Access/Ban List for a parcel now works, but the actual ban lines, etc are not done. --- OpenSim/Region/ClientStack/ClientView.cs | 36 ++++++++++++++++++++++++++------ 1 file changed, 30 insertions(+), 6 deletions(-) (limited to 'OpenSim/Region/ClientStack/ClientView.cs') diff --git a/OpenSim/Region/ClientStack/ClientView.cs b/OpenSim/Region/ClientStack/ClientView.cs index 065e5e0..41e44a5 100644 --- a/OpenSim/Region/ClientStack/ClientView.cs +++ b/OpenSim/Region/ClientStack/ClientView.cs @@ -516,6 +516,8 @@ namespace OpenSim.Region.ClientStack public event UUIDNameRequest OnNameFromUUIDRequest; + public event ParcelAccessListRequest OnParcelAccessListRequest; + public event ParcelAccessListUpdateRequest OnParcelAccessListUpdateRequest; public event ParcelPropertiesRequest OnParcelPropertiesRequest; public event ParcelDivideRequest OnParcelDivideRequest; public event ParcelJoinRequest OnParcelJoinRequest; @@ -3117,8 +3119,33 @@ namespace OpenSim.Region.ClientStack break; #region Parcel related packets + case PacketType.ParcelAccessListRequest: + ParcelAccessListRequestPacket requestPacket = (ParcelAccessListRequestPacket)Pack; + if (OnParcelAccessListRequest != null) + { + OnParcelAccessListRequest(requestPacket.AgentData.AgentID, requestPacket.AgentData.SessionID, requestPacket.Data.Flags, requestPacket.Data.SequenceID, requestPacket.Data.LocalID,this); + } + break; + case PacketType.ParcelAccessListUpdate: + ParcelAccessListUpdatePacket updatePacket = (ParcelAccessListUpdatePacket)Pack; + List entries = new List(); + foreach (ParcelAccessListUpdatePacket.ListBlock block in updatePacket.List) + { + ParcelManager.ParcelAccessEntry entry = new ParcelManager.ParcelAccessEntry(); + entry.AgentID = block.ID; + entry.Flags = (ParcelManager.AccessList)block.Flags; + entry.Time = new DateTime(); + entries.Add(entry); + } + + if (OnParcelAccessListUpdateRequest != null) + { + OnParcelAccessListUpdateRequest(updatePacket.AgentData.AgentID, updatePacket.AgentData.SessionID, updatePacket.Data.Flags, updatePacket.Data.LocalID, entries, this); + } + break; case PacketType.ParcelPropertiesRequest: + ParcelPropertiesRequestPacket propertiesRequest = (ParcelPropertiesRequestPacket) Pack; if (OnParcelPropertiesRequest != null) { @@ -3151,10 +3178,10 @@ namespace OpenSim.Region.ClientStack } break; case PacketType.ParcelPropertiesUpdate: - ParcelPropertiesUpdatePacket updatePacket = (ParcelPropertiesUpdatePacket) Pack; + ParcelPropertiesUpdatePacket parcelPropertiesPacket = (ParcelPropertiesUpdatePacket) Pack; if (OnParcelPropertiesUpdateRequest != null) { - OnParcelPropertiesUpdateRequest(updatePacket, this); + OnParcelPropertiesUpdateRequest(parcelPropertiesPacket, this); } break; case PacketType.ParcelSelectObjects: @@ -3283,10 +3310,7 @@ namespace OpenSim.Region.ClientStack // TODO: handle this packet MainLog.Instance.Warn("CLIENT", "unhandled AgentDataUpdateRequest packet"); break; - case PacketType.ParcelAccessListRequest: - // TODO: handle this packet - MainLog.Instance.Warn("CLIENT", "unhandled ParcelAccessListRequest packet"); - break; + case PacketType.ParcelDwellRequest: // TODO: handle this packet MainLog.Instance.Warn("CLIENT", "unhandled ParcelDwellRequest packet"); -- cgit v1.1