diff options
Diffstat (limited to 'OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs')
-rw-r--r-- | OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs | 783 |
1 files changed, 765 insertions, 18 deletions
diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs index 49b9378..47251b7 100644 --- a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs +++ b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs | |||
@@ -350,7 +350,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
350 | 350 | ||
351 | protected IAssetService m_assetService; | 351 | protected IAssetService m_assetService; |
352 | private IHyperAssetService m_hyperAssets; | 352 | private IHyperAssetService m_hyperAssets; |
353 | 353 | private const bool m_checkPackets = true; | |
354 | 354 | ||
355 | #endregion Class Members | 355 | #endregion Class Members |
356 | 356 | ||
@@ -1266,10 +1266,10 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
1266 | // | 1266 | // |
1267 | if (totalItems == 0 && totalFolders == 0) | 1267 | if (totalItems == 0 && totalFolders == 0) |
1268 | currentPacket = CreateInventoryDescendentsPacket(ownerID, folderID, version, items.Count + folders.Count, 0, 0); | 1268 | currentPacket = CreateInventoryDescendentsPacket(ownerID, folderID, version, items.Count + folders.Count, 0, 0); |
1269 | 1269 | ||
1270 | // To preserve SL compatibility, we will NOT combine folders and items in one packet | 1270 | // To preserve SL compatibility, we will NOT combine folders and items in one packet |
1271 | // | 1271 | // |
1272 | while(itemsSent < totalItems || foldersSent < totalFolders) | 1272 | while (itemsSent < totalItems || foldersSent < totalFolders) |
1273 | { | 1273 | { |
1274 | if (currentPacket == null) // Start a new packet | 1274 | if (currentPacket == null) // Start a new packet |
1275 | { | 1275 | { |
@@ -1289,7 +1289,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
1289 | 1289 | ||
1290 | if (foldersToSend-- > 0) | 1290 | if (foldersToSend-- > 0) |
1291 | currentPacket.FolderData[foldersSent % MAX_FOLDERS_PER_PACKET] = CreateFolderDataBlock(folders[foldersSent++]); | 1291 | currentPacket.FolderData[foldersSent % MAX_FOLDERS_PER_PACKET] = CreateFolderDataBlock(folders[foldersSent++]); |
1292 | else if(itemsToSend-- > 0) | 1292 | else if (itemsToSend-- > 0) |
1293 | currentPacket.ItemData[itemsSent % MAX_ITEMS_PER_PACKET] = CreateItemDataBlock(items[itemsSent++]); | 1293 | currentPacket.ItemData[itemsSent % MAX_ITEMS_PER_PACKET] = CreateItemDataBlock(items[itemsSent++]); |
1294 | else | 1294 | else |
1295 | { | 1295 | { |
@@ -2043,7 +2043,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
2043 | packet.AgentData.SessionID = SessionId; | 2043 | packet.AgentData.SessionID = SessionId; |
2044 | 2044 | ||
2045 | packet.Effect = effectBlocks; | 2045 | packet.Effect = effectBlocks; |
2046 | 2046 | ||
2047 | OutPacket(packet, ThrottleOutPacketType.State); | 2047 | OutPacket(packet, ThrottleOutPacketType.State); |
2048 | } | 2048 | } |
2049 | 2049 | ||
@@ -2742,7 +2742,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
2742 | } | 2742 | } |
2743 | llsd.Add("GroupData", GroupData); | 2743 | llsd.Add("GroupData", GroupData); |
2744 | llsd.Add("NewGroupData", NewGroupData); | 2744 | llsd.Add("NewGroupData", NewGroupData); |
2745 | 2745 | ||
2746 | IEventQueue eq = this.Scene.RequestModuleInterface<IEventQueue>(); | 2746 | IEventQueue eq = this.Scene.RequestModuleInterface<IEventQueue>(); |
2747 | if (eq != null) | 2747 | if (eq != null) |
2748 | { | 2748 | { |
@@ -3121,7 +3121,6 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
3121 | 3121 | ||
3122 | objupdate.ObjectData = new ObjectUpdatePacket.ObjectDataBlock[1]; | 3122 | objupdate.ObjectData = new ObjectUpdatePacket.ObjectDataBlock[1]; |
3123 | objupdate.ObjectData[0] = CreateAvatarUpdateBlock(data); | 3123 | objupdate.ObjectData[0] = CreateAvatarUpdateBlock(data); |
3124 | |||
3125 | OutPacket(objupdate, ThrottleOutPacketType.Task); | 3124 | OutPacket(objupdate, ThrottleOutPacketType.Task); |
3126 | } | 3125 | } |
3127 | 3126 | ||
@@ -3172,8 +3171,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
3172 | terse.ObjectData[i] = m_avatarTerseUpdates.Dequeue(); | 3171 | terse.ObjectData[i] = m_avatarTerseUpdates.Dequeue(); |
3173 | } | 3172 | } |
3174 | 3173 | ||
3175 | // HACK: Using the task category until the tiered reprioritization code is in | 3174 | OutPacket(terse, ThrottleOutPacketType.State); |
3176 | OutPacket(terse, ThrottleOutPacketType.Task); | ||
3177 | } | 3175 | } |
3178 | 3176 | ||
3179 | public void SendCoarseLocationUpdate(List<UUID> users, List<Vector3> CoarseLocations) | 3177 | public void SendCoarseLocationUpdate(List<UUID> users, List<Vector3> CoarseLocations) |
@@ -4045,7 +4043,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
4045 | 4043 | ||
4046 | if (collisionPlane == Vector4.Zero) | 4044 | if (collisionPlane == Vector4.Zero) |
4047 | collisionPlane = Vector4.UnitW; | 4045 | collisionPlane = Vector4.UnitW; |
4048 | 4046 | //m_log.DebugFormat("CollisionPlane: {0}",collisionPlane); | |
4049 | collisionPlane.ToBytes(data, pos); | 4047 | collisionPlane.ToBytes(data, pos); |
4050 | pos += 16; | 4048 | pos += 16; |
4051 | } | 4049 | } |
@@ -4130,12 +4128,12 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
4130 | update.PCode = (byte)PCode.Avatar; | 4128 | update.PCode = (byte)PCode.Avatar; |
4131 | update.ProfileCurve = 1; | 4129 | update.ProfileCurve = 1; |
4132 | update.PSBlock = Utils.EmptyBytes; | 4130 | update.PSBlock = Utils.EmptyBytes; |
4133 | update.Scale = Vector3.One; | 4131 | update.Scale = new Vector3(0.45f,0.6f,1.9f); |
4134 | update.Text = Utils.EmptyBytes; | 4132 | update.Text = Utils.EmptyBytes; |
4135 | update.TextColor = new byte[4]; | 4133 | update.TextColor = new byte[4]; |
4136 | update.TextureAnim = Utils.EmptyBytes; | 4134 | update.TextureAnim = Utils.EmptyBytes; |
4137 | update.TextureEntry = data.TextureEntry ?? Utils.EmptyBytes; | 4135 | update.TextureEntry = data.TextureEntry ?? Utils.EmptyBytes; |
4138 | update.UpdateFlags = 61 + (9 << 8) + (130 << 16) + (16 << 24); // TODO: Replace these numbers with PrimFlags | 4136 | update.UpdateFlags = (uint)(PrimFlags.Physics | PrimFlags.ObjectModify | PrimFlags.ObjectCopy | PrimFlags.ObjectAnyOwner | PrimFlags.ObjectYouOwner | PrimFlags.ObjectMove | PrimFlags.InventoryEmpty | PrimFlags.ObjectTransfer | PrimFlags.ObjectOwnerModify);//61 + (9 << 8) + (130 << 16) + (16 << 24); // TODO: Replace these numbers with PrimFlags |
4139 | 4137 | ||
4140 | return update; | 4138 | return update; |
4141 | } | 4139 | } |
@@ -4282,6 +4280,38 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
4282 | AddLocalPacketHandler(PacketType.UUIDGroupNameRequest, HandleUUIDGroupNameRequest); | 4280 | AddLocalPacketHandler(PacketType.UUIDGroupNameRequest, HandleUUIDGroupNameRequest); |
4283 | AddLocalPacketHandler(PacketType.ObjectGroup, HandleObjectGroupRequest); | 4281 | AddLocalPacketHandler(PacketType.ObjectGroup, HandleObjectGroupRequest); |
4284 | AddLocalPacketHandler(PacketType.GenericMessage, HandleGenericMessage); | 4282 | AddLocalPacketHandler(PacketType.GenericMessage, HandleGenericMessage); |
4283 | AddLocalPacketHandler(PacketType.AvatarPropertiesRequest, HandleAvatarPropertiesRequest); | ||
4284 | AddLocalPacketHandler(PacketType.ChatFromViewer, HandleChatFromViewer); | ||
4285 | AddLocalPacketHandler(PacketType.AvatarPropertiesUpdate, HandlerAvatarPropertiesUpdate); | ||
4286 | AddLocalPacketHandler(PacketType.ScriptDialogReply, HandlerScriptDialogReply); | ||
4287 | AddLocalPacketHandler(PacketType.ImprovedInstantMessage, HandlerImprovedInstantMessage); | ||
4288 | AddLocalPacketHandler(PacketType.AcceptFriendship, HandlerAcceptFriendship); | ||
4289 | AddLocalPacketHandler(PacketType.DeclineFriendship, HandlerDeclineFriendship); | ||
4290 | AddLocalPacketHandler(PacketType.TerminateFriendship, HandlerTerminateFrendship); | ||
4291 | AddLocalPacketHandler(PacketType.RezObject, HandlerRezObject); | ||
4292 | AddLocalPacketHandler(PacketType.DeRezObject, HandlerDeRezObject); | ||
4293 | AddLocalPacketHandler(PacketType.ModifyLand, HandlerModifyLand); | ||
4294 | AddLocalPacketHandler(PacketType.RegionHandshakeReply, HandlerRegionHandshakeReply); | ||
4295 | AddLocalPacketHandler(PacketType.AgentWearablesRequest, HandlerAgentWearablesRequest); | ||
4296 | AddLocalPacketHandler(PacketType.AgentSetAppearance, HandlerAgentSetAppearance); | ||
4297 | AddLocalPacketHandler(PacketType.AgentIsNowWearing, HandlerAgentIsNowWearing); | ||
4298 | AddLocalPacketHandler(PacketType.RezSingleAttachmentFromInv, HandlerRezSingleAttachmentFromInv); | ||
4299 | AddLocalPacketHandler(PacketType.RezMultipleAttachmentsFromInv, HandleRezMultipleAttachmentsFromInv); | ||
4300 | AddLocalPacketHandler(PacketType.DetachAttachmentIntoInv, HandleDetachAttachmentIntoInv); | ||
4301 | AddLocalPacketHandler(PacketType.ObjectAttach, HandleObjectAttach); | ||
4302 | AddLocalPacketHandler(PacketType.ObjectDetach, HandleObjectDetach); | ||
4303 | AddLocalPacketHandler(PacketType.ObjectDrop, HandleObjectDrop); | ||
4304 | AddLocalPacketHandler(PacketType.SetAlwaysRun, HandleSetAlwaysRun); | ||
4305 | AddLocalPacketHandler(PacketType.CompleteAgentMovement, HandleCompleteAgentMovement); | ||
4306 | AddLocalPacketHandler(PacketType.AgentAnimation, HandleAgentAnimation); | ||
4307 | AddLocalPacketHandler(PacketType.AgentRequestSit, HandleAgentRequestSit); | ||
4308 | AddLocalPacketHandler(PacketType.AgentSit, HandleAgentSit); | ||
4309 | AddLocalPacketHandler(PacketType.SoundTrigger, HandleSoundTrigger); | ||
4310 | //AddLocalPacketHandler(PacketType.ChatFromViewer, HandleChatFromViewer); | ||
4311 | //AddLocalPacketHandler(PacketType.ChatFromViewer, HandleChatFromViewer); | ||
4312 | //AddLocalPacketHandler(PacketType.ChatFromViewer, HandleChatFromViewer); | ||
4313 | //AddLocalPacketHandler(PacketType.ChatFromViewer, HandleChatFromViewer); | ||
4314 | |||
4285 | } | 4315 | } |
4286 | 4316 | ||
4287 | #region Packet Handlers | 4317 | #region Packet Handlers |
@@ -4497,6 +4527,723 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
4497 | return true; | 4527 | return true; |
4498 | } | 4528 | } |
4499 | 4529 | ||
4530 | private bool HandleAvatarPropertiesRequest(IClientAPI sender, Packet Pack) | ||
4531 | { | ||
4532 | AvatarPropertiesRequestPacket avatarProperties = (AvatarPropertiesRequestPacket)Pack; | ||
4533 | |||
4534 | #region Packet Session and User Check | ||
4535 | if (m_checkPackets) | ||
4536 | { | ||
4537 | if (avatarProperties.AgentData.SessionID != SessionId || | ||
4538 | avatarProperties.AgentData.AgentID != AgentId) | ||
4539 | return true; | ||
4540 | } | ||
4541 | #endregion | ||
4542 | |||
4543 | RequestAvatarProperties handlerRequestAvatarProperties = OnRequestAvatarProperties; | ||
4544 | if (handlerRequestAvatarProperties != null) | ||
4545 | { | ||
4546 | handlerRequestAvatarProperties(this, avatarProperties.AgentData.AvatarID); | ||
4547 | } | ||
4548 | return true; | ||
4549 | } | ||
4550 | |||
4551 | private bool HandleChatFromViewer(IClientAPI sender, Packet Pack) | ||
4552 | { | ||
4553 | ChatFromViewerPacket inchatpack = (ChatFromViewerPacket)Pack; | ||
4554 | |||
4555 | #region Packet Session and User Check | ||
4556 | if (m_checkPackets) | ||
4557 | { | ||
4558 | if (inchatpack.AgentData.SessionID != SessionId || | ||
4559 | inchatpack.AgentData.AgentID != AgentId) | ||
4560 | return true; | ||
4561 | } | ||
4562 | #endregion | ||
4563 | |||
4564 | string fromName = String.Empty; //ClientAvatar.firstname + " " + ClientAvatar.lastname; | ||
4565 | byte[] message = inchatpack.ChatData.Message; | ||
4566 | byte type = inchatpack.ChatData.Type; | ||
4567 | Vector3 fromPos = new Vector3(); // ClientAvatar.Pos; | ||
4568 | // UUID fromAgentID = AgentId; | ||
4569 | |||
4570 | int channel = inchatpack.ChatData.Channel; | ||
4571 | |||
4572 | if (OnChatFromClient != null) | ||
4573 | { | ||
4574 | OSChatMessage args = new OSChatMessage(); | ||
4575 | args.Channel = channel; | ||
4576 | args.From = fromName; | ||
4577 | args.Message = Utils.BytesToString(message); | ||
4578 | args.Type = (ChatTypeEnum)type; | ||
4579 | args.Position = fromPos; | ||
4580 | |||
4581 | args.Scene = Scene; | ||
4582 | args.Sender = this; | ||
4583 | args.SenderUUID = this.AgentId; | ||
4584 | |||
4585 | ChatMessage handlerChatFromClient = OnChatFromClient; | ||
4586 | if (handlerChatFromClient != null) | ||
4587 | handlerChatFromClient(this, args); | ||
4588 | } | ||
4589 | return true; | ||
4590 | } | ||
4591 | |||
4592 | private bool HandlerAvatarPropertiesUpdate(IClientAPI sender, Packet Pack) | ||
4593 | { | ||
4594 | AvatarPropertiesUpdatePacket avatarProps = (AvatarPropertiesUpdatePacket)Pack; | ||
4595 | |||
4596 | #region Packet Session and User Check | ||
4597 | if (m_checkPackets) | ||
4598 | { | ||
4599 | if (avatarProps.AgentData.SessionID != SessionId || | ||
4600 | avatarProps.AgentData.AgentID != AgentId) | ||
4601 | return true; | ||
4602 | } | ||
4603 | #endregion | ||
4604 | |||
4605 | UpdateAvatarProperties handlerUpdateAvatarProperties = OnUpdateAvatarProperties; | ||
4606 | if (handlerUpdateAvatarProperties != null) | ||
4607 | { | ||
4608 | AvatarPropertiesUpdatePacket.PropertiesDataBlock Properties = avatarProps.PropertiesData; | ||
4609 | UserProfileData UserProfile = new UserProfileData(); | ||
4610 | UserProfile.ID = AgentId; | ||
4611 | UserProfile.AboutText = Utils.BytesToString(Properties.AboutText); | ||
4612 | UserProfile.FirstLifeAboutText = Utils.BytesToString(Properties.FLAboutText); | ||
4613 | UserProfile.FirstLifeImage = Properties.FLImageID; | ||
4614 | UserProfile.Image = Properties.ImageID; | ||
4615 | UserProfile.ProfileUrl = Utils.BytesToString(Properties.ProfileURL); | ||
4616 | |||
4617 | handlerUpdateAvatarProperties(this, UserProfile); | ||
4618 | } | ||
4619 | return true; | ||
4620 | } | ||
4621 | |||
4622 | private bool HandlerScriptDialogReply(IClientAPI sender, Packet Pack) | ||
4623 | { | ||
4624 | ScriptDialogReplyPacket rdialog = (ScriptDialogReplyPacket)Pack; | ||
4625 | |||
4626 | #region Packet Session and User Check | ||
4627 | if (m_checkPackets) | ||
4628 | { | ||
4629 | if (rdialog.AgentData.SessionID != SessionId || | ||
4630 | rdialog.AgentData.AgentID != AgentId) | ||
4631 | return true; | ||
4632 | } | ||
4633 | #endregion | ||
4634 | |||
4635 | int ch = rdialog.Data.ChatChannel; | ||
4636 | byte[] msg = rdialog.Data.ButtonLabel; | ||
4637 | if (OnChatFromClient != null) | ||
4638 | { | ||
4639 | OSChatMessage args = new OSChatMessage(); | ||
4640 | args.Channel = ch; | ||
4641 | args.From = String.Empty; | ||
4642 | args.Message = Utils.BytesToString(msg); | ||
4643 | args.Type = ChatTypeEnum.Shout; | ||
4644 | args.Position = new Vector3(); | ||
4645 | args.Scene = Scene; | ||
4646 | args.Sender = this; | ||
4647 | ChatMessage handlerChatFromClient2 = OnChatFromClient; | ||
4648 | if (handlerChatFromClient2 != null) | ||
4649 | handlerChatFromClient2(this, args); | ||
4650 | } | ||
4651 | |||
4652 | return true; | ||
4653 | } | ||
4654 | |||
4655 | private bool HandlerImprovedInstantMessage(IClientAPI sender, Packet Pack) | ||
4656 | { | ||
4657 | ImprovedInstantMessagePacket msgpack = (ImprovedInstantMessagePacket)Pack; | ||
4658 | |||
4659 | #region Packet Session and User Check | ||
4660 | if (m_checkPackets) | ||
4661 | { | ||
4662 | if (msgpack.AgentData.SessionID != SessionId || | ||
4663 | msgpack.AgentData.AgentID != AgentId) | ||
4664 | return true; | ||
4665 | } | ||
4666 | #endregion | ||
4667 | |||
4668 | string IMfromName = Util.FieldToString(msgpack.MessageBlock.FromAgentName); | ||
4669 | string IMmessage = Utils.BytesToString(msgpack.MessageBlock.Message); | ||
4670 | ImprovedInstantMessage handlerInstantMessage = OnInstantMessage; | ||
4671 | |||
4672 | if (handlerInstantMessage != null) | ||
4673 | { | ||
4674 | GridInstantMessage im = new GridInstantMessage(Scene, | ||
4675 | msgpack.AgentData.AgentID, | ||
4676 | IMfromName, | ||
4677 | msgpack.MessageBlock.ToAgentID, | ||
4678 | msgpack.MessageBlock.Dialog, | ||
4679 | msgpack.MessageBlock.FromGroup, | ||
4680 | IMmessage, | ||
4681 | msgpack.MessageBlock.ID, | ||
4682 | msgpack.MessageBlock.Offline != 0 ? true : false, | ||
4683 | msgpack.MessageBlock.Position, | ||
4684 | msgpack.MessageBlock.BinaryBucket); | ||
4685 | |||
4686 | handlerInstantMessage(this, im); | ||
4687 | } | ||
4688 | return true; | ||
4689 | |||
4690 | } | ||
4691 | |||
4692 | private bool HandlerAcceptFriendship(IClientAPI sender, Packet Pack) | ||
4693 | { | ||
4694 | AcceptFriendshipPacket afriendpack = (AcceptFriendshipPacket)Pack; | ||
4695 | |||
4696 | #region Packet Session and User Check | ||
4697 | if (m_checkPackets) | ||
4698 | { | ||
4699 | if (afriendpack.AgentData.SessionID != SessionId || | ||
4700 | afriendpack.AgentData.AgentID != AgentId) | ||
4701 | return true; | ||
4702 | } | ||
4703 | #endregion | ||
4704 | |||
4705 | // My guess is this is the folder to stick the calling card into | ||
4706 | List<UUID> callingCardFolders = new List<UUID>(); | ||
4707 | |||
4708 | UUID agentID = afriendpack.AgentData.AgentID; | ||
4709 | UUID transactionID = afriendpack.TransactionBlock.TransactionID; | ||
4710 | |||
4711 | for (int fi = 0; fi < afriendpack.FolderData.Length; fi++) | ||
4712 | { | ||
4713 | callingCardFolders.Add(afriendpack.FolderData[fi].FolderID); | ||
4714 | } | ||
4715 | |||
4716 | FriendActionDelegate handlerApproveFriendRequest = OnApproveFriendRequest; | ||
4717 | if (handlerApproveFriendRequest != null) | ||
4718 | { | ||
4719 | handlerApproveFriendRequest(this, agentID, transactionID, callingCardFolders); | ||
4720 | } | ||
4721 | return true; | ||
4722 | |||
4723 | } | ||
4724 | |||
4725 | private bool HandlerDeclineFriendship(IClientAPI sender, Packet Pack) | ||
4726 | { | ||
4727 | DeclineFriendshipPacket dfriendpack = (DeclineFriendshipPacket)Pack; | ||
4728 | |||
4729 | #region Packet Session and User Check | ||
4730 | if (m_checkPackets) | ||
4731 | { | ||
4732 | if (dfriendpack.AgentData.SessionID != SessionId || | ||
4733 | dfriendpack.AgentData.AgentID != AgentId) | ||
4734 | return true; | ||
4735 | } | ||
4736 | #endregion | ||
4737 | |||
4738 | if (OnDenyFriendRequest != null) | ||
4739 | { | ||
4740 | OnDenyFriendRequest(this, | ||
4741 | dfriendpack.AgentData.AgentID, | ||
4742 | dfriendpack.TransactionBlock.TransactionID, | ||
4743 | null); | ||
4744 | } | ||
4745 | return true; | ||
4746 | } | ||
4747 | |||
4748 | private bool HandlerTerminateFrendship(IClientAPI sender, Packet Pack) | ||
4749 | { | ||
4750 | TerminateFriendshipPacket tfriendpack = (TerminateFriendshipPacket)Pack; | ||
4751 | |||
4752 | #region Packet Session and User Check | ||
4753 | if (m_checkPackets) | ||
4754 | { | ||
4755 | if (tfriendpack.AgentData.SessionID != SessionId || | ||
4756 | tfriendpack.AgentData.AgentID != AgentId) | ||
4757 | return true; | ||
4758 | } | ||
4759 | #endregion | ||
4760 | |||
4761 | UUID listOwnerAgentID = tfriendpack.AgentData.AgentID; | ||
4762 | UUID exFriendID = tfriendpack.ExBlock.OtherID; | ||
4763 | |||
4764 | FriendshipTermination handlerTerminateFriendship = OnTerminateFriendship; | ||
4765 | if (handlerTerminateFriendship != null) | ||
4766 | { | ||
4767 | handlerTerminateFriendship(this, listOwnerAgentID, exFriendID); | ||
4768 | } | ||
4769 | return true; | ||
4770 | } | ||
4771 | |||
4772 | private bool HandlerRezObject(IClientAPI sender, Packet Pack) | ||
4773 | { | ||
4774 | RezObjectPacket rezPacket = (RezObjectPacket)Pack; | ||
4775 | |||
4776 | #region Packet Session and User Check | ||
4777 | if (m_checkPackets) | ||
4778 | { | ||
4779 | if (rezPacket.AgentData.SessionID != SessionId || | ||
4780 | rezPacket.AgentData.AgentID != AgentId) | ||
4781 | return true; | ||
4782 | } | ||
4783 | #endregion | ||
4784 | |||
4785 | RezObject handlerRezObject = OnRezObject; | ||
4786 | if (handlerRezObject != null) | ||
4787 | { | ||
4788 | handlerRezObject(this, rezPacket.InventoryData.ItemID, rezPacket.RezData.RayEnd, | ||
4789 | rezPacket.RezData.RayStart, rezPacket.RezData.RayTargetID, | ||
4790 | rezPacket.RezData.BypassRaycast, rezPacket.RezData.RayEndIsIntersection, | ||
4791 | rezPacket.RezData.RezSelected, rezPacket.RezData.RemoveItem, | ||
4792 | rezPacket.RezData.FromTaskID); | ||
4793 | } | ||
4794 | return true; | ||
4795 | } | ||
4796 | |||
4797 | private bool HandlerDeRezObject(IClientAPI sender, Packet Pack) | ||
4798 | { | ||
4799 | DeRezObjectPacket DeRezPacket = (DeRezObjectPacket)Pack; | ||
4800 | |||
4801 | #region Packet Session and User Check | ||
4802 | if (m_checkPackets) | ||
4803 | { | ||
4804 | if (DeRezPacket.AgentData.SessionID != SessionId || | ||
4805 | DeRezPacket.AgentData.AgentID != AgentId) | ||
4806 | return true; | ||
4807 | } | ||
4808 | #endregion | ||
4809 | |||
4810 | DeRezObject handlerDeRezObject = OnDeRezObject; | ||
4811 | if (handlerDeRezObject != null) | ||
4812 | { | ||
4813 | List<uint> deRezIDs = new List<uint>(); | ||
4814 | |||
4815 | foreach (DeRezObjectPacket.ObjectDataBlock data in | ||
4816 | DeRezPacket.ObjectData) | ||
4817 | { | ||
4818 | deRezIDs.Add(data.ObjectLocalID); | ||
4819 | } | ||
4820 | // It just so happens that the values on the DeRezAction enumerator match the Destination | ||
4821 | // values given by a Second Life client | ||
4822 | handlerDeRezObject(this, deRezIDs, | ||
4823 | DeRezPacket.AgentBlock.GroupID, | ||
4824 | (DeRezAction)DeRezPacket.AgentBlock.Destination, | ||
4825 | DeRezPacket.AgentBlock.DestinationID); | ||
4826 | |||
4827 | } | ||
4828 | return true; | ||
4829 | } | ||
4830 | |||
4831 | private bool HandlerModifyLand(IClientAPI sender, Packet Pack) | ||
4832 | { | ||
4833 | ModifyLandPacket modify = (ModifyLandPacket)Pack; | ||
4834 | |||
4835 | #region Packet Session and User Check | ||
4836 | if (m_checkPackets) | ||
4837 | { | ||
4838 | if (modify.AgentData.SessionID != SessionId || | ||
4839 | modify.AgentData.AgentID != AgentId) | ||
4840 | return true; | ||
4841 | } | ||
4842 | |||
4843 | #endregion | ||
4844 | //m_log.Info("[LAND]: LAND:" + modify.ToString()); | ||
4845 | if (modify.ParcelData.Length > 0) | ||
4846 | { | ||
4847 | if (OnModifyTerrain != null) | ||
4848 | { | ||
4849 | for (int i = 0; i < modify.ParcelData.Length; i++) | ||
4850 | { | ||
4851 | ModifyTerrain handlerModifyTerrain = OnModifyTerrain; | ||
4852 | if (handlerModifyTerrain != null) | ||
4853 | { | ||
4854 | handlerModifyTerrain(AgentId, modify.ModifyBlock.Height, modify.ModifyBlock.Seconds, | ||
4855 | modify.ModifyBlock.BrushSize, | ||
4856 | modify.ModifyBlock.Action, modify.ParcelData[i].North, | ||
4857 | modify.ParcelData[i].West, modify.ParcelData[i].South, | ||
4858 | modify.ParcelData[i].East, AgentId); | ||
4859 | } | ||
4860 | } | ||
4861 | } | ||
4862 | } | ||
4863 | |||
4864 | return true; | ||
4865 | } | ||
4866 | |||
4867 | private bool HandlerRegionHandshakeReply(IClientAPI sender, Packet Pack) | ||
4868 | { | ||
4869 | Action<IClientAPI> handlerRegionHandShakeReply = OnRegionHandShakeReply; | ||
4870 | if (handlerRegionHandShakeReply != null) | ||
4871 | { | ||
4872 | handlerRegionHandShakeReply(this); | ||
4873 | } | ||
4874 | |||
4875 | return true; | ||
4876 | } | ||
4877 | |||
4878 | private bool HandlerAgentWearablesRequest(IClientAPI sender, Packet Pack) | ||
4879 | { | ||
4880 | GenericCall2 handlerRequestWearables = OnRequestWearables; | ||
4881 | |||
4882 | if (handlerRequestWearables != null) | ||
4883 | { | ||
4884 | handlerRequestWearables(); | ||
4885 | } | ||
4886 | |||
4887 | Action<IClientAPI> handlerRequestAvatarsData = OnRequestAvatarsData; | ||
4888 | |||
4889 | if (handlerRequestAvatarsData != null) | ||
4890 | { | ||
4891 | handlerRequestAvatarsData(this); | ||
4892 | } | ||
4893 | |||
4894 | return true; | ||
4895 | } | ||
4896 | |||
4897 | private bool HandlerAgentSetAppearance(IClientAPI sender, Packet Pack) | ||
4898 | { | ||
4899 | AgentSetAppearancePacket appear = (AgentSetAppearancePacket)Pack; | ||
4900 | |||
4901 | #region Packet Session and User Check | ||
4902 | if (m_checkPackets) | ||
4903 | { | ||
4904 | if (appear.AgentData.SessionID != SessionId || | ||
4905 | appear.AgentData.AgentID != AgentId) | ||
4906 | return true; | ||
4907 | } | ||
4908 | #endregion | ||
4909 | |||
4910 | SetAppearance handlerSetAppearance = OnSetAppearance; | ||
4911 | if (handlerSetAppearance != null) | ||
4912 | { | ||
4913 | // Temporarily protect ourselves from the mantis #951 failure. | ||
4914 | // However, we could do this for several other handlers where a failure isn't terminal | ||
4915 | // for the client session anyway, in order to protect ourselves against bad code in plugins | ||
4916 | try | ||
4917 | { | ||
4918 | byte[] visualparams = new byte[appear.VisualParam.Length]; | ||
4919 | for (int i = 0; i < appear.VisualParam.Length; i++) | ||
4920 | visualparams[i] = appear.VisualParam[i].ParamValue; | ||
4921 | |||
4922 | Primitive.TextureEntry te = null; | ||
4923 | if (appear.ObjectData.TextureEntry.Length > 1) | ||
4924 | te = new Primitive.TextureEntry(appear.ObjectData.TextureEntry, 0, appear.ObjectData.TextureEntry.Length); | ||
4925 | |||
4926 | handlerSetAppearance(te, visualparams); | ||
4927 | } | ||
4928 | catch (Exception e) | ||
4929 | { | ||
4930 | m_log.ErrorFormat( | ||
4931 | "[CLIENT VIEW]: AgentSetApperance packet handler threw an exception, {0}", | ||
4932 | e); | ||
4933 | } | ||
4934 | } | ||
4935 | |||
4936 | return true; | ||
4937 | } | ||
4938 | |||
4939 | private bool HandlerAgentIsNowWearing(IClientAPI sender, Packet Pack) | ||
4940 | { | ||
4941 | if (OnAvatarNowWearing != null) | ||
4942 | { | ||
4943 | AgentIsNowWearingPacket nowWearing = (AgentIsNowWearingPacket)Pack; | ||
4944 | |||
4945 | #region Packet Session and User Check | ||
4946 | if (m_checkPackets) | ||
4947 | { | ||
4948 | if (nowWearing.AgentData.SessionID != SessionId || | ||
4949 | nowWearing.AgentData.AgentID != AgentId) | ||
4950 | return true; | ||
4951 | } | ||
4952 | #endregion | ||
4953 | |||
4954 | AvatarWearingArgs wearingArgs = new AvatarWearingArgs(); | ||
4955 | for (int i = 0; i < nowWearing.WearableData.Length; i++) | ||
4956 | { | ||
4957 | AvatarWearingArgs.Wearable wearable = | ||
4958 | new AvatarWearingArgs.Wearable(nowWearing.WearableData[i].ItemID, | ||
4959 | nowWearing.WearableData[i].WearableType); | ||
4960 | wearingArgs.NowWearing.Add(wearable); | ||
4961 | } | ||
4962 | |||
4963 | AvatarNowWearing handlerAvatarNowWearing = OnAvatarNowWearing; | ||
4964 | if (handlerAvatarNowWearing != null) | ||
4965 | { | ||
4966 | handlerAvatarNowWearing(this, wearingArgs); | ||
4967 | } | ||
4968 | } | ||
4969 | return true; | ||
4970 | } | ||
4971 | |||
4972 | private bool HandlerRezSingleAttachmentFromInv(IClientAPI sender, Packet Pack) | ||
4973 | { | ||
4974 | RezSingleAttachmentFromInv handlerRezSingleAttachment = OnRezSingleAttachmentFromInv; | ||
4975 | if (handlerRezSingleAttachment != null) | ||
4976 | { | ||
4977 | RezSingleAttachmentFromInvPacket rez = (RezSingleAttachmentFromInvPacket)Pack; | ||
4978 | |||
4979 | #region Packet Session and User Check | ||
4980 | if (m_checkPackets) | ||
4981 | { | ||
4982 | if (rez.AgentData.SessionID != SessionId || | ||
4983 | rez.AgentData.AgentID != AgentId) | ||
4984 | return true; | ||
4985 | } | ||
4986 | #endregion | ||
4987 | |||
4988 | handlerRezSingleAttachment(this, rez.ObjectData.ItemID, | ||
4989 | rez.ObjectData.AttachmentPt); | ||
4990 | } | ||
4991 | |||
4992 | return true; | ||
4993 | } | ||
4994 | |||
4995 | private bool HandleRezMultipleAttachmentsFromInv(IClientAPI sender, Packet Pack) | ||
4996 | { | ||
4997 | RezMultipleAttachmentsFromInv handlerRezMultipleAttachments = OnRezMultipleAttachmentsFromInv; | ||
4998 | if (handlerRezMultipleAttachments != null) | ||
4999 | { | ||
5000 | RezMultipleAttachmentsFromInvPacket rez = (RezMultipleAttachmentsFromInvPacket)Pack; | ||
5001 | handlerRezMultipleAttachments(this, rez.HeaderData, | ||
5002 | rez.ObjectData); | ||
5003 | } | ||
5004 | |||
5005 | return true; | ||
5006 | } | ||
5007 | |||
5008 | private bool HandleDetachAttachmentIntoInv(IClientAPI sender, Packet Pack) | ||
5009 | { | ||
5010 | UUIDNameRequest handlerDetachAttachmentIntoInv = OnDetachAttachmentIntoInv; | ||
5011 | if (handlerDetachAttachmentIntoInv != null) | ||
5012 | { | ||
5013 | DetachAttachmentIntoInvPacket detachtoInv = (DetachAttachmentIntoInvPacket)Pack; | ||
5014 | |||
5015 | #region Packet Session and User Check | ||
5016 | // UNSUPPORTED ON THIS PACKET | ||
5017 | #endregion | ||
5018 | |||
5019 | UUID itemID = detachtoInv.ObjectData.ItemID; | ||
5020 | // UUID ATTACH_agentID = detachtoInv.ObjectData.AgentID; | ||
5021 | |||
5022 | handlerDetachAttachmentIntoInv(itemID, this); | ||
5023 | } | ||
5024 | return true; | ||
5025 | } | ||
5026 | |||
5027 | private bool HandleObjectAttach(IClientAPI sender, Packet Pack) | ||
5028 | { | ||
5029 | if (OnObjectAttach != null) | ||
5030 | { | ||
5031 | ObjectAttachPacket att = (ObjectAttachPacket)Pack; | ||
5032 | |||
5033 | #region Packet Session and User Check | ||
5034 | if (m_checkPackets) | ||
5035 | { | ||
5036 | if (att.AgentData.SessionID != SessionId || | ||
5037 | att.AgentData.AgentID != AgentId) | ||
5038 | return true; | ||
5039 | } | ||
5040 | #endregion | ||
5041 | |||
5042 | ObjectAttach handlerObjectAttach = OnObjectAttach; | ||
5043 | |||
5044 | if (handlerObjectAttach != null) | ||
5045 | { | ||
5046 | if (att.ObjectData.Length > 0) | ||
5047 | { | ||
5048 | handlerObjectAttach(this, att.ObjectData[0].ObjectLocalID, att.AgentData.AttachmentPoint, att.ObjectData[0].Rotation, false); | ||
5049 | } | ||
5050 | } | ||
5051 | } | ||
5052 | return true; | ||
5053 | } | ||
5054 | |||
5055 | private bool HandleObjectDetach(IClientAPI sender, Packet Pack) | ||
5056 | { | ||
5057 | ObjectDetachPacket dett = (ObjectDetachPacket)Pack; | ||
5058 | |||
5059 | #region Packet Session and User Check | ||
5060 | if (m_checkPackets) | ||
5061 | { | ||
5062 | if (dett.AgentData.SessionID != SessionId || | ||
5063 | dett.AgentData.AgentID != AgentId) | ||
5064 | return true; | ||
5065 | } | ||
5066 | #endregion | ||
5067 | |||
5068 | for (int j = 0; j < dett.ObjectData.Length; j++) | ||
5069 | { | ||
5070 | uint obj = dett.ObjectData[j].ObjectLocalID; | ||
5071 | ObjectDeselect handlerObjectDetach = OnObjectDetach; | ||
5072 | if (handlerObjectDetach != null) | ||
5073 | { | ||
5074 | handlerObjectDetach(obj, this); | ||
5075 | } | ||
5076 | |||
5077 | } | ||
5078 | return true; | ||
5079 | } | ||
5080 | |||
5081 | private bool HandleObjectDrop(IClientAPI sender, Packet Pack) | ||
5082 | { | ||
5083 | ObjectDropPacket dropp = (ObjectDropPacket)Pack; | ||
5084 | |||
5085 | #region Packet Session and User Check | ||
5086 | if (m_checkPackets) | ||
5087 | { | ||
5088 | if (dropp.AgentData.SessionID != SessionId || | ||
5089 | dropp.AgentData.AgentID != AgentId) | ||
5090 | return true; | ||
5091 | } | ||
5092 | #endregion | ||
5093 | |||
5094 | for (int j = 0; j < dropp.ObjectData.Length; j++) | ||
5095 | { | ||
5096 | uint obj = dropp.ObjectData[j].ObjectLocalID; | ||
5097 | ObjectDrop handlerObjectDrop = OnObjectDrop; | ||
5098 | if (handlerObjectDrop != null) | ||
5099 | { | ||
5100 | handlerObjectDrop(obj, this); | ||
5101 | } | ||
5102 | } | ||
5103 | return true; | ||
5104 | } | ||
5105 | |||
5106 | private bool HandleSetAlwaysRun(IClientAPI sender, Packet Pack) | ||
5107 | { | ||
5108 | SetAlwaysRunPacket run = (SetAlwaysRunPacket)Pack; | ||
5109 | |||
5110 | #region Packet Session and User Check | ||
5111 | if (m_checkPackets) | ||
5112 | { | ||
5113 | if (run.AgentData.SessionID != SessionId || | ||
5114 | run.AgentData.AgentID != AgentId) | ||
5115 | return true; | ||
5116 | } | ||
5117 | #endregion | ||
5118 | |||
5119 | SetAlwaysRun handlerSetAlwaysRun = OnSetAlwaysRun; | ||
5120 | if (handlerSetAlwaysRun != null) | ||
5121 | handlerSetAlwaysRun(this, run.AgentData.AlwaysRun); | ||
5122 | |||
5123 | return true; | ||
5124 | } | ||
5125 | |||
5126 | private bool HandleCompleteAgentMovement(IClientAPI sender, Packet Pack) | ||
5127 | { | ||
5128 | GenericCall2 handlerCompleteMovementToRegion = OnCompleteMovementToRegion; | ||
5129 | if (handlerCompleteMovementToRegion != null) | ||
5130 | { | ||
5131 | handlerCompleteMovementToRegion(); | ||
5132 | } | ||
5133 | handlerCompleteMovementToRegion = null; | ||
5134 | |||
5135 | return true; | ||
5136 | } | ||
5137 | |||
5138 | private bool HandleAgentAnimation(IClientAPI sender, Packet Pack) | ||
5139 | { | ||
5140 | AgentAnimationPacket AgentAni = (AgentAnimationPacket)Pack; | ||
5141 | |||
5142 | #region Packet Session and User Check | ||
5143 | if (m_checkPackets) | ||
5144 | { | ||
5145 | if (AgentAni.AgentData.SessionID != SessionId || | ||
5146 | AgentAni.AgentData.AgentID != AgentId) | ||
5147 | return true; | ||
5148 | } | ||
5149 | #endregion | ||
5150 | |||
5151 | StartAnim handlerStartAnim = null; | ||
5152 | StopAnim handlerStopAnim = null; | ||
5153 | |||
5154 | for (int i = 0; i < AgentAni.AnimationList.Length; i++) | ||
5155 | { | ||
5156 | if (AgentAni.AnimationList[i].StartAnim) | ||
5157 | { | ||
5158 | handlerStartAnim = OnStartAnim; | ||
5159 | if (handlerStartAnim != null) | ||
5160 | { | ||
5161 | handlerStartAnim(this, AgentAni.AnimationList[i].AnimID); | ||
5162 | } | ||
5163 | } | ||
5164 | else | ||
5165 | { | ||
5166 | handlerStopAnim = OnStopAnim; | ||
5167 | if (handlerStopAnim != null) | ||
5168 | { | ||
5169 | handlerStopAnim(this, AgentAni.AnimationList[i].AnimID); | ||
5170 | } | ||
5171 | } | ||
5172 | } | ||
5173 | return true; | ||
5174 | } | ||
5175 | |||
5176 | private bool HandleAgentRequestSit(IClientAPI sender, Packet Pack) | ||
5177 | { | ||
5178 | if (OnAgentRequestSit != null) | ||
5179 | { | ||
5180 | AgentRequestSitPacket agentRequestSit = (AgentRequestSitPacket)Pack; | ||
5181 | |||
5182 | #region Packet Session and User Check | ||
5183 | if (m_checkPackets) | ||
5184 | { | ||
5185 | if (agentRequestSit.AgentData.SessionID != SessionId || | ||
5186 | agentRequestSit.AgentData.AgentID != AgentId) | ||
5187 | return true; | ||
5188 | } | ||
5189 | #endregion | ||
5190 | |||
5191 | AgentRequestSit handlerAgentRequestSit = OnAgentRequestSit; | ||
5192 | if (handlerAgentRequestSit != null) | ||
5193 | handlerAgentRequestSit(this, agentRequestSit.AgentData.AgentID, | ||
5194 | agentRequestSit.TargetObject.TargetID, agentRequestSit.TargetObject.Offset); | ||
5195 | } | ||
5196 | return true; | ||
5197 | } | ||
5198 | |||
5199 | private bool HandleAgentSit(IClientAPI sender, Packet Pack) | ||
5200 | { | ||
5201 | if (OnAgentSit != null) | ||
5202 | { | ||
5203 | AgentSitPacket agentSit = (AgentSitPacket)Pack; | ||
5204 | |||
5205 | #region Packet Session and User Check | ||
5206 | if (m_checkPackets) | ||
5207 | { | ||
5208 | if (agentSit.AgentData.SessionID != SessionId || | ||
5209 | agentSit.AgentData.AgentID != AgentId) | ||
5210 | return true; | ||
5211 | } | ||
5212 | #endregion | ||
5213 | |||
5214 | AgentSit handlerAgentSit = OnAgentSit; | ||
5215 | if (handlerAgentSit != null) | ||
5216 | { | ||
5217 | OnAgentSit(this, agentSit.AgentData.AgentID); | ||
5218 | } | ||
5219 | } | ||
5220 | return true; | ||
5221 | } | ||
5222 | |||
5223 | private bool HandleSoundTrigger(IClientAPI sender, Packet Pack) | ||
5224 | { | ||
5225 | SoundTriggerPacket soundTriggerPacket = (SoundTriggerPacket)Pack; | ||
5226 | |||
5227 | #region Packet Session and User Check | ||
5228 | if (m_checkPackets) | ||
5229 | { | ||
5230 | // UNSUPPORTED ON THIS PACKET | ||
5231 | } | ||
5232 | #endregion | ||
5233 | |||
5234 | SoundTrigger handlerSoundTrigger = OnSoundTrigger; | ||
5235 | if (handlerSoundTrigger != null) | ||
5236 | { | ||
5237 | handlerSoundTrigger(soundTriggerPacket.SoundData.SoundID, soundTriggerPacket.SoundData.OwnerID, | ||
5238 | soundTriggerPacket.SoundData.ObjectID, soundTriggerPacket.SoundData.ParentID, | ||
5239 | soundTriggerPacket.SoundData.Gain, soundTriggerPacket.SoundData.Position, | ||
5240 | soundTriggerPacket.SoundData.Handle); | ||
5241 | |||
5242 | } | ||
5243 | return true; | ||
5244 | } | ||
5245 | |||
5246 | |||
4500 | #endregion Packet Handlers | 5247 | #endregion Packet Handlers |
4501 | 5248 | ||
4502 | public void SendScriptQuestion(UUID taskID, string taskName, string ownerName, UUID itemID, int question) | 5249 | public void SendScriptQuestion(UUID taskID, string taskName, string ownerName, UUID itemID, int question) |
@@ -4988,13 +5735,12 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
4988 | return; | 5735 | return; |
4989 | } | 5736 | } |
4990 | 5737 | ||
4991 | const bool m_checkPackets = true; | ||
4992 | |||
4993 | // Main packet processing conditional | 5738 | // Main packet processing conditional |
4994 | switch (Pack.Type) | 5739 | switch (Pack.Type) |
4995 | { | 5740 | { |
4996 | #region Scene/Avatar | 5741 | #region Scene/Avatar |
4997 | 5742 | #region CommentedOut | |
5743 | /* | ||
4998 | case PacketType.AvatarPropertiesRequest: | 5744 | case PacketType.AvatarPropertiesRequest: |
4999 | AvatarPropertiesRequestPacket avatarProperties = (AvatarPropertiesRequestPacket)Pack; | 5745 | AvatarPropertiesRequestPacket avatarProperties = (AvatarPropertiesRequestPacket)Pack; |
5000 | 5746 | ||
@@ -5656,7 +6402,8 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
5656 | 6402 | ||
5657 | } | 6403 | } |
5658 | break; | 6404 | break; |
5659 | 6405 | */ | |
6406 | #endregion | ||
5660 | case PacketType.AvatarPickerRequest: | 6407 | case PacketType.AvatarPickerRequest: |
5661 | AvatarPickerRequestPacket avRequestQuery = (AvatarPickerRequestPacket)Pack; | 6408 | AvatarPickerRequestPacket avRequestQuery = (AvatarPickerRequestPacket)Pack; |
5662 | 6409 | ||
@@ -9713,7 +10460,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
9713 | Utils.BytesToString(avatarInterestUpdate.PropertiesData.SkillsText), | 10460 | Utils.BytesToString(avatarInterestUpdate.PropertiesData.SkillsText), |
9714 | Utils.BytesToString(avatarInterestUpdate.PropertiesData.LanguagesText)); | 10461 | Utils.BytesToString(avatarInterestUpdate.PropertiesData.LanguagesText)); |
9715 | break; | 10462 | break; |
9716 | 10463 | ||
9717 | case PacketType.GrantUserRights: | 10464 | case PacketType.GrantUserRights: |
9718 | GrantUserRightsPacket GrantUserRights = | 10465 | GrantUserRightsPacket GrantUserRights = |
9719 | (GrantUserRightsPacket)Pack; | 10466 | (GrantUserRightsPacket)Pack; |
@@ -9732,7 +10479,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
9732 | GrantUserRights.Rights[0].AgentRelated, | 10479 | GrantUserRights.Rights[0].AgentRelated, |
9733 | GrantUserRights.Rights[0].RelatedRights); | 10480 | GrantUserRights.Rights[0].RelatedRights); |
9734 | break; | 10481 | break; |
9735 | 10482 | ||
9736 | case PacketType.PlacesQuery: | 10483 | case PacketType.PlacesQuery: |
9737 | PlacesQueryPacket placesQueryPacket = | 10484 | PlacesQueryPacket placesQueryPacket = |
9738 | (PlacesQueryPacket)Pack; | 10485 | (PlacesQueryPacket)Pack; |