From 10f94a3c335dec8902b45bf16b8a8beb7f0e8ea8 Mon Sep 17 00:00:00 2001
From: Justin Clark-Casey (justincc)
Date: Wed, 17 Feb 2010 21:13:31 +0000
Subject: remove old commented out switch statement in LLClientView since this
has successfully been split into separate methods for quite some time now
---
.../Region/ClientStack/LindenUDP/LLClientView.cs | 4849 +-------------------
1 file changed, 3 insertions(+), 4846 deletions(-)
diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs
index 6cc0bd2..0b90b55 100644
--- a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs
+++ b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs
@@ -11025,4855 +11025,12 @@ namespace OpenSim.Region.ClientStack.LindenUDP
/// OpenMetaverse.packet
public void ProcessInPacket(Packet Pack)
{
-
- if (ProcessPacketMethod(Pack))
- {
- PacketPool.Instance.ReturnPacket(Pack);
- return;
- }
-
- // Main packet processing conditional
- switch (Pack.Type)
- {
- #region CommentedOut
- /*
- #region Scene/Avatar
-
-
- case PacketType.AvatarPropertiesRequest:
- AvatarPropertiesRequestPacket avatarProperties = (AvatarPropertiesRequestPacket)Pack;
-
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (avatarProperties.AgentData.SessionID != SessionId ||
- avatarProperties.AgentData.AgentID != AgentId)
- break;
- }
- #endregion
-
- RequestAvatarProperties handlerRequestAvatarProperties = OnRequestAvatarProperties;
- if (handlerRequestAvatarProperties != null)
- {
- handlerRequestAvatarProperties(this, avatarProperties.AgentData.AvatarID);
- }
-
- break;
-
- case PacketType.ChatFromViewer:
- ChatFromViewerPacket inchatpack = (ChatFromViewerPacket)Pack;
-
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (inchatpack.AgentData.SessionID != SessionId ||
- inchatpack.AgentData.AgentID != AgentId)
- break;
- }
- #endregion
-
- string fromName = String.Empty; //ClientAvatar.firstname + " " + ClientAvatar.lastname;
- byte[] message = inchatpack.ChatData.Message;
- byte type = inchatpack.ChatData.Type;
- Vector3 fromPos = new Vector3(); // ClientAvatar.Pos;
- // UUID fromAgentID = AgentId;
-
- int channel = inchatpack.ChatData.Channel;
-
- if (OnChatFromClient != null)
- {
- OSChatMessage args = new OSChatMessage();
- args.Channel = channel;
- args.From = fromName;
- args.Message = Utils.BytesToString(message);
- args.Type = (ChatTypeEnum)type;
- args.Position = fromPos;
-
- args.Scene = Scene;
- args.Sender = this;
- args.SenderUUID = this.AgentId;
-
- ChatMessage handlerChatFromClient = OnChatFromClient;
- if (handlerChatFromClient != null)
- handlerChatFromClient(this, args);
- }
- break;
-
- case PacketType.AvatarPropertiesUpdate:
- AvatarPropertiesUpdatePacket avatarProps = (AvatarPropertiesUpdatePacket)Pack;
-
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (avatarProps.AgentData.SessionID != SessionId ||
- avatarProps.AgentData.AgentID != AgentId)
- break;
- }
- #endregion
-
- UpdateAvatarProperties handlerUpdateAvatarProperties = OnUpdateAvatarProperties;
- if (handlerUpdateAvatarProperties != null)
- {
- AvatarPropertiesUpdatePacket.PropertiesDataBlock Properties = avatarProps.PropertiesData;
- UserProfileData UserProfile = new UserProfileData();
- UserProfile.ID = AgentId;
- UserProfile.AboutText = Utils.BytesToString(Properties.AboutText);
- UserProfile.FirstLifeAboutText = Utils.BytesToString(Properties.FLAboutText);
- UserProfile.FirstLifeImage = Properties.FLImageID;
- UserProfile.Image = Properties.ImageID;
- UserProfile.ProfileUrl = Utils.BytesToString(Properties.ProfileURL);
-
- handlerUpdateAvatarProperties(this, UserProfile);
- }
- break;
-
- case PacketType.ScriptDialogReply:
- ScriptDialogReplyPacket rdialog = (ScriptDialogReplyPacket)Pack;
-
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (rdialog.AgentData.SessionID != SessionId ||
- rdialog.AgentData.AgentID != AgentId)
- break;
- }
- #endregion
-
- int ch = rdialog.Data.ChatChannel;
- byte[] msg = rdialog.Data.ButtonLabel;
- if (OnChatFromClient != null)
- {
- OSChatMessage args = new OSChatMessage();
- args.Channel = ch;
- args.From = String.Empty;
- args.Message = Utils.BytesToString(msg);
- args.Type = ChatTypeEnum.Shout;
- args.Position = new Vector3();
- args.Scene = Scene;
- args.Sender = this;
- ChatMessage handlerChatFromClient2 = OnChatFromClient;
- if (handlerChatFromClient2 != null)
- handlerChatFromClient2(this, args);
- }
-
- break;
-
- case PacketType.ImprovedInstantMessage:
- ImprovedInstantMessagePacket msgpack = (ImprovedInstantMessagePacket)Pack;
-
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (msgpack.AgentData.SessionID != SessionId ||
- msgpack.AgentData.AgentID != AgentId)
- break;
- }
- #endregion
-
- string IMfromName = Util.FieldToString(msgpack.MessageBlock.FromAgentName);
- string IMmessage = Utils.BytesToString(msgpack.MessageBlock.Message);
- ImprovedInstantMessage handlerInstantMessage = OnInstantMessage;
-
- if (handlerInstantMessage != null)
- {
- GridInstantMessage im = new GridInstantMessage(Scene,
- msgpack.AgentData.AgentID,
- IMfromName,
- msgpack.MessageBlock.ToAgentID,
- msgpack.MessageBlock.Dialog,
- msgpack.MessageBlock.FromGroup,
- IMmessage,
- msgpack.MessageBlock.ID,
- msgpack.MessageBlock.Offline != 0 ? true : false,
- msgpack.MessageBlock.Position,
- msgpack.MessageBlock.BinaryBucket);
-
- handlerInstantMessage(this, im);
- }
- break;
-
- case PacketType.AcceptFriendship:
- AcceptFriendshipPacket afriendpack = (AcceptFriendshipPacket)Pack;
-
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (afriendpack.AgentData.SessionID != SessionId ||
- afriendpack.AgentData.AgentID != AgentId)
- break;
- }
- #endregion
-
- // My guess is this is the folder to stick the calling card into
- List callingCardFolders = new List();
-
- UUID agentID = afriendpack.AgentData.AgentID;
- UUID transactionID = afriendpack.TransactionBlock.TransactionID;
-
- for (int fi = 0; fi < afriendpack.FolderData.Length; fi++)
- {
- callingCardFolders.Add(afriendpack.FolderData[fi].FolderID);
- }
-
- FriendActionDelegate handlerApproveFriendRequest = OnApproveFriendRequest;
- if (handlerApproveFriendRequest != null)
- {
- handlerApproveFriendRequest(this, agentID, transactionID, callingCardFolders);
- }
- break;
-
- case PacketType.DeclineFriendship:
- DeclineFriendshipPacket dfriendpack = (DeclineFriendshipPacket)Pack;
-
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (dfriendpack.AgentData.SessionID != SessionId ||
- dfriendpack.AgentData.AgentID != AgentId)
- break;
- }
- #endregion
-
- if (OnDenyFriendRequest != null)
- {
- OnDenyFriendRequest(this,
- dfriendpack.AgentData.AgentID,
- dfriendpack.TransactionBlock.TransactionID,
- null);
- }
- break;
-
- case PacketType.TerminateFriendship:
- TerminateFriendshipPacket tfriendpack = (TerminateFriendshipPacket)Pack;
-
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (tfriendpack.AgentData.SessionID != SessionId ||
- tfriendpack.AgentData.AgentID != AgentId)
- break;
- }
- #endregion
-
- UUID listOwnerAgentID = tfriendpack.AgentData.AgentID;
- UUID exFriendID = tfriendpack.ExBlock.OtherID;
-
- FriendshipTermination handlerTerminateFriendship = OnTerminateFriendship;
- if (handlerTerminateFriendship != null)
- {
- handlerTerminateFriendship(this, listOwnerAgentID, exFriendID);
- }
- break;
-
- case PacketType.RezObject:
- RezObjectPacket rezPacket = (RezObjectPacket)Pack;
-
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (rezPacket.AgentData.SessionID != SessionId ||
- rezPacket.AgentData.AgentID != AgentId)
- break;
- }
- #endregion
-
- RezObject handlerRezObject = OnRezObject;
- if (handlerRezObject != null)
- {
- handlerRezObject(this, rezPacket.InventoryData.ItemID, rezPacket.RezData.RayEnd,
- rezPacket.RezData.RayStart, rezPacket.RezData.RayTargetID,
- rezPacket.RezData.BypassRaycast, rezPacket.RezData.RayEndIsIntersection,
- rezPacket.RezData.RezSelected, rezPacket.RezData.RemoveItem,
- rezPacket.RezData.FromTaskID);
- }
- break;
-
- case PacketType.DeRezObject:
- DeRezObjectPacket DeRezPacket = (DeRezObjectPacket)Pack;
-
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (DeRezPacket.AgentData.SessionID != SessionId ||
- DeRezPacket.AgentData.AgentID != AgentId)
- break;
- }
- #endregion
-
- DeRezObject handlerDeRezObject = OnDeRezObject;
- if (handlerDeRezObject != null)
- {
- List deRezIDs = new List();
-
- foreach (DeRezObjectPacket.ObjectDataBlock data in
- DeRezPacket.ObjectData)
- {
- deRezIDs.Add(data.ObjectLocalID);
- }
- // It just so happens that the values on the DeRezAction enumerator match the Destination
- // values given by a Second Life client
- handlerDeRezObject(this, deRezIDs,
- DeRezPacket.AgentBlock.GroupID,
- (DeRezAction)DeRezPacket.AgentBlock.Destination,
- DeRezPacket.AgentBlock.DestinationID);
-
- }
- break;
-
- case PacketType.ModifyLand:
- ModifyLandPacket modify = (ModifyLandPacket)Pack;
-
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (modify.AgentData.SessionID != SessionId ||
- modify.AgentData.AgentID != AgentId)
- break;
- }
-
- #endregion
- //m_log.Info("[LAND]: LAND:" + modify.ToString());
- if (modify.ParcelData.Length > 0)
- {
- if (OnModifyTerrain != null)
- {
- for (int i = 0; i < modify.ParcelData.Length; i++)
- {
- ModifyTerrain handlerModifyTerrain = OnModifyTerrain;
- if (handlerModifyTerrain != null)
- {
- handlerModifyTerrain(AgentId, modify.ModifyBlock.Height, modify.ModifyBlock.Seconds,
- modify.ModifyBlock.BrushSize,
- modify.ModifyBlock.Action, modify.ParcelData[i].North,
- modify.ParcelData[i].West, modify.ParcelData[i].South,
- modify.ParcelData[i].East, AgentId);
- }
- }
- }
- }
-
- break;
-
- case PacketType.RegionHandshakeReply:
-
- Action handlerRegionHandShakeReply = OnRegionHandShakeReply;
- if (handlerRegionHandShakeReply != null)
- {
- handlerRegionHandShakeReply(this);
- }
-
- break;
-
- case PacketType.AgentWearablesRequest:
- GenericCall2 handlerRequestWearables = OnRequestWearables;
-
- if (handlerRequestWearables != null)
- {
- handlerRequestWearables();
- }
-
- Action handlerRequestAvatarsData = OnRequestAvatarsData;
-
- if (handlerRequestAvatarsData != null)
- {
- handlerRequestAvatarsData(this);
- }
-
- break;
-
- case PacketType.AgentSetAppearance:
- AgentSetAppearancePacket appear = (AgentSetAppearancePacket)Pack;
-
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (appear.AgentData.SessionID != SessionId ||
- appear.AgentData.AgentID != AgentId)
- break;
- }
- #endregion
-
- SetAppearance handlerSetAppearance = OnSetAppearance;
- if (handlerSetAppearance != null)
- {
- // Temporarily protect ourselves from the mantis #951 failure.
- // However, we could do this for several other handlers where a failure isn't terminal
- // for the client session anyway, in order to protect ourselves against bad code in plugins
- try
- {
- byte[] visualparams = new byte[appear.VisualParam.Length];
- for (int i = 0; i < appear.VisualParam.Length; i++)
- visualparams[i] = appear.VisualParam[i].ParamValue;
-
- Primitive.TextureEntry te = null;
- if (appear.ObjectData.TextureEntry.Length > 1)
- te = new Primitive.TextureEntry(appear.ObjectData.TextureEntry, 0, appear.ObjectData.TextureEntry.Length);
-
- handlerSetAppearance(te, visualparams);
- }
- catch (Exception e)
- {
- m_log.ErrorFormat(
- "[CLIENT VIEW]: AgentSetApperance packet handler threw an exception, {0}",
- e);
- }
- }
-
- break;
-
- case PacketType.AgentIsNowWearing:
- if (OnAvatarNowWearing != null)
- {
- AgentIsNowWearingPacket nowWearing = (AgentIsNowWearingPacket)Pack;
-
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (nowWearing.AgentData.SessionID != SessionId ||
- nowWearing.AgentData.AgentID != AgentId)
- break;
- }
- #endregion
-
- AvatarWearingArgs wearingArgs = new AvatarWearingArgs();
- for (int i = 0; i < nowWearing.WearableData.Length; i++)
- {
- AvatarWearingArgs.Wearable wearable =
- new AvatarWearingArgs.Wearable(nowWearing.WearableData[i].ItemID,
- nowWearing.WearableData[i].WearableType);
- wearingArgs.NowWearing.Add(wearable);
- }
-
- AvatarNowWearing handlerAvatarNowWearing = OnAvatarNowWearing;
- if (handlerAvatarNowWearing != null)
- {
- handlerAvatarNowWearing(this, wearingArgs);
- }
- }
- break;
-
- case PacketType.RezSingleAttachmentFromInv:
- RezSingleAttachmentFromInv handlerRezSingleAttachment = OnRezSingleAttachmentFromInv;
- if (handlerRezSingleAttachment != null)
- {
- RezSingleAttachmentFromInvPacket rez = (RezSingleAttachmentFromInvPacket)Pack;
-
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (rez.AgentData.SessionID != SessionId ||
- rez.AgentData.AgentID != AgentId)
- break;
- }
- #endregion
-
- handlerRezSingleAttachment(this, rez.ObjectData.ItemID,
- rez.ObjectData.AttachmentPt);
- }
-
- break;
-
- case PacketType.RezMultipleAttachmentsFromInv:
- RezMultipleAttachmentsFromInv handlerRezMultipleAttachments = OnRezMultipleAttachmentsFromInv;
- if (handlerRezMultipleAttachments != null)
- {
- RezMultipleAttachmentsFromInvPacket rez = (RezMultipleAttachmentsFromInvPacket)Pack;
- handlerRezMultipleAttachments(this, rez.HeaderData,
- rez.ObjectData);
- }
-
- break;
-
- case PacketType.DetachAttachmentIntoInv:
- UUIDNameRequest handlerDetachAttachmentIntoInv = OnDetachAttachmentIntoInv;
- if (handlerDetachAttachmentIntoInv != null)
- {
- DetachAttachmentIntoInvPacket detachtoInv = (DetachAttachmentIntoInvPacket)Pack;
-
- #region Packet Session and User Check
- // UNSUPPORTED ON THIS PACKET
- #endregion
-
- UUID itemID = detachtoInv.ObjectData.ItemID;
- // UUID ATTACH_agentID = detachtoInv.ObjectData.AgentID;
-
- handlerDetachAttachmentIntoInv(itemID, this);
- }
- break;
-
- case PacketType.ObjectAttach:
- if (OnObjectAttach != null)
- {
- ObjectAttachPacket att = (ObjectAttachPacket)Pack;
-
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (att.AgentData.SessionID != SessionId ||
- att.AgentData.AgentID != AgentId)
- break;
- }
- #endregion
-
- ObjectAttach handlerObjectAttach = OnObjectAttach;
-
- if (handlerObjectAttach != null)
- {
- if (att.ObjectData.Length > 0)
- {
- handlerObjectAttach(this, att.ObjectData[0].ObjectLocalID, att.AgentData.AttachmentPoint, att.ObjectData[0].Rotation, false);
- }
- }
- }
- break;
-
- case PacketType.ObjectDetach:
- ObjectDetachPacket dett = (ObjectDetachPacket)Pack;
-
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (dett.AgentData.SessionID != SessionId ||
- dett.AgentData.AgentID != AgentId)
- break;
- }
- #endregion
-
- for (int j = 0; j < dett.ObjectData.Length; j++)
- {
- uint obj = dett.ObjectData[j].ObjectLocalID;
- ObjectDeselect handlerObjectDetach = OnObjectDetach;
- if (handlerObjectDetach != null)
- {
- handlerObjectDetach(obj, this);
- }
-
- }
- break;
-
- case PacketType.ObjectDrop:
- ObjectDropPacket dropp = (ObjectDropPacket)Pack;
-
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (dropp.AgentData.SessionID != SessionId ||
- dropp.AgentData.AgentID != AgentId)
- break;
- }
- #endregion
-
- for (int j = 0; j < dropp.ObjectData.Length; j++)
- {
- uint obj = dropp.ObjectData[j].ObjectLocalID;
- ObjectDrop handlerObjectDrop = OnObjectDrop;
- if (handlerObjectDrop != null)
- {
- handlerObjectDrop(obj, this);
- }
- }
- break;
-
- case PacketType.SetAlwaysRun:
- SetAlwaysRunPacket run = (SetAlwaysRunPacket)Pack;
-
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (run.AgentData.SessionID != SessionId ||
- run.AgentData.AgentID != AgentId)
- break;
- }
- #endregion
-
- SetAlwaysRun handlerSetAlwaysRun = OnSetAlwaysRun;
- if (handlerSetAlwaysRun != null)
- handlerSetAlwaysRun(this, run.AgentData.AlwaysRun);
-
- break;
-
- case PacketType.CompleteAgentMovement:
- GenericCall2 handlerCompleteMovementToRegion = OnCompleteMovementToRegion;
- if (handlerCompleteMovementToRegion != null)
- {
- handlerCompleteMovementToRegion();
- }
- handlerCompleteMovementToRegion = null;
-
- break;
-
- case PacketType.AgentAnimation:
- AgentAnimationPacket AgentAni = (AgentAnimationPacket)Pack;
-
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (AgentAni.AgentData.SessionID != SessionId ||
- AgentAni.AgentData.AgentID != AgentId)
- break;
- }
- #endregion
-
- StartAnim handlerStartAnim = null;
- StopAnim handlerStopAnim = null;
-
- for (int i = 0; i < AgentAni.AnimationList.Length; i++)
- {
- if (AgentAni.AnimationList[i].StartAnim)
- {
- handlerStartAnim = OnStartAnim;
- if (handlerStartAnim != null)
- {
- handlerStartAnim(this, AgentAni.AnimationList[i].AnimID);
- }
- }
- else
- {
- handlerStopAnim = OnStopAnim;
- if (handlerStopAnim != null)
- {
- handlerStopAnim(this, AgentAni.AnimationList[i].AnimID);
- }
- }
- }
- break;
-
- case PacketType.AgentRequestSit:
- if (OnAgentRequestSit != null)
- {
- AgentRequestSitPacket agentRequestSit = (AgentRequestSitPacket)Pack;
-
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (agentRequestSit.AgentData.SessionID != SessionId ||
- agentRequestSit.AgentData.AgentID != AgentId)
- break;
- }
- #endregion
-
- AgentRequestSit handlerAgentRequestSit = OnAgentRequestSit;
- if (handlerAgentRequestSit != null)
- handlerAgentRequestSit(this, agentRequestSit.AgentData.AgentID,
- agentRequestSit.TargetObject.TargetID, agentRequestSit.TargetObject.Offset);
- }
- break;
-
- case PacketType.AgentSit:
- if (OnAgentSit != null)
- {
- AgentSitPacket agentSit = (AgentSitPacket)Pack;
-
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (agentSit.AgentData.SessionID != SessionId ||
- agentSit.AgentData.AgentID != AgentId)
- break;
- }
- #endregion
-
- AgentSit handlerAgentSit = OnAgentSit;
- if (handlerAgentSit != null)
- {
- OnAgentSit(this, agentSit.AgentData.AgentID);
- }
- }
- break;
-
- case PacketType.SoundTrigger:
- SoundTriggerPacket soundTriggerPacket = (SoundTriggerPacket)Pack;
-
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- // UNSUPPORTED ON THIS PACKET
- }
- #endregion
-
- SoundTrigger handlerSoundTrigger = OnSoundTrigger;
- if (handlerSoundTrigger != null)
- {
- handlerSoundTrigger(soundTriggerPacket.SoundData.SoundID, soundTriggerPacket.SoundData.OwnerID,
- soundTriggerPacket.SoundData.ObjectID, soundTriggerPacket.SoundData.ParentID,
- soundTriggerPacket.SoundData.Gain, soundTriggerPacket.SoundData.Position,
- soundTriggerPacket.SoundData.Handle);
-
- }
- break;
-
- case PacketType.AvatarPickerRequest:
- AvatarPickerRequestPacket avRequestQuery = (AvatarPickerRequestPacket)Pack;
-
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (avRequestQuery.AgentData.SessionID != SessionId ||
- avRequestQuery.AgentData.AgentID != AgentId)
- break;
- }
- #endregion
-
- AvatarPickerRequestPacket.AgentDataBlock Requestdata = avRequestQuery.AgentData;
- AvatarPickerRequestPacket.DataBlock querydata = avRequestQuery.Data;
- //m_log.Debug("Agent Sends:" + Utils.BytesToString(querydata.Name));
-
- AvatarPickerRequest handlerAvatarPickerRequest = OnAvatarPickerRequest;
- if (handlerAvatarPickerRequest != null)
- {
- handlerAvatarPickerRequest(this, Requestdata.AgentID, Requestdata.QueryID,
- Utils.BytesToString(querydata.Name));
- }
- break;
-
- case PacketType.AgentDataUpdateRequest:
- AgentDataUpdateRequestPacket avRequestDataUpdatePacket = (AgentDataUpdateRequestPacket)Pack;
-
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (avRequestDataUpdatePacket.AgentData.SessionID != SessionId ||
- avRequestDataUpdatePacket.AgentData.AgentID != AgentId)
- break;
- }
- #endregion
-
- FetchInventory handlerAgentDataUpdateRequest = OnAgentDataUpdateRequest;
-
- if (handlerAgentDataUpdateRequest != null)
- {
- handlerAgentDataUpdateRequest(this, avRequestDataUpdatePacket.AgentData.AgentID, avRequestDataUpdatePacket.AgentData.SessionID);
- }
-
- break;
-
- case PacketType.UserInfoRequest:
- UserInfoRequest handlerUserInfoRequest = OnUserInfoRequest;
- if (handlerUserInfoRequest != null)
- {
- handlerUserInfoRequest(this);
- }
- else
- {
- SendUserInfoReply(false, true, "");
- }
- break;
-
- case PacketType.UpdateUserInfo:
- UpdateUserInfoPacket updateUserInfo = (UpdateUserInfoPacket)Pack;
-
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (updateUserInfo.AgentData.SessionID != SessionId ||
- updateUserInfo.AgentData.AgentID != AgentId)
- break;
- }
- #endregion
-
- UpdateUserInfo handlerUpdateUserInfo = OnUpdateUserInfo;
- if (handlerUpdateUserInfo != null)
- {
- bool visible = true;
- string DirectoryVisibility =
- Utils.BytesToString(updateUserInfo.UserData.DirectoryVisibility);
- if (DirectoryVisibility == "hidden")
- visible = false;
-
- handlerUpdateUserInfo(
- updateUserInfo.UserData.IMViaEMail,
- visible, this);
- }
- break;
-
- case PacketType.SetStartLocationRequest:
- SetStartLocationRequestPacket avSetStartLocationRequestPacket = (SetStartLocationRequestPacket)Pack;
-
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (avSetStartLocationRequestPacket.AgentData.SessionID != SessionId ||
- avSetStartLocationRequestPacket.AgentData.AgentID != AgentId)
- break;
- }
- #endregion
-
- if (avSetStartLocationRequestPacket.AgentData.AgentID == AgentId && avSetStartLocationRequestPacket.AgentData.SessionID == SessionId)
- {
- TeleportLocationRequest handlerSetStartLocationRequest = OnSetStartLocationRequest;
- if (handlerSetStartLocationRequest != null)
- {
- handlerSetStartLocationRequest(this, 0, avSetStartLocationRequestPacket.StartLocationData.LocationPos,
- avSetStartLocationRequestPacket.StartLocationData.LocationLookAt,
- avSetStartLocationRequestPacket.StartLocationData.LocationID);
- }
- }
- break;
-
- case PacketType.AgentThrottle:
- AgentThrottlePacket atpack = (AgentThrottlePacket)Pack;
-
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (atpack.AgentData.SessionID != SessionId ||
- atpack.AgentData.AgentID != AgentId)
- break;
- }
- #endregion
-
- m_udpClient.SetThrottles(atpack.Throttle.Throttles);
- break;
-
- case PacketType.AgentPause:
- m_udpClient.IsPaused = true;
- break;
-
- case PacketType.AgentResume:
- m_udpClient.IsPaused = false;
- SendStartPingCheck(m_udpClient.CurrentPingSequence++);
-
- break;
-
- case PacketType.ForceScriptControlRelease:
- ForceReleaseControls handlerForceReleaseControls = OnForceReleaseControls;
- if (handlerForceReleaseControls != null)
- {
- handlerForceReleaseControls(this, AgentId);
- }
- break;
-
- #endregion
-
-
- //#region Objects/m_sceneObjects
-
- case PacketType.ObjectLink:
- ObjectLinkPacket link = (ObjectLinkPacket)Pack;
-
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (link.AgentData.SessionID != SessionId ||
- link.AgentData.AgentID != AgentId)
- break;
- }
- #endregion
-
- uint parentprimid = 0;
- List childrenprims = new List();
- if (link.ObjectData.Length > 1)
- {
- parentprimid = link.ObjectData[0].ObjectLocalID;
-
- for (int i = 1; i < link.ObjectData.Length; i++)
- {
- childrenprims.Add(link.ObjectData[i].ObjectLocalID);
- }
- }
- LinkObjects handlerLinkObjects = OnLinkObjects;
- if (handlerLinkObjects != null)
- {
- handlerLinkObjects(this, parentprimid, childrenprims);
- }
- break;
-
- case PacketType.ObjectDelink:
- ObjectDelinkPacket delink = (ObjectDelinkPacket)Pack;
-
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (delink.AgentData.SessionID != SessionId ||
- delink.AgentData.AgentID != AgentId)
- break;
- }
- #endregion
-
- // It appears the prim at index 0 is not always the root prim (for
- // instance, when one prim of a link set has been edited independently
- // of the others). Therefore, we'll pass all the ids onto the delink
- // method for it to decide which is the root.
- List prims = new List();
- for (int i = 0; i < delink.ObjectData.Length; i++)
- {
- prims.Add(delink.ObjectData[i].ObjectLocalID);
- }
- DelinkObjects handlerDelinkObjects = OnDelinkObjects;
- if (handlerDelinkObjects != null)
- {
- handlerDelinkObjects(prims);
- }
-
- break;
-
- case PacketType.ObjectAdd:
- if (OnAddPrim != null)
- {
- ObjectAddPacket addPacket = (ObjectAddPacket)Pack;
-
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (addPacket.AgentData.SessionID != SessionId ||
- addPacket.AgentData.AgentID != AgentId)
- break;
- }
- #endregion
-
- PrimitiveBaseShape shape = GetShapeFromAddPacket(addPacket);
- // m_log.Info("[REZData]: " + addPacket.ToString());
- //BypassRaycast: 1
- //RayStart: <69.79469, 158.2652, 98.40343>
- //RayEnd: <61.97724, 141.995, 92.58341>
- //RayTargetID: 00000000-0000-0000-0000-000000000000
-
- //Check to see if adding the prim is allowed; useful for any module wanting to restrict the
- //object from rezing initially
-
- AddNewPrim handlerAddPrim = OnAddPrim;
- if (handlerAddPrim != null)
- handlerAddPrim(AgentId, ActiveGroupId, addPacket.ObjectData.RayEnd, addPacket.ObjectData.Rotation, shape, addPacket.ObjectData.BypassRaycast, addPacket.ObjectData.RayStart, addPacket.ObjectData.RayTargetID, addPacket.ObjectData.RayEndIsIntersection);
- }
- break;
-
- case PacketType.ObjectShape:
- ObjectShapePacket shapePacket = (ObjectShapePacket)Pack;
-
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (shapePacket.AgentData.SessionID != SessionId ||
- shapePacket.AgentData.AgentID != AgentId)
- break;
- }
- #endregion
-
- UpdateShape handlerUpdatePrimShape = null;
- for (int i = 0; i < shapePacket.ObjectData.Length; i++)
- {
- handlerUpdatePrimShape = OnUpdatePrimShape;
- if (handlerUpdatePrimShape != null)
- {
- UpdateShapeArgs shapeData = new UpdateShapeArgs();
- shapeData.ObjectLocalID = shapePacket.ObjectData[i].ObjectLocalID;
- shapeData.PathBegin = shapePacket.ObjectData[i].PathBegin;
- shapeData.PathCurve = shapePacket.ObjectData[i].PathCurve;
- shapeData.PathEnd = shapePacket.ObjectData[i].PathEnd;
- shapeData.PathRadiusOffset = shapePacket.ObjectData[i].PathRadiusOffset;
- shapeData.PathRevolutions = shapePacket.ObjectData[i].PathRevolutions;
- shapeData.PathScaleX = shapePacket.ObjectData[i].PathScaleX;
- shapeData.PathScaleY = shapePacket.ObjectData[i].PathScaleY;
- shapeData.PathShearX = shapePacket.ObjectData[i].PathShearX;
- shapeData.PathShearY = shapePacket.ObjectData[i].PathShearY;
- shapeData.PathSkew = shapePacket.ObjectData[i].PathSkew;
- shapeData.PathTaperX = shapePacket.ObjectData[i].PathTaperX;
- shapeData.PathTaperY = shapePacket.ObjectData[i].PathTaperY;
- shapeData.PathTwist = shapePacket.ObjectData[i].PathTwist;
- shapeData.PathTwistBegin = shapePacket.ObjectData[i].PathTwistBegin;
- shapeData.ProfileBegin = shapePacket.ObjectData[i].ProfileBegin;
- shapeData.ProfileCurve = shapePacket.ObjectData[i].ProfileCurve;
- shapeData.ProfileEnd = shapePacket.ObjectData[i].ProfileEnd;
- shapeData.ProfileHollow = shapePacket.ObjectData[i].ProfileHollow;
-
- handlerUpdatePrimShape(m_agentId, shapePacket.ObjectData[i].ObjectLocalID,
- shapeData);
- }
- }
- break;
-
- case PacketType.ObjectExtraParams:
- ObjectExtraParamsPacket extraPar = (ObjectExtraParamsPacket)Pack;
-
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (extraPar.AgentData.SessionID != SessionId ||
- extraPar.AgentData.AgentID != AgentId)
- break;
- }
- #endregion
-
- ObjectExtraParams handlerUpdateExtraParams = OnUpdateExtraParams;
- if (handlerUpdateExtraParams != null)
- {
- for (int i = 0; i < extraPar.ObjectData.Length; i++)
- {
- handlerUpdateExtraParams(m_agentId, extraPar.ObjectData[i].ObjectLocalID,
- extraPar.ObjectData[i].ParamType,
- extraPar.ObjectData[i].ParamInUse, extraPar.ObjectData[i].ParamData);
- }
- }
- break;
-
- case PacketType.ObjectDuplicate:
- ObjectDuplicatePacket dupe = (ObjectDuplicatePacket)Pack;
-
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (dupe.AgentData.SessionID != SessionId ||
- dupe.AgentData.AgentID != AgentId)
- break;
- }
- #endregion
-
- ObjectDuplicatePacket.AgentDataBlock AgentandGroupData = dupe.AgentData;
-
- ObjectDuplicate handlerObjectDuplicate = null;
-
- for (int i = 0; i < dupe.ObjectData.Length; i++)
- {
- handlerObjectDuplicate = OnObjectDuplicate;
- if (handlerObjectDuplicate != null)
- {
- handlerObjectDuplicate(dupe.ObjectData[i].ObjectLocalID, dupe.SharedData.Offset,
- dupe.SharedData.DuplicateFlags, AgentandGroupData.AgentID,
- AgentandGroupData.GroupID);
- }
- }
-
- break;
-
- case PacketType.RequestMultipleObjects:
- RequestMultipleObjectsPacket incomingRequest = (RequestMultipleObjectsPacket)Pack;
-
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (incomingRequest.AgentData.SessionID != SessionId ||
- incomingRequest.AgentData.AgentID != AgentId)
- break;
- }
- #endregion
-
- ObjectRequest handlerObjectRequest = null;
-
- for (int i = 0; i < incomingRequest.ObjectData.Length; i++)
- {
- handlerObjectRequest = OnObjectRequest;
- if (handlerObjectRequest != null)
- {
- handlerObjectRequest(incomingRequest.ObjectData[i].ID, this);
- }
- }
- break;
-
- case PacketType.ObjectSelect:
- ObjectSelectPacket incomingselect = (ObjectSelectPacket)Pack;
-
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (incomingselect.AgentData.SessionID != SessionId ||
- incomingselect.AgentData.AgentID != AgentId)
- break;
- }
- #endregion
-
- ObjectSelect handlerObjectSelect = null;
-
- for (int i = 0; i < incomingselect.ObjectData.Length; i++)
- {
- handlerObjectSelect = OnObjectSelect;
- if (handlerObjectSelect != null)
- {
- handlerObjectSelect(incomingselect.ObjectData[i].ObjectLocalID, this);
- }
- }
- break;
-
- case PacketType.ObjectDeselect:
- ObjectDeselectPacket incomingdeselect = (ObjectDeselectPacket)Pack;
-
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (incomingdeselect.AgentData.SessionID != SessionId ||
- incomingdeselect.AgentData.AgentID != AgentId)
- break;
- }
- #endregion
-
- ObjectDeselect handlerObjectDeselect = null;
-
- for (int i = 0; i < incomingdeselect.ObjectData.Length; i++)
- {
- handlerObjectDeselect = OnObjectDeselect;
- if (handlerObjectDeselect != null)
- {
- OnObjectDeselect(incomingdeselect.ObjectData[i].ObjectLocalID, this);
- }
- }
- break;
-
- case PacketType.ObjectPosition:
- // DEPRECATED: but till libsecondlife removes it, people will use it
- ObjectPositionPacket position = (ObjectPositionPacket)Pack;
-
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (position.AgentData.SessionID != SessionId ||
- position.AgentData.AgentID != AgentId)
- break;
- }
- #endregion
-
-
- for (int i = 0; i < position.ObjectData.Length; i++)
- {
- UpdateVector handlerUpdateVector = OnUpdatePrimGroupPosition;
- if (handlerUpdateVector != null)
- handlerUpdateVector(position.ObjectData[i].ObjectLocalID, position.ObjectData[i].Position, this);
- }
-
- break;
-
- case PacketType.ObjectScale:
- // DEPRECATED: but till libsecondlife removes it, people will use it
- ObjectScalePacket scale = (ObjectScalePacket)Pack;
-
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (scale.AgentData.SessionID != SessionId ||
- scale.AgentData.AgentID != AgentId)
- break;
- }
- #endregion
-
- for (int i = 0; i < scale.ObjectData.Length; i++)
- {
- UpdateVector handlerUpdatePrimGroupScale = OnUpdatePrimGroupScale;
- if (handlerUpdatePrimGroupScale != null)
- handlerUpdatePrimGroupScale(scale.ObjectData[i].ObjectLocalID, scale.ObjectData[i].Scale, this);
- }
-
- break;
-
- case PacketType.ObjectRotation:
- // DEPRECATED: but till libsecondlife removes it, people will use it
- ObjectRotationPacket rotation = (ObjectRotationPacket)Pack;
-
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (rotation.AgentData.SessionID != SessionId ||
- rotation.AgentData.AgentID != AgentId)
- break;
- }
- #endregion
-
- for (int i = 0; i < rotation.ObjectData.Length; i++)
- {
- UpdatePrimRotation handlerUpdatePrimRotation = OnUpdatePrimGroupRotation;
- if (handlerUpdatePrimRotation != null)
- handlerUpdatePrimRotation(rotation.ObjectData[i].ObjectLocalID, rotation.ObjectData[i].Rotation, this);
- }
-
- break;
-
- case PacketType.ObjectFlagUpdate:
- ObjectFlagUpdatePacket flags = (ObjectFlagUpdatePacket)Pack;
-
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (flags.AgentData.SessionID != SessionId ||
- flags.AgentData.AgentID != AgentId)
- break;
- }
- #endregion
-
- UpdatePrimFlags handlerUpdatePrimFlags = OnUpdatePrimFlags;
-
- if (handlerUpdatePrimFlags != null)
- {
- byte[] data = Pack.ToBytes();
- // 46,47,48 are special positions within the packet
- // This may change so perhaps we need a better way
- // of storing this (OMV.FlagUpdatePacket.UsePhysics,etc?)
- bool UsePhysics = (data[46] != 0) ? true : false;
- bool IsTemporary = (data[47] != 0) ? true : false;
- bool IsPhantom = (data[48] != 0) ? true : false;
- handlerUpdatePrimFlags(flags.AgentData.ObjectLocalID, UsePhysics, IsTemporary, IsPhantom, this);
- }
- break;
- case PacketType.ObjectImage:
- ObjectImagePacket imagePack = (ObjectImagePacket)Pack;
-
- UpdatePrimTexture handlerUpdatePrimTexture = null;
- for (int i = 0; i < imagePack.ObjectData.Length; i++)
- {
- handlerUpdatePrimTexture = OnUpdatePrimTexture;
- if (handlerUpdatePrimTexture != null)
- {
- handlerUpdatePrimTexture(imagePack.ObjectData[i].ObjectLocalID,
- imagePack.ObjectData[i].TextureEntry, this);
- }
- }
- break;
-
- case PacketType.ObjectGrab:
- ObjectGrabPacket grab = (ObjectGrabPacket)Pack;
-
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (grab.AgentData.SessionID != SessionId ||
- grab.AgentData.AgentID != AgentId)
- break;
- }
- #endregion
-
- GrabObject handlerGrabObject = OnGrabObject;
-
- if (handlerGrabObject != null)
- {
- List touchArgs = new List();
- if ((grab.SurfaceInfo != null) && (grab.SurfaceInfo.Length > 0))
- {
- foreach (ObjectGrabPacket.SurfaceInfoBlock surfaceInfo in grab.SurfaceInfo)
- {
- SurfaceTouchEventArgs arg = new SurfaceTouchEventArgs();
- arg.Binormal = surfaceInfo.Binormal;
- arg.FaceIndex = surfaceInfo.FaceIndex;
- arg.Normal = surfaceInfo.Normal;
- arg.Position = surfaceInfo.Position;
- arg.STCoord = surfaceInfo.STCoord;
- arg.UVCoord = surfaceInfo.UVCoord;
- touchArgs.Add(arg);
- }
- }
- handlerGrabObject(grab.ObjectData.LocalID, grab.ObjectData.GrabOffset, this, touchArgs);
- }
- break;
-
- case PacketType.ObjectGrabUpdate:
- ObjectGrabUpdatePacket grabUpdate = (ObjectGrabUpdatePacket)Pack;
-
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (grabUpdate.AgentData.SessionID != SessionId ||
- grabUpdate.AgentData.AgentID != AgentId)
- break;
- }
- #endregion
-
- MoveObject handlerGrabUpdate = OnGrabUpdate;
-
- if (handlerGrabUpdate != null)
- {
- List touchArgs = new List();
- if ((grabUpdate.SurfaceInfo != null) && (grabUpdate.SurfaceInfo.Length > 0))
- {
- foreach (ObjectGrabUpdatePacket.SurfaceInfoBlock surfaceInfo in grabUpdate.SurfaceInfo)
- {
- SurfaceTouchEventArgs arg = new SurfaceTouchEventArgs();
- arg.Binormal = surfaceInfo.Binormal;
- arg.FaceIndex = surfaceInfo.FaceIndex;
- arg.Normal = surfaceInfo.Normal;
- arg.Position = surfaceInfo.Position;
- arg.STCoord = surfaceInfo.STCoord;
- arg.UVCoord = surfaceInfo.UVCoord;
- touchArgs.Add(arg);
- }
- }
- handlerGrabUpdate(grabUpdate.ObjectData.ObjectID, grabUpdate.ObjectData.GrabOffsetInitial,
- grabUpdate.ObjectData.GrabPosition, this, touchArgs);
- }
- break;
-
- case PacketType.ObjectDeGrab:
- ObjectDeGrabPacket deGrab = (ObjectDeGrabPacket)Pack;
-
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (deGrab.AgentData.SessionID != SessionId ||
- deGrab.AgentData.AgentID != AgentId)
- break;
- }
- #endregion
-
- DeGrabObject handlerDeGrabObject = OnDeGrabObject;
- if (handlerDeGrabObject != null)
- {
- List touchArgs = new List();
- if ((deGrab.SurfaceInfo != null) && (deGrab.SurfaceInfo.Length > 0))
- {
- foreach (ObjectDeGrabPacket.SurfaceInfoBlock surfaceInfo in deGrab.SurfaceInfo)
- {
- SurfaceTouchEventArgs arg = new SurfaceTouchEventArgs();
- arg.Binormal = surfaceInfo.Binormal;
- arg.FaceIndex = surfaceInfo.FaceIndex;
- arg.Normal = surfaceInfo.Normal;
- arg.Position = surfaceInfo.Position;
- arg.STCoord = surfaceInfo.STCoord;
- arg.UVCoord = surfaceInfo.UVCoord;
- touchArgs.Add(arg);
- }
- }
- handlerDeGrabObject(deGrab.ObjectData.LocalID, this, touchArgs);
- }
- break;
-
- case PacketType.ObjectSpinStart:
- //m_log.Warn("[CLIENT]: unhandled ObjectSpinStart packet");
- ObjectSpinStartPacket spinStart = (ObjectSpinStartPacket)Pack;
-
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (spinStart.AgentData.SessionID != SessionId ||
- spinStart.AgentData.AgentID != AgentId)
- break;
- }
- #endregion
-
- SpinStart handlerSpinStart = OnSpinStart;
- if (handlerSpinStart != null)
- {
- handlerSpinStart(spinStart.ObjectData.ObjectID, this);
- }
- break;
- case PacketType.ObjectSpinUpdate:
- //m_log.Warn("[CLIENT]: unhandled ObjectSpinUpdate packet");
- ObjectSpinUpdatePacket spinUpdate = (ObjectSpinUpdatePacket)Pack;
-
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (spinUpdate.AgentData.SessionID != SessionId ||
- spinUpdate.AgentData.AgentID != AgentId)
- break;
- }
- #endregion
-
- Vector3 axis;
- float angle;
- spinUpdate.ObjectData.Rotation.GetAxisAngle(out axis, out angle);
- //m_log.Warn("[CLIENT]: ObjectSpinUpdate packet rot axis:" + axis + " angle:" + angle);
-
- SpinObject handlerSpinUpdate = OnSpinUpdate;
- if (handlerSpinUpdate != null)
- {
- handlerSpinUpdate(spinUpdate.ObjectData.ObjectID, spinUpdate.ObjectData.Rotation, this);
- }
- break;
-
-
- case PacketType.ObjectSpinStop:
- //m_log.Warn("[CLIENT]: unhandled ObjectSpinStop packet");
- ObjectSpinStopPacket spinStop = (ObjectSpinStopPacket)Pack;
-
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (spinStop.AgentData.SessionID != SessionId ||
- spinStop.AgentData.AgentID != AgentId)
- break;
- }
- #endregion
-
- SpinStop handlerSpinStop = OnSpinStop;
- if (handlerSpinStop != null)
- {
- handlerSpinStop(spinStop.ObjectData.ObjectID, this);
- }
- break;
-
- case PacketType.ObjectDescription:
- ObjectDescriptionPacket objDes = (ObjectDescriptionPacket)Pack;
-
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (objDes.AgentData.SessionID != SessionId ||
- objDes.AgentData.AgentID != AgentId)
- break;
- }
- #endregion
-
- GenericCall7 handlerObjectDescription = null;
-
- for (int i = 0; i < objDes.ObjectData.Length; i++)
- {
- handlerObjectDescription = OnObjectDescription;
- if (handlerObjectDescription != null)
- {
- handlerObjectDescription(this, objDes.ObjectData[i].LocalID,
- Util.FieldToString(objDes.ObjectData[i].Description));
- }
- }
- break;
-
- case PacketType.ObjectName:
- ObjectNamePacket objName = (ObjectNamePacket)Pack;
-
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (objName.AgentData.SessionID != SessionId ||
- objName.AgentData.AgentID != AgentId)
- break;
- }
- #endregion
-
- GenericCall7 handlerObjectName = null;
- for (int i = 0; i < objName.ObjectData.Length; i++)
- {
- handlerObjectName = OnObjectName;
- if (handlerObjectName != null)
- {
- handlerObjectName(this, objName.ObjectData[i].LocalID,
- Util.FieldToString(objName.ObjectData[i].Name));
- }
- }
- break;
-
- case PacketType.ObjectPermissions:
- if (OnObjectPermissions != null)
- {
- ObjectPermissionsPacket newobjPerms = (ObjectPermissionsPacket)Pack;
-
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (newobjPerms.AgentData.SessionID != SessionId ||
- newobjPerms.AgentData.AgentID != AgentId)
- break;
- }
- #endregion
-
- UUID AgentID = newobjPerms.AgentData.AgentID;
- UUID SessionID = newobjPerms.AgentData.SessionID;
-
- ObjectPermissions handlerObjectPermissions = null;
-
- for (int i = 0; i < newobjPerms.ObjectData.Length; i++)
- {
- ObjectPermissionsPacket.ObjectDataBlock permChanges = newobjPerms.ObjectData[i];
-
- byte field = permChanges.Field;
- uint localID = permChanges.ObjectLocalID;
- uint mask = permChanges.Mask;
- byte set = permChanges.Set;
-
- handlerObjectPermissions = OnObjectPermissions;
-
- if (handlerObjectPermissions != null)
- handlerObjectPermissions(this, AgentID, SessionID, field, localID, mask, set);
- }
- }
-
- // Here's our data,
- // PermField contains the field the info goes into
- // PermField determines which mask we're changing
- //
- // chmask is the mask of the change
- // setTF is whether we're adding it or taking it away
- //
- // objLocalID is the localID of the object.
-
- // Unfortunately, we have to pass the event the packet because objData is an array
- // That means multiple object perms may be updated in a single packet.
-
- break;
-
- case PacketType.Undo:
- UndoPacket undoitem = (UndoPacket)Pack;
-
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (undoitem.AgentData.SessionID != SessionId ||
- undoitem.AgentData.AgentID != AgentId)
- break;
- }
- #endregion
-
- if (undoitem.ObjectData.Length > 0)
- {
- for (int i = 0; i < undoitem.ObjectData.Length; i++)
- {
- UUID objiD = undoitem.ObjectData[i].ObjectID;
- AgentSit handlerOnUndo = OnUndo;
- if (handlerOnUndo != null)
- {
- handlerOnUndo(this, objiD);
- }
-
- }
- }
- break;
-
- case PacketType.ObjectDuplicateOnRay:
- ObjectDuplicateOnRayPacket dupeOnRay = (ObjectDuplicateOnRayPacket)Pack;
-
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (dupeOnRay.AgentData.SessionID != SessionId ||
- dupeOnRay.AgentData.AgentID != AgentId)
- break;
- }
- #endregion
-
- ObjectDuplicateOnRay handlerObjectDuplicateOnRay = null;
-
- for (int i = 0; i < dupeOnRay.ObjectData.Length; i++)
- {
- handlerObjectDuplicateOnRay = OnObjectDuplicateOnRay;
- if (handlerObjectDuplicateOnRay != null)
- {
- handlerObjectDuplicateOnRay(dupeOnRay.ObjectData[i].ObjectLocalID, dupeOnRay.AgentData.DuplicateFlags,
- dupeOnRay.AgentData.AgentID, dupeOnRay.AgentData.GroupID, dupeOnRay.AgentData.RayTargetID, dupeOnRay.AgentData.RayEnd,
- dupeOnRay.AgentData.RayStart, dupeOnRay.AgentData.BypassRaycast, dupeOnRay.AgentData.RayEndIsIntersection,
- dupeOnRay.AgentData.CopyCenters, dupeOnRay.AgentData.CopyRotates);
- }
- }
-
- break;
-
- case PacketType.RequestObjectPropertiesFamily:
- //This powers the little tooltip that appears when you move your mouse over an object
- RequestObjectPropertiesFamilyPacket packToolTip = (RequestObjectPropertiesFamilyPacket)Pack;
-
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (packToolTip.AgentData.SessionID != SessionId ||
- packToolTip.AgentData.AgentID != AgentId)
- break;
- }
- #endregion
-
- RequestObjectPropertiesFamilyPacket.ObjectDataBlock packObjBlock = packToolTip.ObjectData;
-
- RequestObjectPropertiesFamily handlerRequestObjectPropertiesFamily = OnRequestObjectPropertiesFamily;
-
- if (handlerRequestObjectPropertiesFamily != null)
- {
- handlerRequestObjectPropertiesFamily(this, m_agentId, packObjBlock.RequestFlags,
- packObjBlock.ObjectID);
- }
-
- break;
-
- case PacketType.ObjectIncludeInSearch:
- //This lets us set objects to appear in search (stuff like DataSnapshot, etc)
- ObjectIncludeInSearchPacket packInSearch = (ObjectIncludeInSearchPacket)Pack;
- ObjectIncludeInSearch handlerObjectIncludeInSearch = null;
-
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (packInSearch.AgentData.SessionID != SessionId ||
- packInSearch.AgentData.AgentID != AgentId)
- break;
- }
- #endregion
-
- foreach (ObjectIncludeInSearchPacket.ObjectDataBlock objData in packInSearch.ObjectData)
- {
- bool inSearch = objData.IncludeInSearch;
- uint localID = objData.ObjectLocalID;
-
- handlerObjectIncludeInSearch = OnObjectIncludeInSearch;
-
- if (handlerObjectIncludeInSearch != null)
- {
- handlerObjectIncludeInSearch(this, inSearch, localID);
- }
- }
- break;
-
- case PacketType.ScriptAnswerYes:
- ScriptAnswerYesPacket scriptAnswer = (ScriptAnswerYesPacket)Pack;
-
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (scriptAnswer.AgentData.SessionID != SessionId ||
- scriptAnswer.AgentData.AgentID != AgentId)
- break;
- }
- #endregion
-
- ScriptAnswer handlerScriptAnswer = OnScriptAnswer;
- if (handlerScriptAnswer != null)
- {
- handlerScriptAnswer(this, scriptAnswer.Data.TaskID, scriptAnswer.Data.ItemID, scriptAnswer.Data.Questions);
- }
- break;
-
- case PacketType.ObjectClickAction:
- ObjectClickActionPacket ocpacket = (ObjectClickActionPacket)Pack;
-
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (ocpacket.AgentData.SessionID != SessionId ||
- ocpacket.AgentData.AgentID != AgentId)
- break;
- }
- #endregion
-
- GenericCall7 handlerObjectClickAction = OnObjectClickAction;
- if (handlerObjectClickAction != null)
- {
- foreach (ObjectClickActionPacket.ObjectDataBlock odata in ocpacket.ObjectData)
- {
- byte action = odata.ClickAction;
- uint localID = odata.ObjectLocalID;
- handlerObjectClickAction(this, localID, action.ToString());
- }
- }
- break;
-
- case PacketType.ObjectMaterial:
- ObjectMaterialPacket ompacket = (ObjectMaterialPacket)Pack;
-
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (ompacket.AgentData.SessionID != SessionId ||
- ompacket.AgentData.AgentID != AgentId)
- break;
- }
- #endregion
-
- GenericCall7 handlerObjectMaterial = OnObjectMaterial;
- if (handlerObjectMaterial != null)
- {
- foreach (ObjectMaterialPacket.ObjectDataBlock odata in ompacket.ObjectData)
- {
- byte material = odata.Material;
- uint localID = odata.ObjectLocalID;
- handlerObjectMaterial(this, localID, material.ToString());
- }
- }
- break;
-
- //#endregion
-
- //#region Inventory/Asset/Other related packets
-
- case PacketType.RequestImage:
- RequestImagePacket imageRequest = (RequestImagePacket)Pack;
- //m_log.Debug("image request: " + Pack.ToString());
-
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (imageRequest.AgentData.SessionID != SessionId ||
- imageRequest.AgentData.AgentID != AgentId)
- break;
- }
- #endregion
-
- //handlerTextureRequest = null;
- for (int i = 0; i < imageRequest.RequestImage.Length; i++)
- {
- if (OnRequestTexture != null)
- {
- TextureRequestArgs args = new TextureRequestArgs();
-
- RequestImagePacket.RequestImageBlock block = imageRequest.RequestImage[i];
-
- args.RequestedAssetID = block.Image;
- args.DiscardLevel = block.DiscardLevel;
- args.PacketNumber = block.Packet;
- args.Priority = block.DownloadPriority;
- args.requestSequence = imageRequest.Header.Sequence;
-
- // NOTE: This is not a built in part of the LLUDP protocol, but we double the
- // priority of avatar textures to get avatars rezzing in faster than the
- // surrounding scene
- if ((ImageType)block.Type == ImageType.Baked)
- args.Priority *= 2.0f;
-
- //handlerTextureRequest = OnRequestTexture;
-
- //if (handlerTextureRequest != null)
- //OnRequestTexture(this, args);
-
- // in the end, we null this, so we have to check if it's null
- if (m_imageManager != null)
- {
- m_imageManager.EnqueueReq(args);
- }
- }
- }
- break;
-
- case PacketType.TransferRequest:
- //m_log.Debug("ClientView.ProcessPackets.cs:ProcessInPacket() - Got transfer request");
-
- TransferRequestPacket transfer = (TransferRequestPacket)Pack;
- //m_log.Debug("Transfer Request: " + transfer.ToString());
- // Validate inventory transfers
- // Has to be done here, because AssetCache can't do it
- //
- UUID taskID = UUID.Zero;
- if (transfer.TransferInfo.SourceType == 3)
- {
- taskID = new UUID(transfer.TransferInfo.Params, 48);
- UUID itemID = new UUID(transfer.TransferInfo.Params, 64);
- UUID requestID = new UUID(transfer.TransferInfo.Params, 80);
- if (!(((Scene)m_scene).Permissions.BypassPermissions()))
- {
- if (taskID != UUID.Zero) // Prim
- {
- SceneObjectPart part = ((Scene)m_scene).GetSceneObjectPart(taskID);
- if (part == null)
- break;
-
- if (part.OwnerID != AgentId)
- break;
-
- if ((part.OwnerMask & (uint)PermissionMask.Modify) == 0)
- break;
-
- TaskInventoryItem ti = part.Inventory.GetInventoryItem(itemID);
- if (ti == null)
- break;
-
- if (ti.OwnerID != AgentId)
- break;
-
- if ((ti.CurrentPermissions & ((uint)PermissionMask.Modify | (uint)PermissionMask.Copy | (uint)PermissionMask.Transfer)) != ((uint)PermissionMask.Modify | (uint)PermissionMask.Copy | (uint)PermissionMask.Transfer))
- break;
-
- if (ti.AssetID != requestID)
- break;
- }
- else // Agent
- {
- IInventoryService invService = m_scene.RequestModuleInterface();
- InventoryItemBase assetRequestItem = new InventoryItemBase(itemID, AgentId);
- assetRequestItem = invService.GetItem(assetRequestItem);
- if (assetRequestItem == null)
- {
- assetRequestItem = ((Scene)m_scene).CommsManager.UserProfileCacheService.LibraryRoot.FindItem(itemID);
- if (assetRequestItem == null)
- return;
- }
-
- // At this point, we need to apply perms
- // only to notecards and scripts. All
- // other asset types are always available
- //
- if (assetRequestItem.AssetType == 10)
- {
- if (!((Scene)m_scene).Permissions.CanViewScript(itemID, UUID.Zero, AgentId))
- {
- SendAgentAlertMessage("Insufficient permissions to view script", false);
- break;
- }
- }
- else if (assetRequestItem.AssetType == 7)
- {
- if (!((Scene)m_scene).Permissions.CanViewNotecard(itemID, UUID.Zero, AgentId))
- {
- SendAgentAlertMessage("Insufficient permissions to view notecard", false);
- break;
- }
- }
-
- if (assetRequestItem.AssetID != requestID)
- break;
- }
- }
- }
-
- //m_assetCache.AddAssetRequest(this, transfer);
-
- MakeAssetRequest(transfer, taskID);
-
- // RequestAsset = OnRequestAsset;
- // if (RequestAsset != null)
- // {
- // RequestAsset(this, transfer);
- // }
-
- break;
-
- case PacketType.AssetUploadRequest:
- AssetUploadRequestPacket request = (AssetUploadRequestPacket)Pack;
-
-
- // m_log.Debug("upload request " + request.ToString());
- // m_log.Debug("upload request was for assetid: " + request.AssetBlock.TransactionID.Combine(this.SecureSessionId).ToString());
- UUID temp = UUID.Combine(request.AssetBlock.TransactionID, SecureSessionId);
-
- UDPAssetUploadRequest handlerAssetUploadRequest = OnAssetUploadRequest;
-
- if (handlerAssetUploadRequest != null)
- {
- handlerAssetUploadRequest(this, temp,
- request.AssetBlock.TransactionID, request.AssetBlock.Type,
- request.AssetBlock.AssetData, request.AssetBlock.StoreLocal,
- request.AssetBlock.Tempfile);
- }
- break;
-
- case PacketType.RequestXfer:
- RequestXferPacket xferReq = (RequestXferPacket)Pack;
-
- RequestXfer handlerRequestXfer = OnRequestXfer;
-
- if (handlerRequestXfer != null)
- {
- handlerRequestXfer(this, xferReq.XferID.ID, Util.FieldToString(xferReq.XferID.Filename));
- }
- break;
-
- case PacketType.SendXferPacket:
- SendXferPacketPacket xferRec = (SendXferPacketPacket)Pack;
-
- XferReceive handlerXferReceive = OnXferReceive;
- if (handlerXferReceive != null)
- {
- handlerXferReceive(this, xferRec.XferID.ID, xferRec.XferID.Packet, xferRec.DataPacket.Data);
- }
- break;
-
- case PacketType.ConfirmXferPacket:
- ConfirmXferPacketPacket confirmXfer = (ConfirmXferPacketPacket)Pack;
-
- ConfirmXfer handlerConfirmXfer = OnConfirmXfer;
- if (handlerConfirmXfer != null)
- {
- handlerConfirmXfer(this, confirmXfer.XferID.ID, confirmXfer.XferID.Packet);
- }
- break;
-
- case PacketType.AbortXfer:
- AbortXferPacket abortXfer = (AbortXferPacket)Pack;
- AbortXfer handlerAbortXfer = OnAbortXfer;
- if (handlerAbortXfer != null)
- {
- handlerAbortXfer(this, abortXfer.XferID.ID);
- }
-
- break;
-
- case PacketType.CreateInventoryFolder:
- CreateInventoryFolderPacket invFolder = (CreateInventoryFolderPacket)Pack;
-
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (invFolder.AgentData.SessionID != SessionId ||
- invFolder.AgentData.AgentID != AgentId)
- break;
- }
- #endregion
-
- CreateInventoryFolder handlerCreateInventoryFolder = OnCreateNewInventoryFolder;
- if (handlerCreateInventoryFolder != null)
- {
- handlerCreateInventoryFolder(this, invFolder.FolderData.FolderID,
- (ushort)invFolder.FolderData.Type,
- Util.FieldToString(invFolder.FolderData.Name),
- invFolder.FolderData.ParentID);
- }
- break;
-
- case PacketType.UpdateInventoryFolder:
- if (OnUpdateInventoryFolder != null)
- {
- UpdateInventoryFolderPacket invFolderx = (UpdateInventoryFolderPacket)Pack;
-
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (invFolderx.AgentData.SessionID != SessionId ||
- invFolderx.AgentData.AgentID != AgentId)
- break;
- }
- #endregion
-
- UpdateInventoryFolder handlerUpdateInventoryFolder = null;
-
- for (int i = 0; i < invFolderx.FolderData.Length; i++)
- {
- handlerUpdateInventoryFolder = OnUpdateInventoryFolder;
- if (handlerUpdateInventoryFolder != null)
- {
- OnUpdateInventoryFolder(this, invFolderx.FolderData[i].FolderID,
- (ushort)invFolderx.FolderData[i].Type,
- Util.FieldToString(invFolderx.FolderData[i].Name),
- invFolderx.FolderData[i].ParentID);
- }
- }
- }
- break;
-
- case PacketType.MoveInventoryFolder:
- if (OnMoveInventoryFolder != null)
- {
- MoveInventoryFolderPacket invFoldery = (MoveInventoryFolderPacket)Pack;
-
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (invFoldery.AgentData.SessionID != SessionId ||
- invFoldery.AgentData.AgentID != AgentId)
- break;
- }
- #endregion
-
- MoveInventoryFolder handlerMoveInventoryFolder = null;
-
- for (int i = 0; i < invFoldery.InventoryData.Length; i++)
- {
- handlerMoveInventoryFolder = OnMoveInventoryFolder;
- if (handlerMoveInventoryFolder != null)
- {
- OnMoveInventoryFolder(this, invFoldery.InventoryData[i].FolderID,
- invFoldery.InventoryData[i].ParentID);
- }
- }
- }
- break;
-
- case PacketType.CreateInventoryItem:
- CreateInventoryItemPacket createItem = (CreateInventoryItemPacket)Pack;
-
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (createItem.AgentData.SessionID != SessionId ||
- createItem.AgentData.AgentID != AgentId)
- break;
- }
- #endregion
-
- CreateNewInventoryItem handlerCreateNewInventoryItem = OnCreateNewInventoryItem;
- if (handlerCreateNewInventoryItem != null)
- {
- handlerCreateNewInventoryItem(this, createItem.InventoryBlock.TransactionID,
- createItem.InventoryBlock.FolderID,
- createItem.InventoryBlock.CallbackID,
- Util.FieldToString(createItem.InventoryBlock.Description),
- Util.FieldToString(createItem.InventoryBlock.Name),
- createItem.InventoryBlock.InvType,
- createItem.InventoryBlock.Type,
- createItem.InventoryBlock.WearableType,
- createItem.InventoryBlock.NextOwnerMask,
- Util.UnixTimeSinceEpoch());
- }
- break;
-
- case PacketType.FetchInventory:
- if (OnFetchInventory != null)
- {
- FetchInventoryPacket FetchInventoryx = (FetchInventoryPacket)Pack;
-
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (FetchInventoryx.AgentData.SessionID != SessionId ||
- FetchInventoryx.AgentData.AgentID != AgentId)
- break;
- }
- #endregion
-
- FetchInventory handlerFetchInventory = null;
-
- for (int i = 0; i < FetchInventoryx.InventoryData.Length; i++)
- {
- handlerFetchInventory = OnFetchInventory;
-
- if (handlerFetchInventory != null)
- {
- OnFetchInventory(this, FetchInventoryx.InventoryData[i].ItemID,
- FetchInventoryx.InventoryData[i].OwnerID);
- }
- }
- }
- break;
-
- case PacketType.FetchInventoryDescendents:
- FetchInventoryDescendentsPacket Fetch = (FetchInventoryDescendentsPacket)Pack;
-
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (Fetch.AgentData.SessionID != SessionId ||
- Fetch.AgentData.AgentID != AgentId)
- break;
- }
- #endregion
-
- FetchInventoryDescendents handlerFetchInventoryDescendents = OnFetchInventoryDescendents;
- if (handlerFetchInventoryDescendents != null)
- {
- handlerFetchInventoryDescendents(this, Fetch.InventoryData.FolderID, Fetch.InventoryData.OwnerID,
- Fetch.InventoryData.FetchFolders, Fetch.InventoryData.FetchItems,
- Fetch.InventoryData.SortOrder);
- }
- break;
-
- case PacketType.PurgeInventoryDescendents:
- PurgeInventoryDescendentsPacket Purge = (PurgeInventoryDescendentsPacket)Pack;
-
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (Purge.AgentData.SessionID != SessionId ||
- Purge.AgentData.AgentID != AgentId)
- break;
- }
- #endregion
-
- PurgeInventoryDescendents handlerPurgeInventoryDescendents = OnPurgeInventoryDescendents;
- if (handlerPurgeInventoryDescendents != null)
- {
- handlerPurgeInventoryDescendents(this, Purge.InventoryData.FolderID);
- }
- break;
-
- case PacketType.UpdateInventoryItem:
- UpdateInventoryItemPacket inventoryItemUpdate = (UpdateInventoryItemPacket)Pack;
-
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (inventoryItemUpdate.AgentData.SessionID != SessionId ||
- inventoryItemUpdate.AgentData.AgentID != AgentId)
- break;
- }
- #endregion
-
- if (OnUpdateInventoryItem != null)
- {
- UpdateInventoryItem handlerUpdateInventoryItem = null;
- for (int i = 0; i < inventoryItemUpdate.InventoryData.Length; i++)
- {
- handlerUpdateInventoryItem = OnUpdateInventoryItem;
-
- if (handlerUpdateInventoryItem != null)
- {
- InventoryItemBase itemUpd = new InventoryItemBase();
- itemUpd.ID = inventoryItemUpdate.InventoryData[i].ItemID;
- itemUpd.Name = Util.FieldToString(inventoryItemUpdate.InventoryData[i].Name);
- itemUpd.Description = Util.FieldToString(inventoryItemUpdate.InventoryData[i].Description);
- itemUpd.GroupID = inventoryItemUpdate.InventoryData[i].GroupID;
- itemUpd.GroupOwned = inventoryItemUpdate.InventoryData[i].GroupOwned;
- itemUpd.GroupPermissions = inventoryItemUpdate.InventoryData[i].GroupMask;
- itemUpd.NextPermissions = inventoryItemUpdate.InventoryData[i].NextOwnerMask;
- itemUpd.EveryOnePermissions = inventoryItemUpdate.InventoryData[i].EveryoneMask;
- itemUpd.CreationDate = inventoryItemUpdate.InventoryData[i].CreationDate;
- itemUpd.Folder = inventoryItemUpdate.InventoryData[i].FolderID;
- itemUpd.InvType = inventoryItemUpdate.InventoryData[i].InvType;
- itemUpd.SalePrice = inventoryItemUpdate.InventoryData[i].SalePrice;
- itemUpd.SaleType = inventoryItemUpdate.InventoryData[i].SaleType;
- itemUpd.Flags = inventoryItemUpdate.InventoryData[i].Flags;
-
- OnUpdateInventoryItem(this, inventoryItemUpdate.InventoryData[i].TransactionID,
- inventoryItemUpdate.InventoryData[i].ItemID,
- itemUpd);
- }
- }
- }
- break;
-
- case PacketType.CopyInventoryItem:
- CopyInventoryItemPacket copyitem = (CopyInventoryItemPacket)Pack;
-
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (copyitem.AgentData.SessionID != SessionId ||
- copyitem.AgentData.AgentID != AgentId)
- break;
- }
- #endregion
-
- CopyInventoryItem handlerCopyInventoryItem = null;
- if (OnCopyInventoryItem != null)
- {
- foreach (CopyInventoryItemPacket.InventoryDataBlock datablock in copyitem.InventoryData)
- {
- handlerCopyInventoryItem = OnCopyInventoryItem;
- if (handlerCopyInventoryItem != null)
- {
- handlerCopyInventoryItem(this, datablock.CallbackID, datablock.OldAgentID,
- datablock.OldItemID, datablock.NewFolderID,
- Util.FieldToString(datablock.NewName));
- }
- }
- }
- break;
-
- case PacketType.MoveInventoryItem:
- MoveInventoryItemPacket moveitem = (MoveInventoryItemPacket)Pack;
-
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (moveitem.AgentData.SessionID != SessionId ||
- moveitem.AgentData.AgentID != AgentId)
- break;
- }
- #endregion
-
- if (OnMoveInventoryItem != null)
- {
- MoveInventoryItem handlerMoveInventoryItem = null;
- InventoryItemBase itm = null;
- List items = new List();
- foreach (MoveInventoryItemPacket.InventoryDataBlock datablock in moveitem.InventoryData)
- {
- itm = new InventoryItemBase(datablock.ItemID, AgentId);
- itm.Folder = datablock.FolderID;
- itm.Name = Util.FieldToString(datablock.NewName);
- // weird, comes out as empty string
- //m_log.DebugFormat("[XXX] new name: {0}", itm.Name);
- items.Add(itm);
- }
- handlerMoveInventoryItem = OnMoveInventoryItem;
- if (handlerMoveInventoryItem != null)
- {
- handlerMoveInventoryItem(this, items);
- }
- }
- break;
-
- case PacketType.RemoveInventoryItem:
- RemoveInventoryItemPacket removeItem = (RemoveInventoryItemPacket)Pack;
-
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (removeItem.AgentData.SessionID != SessionId ||
- removeItem.AgentData.AgentID != AgentId)
- break;
- }
- #endregion
-
- if (OnRemoveInventoryItem != null)
- {
- RemoveInventoryItem handlerRemoveInventoryItem = null;
- List uuids = new List();
- foreach (RemoveInventoryItemPacket.InventoryDataBlock datablock in removeItem.InventoryData)
- {
- uuids.Add(datablock.ItemID);
- }
- handlerRemoveInventoryItem = OnRemoveInventoryItem;
- if (handlerRemoveInventoryItem != null)
- {
- handlerRemoveInventoryItem(this, uuids);
- }
-
- }
- break;
-
- case PacketType.RemoveInventoryFolder:
- RemoveInventoryFolderPacket removeFolder = (RemoveInventoryFolderPacket)Pack;
-
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (removeFolder.AgentData.SessionID != SessionId ||
- removeFolder.AgentData.AgentID != AgentId)
- break;
- }
- #endregion
-
- if (OnRemoveInventoryFolder != null)
- {
- RemoveInventoryFolder handlerRemoveInventoryFolder = null;
- List uuids = new List();
- foreach (RemoveInventoryFolderPacket.FolderDataBlock datablock in removeFolder.FolderData)
- {
- uuids.Add(datablock.FolderID);
- }
- handlerRemoveInventoryFolder = OnRemoveInventoryFolder;
- if (handlerRemoveInventoryFolder != null)
- {
- handlerRemoveInventoryFolder(this, uuids);
- }
- }
- break;
-
- case PacketType.RemoveInventoryObjects:
- RemoveInventoryObjectsPacket removeObject = (RemoveInventoryObjectsPacket)Pack;
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (removeObject.AgentData.SessionID != SessionId ||
- removeObject.AgentData.AgentID != AgentId)
- break;
- }
- #endregion
- if (OnRemoveInventoryFolder != null)
- {
- RemoveInventoryFolder handlerRemoveInventoryFolder = null;
- List uuids = new List();
- foreach (RemoveInventoryObjectsPacket.FolderDataBlock datablock in removeObject.FolderData)
- {
- uuids.Add(datablock.FolderID);
- }
- handlerRemoveInventoryFolder = OnRemoveInventoryFolder;
- if (handlerRemoveInventoryFolder != null)
- {
- handlerRemoveInventoryFolder(this, uuids);
- }
- }
-
- if (OnRemoveInventoryItem != null)
- {
- RemoveInventoryItem handlerRemoveInventoryItem = null;
- List uuids = new List();
- foreach (RemoveInventoryObjectsPacket.ItemDataBlock datablock in removeObject.ItemData)
- {
- uuids.Add(datablock.ItemID);
- }
- handlerRemoveInventoryItem = OnRemoveInventoryItem;
- if (handlerRemoveInventoryItem != null)
- {
- handlerRemoveInventoryItem(this, uuids);
- }
- }
- break;
-
- case PacketType.RequestTaskInventory:
- RequestTaskInventoryPacket requesttask = (RequestTaskInventoryPacket)Pack;
-
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (requesttask.AgentData.SessionID != SessionId ||
- requesttask.AgentData.AgentID != AgentId)
- break;
- }
- #endregion
-
- RequestTaskInventory handlerRequestTaskInventory = OnRequestTaskInventory;
- if (handlerRequestTaskInventory != null)
- {
- handlerRequestTaskInventory(this, requesttask.InventoryData.LocalID);
- }
- break;
-
- case PacketType.UpdateTaskInventory:
- UpdateTaskInventoryPacket updatetask = (UpdateTaskInventoryPacket)Pack;
-
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (updatetask.AgentData.SessionID != SessionId ||
- updatetask.AgentData.AgentID != AgentId)
- break;
- }
- #endregion
-
- if (OnUpdateTaskInventory != null)
- {
- if (updatetask.UpdateData.Key == 0)
- {
- UpdateTaskInventory handlerUpdateTaskInventory = OnUpdateTaskInventory;
- if (handlerUpdateTaskInventory != null)
- {
- TaskInventoryItem newTaskItem = new TaskInventoryItem();
- newTaskItem.ItemID = updatetask.InventoryData.ItemID;
- newTaskItem.ParentID = updatetask.InventoryData.FolderID;
- newTaskItem.CreatorID = updatetask.InventoryData.CreatorID;
- newTaskItem.OwnerID = updatetask.InventoryData.OwnerID;
- newTaskItem.GroupID = updatetask.InventoryData.GroupID;
- newTaskItem.BasePermissions = updatetask.InventoryData.BaseMask;
- newTaskItem.CurrentPermissions = updatetask.InventoryData.OwnerMask;
- newTaskItem.GroupPermissions = updatetask.InventoryData.GroupMask;
- newTaskItem.EveryonePermissions = updatetask.InventoryData.EveryoneMask;
- newTaskItem.NextPermissions = updatetask.InventoryData.NextOwnerMask;
- //newTaskItem.GroupOwned=updatetask.InventoryData.GroupOwned;
- newTaskItem.Type = updatetask.InventoryData.Type;
- newTaskItem.InvType = updatetask.InventoryData.InvType;
- newTaskItem.Flags = updatetask.InventoryData.Flags;
- //newTaskItem.SaleType=updatetask.InventoryData.SaleType;
- //newTaskItem.SalePrice=updatetask.InventoryData.SalePrice;;
- newTaskItem.Name = Util.FieldToString(updatetask.InventoryData.Name);
- newTaskItem.Description = Util.FieldToString(updatetask.InventoryData.Description);
- newTaskItem.CreationDate = (uint)updatetask.InventoryData.CreationDate;
- handlerUpdateTaskInventory(this, updatetask.InventoryData.TransactionID,
- newTaskItem, updatetask.UpdateData.LocalID);
- }
- }
- }
-
- break;
-
- case PacketType.RemoveTaskInventory:
-
- RemoveTaskInventoryPacket removeTask = (RemoveTaskInventoryPacket)Pack;
-
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (removeTask.AgentData.SessionID != SessionId ||
- removeTask.AgentData.AgentID != AgentId)
- break;
- }
- #endregion
-
- RemoveTaskInventory handlerRemoveTaskItem = OnRemoveTaskItem;
-
- if (handlerRemoveTaskItem != null)
- {
- handlerRemoveTaskItem(this, removeTask.InventoryData.ItemID, removeTask.InventoryData.LocalID);
- }
-
- break;
-
- case PacketType.MoveTaskInventory:
-
- MoveTaskInventoryPacket moveTaskInventoryPacket = (MoveTaskInventoryPacket)Pack;
-
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (moveTaskInventoryPacket.AgentData.SessionID != SessionId ||
- moveTaskInventoryPacket.AgentData.AgentID != AgentId)
- break;
- }
- #endregion
-
- MoveTaskInventory handlerMoveTaskItem = OnMoveTaskItem;
-
- if (handlerMoveTaskItem != null)
- {
- handlerMoveTaskItem(
- this, moveTaskInventoryPacket.AgentData.FolderID,
- moveTaskInventoryPacket.InventoryData.LocalID,
- moveTaskInventoryPacket.InventoryData.ItemID);
- }
-
- break;
-
- case PacketType.RezScript:
- //m_log.Debug(Pack.ToString());
- RezScriptPacket rezScriptx = (RezScriptPacket)Pack;
-
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (rezScriptx.AgentData.SessionID != SessionId ||
- rezScriptx.AgentData.AgentID != AgentId)
- break;
- }
- #endregion
-
- RezScript handlerRezScript = OnRezScript;
- InventoryItemBase item = new InventoryItemBase();
- item.ID = rezScriptx.InventoryBlock.ItemID;
- item.Folder = rezScriptx.InventoryBlock.FolderID;
- item.CreatorId = rezScriptx.InventoryBlock.CreatorID.ToString();
- item.Owner = rezScriptx.InventoryBlock.OwnerID;
- item.BasePermissions = rezScriptx.InventoryBlock.BaseMask;
- item.CurrentPermissions = rezScriptx.InventoryBlock.OwnerMask;
- item.EveryOnePermissions = rezScriptx.InventoryBlock.EveryoneMask;
- item.NextPermissions = rezScriptx.InventoryBlock.NextOwnerMask;
- item.GroupPermissions = rezScriptx.InventoryBlock.GroupMask;
- item.GroupOwned = rezScriptx.InventoryBlock.GroupOwned;
- item.GroupID = rezScriptx.InventoryBlock.GroupID;
- item.AssetType = rezScriptx.InventoryBlock.Type;
- item.InvType = rezScriptx.InventoryBlock.InvType;
- item.Flags = rezScriptx.InventoryBlock.Flags;
- item.SaleType = rezScriptx.InventoryBlock.SaleType;
- item.SalePrice = rezScriptx.InventoryBlock.SalePrice;
- item.Name = Util.FieldToString(rezScriptx.InventoryBlock.Name);
- item.Description = Util.FieldToString(rezScriptx.InventoryBlock.Description);
- item.CreationDate = rezScriptx.InventoryBlock.CreationDate;
-
- if (handlerRezScript != null)
- {
- handlerRezScript(this, item, rezScriptx.InventoryBlock.TransactionID, rezScriptx.UpdateBlock.ObjectLocalID);
- }
- break;
-
- case PacketType.MapLayerRequest:
- RequestMapLayer();
- break;
- case PacketType.MapBlockRequest:
- MapBlockRequestPacket MapRequest = (MapBlockRequestPacket)Pack;
-
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (MapRequest.AgentData.SessionID != SessionId ||
- MapRequest.AgentData.AgentID != AgentId)
- break;
- }
- #endregion
-
- RequestMapBlocks handlerRequestMapBlocks = OnRequestMapBlocks;
- if (handlerRequestMapBlocks != null)
- {
- handlerRequestMapBlocks(this, MapRequest.PositionData.MinX, MapRequest.PositionData.MinY,
- MapRequest.PositionData.MaxX, MapRequest.PositionData.MaxY, MapRequest.AgentData.Flags);
- }
- break;
- case PacketType.MapNameRequest:
- MapNameRequestPacket map = (MapNameRequestPacket)Pack;
-
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (map.AgentData.SessionID != SessionId ||
- map.AgentData.AgentID != AgentId)
- break;
- }
- #endregion
-
- string mapName = Util.UTF8.GetString(map.NameData.Name, 0,
- map.NameData.Name.Length - 1);
- RequestMapName handlerMapNameRequest = OnMapNameRequest;
- if (handlerMapNameRequest != null)
- {
- handlerMapNameRequest(this, mapName);
- }
- break;
-
- case PacketType.TeleportLandmarkRequest:
- TeleportLandmarkRequestPacket tpReq = (TeleportLandmarkRequestPacket)Pack;
-
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (tpReq.Info.SessionID != SessionId ||
- tpReq.Info.AgentID != AgentId)
- break;
- }
- #endregion
-
- UUID lmid = tpReq.Info.LandmarkID;
- AssetLandmark lm;
- if (lmid != UUID.Zero)
- {
- //AssetBase lma = m_assetCache.GetAsset(lmid, false);
- AssetBase lma = m_assetService.Get(lmid.ToString());
-
- if (lma == null)
- {
- // Failed to find landmark
- TeleportCancelPacket tpCancel = (TeleportCancelPacket)PacketPool.Instance.GetPacket(PacketType.TeleportCancel);
- tpCancel.Info.SessionID = tpReq.Info.SessionID;
- tpCancel.Info.AgentID = tpReq.Info.AgentID;
- OutPacket(tpCancel, ThrottleOutPacketType.Task);
- }
-
- try
- {
- lm = new AssetLandmark(lma);
- }
- catch (NullReferenceException)
- {
- // asset not found generates null ref inside the assetlandmark constructor.
- TeleportCancelPacket tpCancel = (TeleportCancelPacket)PacketPool.Instance.GetPacket(PacketType.TeleportCancel);
- tpCancel.Info.SessionID = tpReq.Info.SessionID;
- tpCancel.Info.AgentID = tpReq.Info.AgentID;
- OutPacket(tpCancel, ThrottleOutPacketType.Task);
- break;
- }
- }
- else
- {
- // Teleport home request
- UUIDNameRequest handlerTeleportHomeRequest = OnTeleportHomeRequest;
- if (handlerTeleportHomeRequest != null)
- {
- handlerTeleportHomeRequest(AgentId, this);
- }
- break;
- }
-
- TeleportLandmarkRequest handlerTeleportLandmarkRequest = OnTeleportLandmarkRequest;
- if (handlerTeleportLandmarkRequest != null)
- {
- handlerTeleportLandmarkRequest(this, lm.RegionID, lm.Position);
- }
- else
- {
- //no event handler so cancel request
-
-
- TeleportCancelPacket tpCancel = (TeleportCancelPacket)PacketPool.Instance.GetPacket(PacketType.TeleportCancel);
- tpCancel.Info.AgentID = tpReq.Info.AgentID;
- tpCancel.Info.SessionID = tpReq.Info.SessionID;
- OutPacket(tpCancel, ThrottleOutPacketType.Task);
-
- }
- break;
-
- case PacketType.TeleportLocationRequest:
- TeleportLocationRequestPacket tpLocReq = (TeleportLocationRequestPacket)Pack;
- // m_log.Debug(tpLocReq.ToString());
-
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (tpLocReq.AgentData.SessionID != SessionId ||
- tpLocReq.AgentData.AgentID != AgentId)
- break;
- }
- #endregion
-
- TeleportLocationRequest handlerTeleportLocationRequest = OnTeleportLocationRequest;
- if (handlerTeleportLocationRequest != null)
- {
- handlerTeleportLocationRequest(this, tpLocReq.Info.RegionHandle, tpLocReq.Info.Position,
- tpLocReq.Info.LookAt, 16);
- }
- else
- {
- //no event handler so cancel request
- TeleportCancelPacket tpCancel = (TeleportCancelPacket)PacketPool.Instance.GetPacket(PacketType.TeleportCancel);
- tpCancel.Info.SessionID = tpLocReq.AgentData.SessionID;
- tpCancel.Info.AgentID = tpLocReq.AgentData.AgentID;
- OutPacket(tpCancel, ThrottleOutPacketType.Task);
- }
- break;
-
- //#endregion
-
- case PacketType.UUIDNameRequest:
- UUIDNameRequestPacket incoming = (UUIDNameRequestPacket)Pack;
-
- foreach (UUIDNameRequestPacket.UUIDNameBlockBlock UUIDBlock in incoming.UUIDNameBlock)
- {
- UUIDNameRequest handlerNameRequest = OnNameFromUUIDRequest;
- if (handlerNameRequest != null)
- {
- handlerNameRequest(UUIDBlock.ID, this);
- }
- }
- break;
-
- //#region Parcel related packets
-
-
- case PacketType.RegionHandleRequest:
- RegionHandleRequestPacket rhrPack = (RegionHandleRequestPacket)Pack;
-
- RegionHandleRequest handlerRegionHandleRequest = OnRegionHandleRequest;
- if (handlerRegionHandleRequest != null)
- {
- handlerRegionHandleRequest(this, rhrPack.RequestBlock.RegionID);
- }
- break;
-
- case PacketType.ParcelInfoRequest:
- ParcelInfoRequestPacket pirPack = (ParcelInfoRequestPacket)Pack;
-
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (pirPack.AgentData.SessionID != SessionId ||
- pirPack.AgentData.AgentID != AgentId)
- break;
- }
- #endregion
-
- ParcelInfoRequest handlerParcelInfoRequest = OnParcelInfoRequest;
- if (handlerParcelInfoRequest != null)
- {
- handlerParcelInfoRequest(this, pirPack.Data.ParcelID);
- }
- break;
-
- case PacketType.ParcelAccessListRequest:
- ParcelAccessListRequestPacket requestPacket = (ParcelAccessListRequestPacket)Pack;
-
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (requestPacket.AgentData.SessionID != SessionId ||
- requestPacket.AgentData.AgentID != AgentId)
- break;
- }
- #endregion
-
- ParcelAccessListRequest handlerParcelAccessListRequest = OnParcelAccessListRequest;
-
- if (handlerParcelAccessListRequest != null)
- {
- handlerParcelAccessListRequest(requestPacket.AgentData.AgentID, requestPacket.AgentData.SessionID,
- requestPacket.Data.Flags, requestPacket.Data.SequenceID,
- requestPacket.Data.LocalID, this);
- }
- break;
-
- case PacketType.ParcelAccessListUpdate:
- ParcelAccessListUpdatePacket updatePacket = (ParcelAccessListUpdatePacket)Pack;
-
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (updatePacket.AgentData.SessionID != SessionId ||
- updatePacket.AgentData.AgentID != AgentId)
- break;
- }
- #endregion
-
- List entries = new List();
- foreach (ParcelAccessListUpdatePacket.ListBlock block in updatePacket.List)
- {
- ParcelManager.ParcelAccessEntry entry = new ParcelManager.ParcelAccessEntry();
- entry.AgentID = block.ID;
- entry.Flags = (AccessList)block.Flags;
- entry.Time = new DateTime();
- entries.Add(entry);
- }
-
- ParcelAccessListUpdateRequest handlerParcelAccessListUpdateRequest = OnParcelAccessListUpdateRequest;
- if (handlerParcelAccessListUpdateRequest != null)
- {
- handlerParcelAccessListUpdateRequest(updatePacket.AgentData.AgentID,
- updatePacket.AgentData.SessionID, updatePacket.Data.Flags,
- updatePacket.Data.LocalID, entries, this);
- }
- break;
-
- case PacketType.ParcelPropertiesRequest:
-
- ParcelPropertiesRequestPacket propertiesRequest = (ParcelPropertiesRequestPacket)Pack;
-
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (propertiesRequest.AgentData.SessionID != SessionId ||
- propertiesRequest.AgentData.AgentID != AgentId)
- break;
- }
- #endregion
-
- ParcelPropertiesRequest handlerParcelPropertiesRequest = OnParcelPropertiesRequest;
- if (handlerParcelPropertiesRequest != null)
- {
- handlerParcelPropertiesRequest((int)Math.Round(propertiesRequest.ParcelData.West),
- (int)Math.Round(propertiesRequest.ParcelData.South),
- (int)Math.Round(propertiesRequest.ParcelData.East),
- (int)Math.Round(propertiesRequest.ParcelData.North),
- propertiesRequest.ParcelData.SequenceID,
- propertiesRequest.ParcelData.SnapSelection, this);
- }
- break;
-
- case PacketType.ParcelDivide:
- ParcelDividePacket landDivide = (ParcelDividePacket)Pack;
-
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (landDivide.AgentData.SessionID != SessionId ||
- landDivide.AgentData.AgentID != AgentId)
- break;
- }
- #endregion
-
- ParcelDivideRequest handlerParcelDivideRequest = OnParcelDivideRequest;
- if (handlerParcelDivideRequest != null)
- {
- handlerParcelDivideRequest((int)Math.Round(landDivide.ParcelData.West),
- (int)Math.Round(landDivide.ParcelData.South),
- (int)Math.Round(landDivide.ParcelData.East),
- (int)Math.Round(landDivide.ParcelData.North), this);
- }
- break;
-
- case PacketType.ParcelJoin:
- ParcelJoinPacket landJoin = (ParcelJoinPacket)Pack;
-
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (landJoin.AgentData.SessionID != SessionId ||
- landJoin.AgentData.AgentID != AgentId)
- break;
- }
- #endregion
-
- ParcelJoinRequest handlerParcelJoinRequest = OnParcelJoinRequest;
-
- if (handlerParcelJoinRequest != null)
- {
- handlerParcelJoinRequest((int)Math.Round(landJoin.ParcelData.West),
- (int)Math.Round(landJoin.ParcelData.South),
- (int)Math.Round(landJoin.ParcelData.East),
- (int)Math.Round(landJoin.ParcelData.North), this);
- }
- break;
-
- case PacketType.ParcelPropertiesUpdate:
- ParcelPropertiesUpdatePacket parcelPropertiesPacket = (ParcelPropertiesUpdatePacket)Pack;
-
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (parcelPropertiesPacket.AgentData.SessionID != SessionId ||
- parcelPropertiesPacket.AgentData.AgentID != AgentId)
- break;
- }
- #endregion
-
- ParcelPropertiesUpdateRequest handlerParcelPropertiesUpdateRequest = OnParcelPropertiesUpdateRequest;
-
- if (handlerParcelPropertiesUpdateRequest != null)
- {
- LandUpdateArgs args = new LandUpdateArgs();
-
- args.AuthBuyerID = parcelPropertiesPacket.ParcelData.AuthBuyerID;
- args.Category = (ParcelCategory)parcelPropertiesPacket.ParcelData.Category;
- args.Desc = Utils.BytesToString(parcelPropertiesPacket.ParcelData.Desc);
- args.GroupID = parcelPropertiesPacket.ParcelData.GroupID;
- args.LandingType = parcelPropertiesPacket.ParcelData.LandingType;
- args.MediaAutoScale = parcelPropertiesPacket.ParcelData.MediaAutoScale;
- args.MediaID = parcelPropertiesPacket.ParcelData.MediaID;
- args.MediaURL = Utils.BytesToString(parcelPropertiesPacket.ParcelData.MediaURL);
- args.MusicURL = Utils.BytesToString(parcelPropertiesPacket.ParcelData.MusicURL);
- args.Name = Utils.BytesToString(parcelPropertiesPacket.ParcelData.Name);
- args.ParcelFlags = parcelPropertiesPacket.ParcelData.ParcelFlags;
- args.PassHours = parcelPropertiesPacket.ParcelData.PassHours;
- args.PassPrice = parcelPropertiesPacket.ParcelData.PassPrice;
- args.SalePrice = parcelPropertiesPacket.ParcelData.SalePrice;
- args.SnapshotID = parcelPropertiesPacket.ParcelData.SnapshotID;
- args.UserLocation = parcelPropertiesPacket.ParcelData.UserLocation;
- args.UserLookAt = parcelPropertiesPacket.ParcelData.UserLookAt;
- handlerParcelPropertiesUpdateRequest(args, parcelPropertiesPacket.ParcelData.LocalID, this);
- }
- break;
-
- case PacketType.ParcelSelectObjects:
- ParcelSelectObjectsPacket selectPacket = (ParcelSelectObjectsPacket)Pack;
-
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (selectPacket.AgentData.SessionID != SessionId ||
- selectPacket.AgentData.AgentID != AgentId)
- break;
- }
- #endregion
-
- List returnIDs = new List();
-
- foreach (ParcelSelectObjectsPacket.ReturnIDsBlock rb in
- selectPacket.ReturnIDs)
- {
- returnIDs.Add(rb.ReturnID);
- }
-
- ParcelSelectObjects handlerParcelSelectObjects = OnParcelSelectObjects;
-
- if (handlerParcelSelectObjects != null)
- {
- handlerParcelSelectObjects(selectPacket.ParcelData.LocalID,
- Convert.ToInt32(selectPacket.ParcelData.ReturnType), returnIDs, this);
- }
- break;
-
- case PacketType.ParcelObjectOwnersRequest:
- //m_log.Debug(Pack.ToString());
- ParcelObjectOwnersRequestPacket reqPacket = (ParcelObjectOwnersRequestPacket)Pack;
-
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (reqPacket.AgentData.SessionID != SessionId ||
- reqPacket.AgentData.AgentID != AgentId)
- break;
- }
- #endregion
-
- ParcelObjectOwnerRequest handlerParcelObjectOwnerRequest = OnParcelObjectOwnerRequest;
-
- if (handlerParcelObjectOwnerRequest != null)
- {
- handlerParcelObjectOwnerRequest(reqPacket.ParcelData.LocalID, this);
- }
- break;
-
- case PacketType.ParcelGodForceOwner:
- ParcelGodForceOwnerPacket godForceOwnerPacket = (ParcelGodForceOwnerPacket)Pack;
-
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (godForceOwnerPacket.AgentData.SessionID != SessionId ||
- godForceOwnerPacket.AgentData.AgentID != AgentId)
- break;
- }
- #endregion
-
- ParcelGodForceOwner handlerParcelGodForceOwner = OnParcelGodForceOwner;
- if (handlerParcelGodForceOwner != null)
- {
- handlerParcelGodForceOwner(godForceOwnerPacket.Data.LocalID, godForceOwnerPacket.Data.OwnerID, this);
- }
- break;
-
- case PacketType.ParcelRelease:
- ParcelReleasePacket releasePacket = (ParcelReleasePacket)Pack;
-
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (releasePacket.AgentData.SessionID != SessionId ||
- releasePacket.AgentData.AgentID != AgentId)
- break;
- }
- #endregion
-
- ParcelAbandonRequest handlerParcelAbandonRequest = OnParcelAbandonRequest;
- if (handlerParcelAbandonRequest != null)
- {
- handlerParcelAbandonRequest(releasePacket.Data.LocalID, this);
- }
- break;
-
- case PacketType.ParcelReclaim:
- ParcelReclaimPacket reclaimPacket = (ParcelReclaimPacket)Pack;
-
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (reclaimPacket.AgentData.SessionID != SessionId ||
- reclaimPacket.AgentData.AgentID != AgentId)
- break;
- }
- #endregion
-
- ParcelReclaim handlerParcelReclaim = OnParcelReclaim;
- if (handlerParcelReclaim != null)
- {
- handlerParcelReclaim(reclaimPacket.Data.LocalID, this);
- }
- break;
-
- case PacketType.ParcelReturnObjects:
-
-
- ParcelReturnObjectsPacket parcelReturnObjects = (ParcelReturnObjectsPacket)Pack;
-
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (parcelReturnObjects.AgentData.SessionID != SessionId ||
- parcelReturnObjects.AgentData.AgentID != AgentId)
- break;
- }
- #endregion
-
- UUID[] puserselectedOwnerIDs = new UUID[parcelReturnObjects.OwnerIDs.Length];
- for (int parceliterator = 0; parceliterator < parcelReturnObjects.OwnerIDs.Length; parceliterator++)
- puserselectedOwnerIDs[parceliterator] = parcelReturnObjects.OwnerIDs[parceliterator].OwnerID;
-
- UUID[] puserselectedTaskIDs = new UUID[parcelReturnObjects.TaskIDs.Length];
-
- for (int parceliterator = 0; parceliterator < parcelReturnObjects.TaskIDs.Length; parceliterator++)
- puserselectedTaskIDs[parceliterator] = parcelReturnObjects.TaskIDs[parceliterator].TaskID;
-
- ParcelReturnObjectsRequest handlerParcelReturnObjectsRequest = OnParcelReturnObjectsRequest;
- if (handlerParcelReturnObjectsRequest != null)
- {
- handlerParcelReturnObjectsRequest(parcelReturnObjects.ParcelData.LocalID, parcelReturnObjects.ParcelData.ReturnType, puserselectedOwnerIDs, puserselectedTaskIDs, this);
-
- }
- break;
-
- case PacketType.ParcelSetOtherCleanTime:
- ParcelSetOtherCleanTimePacket parcelSetOtherCleanTimePacket = (ParcelSetOtherCleanTimePacket)Pack;
-
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (parcelSetOtherCleanTimePacket.AgentData.SessionID != SessionId ||
- parcelSetOtherCleanTimePacket.AgentData.AgentID != AgentId)
- break;
- }
- #endregion
-
- ParcelSetOtherCleanTime handlerParcelSetOtherCleanTime = OnParcelSetOtherCleanTime;
- if (handlerParcelSetOtherCleanTime != null)
- {
- handlerParcelSetOtherCleanTime(this,
- parcelSetOtherCleanTimePacket.ParcelData.LocalID,
- parcelSetOtherCleanTimePacket.ParcelData.OtherCleanTime);
- }
- break;
-
- case PacketType.LandStatRequest:
- LandStatRequestPacket lsrp = (LandStatRequestPacket)Pack;
-
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (lsrp.AgentData.SessionID != SessionId ||
- lsrp.AgentData.AgentID != AgentId)
- break;
- }
- #endregion
-
- GodLandStatRequest handlerLandStatRequest = OnLandStatRequest;
- if (handlerLandStatRequest != null)
- {
- handlerLandStatRequest(lsrp.RequestData.ParcelLocalID, lsrp.RequestData.ReportType, lsrp.RequestData.RequestFlags, Utils.BytesToString(lsrp.RequestData.Filter), this);
- }
- break;
-
- case PacketType.ParcelDwellRequest:
- ParcelDwellRequestPacket dwellrq =
- (ParcelDwellRequestPacket)Pack;
-
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (dwellrq.AgentData.SessionID != SessionId ||
- dwellrq.AgentData.AgentID != AgentId)
- break;
- }
- #endregion
-
- ParcelDwellRequest handlerParcelDwellRequest = OnParcelDwellRequest;
- if (handlerParcelDwellRequest != null)
- {
- handlerParcelDwellRequest(dwellrq.Data.LocalID, this);
- }
- break;
-
- //#endregion
-
- //#region Estate Packets
-
- case PacketType.EstateOwnerMessage:
- EstateOwnerMessagePacket messagePacket = (EstateOwnerMessagePacket)Pack;
- //m_log.Debug(messagePacket.ToString());
-
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (messagePacket.AgentData.SessionID != SessionId ||
- messagePacket.AgentData.AgentID != AgentId)
- break;
- }
- #endregion
-
- switch (Utils.BytesToString(messagePacket.MethodData.Method))
- {
- case "getinfo":
- if (((Scene)m_scene).Permissions.CanIssueEstateCommand(AgentId, false))
- {
- OnDetailedEstateDataRequest(this, messagePacket.MethodData.Invoice);
- }
- break;
- case "setregioninfo":
- if (((Scene)m_scene).Permissions.CanIssueEstateCommand(AgentId, false))
- {
- OnSetEstateFlagsRequest(convertParamStringToBool(messagePacket.ParamList[0].Parameter), convertParamStringToBool(messagePacket.ParamList[1].Parameter),
- convertParamStringToBool(messagePacket.ParamList[2].Parameter), !convertParamStringToBool(messagePacket.ParamList[3].Parameter),
- Convert.ToInt16(Convert.ToDecimal(Utils.BytesToString(messagePacket.ParamList[4].Parameter), Culture.NumberFormatInfo)),
- (float)Convert.ToDecimal(Utils.BytesToString(messagePacket.ParamList[5].Parameter), Culture.NumberFormatInfo),
- Convert.ToInt16(Utils.BytesToString(messagePacket.ParamList[6].Parameter)),
- convertParamStringToBool(messagePacket.ParamList[7].Parameter), convertParamStringToBool(messagePacket.ParamList[8].Parameter));
- }
- break;
- // case "texturebase":
- // if (((Scene)m_scene).Permissions.CanIssueEstateCommand(AgentId, false))
- // {
- // foreach (EstateOwnerMessagePacket.ParamListBlock block in messagePacket.ParamList)
- // {
- // string s = Utils.BytesToString(block.Parameter);
- // string[] splitField = s.Split(' ');
- // if (splitField.Length == 2)
- // {
- // UUID tempUUID = new UUID(splitField[1]);
- // OnSetEstateTerrainBaseTexture(this, Convert.ToInt16(splitField[0]), tempUUID);
- // }
- // }
- // }
- // break;
- case "texturedetail":
- if (((Scene)m_scene).Permissions.CanIssueEstateCommand(AgentId, false))
- {
- foreach (EstateOwnerMessagePacket.ParamListBlock block in messagePacket.ParamList)
- {
- string s = Utils.BytesToString(block.Parameter);
- string[] splitField = s.Split(' ');
- if (splitField.Length == 2)
- {
- Int16 corner = Convert.ToInt16(splitField[0]);
- UUID textureUUID = new UUID(splitField[1]);
-
- OnSetEstateTerrainDetailTexture(this, corner, textureUUID);
- }
- }
- }
-
- break;
- case "textureheights":
- if (((Scene)m_scene).Permissions.CanIssueEstateCommand(AgentId, false))
- {
- foreach (EstateOwnerMessagePacket.ParamListBlock block in messagePacket.ParamList)
- {
- string s = Utils.BytesToString(block.Parameter);
- string[] splitField = s.Split(' ');
- if (splitField.Length == 3)
- {
- Int16 corner = Convert.ToInt16(splitField[0]);
- float lowValue = (float)Convert.ToDecimal(splitField[1], Culture.NumberFormatInfo);
- float highValue = (float)Convert.ToDecimal(splitField[2], Culture.NumberFormatInfo);
-
- OnSetEstateTerrainTextureHeights(this, corner, lowValue, highValue);
- }
- }
- }
- break;
- case "texturecommit":
- OnCommitEstateTerrainTextureRequest(this);
- break;
- case "setregionterrain":
- if (((Scene)m_scene).Permissions.CanIssueEstateCommand(AgentId, false))
- {
- if (messagePacket.ParamList.Length != 9)
- {
- m_log.Error("EstateOwnerMessage: SetRegionTerrain method has a ParamList of invalid length");
- }
- else
- {
- try
- {
- string tmp = Utils.BytesToString(messagePacket.ParamList[0].Parameter);
- if (!tmp.Contains(".")) tmp += ".00";
- float WaterHeight = (float)Convert.ToDecimal(tmp, Culture.NumberFormatInfo);
- tmp = Utils.BytesToString(messagePacket.ParamList[1].Parameter);
- if (!tmp.Contains(".")) tmp += ".00";
- float TerrainRaiseLimit = (float)Convert.ToDecimal(tmp, Culture.NumberFormatInfo);
- tmp = Utils.BytesToString(messagePacket.ParamList[2].Parameter);
- if (!tmp.Contains(".")) tmp += ".00";
- float TerrainLowerLimit = (float)Convert.ToDecimal(tmp, Culture.NumberFormatInfo);
- bool UseEstateSun = convertParamStringToBool(messagePacket.ParamList[3].Parameter);
- bool UseFixedSun = convertParamStringToBool(messagePacket.ParamList[4].Parameter);
- float SunHour = (float)Convert.ToDecimal(Utils.BytesToString(messagePacket.ParamList[5].Parameter), Culture.NumberFormatInfo);
- bool UseGlobal = convertParamStringToBool(messagePacket.ParamList[6].Parameter);
- bool EstateFixedSun = convertParamStringToBool(messagePacket.ParamList[7].Parameter);
- float EstateSunHour = (float)Convert.ToDecimal(Utils.BytesToString(messagePacket.ParamList[8].Parameter), Culture.NumberFormatInfo);
-
- OnSetRegionTerrainSettings(WaterHeight, TerrainRaiseLimit, TerrainLowerLimit, UseEstateSun, UseFixedSun, SunHour, UseGlobal, EstateFixedSun, EstateSunHour);
-
- }
- catch (Exception ex)
- {
- m_log.Error("EstateOwnerMessage: Exception while setting terrain settings: \n" + messagePacket + "\n" + ex);
- }
- }
- }
-
- break;
- case "restart":
- if (((Scene)m_scene).Permissions.CanIssueEstateCommand(AgentId, false))
- {
- // There's only 1 block in the estateResetSim.. and that's the number of seconds till restart.
- foreach (EstateOwnerMessagePacket.ParamListBlock block in messagePacket.ParamList)
- {
- float timeSeconds;
- Utils.TryParseSingle(Utils.BytesToString(block.Parameter), out timeSeconds);
- timeSeconds = (int)timeSeconds;
- OnEstateRestartSimRequest(this, (int)timeSeconds);
-
- }
- }
- break;
- case "estatechangecovenantid":
- if (((Scene)m_scene).Permissions.CanIssueEstateCommand(AgentId, false))
- {
- foreach (EstateOwnerMessagePacket.ParamListBlock block in messagePacket.ParamList)
- {
- UUID newCovenantID = new UUID(Utils.BytesToString(block.Parameter));
- OnEstateChangeCovenantRequest(this, newCovenantID);
- }
- }
- break;
- case "estateaccessdelta": // Estate access delta manages the banlist and allow list too.
- if (((Scene)m_scene).Permissions.CanIssueEstateCommand(AgentId, false))
- {
- int estateAccessType = Convert.ToInt16(Utils.BytesToString(messagePacket.ParamList[1].Parameter));
- OnUpdateEstateAccessDeltaRequest(this, messagePacket.MethodData.Invoice, estateAccessType, new UUID(Utils.BytesToString(messagePacket.ParamList[2].Parameter)));
-
- }
- break;
- case "simulatormessage":
- if (((Scene)m_scene).Permissions.CanIssueEstateCommand(AgentId, false))
- {
- UUID invoice = messagePacket.MethodData.Invoice;
- UUID SenderID = new UUID(Utils.BytesToString(messagePacket.ParamList[2].Parameter));
- string SenderName = Utils.BytesToString(messagePacket.ParamList[3].Parameter);
- string Message = Utils.BytesToString(messagePacket.ParamList[4].Parameter);
- UUID sessionID = messagePacket.AgentData.SessionID;
- OnSimulatorBlueBoxMessageRequest(this, invoice, SenderID, sessionID, SenderName, Message);
- }
- break;
- case "instantmessage":
- if (((Scene)m_scene).Permissions.CanIssueEstateCommand(AgentId, false))
- {
- if (messagePacket.ParamList.Length < 5)
- break;
- UUID invoice = messagePacket.MethodData.Invoice;
- UUID SenderID = new UUID(Utils.BytesToString(messagePacket.ParamList[2].Parameter));
- string SenderName = Utils.BytesToString(messagePacket.ParamList[3].Parameter);
- string Message = Utils.BytesToString(messagePacket.ParamList[4].Parameter);
- UUID sessionID = messagePacket.AgentData.SessionID;
- OnEstateBlueBoxMessageRequest(this, invoice, SenderID, sessionID, SenderName, Message);
- }
- break;
- case "setregiondebug":
- if (((Scene)m_scene).Permissions.CanIssueEstateCommand(AgentId, false))
- {
- UUID invoice = messagePacket.MethodData.Invoice;
- UUID SenderID = messagePacket.AgentData.AgentID;
- bool scripted = convertParamStringToBool(messagePacket.ParamList[0].Parameter);
- bool collisionEvents = convertParamStringToBool(messagePacket.ParamList[1].Parameter);
- bool physics = convertParamStringToBool(messagePacket.ParamList[2].Parameter);
-
- OnEstateDebugRegionRequest(this, invoice, SenderID, scripted, collisionEvents, physics);
- }
- break;
- case "teleporthomeuser":
- if (((Scene)m_scene).Permissions.CanIssueEstateCommand(AgentId, false))
- {
- UUID invoice = messagePacket.MethodData.Invoice;
- UUID SenderID = messagePacket.AgentData.AgentID;
- UUID Prey;
-
- UUID.TryParse(Utils.BytesToString(messagePacket.ParamList[1].Parameter), out Prey);
-
- OnEstateTeleportOneUserHomeRequest(this, invoice, SenderID, Prey);
- }
- break;
- case "teleporthomeallusers":
- if (((Scene)m_scene).Permissions.CanIssueEstateCommand(AgentId, false))
- {
- UUID invoice = messagePacket.MethodData.Invoice;
- UUID SenderID = messagePacket.AgentData.AgentID;
- OnEstateTeleportAllUsersHomeRequest(this, invoice, SenderID);
- }
- break;
- case "colliders":
- handlerLandStatRequest = OnLandStatRequest;
- if (handlerLandStatRequest != null)
- {
- handlerLandStatRequest(0, 1, 0, "", this);
- }
- break;
- case "scripts":
- handlerLandStatRequest = OnLandStatRequest;
- if (handlerLandStatRequest != null)
- {
- handlerLandStatRequest(0, 0, 0, "", this);
- }
- break;
- case "terrain":
- if (((Scene)m_scene).Permissions.CanIssueEstateCommand(AgentId, false))
- {
- if (messagePacket.ParamList.Length > 0)
- {
- if (Utils.BytesToString(messagePacket.ParamList[0].Parameter) == "bake")
- {
- BakeTerrain handlerBakeTerrain = OnBakeTerrain;
- if (handlerBakeTerrain != null)
- {
- handlerBakeTerrain(this);
- }
- }
- if (Utils.BytesToString(messagePacket.ParamList[0].Parameter) == "download filename")
- {
- if (messagePacket.ParamList.Length > 1)
- {
- RequestTerrain handlerRequestTerrain = OnRequestTerrain;
- if (handlerRequestTerrain != null)
- {
- handlerRequestTerrain(this, Utils.BytesToString(messagePacket.ParamList[1].Parameter));
- }
- }
- }
- if (Utils.BytesToString(messagePacket.ParamList[0].Parameter) == "upload filename")
- {
- if (messagePacket.ParamList.Length > 1)
- {
- RequestTerrain handlerUploadTerrain = OnUploadTerrain;
- if (handlerUploadTerrain != null)
- {
- handlerUploadTerrain(this, Utils.BytesToString(messagePacket.ParamList[1].Parameter));
- }
- }
- }
-
- }
-
-
- }
- break;
-
- case "estatechangeinfo":
- if (((Scene)m_scene).Permissions.CanIssueEstateCommand(AgentId, false))
- {
- UUID invoice = messagePacket.MethodData.Invoice;
- UUID SenderID = messagePacket.AgentData.AgentID;
- UInt32 param1 = Convert.ToUInt32(Utils.BytesToString(messagePacket.ParamList[1].Parameter));
- UInt32 param2 = Convert.ToUInt32(Utils.BytesToString(messagePacket.ParamList[2].Parameter));
-
- EstateChangeInfo handlerEstateChangeInfo = OnEstateChangeInfo;
- if (handlerEstateChangeInfo != null)
- {
- handlerEstateChangeInfo(this, invoice, SenderID, param1, param2);
- }
- }
- break;
-
- default:
- m_log.Error("EstateOwnerMessage: Unknown method requested\n" + messagePacket);
- break;
- }
-
- //int parcelID, uint reportType, uint requestflags, string filter
-
- //lsrp.RequestData.ParcelLocalID;
- //lsrp.RequestData.ReportType; // 1 = colliders, 0 = scripts
- //lsrp.RequestData.RequestFlags;
- //lsrp.RequestData.Filter;
-
- break;
-
- case PacketType.RequestRegionInfo:
- RequestRegionInfoPacket.AgentDataBlock mPacket = ((RequestRegionInfoPacket)Pack).AgentData;
-
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (mPacket.SessionID != SessionId ||
- mPacket.AgentID != AgentId)
- break;
- }
- #endregion
-
- RegionInfoRequest handlerRegionInfoRequest = OnRegionInfoRequest;
- if (handlerRegionInfoRequest != null)
- {
- handlerRegionInfoRequest(this);
- }
- break;
-
- case PacketType.EstateCovenantRequest:
-
- //EstateCovenantRequestPacket.AgentDataBlock epack =
- // ((EstateCovenantRequestPacket)Pack).AgentData;
-
- EstateCovenantRequest handlerEstateCovenantRequest = OnEstateCovenantRequest;
- if (handlerEstateCovenantRequest != null)
- {
- handlerEstateCovenantRequest(this);
- }
- break;
-
- //#endregion
-
- //#region GodPackets
-
- case PacketType.RequestGodlikePowers:
- RequestGodlikePowersPacket rglpPack = (RequestGodlikePowersPacket)Pack;
- RequestGodlikePowersPacket.RequestBlockBlock rblock = rglpPack.RequestBlock;
- UUID token = rblock.Token;
-
- RequestGodlikePowersPacket.AgentDataBlock ablock = rglpPack.AgentData;
-
- RequestGodlikePowers handlerReqGodlikePowers = OnRequestGodlikePowers;
-
- if (handlerReqGodlikePowers != null)
- {
- handlerReqGodlikePowers(ablock.AgentID, ablock.SessionID, token, rblock.Godlike, this);
- }
-
- break;
-
- case PacketType.GodKickUser:
- GodKickUserPacket gkupack = (GodKickUserPacket)Pack;
-
- if (gkupack.UserInfo.GodSessionID == SessionId && AgentId == gkupack.UserInfo.GodID)
- {
- GodKickUser handlerGodKickUser = OnGodKickUser;
- if (handlerGodKickUser != null)
- {
- handlerGodKickUser(gkupack.UserInfo.GodID, gkupack.UserInfo.GodSessionID,
- gkupack.UserInfo.AgentID, gkupack.UserInfo.KickFlags, gkupack.UserInfo.Reason,gkupack.UserInfo);
- }
- }
- else
- {
- SendAgentAlertMessage("Kick request denied", false);
- }
- //KickUserPacket kupack = new KickUserPacket();
- //KickUserPacket.UserInfoBlock kupackib = kupack.UserInfo;
-
- //kupack.UserInfo.AgentID = gkupack.UserInfo.AgentID;
- //kupack.UserInfo.SessionID = gkupack.UserInfo.GodSessionID;
-
- //kupack.TargetBlock.TargetIP = (uint)0;
- //kupack.TargetBlock.TargetPort = (ushort)0;
- //kupack.UserInfo.Reason = gkupack.UserInfo.Reason;
-
- //OutPacket(kupack, ThrottleOutPacketType.Task);
- break;
-
- //#endregion
-
- //#region Economy/Transaction Packets
-
- case PacketType.MoneyBalanceRequest:
- MoneyBalanceRequestPacket moneybalancerequestpacket = (MoneyBalanceRequestPacket)Pack;
-
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (moneybalancerequestpacket.AgentData.SessionID != SessionId ||
- moneybalancerequestpacket.AgentData.AgentID != AgentId)
- break;
- }
- #endregion
-
- MoneyBalanceRequest handlerMoneyBalanceRequest = OnMoneyBalanceRequest;
-
- if (handlerMoneyBalanceRequest != null)
- {
- handlerMoneyBalanceRequest(this, moneybalancerequestpacket.AgentData.AgentID, moneybalancerequestpacket.AgentData.SessionID, moneybalancerequestpacket.MoneyData.TransactionID);
- }
-
- break;
-
- case PacketType.EconomyDataRequest:
-
-
- EconomyDataRequest handlerEconomoyDataRequest = OnEconomyDataRequest;
- if (handlerEconomoyDataRequest != null)
- {
- handlerEconomoyDataRequest(AgentId);
- }
- break;
-
- case PacketType.RequestPayPrice:
- RequestPayPricePacket requestPayPricePacket = (RequestPayPricePacket)Pack;
-
- RequestPayPrice handlerRequestPayPrice = OnRequestPayPrice;
- if (handlerRequestPayPrice != null)
- {
- handlerRequestPayPrice(this, requestPayPricePacket.ObjectData.ObjectID);
- }
- break;
-
- case PacketType.ObjectSaleInfo:
- ObjectSaleInfoPacket objectSaleInfoPacket = (ObjectSaleInfoPacket)Pack;
-
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (objectSaleInfoPacket.AgentData.SessionID != SessionId ||
- objectSaleInfoPacket.AgentData.AgentID != AgentId)
- break;
- }
- #endregion
-
- ObjectSaleInfo handlerObjectSaleInfo = OnObjectSaleInfo;
- if (handlerObjectSaleInfo != null)
- {
- foreach (ObjectSaleInfoPacket.ObjectDataBlock d
- in objectSaleInfoPacket.ObjectData)
- {
- handlerObjectSaleInfo(this,
- objectSaleInfoPacket.AgentData.AgentID,
- objectSaleInfoPacket.AgentData.SessionID,
- d.LocalID,
- d.SaleType,
- d.SalePrice);
- }
- }
- break;
-
- case PacketType.ObjectBuy:
- ObjectBuyPacket objectBuyPacket = (ObjectBuyPacket)Pack;
-
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (objectBuyPacket.AgentData.SessionID != SessionId ||
- objectBuyPacket.AgentData.AgentID != AgentId)
- break;
- }
- #endregion
-
- ObjectBuy handlerObjectBuy = OnObjectBuy;
-
- if (handlerObjectBuy != null)
- {
- foreach (ObjectBuyPacket.ObjectDataBlock d
- in objectBuyPacket.ObjectData)
- {
- handlerObjectBuy(this,
- objectBuyPacket.AgentData.AgentID,
- objectBuyPacket.AgentData.SessionID,
- objectBuyPacket.AgentData.GroupID,
- objectBuyPacket.AgentData.CategoryID,
- d.ObjectLocalID,
- d.SaleType,
- d.SalePrice);
- }
- }
- break;
-
- //#endregion
-
- //#region Script Packets
-
- case PacketType.GetScriptRunning:
- GetScriptRunningPacket scriptRunning = (GetScriptRunningPacket)Pack;
-
- GetScriptRunning handlerGetScriptRunning = OnGetScriptRunning;
- if (handlerGetScriptRunning != null)
- {
- handlerGetScriptRunning(this, scriptRunning.Script.ObjectID, scriptRunning.Script.ItemID);
- }
- break;
-
- case PacketType.SetScriptRunning:
- SetScriptRunningPacket setScriptRunning = (SetScriptRunningPacket)Pack;
-
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (setScriptRunning.AgentData.SessionID != SessionId ||
- setScriptRunning.AgentData.AgentID != AgentId)
- break;
- }
- #endregion
-
- SetScriptRunning handlerSetScriptRunning = OnSetScriptRunning;
- if (handlerSetScriptRunning != null)
- {
- handlerSetScriptRunning(this, setScriptRunning.Script.ObjectID, setScriptRunning.Script.ItemID, setScriptRunning.Script.Running);
- }
- break;
-
- case PacketType.ScriptReset:
- ScriptResetPacket scriptResetPacket = (ScriptResetPacket)Pack;
-
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (scriptResetPacket.AgentData.SessionID != SessionId ||
- scriptResetPacket.AgentData.AgentID != AgentId)
- break;
- }
- #endregion
-
- ScriptReset handlerScriptReset = OnScriptReset;
- if (handlerScriptReset != null)
- {
- handlerScriptReset(this, scriptResetPacket.Script.ObjectID, scriptResetPacket.Script.ItemID);
- }
- break;
-
- //#endregion
-
- //#region Gesture Managment
-
- case PacketType.ActivateGestures:
- ActivateGesturesPacket activateGesturePacket = (ActivateGesturesPacket)Pack;
-
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (activateGesturePacket.AgentData.SessionID != SessionId ||
- activateGesturePacket.AgentData.AgentID != AgentId)
- break;
- }
- #endregion
-
- ActivateGesture handlerActivateGesture = OnActivateGesture;
- if (handlerActivateGesture != null)
- {
- handlerActivateGesture(this,
- activateGesturePacket.Data[0].AssetID,
- activateGesturePacket.Data[0].ItemID);
- }
- else m_log.Error("Null pointer for activateGesture");
-
- break;
-
- case PacketType.DeactivateGestures:
- DeactivateGesturesPacket deactivateGesturePacket = (DeactivateGesturesPacket)Pack;
-
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (deactivateGesturePacket.AgentData.SessionID != SessionId ||
- deactivateGesturePacket.AgentData.AgentID != AgentId)
- break;
- }
- #endregion
-
- DeactivateGesture handlerDeactivateGesture = OnDeactivateGesture;
- if (handlerDeactivateGesture != null)
- {
- handlerDeactivateGesture(this, deactivateGesturePacket.Data[0].ItemID);
- }
- break;
- case PacketType.ObjectOwner:
- ObjectOwnerPacket objectOwnerPacket = (ObjectOwnerPacket)Pack;
-
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (objectOwnerPacket.AgentData.SessionID != SessionId ||
- objectOwnerPacket.AgentData.AgentID != AgentId)
- break;
- }
- #endregion
-
- List localIDs = new List();
-
- foreach (ObjectOwnerPacket.ObjectDataBlock d in objectOwnerPacket.ObjectData)
- localIDs.Add(d.ObjectLocalID);
-
- ObjectOwner handlerObjectOwner = OnObjectOwner;
- if (handlerObjectOwner != null)
- {
- handlerObjectOwner(this, objectOwnerPacket.HeaderData.OwnerID, objectOwnerPacket.HeaderData.GroupID, localIDs);
- }
- break;
-
- //#endregion
-
- case PacketType.AgentFOV:
- AgentFOVPacket fovPacket = (AgentFOVPacket)Pack;
-
- if (fovPacket.FOVBlock.GenCounter > m_agentFOVCounter)
- {
- m_agentFOVCounter = fovPacket.FOVBlock.GenCounter;
- AgentFOV handlerAgentFOV = OnAgentFOV;
- if (handlerAgentFOV != null)
- {
- handlerAgentFOV(this, fovPacket.FOVBlock.VerticalAngle);
- }
- }
- break;
-
- //#region unimplemented handlers
-
- case PacketType.ViewerStats:
- // TODO: handle this packet
- //m_log.Warn("[CLIENT]: unhandled ViewerStats packet");
- break;
-
- case PacketType.MapItemRequest:
- MapItemRequestPacket mirpk = (MapItemRequestPacket)Pack;
-
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (mirpk.AgentData.SessionID != SessionId ||
- mirpk.AgentData.AgentID != AgentId)
- break;
- }
- #endregion
-
- //m_log.Debug(mirpk.ToString());
- MapItemRequest handlerMapItemRequest = OnMapItemRequest;
- if (handlerMapItemRequest != null)
- {
- handlerMapItemRequest(this, mirpk.AgentData.Flags, mirpk.AgentData.EstateID,
- mirpk.AgentData.Godlike, mirpk.RequestData.ItemType,
- mirpk.RequestData.RegionHandle);
-
- }
- break;
-
- case PacketType.TransferAbort:
- // TODO: handle this packet
- //m_log.Warn("[CLIENT]: unhandled TransferAbort packet");
- break;
-
- case PacketType.MuteListRequest:
- MuteListRequestPacket muteListRequest =
- (MuteListRequestPacket)Pack;
-
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (muteListRequest.AgentData.SessionID != SessionId ||
- muteListRequest.AgentData.AgentID != AgentId)
- break;
- }
- #endregion
-
- MuteListRequest handlerMuteListRequest = OnMuteListRequest;
- if (handlerMuteListRequest != null)
- {
- handlerMuteListRequest(this, muteListRequest.MuteData.MuteCRC);
- }
- else
- {
- SendUseCachedMuteList();
- }
- break;
-
- case PacketType.UseCircuitCode:
- // Don't display this one, we handle it at a lower level
- break;
-
- case PacketType.AgentHeightWidth:
- // TODO: handle this packet
- //m_log.Warn("[CLIENT]: unhandled AgentHeightWidth packet");
- break;
-
- case PacketType.InventoryDescendents:
- // TODO: handle this packet
- //m_log.Warn("[CLIENT]: unhandled InventoryDescent packet");
-
- break;
-
- case PacketType.DirPlacesQuery:
- DirPlacesQueryPacket dirPlacesQueryPacket = (DirPlacesQueryPacket)Pack;
- //m_log.Debug(dirPlacesQueryPacket.ToString());
-
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (dirPlacesQueryPacket.AgentData.SessionID != SessionId ||
- dirPlacesQueryPacket.AgentData.AgentID != AgentId)
- break;
- }
- #endregion
-
- DirPlacesQuery handlerDirPlacesQuery = OnDirPlacesQuery;
- if (handlerDirPlacesQuery != null)
- {
- handlerDirPlacesQuery(this,
- dirPlacesQueryPacket.QueryData.QueryID,
- Utils.BytesToString(
- dirPlacesQueryPacket.QueryData.QueryText),
- (int)dirPlacesQueryPacket.QueryData.QueryFlags,
- (int)dirPlacesQueryPacket.QueryData.Category,
- Utils.BytesToString(
- dirPlacesQueryPacket.QueryData.SimName),
- dirPlacesQueryPacket.QueryData.QueryStart);
- }
- break;
-
- case PacketType.DirFindQuery:
- DirFindQueryPacket dirFindQueryPacket = (DirFindQueryPacket)Pack;
-
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (dirFindQueryPacket.AgentData.SessionID != SessionId ||
- dirFindQueryPacket.AgentData.AgentID != AgentId)
- break;
- }
- #endregion
-
- DirFindQuery handlerDirFindQuery = OnDirFindQuery;
- if (handlerDirFindQuery != null)
- {
- handlerDirFindQuery(this,
- dirFindQueryPacket.QueryData.QueryID,
- Utils.BytesToString(
- dirFindQueryPacket.QueryData.QueryText),
- dirFindQueryPacket.QueryData.QueryFlags,
- dirFindQueryPacket.QueryData.QueryStart);
- }
- break;
-
- case PacketType.DirLandQuery:
- DirLandQueryPacket dirLandQueryPacket = (DirLandQueryPacket)Pack;
-
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (dirLandQueryPacket.AgentData.SessionID != SessionId ||
- dirLandQueryPacket.AgentData.AgentID != AgentId)
- break;
- }
- #endregion
-
- DirLandQuery handlerDirLandQuery = OnDirLandQuery;
- if (handlerDirLandQuery != null)
- {
- handlerDirLandQuery(this,
- dirLandQueryPacket.QueryData.QueryID,
- dirLandQueryPacket.QueryData.QueryFlags,
- dirLandQueryPacket.QueryData.SearchType,
- dirLandQueryPacket.QueryData.Price,
- dirLandQueryPacket.QueryData.Area,
- dirLandQueryPacket.QueryData.QueryStart);
- }
- break;
-
- case PacketType.DirPopularQuery:
- DirPopularQueryPacket dirPopularQueryPacket = (DirPopularQueryPacket)Pack;
-
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (dirPopularQueryPacket.AgentData.SessionID != SessionId ||
- dirPopularQueryPacket.AgentData.AgentID != AgentId)
- break;
- }
- #endregion
-
- DirPopularQuery handlerDirPopularQuery = OnDirPopularQuery;
- if (handlerDirPopularQuery != null)
- {
- handlerDirPopularQuery(this,
- dirPopularQueryPacket.QueryData.QueryID,
- dirPopularQueryPacket.QueryData.QueryFlags);
- }
- break;
-
- case PacketType.DirClassifiedQuery:
- DirClassifiedQueryPacket dirClassifiedQueryPacket = (DirClassifiedQueryPacket)Pack;
-
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (dirClassifiedQueryPacket.AgentData.SessionID != SessionId ||
- dirClassifiedQueryPacket.AgentData.AgentID != AgentId)
- break;
- }
- #endregion
-
- DirClassifiedQuery handlerDirClassifiedQuery = OnDirClassifiedQuery;
- if (handlerDirClassifiedQuery != null)
- {
- handlerDirClassifiedQuery(this,
- dirClassifiedQueryPacket.QueryData.QueryID,
- Utils.BytesToString(
- dirClassifiedQueryPacket.QueryData.QueryText),
- dirClassifiedQueryPacket.QueryData.QueryFlags,
- dirClassifiedQueryPacket.QueryData.Category,
- dirClassifiedQueryPacket.QueryData.QueryStart);
- }
- break;
-
- case PacketType.EventInfoRequest:
- EventInfoRequestPacket eventInfoRequestPacket = (EventInfoRequestPacket)Pack;
-
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (eventInfoRequestPacket.AgentData.SessionID != SessionId ||
- eventInfoRequestPacket.AgentData.AgentID != AgentId)
- break;
- }
- #endregion
-
- if (OnEventInfoRequest != null)
- {
- OnEventInfoRequest(this, eventInfoRequestPacket.EventData.EventID);
- }
- break;
-
- //#region Calling Card
-
- case PacketType.OfferCallingCard:
- OfferCallingCardPacket offerCallingCardPacket = (OfferCallingCardPacket)Pack;
-
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (offerCallingCardPacket.AgentData.SessionID != SessionId ||
- offerCallingCardPacket.AgentData.AgentID != AgentId)
- break;
- }
- #endregion
-
- if (OnOfferCallingCard != null)
- {
- OnOfferCallingCard(this,
- offerCallingCardPacket.AgentBlock.DestID,
- offerCallingCardPacket.AgentBlock.TransactionID);
- }
- break;
-
- case PacketType.AcceptCallingCard:
- AcceptCallingCardPacket acceptCallingCardPacket = (AcceptCallingCardPacket)Pack;
-
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (acceptCallingCardPacket.AgentData.SessionID != SessionId ||
- acceptCallingCardPacket.AgentData.AgentID != AgentId)
- break;
- }
- #endregion
-
- // according to http://wiki.secondlife.com/wiki/AcceptCallingCard FolderData should
- // contain exactly one entry
- if (OnAcceptCallingCard != null && acceptCallingCardPacket.FolderData.Length > 0)
- {
- OnAcceptCallingCard(this,
- acceptCallingCardPacket.TransactionBlock.TransactionID,
- acceptCallingCardPacket.FolderData[0].FolderID);
- }
- break;
-
- case PacketType.DeclineCallingCard:
- DeclineCallingCardPacket declineCallingCardPacket = (DeclineCallingCardPacket)Pack;
-
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (declineCallingCardPacket.AgentData.SessionID != SessionId ||
- declineCallingCardPacket.AgentData.AgentID != AgentId)
- break;
- }
- #endregion
-
- if (OnDeclineCallingCard != null)
- {
- OnDeclineCallingCard(this,
- declineCallingCardPacket.TransactionBlock.TransactionID);
- }
- break;
- //#endregion
-
- //#region Groups
- case PacketType.ActivateGroup:
- ActivateGroupPacket activateGroupPacket = (ActivateGroupPacket)Pack;
-
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (activateGroupPacket.AgentData.SessionID != SessionId ||
- activateGroupPacket.AgentData.AgentID != AgentId)
- break;
- }
- #endregion
-
- if (m_GroupsModule != null)
- {
- m_GroupsModule.ActivateGroup(this, activateGroupPacket.AgentData.GroupID);
- m_GroupsModule.SendAgentGroupDataUpdate(this);
- }
- break;
-
-
- case PacketType.GroupTitlesRequest:
- GroupTitlesRequestPacket groupTitlesRequest =
- (GroupTitlesRequestPacket)Pack;
-
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (groupTitlesRequest.AgentData.SessionID != SessionId ||
- groupTitlesRequest.AgentData.AgentID != AgentId)
- break;
- }
- #endregion
-
- if (m_GroupsModule != null)
- {
- GroupTitlesReplyPacket groupTitlesReply = (GroupTitlesReplyPacket)PacketPool.Instance.GetPacket(PacketType.GroupTitlesReply);
-
- groupTitlesReply.AgentData =
- new GroupTitlesReplyPacket.AgentDataBlock();
-
- groupTitlesReply.AgentData.AgentID = AgentId;
- groupTitlesReply.AgentData.GroupID =
- groupTitlesRequest.AgentData.GroupID;
-
- groupTitlesReply.AgentData.RequestID =
- groupTitlesRequest.AgentData.RequestID;
-
- List titles =
- m_GroupsModule.GroupTitlesRequest(this,
- groupTitlesRequest.AgentData.GroupID);
-
- groupTitlesReply.GroupData =
- new GroupTitlesReplyPacket.GroupDataBlock[titles.Count];
-
- int i = 0;
- foreach (GroupTitlesData d in titles)
- {
- groupTitlesReply.GroupData[i] =
- new GroupTitlesReplyPacket.GroupDataBlock();
-
- groupTitlesReply.GroupData[i].Title =
- Util.StringToBytes256(d.Name);
- groupTitlesReply.GroupData[i].RoleID =
- d.UUID;
- groupTitlesReply.GroupData[i].Selected =
- d.Selected;
- i++;
- }
-
- OutPacket(groupTitlesReply, ThrottleOutPacketType.Task);
- }
- break;
-
- case PacketType.GroupProfileRequest:
- GroupProfileRequestPacket groupProfileRequest =
- (GroupProfileRequestPacket)Pack;
-
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (groupProfileRequest.AgentData.SessionID != SessionId ||
- groupProfileRequest.AgentData.AgentID != AgentId)
- break;
- }
- #endregion
-
- if (m_GroupsModule != null)
- {
- GroupProfileReplyPacket groupProfileReply = (GroupProfileReplyPacket)PacketPool.Instance.GetPacket(PacketType.GroupProfileReply);
-
- groupProfileReply.AgentData = new GroupProfileReplyPacket.AgentDataBlock();
- groupProfileReply.GroupData = new GroupProfileReplyPacket.GroupDataBlock();
- groupProfileReply.AgentData.AgentID = AgentId;
-
- GroupProfileData d = m_GroupsModule.GroupProfileRequest(this,
- groupProfileRequest.GroupData.GroupID);
-
- groupProfileReply.GroupData.GroupID = d.GroupID;
- groupProfileReply.GroupData.Name = Util.StringToBytes256(d.Name);
- groupProfileReply.GroupData.Charter = Util.StringToBytes1024(d.Charter);
- groupProfileReply.GroupData.ShowInList = d.ShowInList;
- groupProfileReply.GroupData.MemberTitle = Util.StringToBytes256(d.MemberTitle);
- groupProfileReply.GroupData.PowersMask = d.PowersMask;
- groupProfileReply.GroupData.InsigniaID = d.InsigniaID;
- groupProfileReply.GroupData.FounderID = d.FounderID;
- groupProfileReply.GroupData.MembershipFee = d.MembershipFee;
- groupProfileReply.GroupData.OpenEnrollment = d.OpenEnrollment;
- groupProfileReply.GroupData.Money = d.Money;
- groupProfileReply.GroupData.GroupMembershipCount = d.GroupMembershipCount;
- groupProfileReply.GroupData.GroupRolesCount = d.GroupRolesCount;
- groupProfileReply.GroupData.AllowPublish = d.AllowPublish;
- groupProfileReply.GroupData.MaturePublish = d.MaturePublish;
- groupProfileReply.GroupData.OwnerRole = d.OwnerRole;
-
- OutPacket(groupProfileReply, ThrottleOutPacketType.Task);
- }
- break;
-
- case PacketType.GroupMembersRequest:
- GroupMembersRequestPacket groupMembersRequestPacket =
- (GroupMembersRequestPacket)Pack;
-
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (groupMembersRequestPacket.AgentData.SessionID != SessionId ||
- groupMembersRequestPacket.AgentData.AgentID != AgentId)
- break;
- }
- #endregion
-
- if (m_GroupsModule != null)
- {
- List members =
- m_GroupsModule.GroupMembersRequest(this, groupMembersRequestPacket.GroupData.GroupID);
-
- int memberCount = members.Count;
-
- while (true)
- {
- int blockCount = members.Count;
- if (blockCount > 40)
- blockCount = 40;
-
- GroupMembersReplyPacket groupMembersReply = (GroupMembersReplyPacket)PacketPool.Instance.GetPacket(PacketType.GroupMembersReply);
-
- groupMembersReply.AgentData =
- new GroupMembersReplyPacket.AgentDataBlock();
- groupMembersReply.GroupData =
- new GroupMembersReplyPacket.GroupDataBlock();
- groupMembersReply.MemberData =
- new GroupMembersReplyPacket.MemberDataBlock[
- blockCount];
-
- groupMembersReply.AgentData.AgentID = AgentId;
- groupMembersReply.GroupData.GroupID =
- groupMembersRequestPacket.GroupData.GroupID;
- groupMembersReply.GroupData.RequestID =
- groupMembersRequestPacket.GroupData.RequestID;
- groupMembersReply.GroupData.MemberCount = memberCount;
-
- for (int i = 0; i < blockCount; i++)
- {
- GroupMembersData m = members[0];
- members.RemoveAt(0);
-
- groupMembersReply.MemberData[i] =
- new GroupMembersReplyPacket.MemberDataBlock();
- groupMembersReply.MemberData[i].AgentID =
- m.AgentID;
- groupMembersReply.MemberData[i].Contribution =
- m.Contribution;
- groupMembersReply.MemberData[i].OnlineStatus =
- Util.StringToBytes256(m.OnlineStatus);
- groupMembersReply.MemberData[i].AgentPowers =
- m.AgentPowers;
- groupMembersReply.MemberData[i].Title =
- Util.StringToBytes256(m.Title);
- groupMembersReply.MemberData[i].IsOwner =
- m.IsOwner;
- }
- OutPacket(groupMembersReply, ThrottleOutPacketType.Task);
- if (members.Count == 0)
- break;
- }
- }
- break;
-
- case PacketType.GroupRoleDataRequest:
- GroupRoleDataRequestPacket groupRolesRequest =
- (GroupRoleDataRequestPacket)Pack;
-
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (groupRolesRequest.AgentData.SessionID != SessionId ||
- groupRolesRequest.AgentData.AgentID != AgentId)
- break;
- }
- #endregion
-
- if (m_GroupsModule != null)
- {
- GroupRoleDataReplyPacket groupRolesReply = (GroupRoleDataReplyPacket)PacketPool.Instance.GetPacket(PacketType.GroupRoleDataReply);
-
- groupRolesReply.AgentData =
- new GroupRoleDataReplyPacket.AgentDataBlock();
-
- groupRolesReply.AgentData.AgentID = AgentId;
-
- groupRolesReply.GroupData =
- new GroupRoleDataReplyPacket.GroupDataBlock();
-
- groupRolesReply.GroupData.GroupID =
- groupRolesRequest.GroupData.GroupID;
-
- groupRolesReply.GroupData.RequestID =
- groupRolesRequest.GroupData.RequestID;
-
- List titles =
- m_GroupsModule.GroupRoleDataRequest(this,
- groupRolesRequest.GroupData.GroupID);
-
- groupRolesReply.GroupData.RoleCount =
- titles.Count;
-
- groupRolesReply.RoleData =
- new GroupRoleDataReplyPacket.RoleDataBlock[titles.Count];
-
- int i = 0;
- foreach (GroupRolesData d in titles)
- {
- groupRolesReply.RoleData[i] =
- new GroupRoleDataReplyPacket.RoleDataBlock();
-
- groupRolesReply.RoleData[i].RoleID =
- d.RoleID;
- groupRolesReply.RoleData[i].Name =
- Util.StringToBytes256(d.Name);
- groupRolesReply.RoleData[i].Title =
- Util.StringToBytes256(d.Title);
- groupRolesReply.RoleData[i].Description =
- Util.StringToBytes1024(d.Description);
- groupRolesReply.RoleData[i].Powers =
- d.Powers;
- groupRolesReply.RoleData[i].Members =
- (uint)d.Members;
-
- i++;
- }
-
- OutPacket(groupRolesReply, ThrottleOutPacketType.Task);
- }
- break;
-
- case PacketType.GroupRoleMembersRequest:
- GroupRoleMembersRequestPacket groupRoleMembersRequest =
- (GroupRoleMembersRequestPacket)Pack;
-
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (groupRoleMembersRequest.AgentData.SessionID != SessionId ||
- groupRoleMembersRequest.AgentData.AgentID != AgentId)
- break;
- }
- #endregion
-
- if (m_GroupsModule != null)
- {
- List mappings =
- m_GroupsModule.GroupRoleMembersRequest(this,
- groupRoleMembersRequest.GroupData.GroupID);
-
- int mappingsCount = mappings.Count;
-
- while (mappings.Count > 0)
- {
- int pairs = mappings.Count;
- if (pairs > 32)
- pairs = 32;
-
- GroupRoleMembersReplyPacket groupRoleMembersReply = (GroupRoleMembersReplyPacket)PacketPool.Instance.GetPacket(PacketType.GroupRoleMembersReply);
- groupRoleMembersReply.AgentData =
- new GroupRoleMembersReplyPacket.AgentDataBlock();
- groupRoleMembersReply.AgentData.AgentID =
- AgentId;
- groupRoleMembersReply.AgentData.GroupID =
- groupRoleMembersRequest.GroupData.GroupID;
- groupRoleMembersReply.AgentData.RequestID =
- groupRoleMembersRequest.GroupData.RequestID;
-
- groupRoleMembersReply.AgentData.TotalPairs =
- (uint)mappingsCount;
-
- groupRoleMembersReply.MemberData =
- new GroupRoleMembersReplyPacket.MemberDataBlock[pairs];
-
- for (int i = 0; i < pairs; i++)
- {
- GroupRoleMembersData d = mappings[0];
- mappings.RemoveAt(0);
-
- groupRoleMembersReply.MemberData[i] =
- new GroupRoleMembersReplyPacket.MemberDataBlock();
-
- groupRoleMembersReply.MemberData[i].RoleID =
- d.RoleID;
- groupRoleMembersReply.MemberData[i].MemberID =
- d.MemberID;
- }
-
- OutPacket(groupRoleMembersReply, ThrottleOutPacketType.Task);
- }
- }
- break;
-
- case PacketType.CreateGroupRequest:
- CreateGroupRequestPacket createGroupRequest =
- (CreateGroupRequestPacket)Pack;
-
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (createGroupRequest.AgentData.SessionID != SessionId ||
- createGroupRequest.AgentData.AgentID != AgentId)
- break;
- }
- #endregion
-
- if (m_GroupsModule != null)
- {
- m_GroupsModule.CreateGroup(this,
- Utils.BytesToString(createGroupRequest.GroupData.Name),
- Utils.BytesToString(createGroupRequest.GroupData.Charter),
- createGroupRequest.GroupData.ShowInList,
- createGroupRequest.GroupData.InsigniaID,
- createGroupRequest.GroupData.MembershipFee,
- createGroupRequest.GroupData.OpenEnrollment,
- createGroupRequest.GroupData.AllowPublish,
- createGroupRequest.GroupData.MaturePublish);
- }
- break;
-
- case PacketType.UpdateGroupInfo:
- UpdateGroupInfoPacket updateGroupInfo =
- (UpdateGroupInfoPacket)Pack;
-
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (updateGroupInfo.AgentData.SessionID != SessionId ||
- updateGroupInfo.AgentData.AgentID != AgentId)
- break;
- }
- #endregion
-
- if (m_GroupsModule != null)
- {
- m_GroupsModule.UpdateGroupInfo(this,
- updateGroupInfo.GroupData.GroupID,
- Utils.BytesToString(updateGroupInfo.GroupData.Charter),
- updateGroupInfo.GroupData.ShowInList,
- updateGroupInfo.GroupData.InsigniaID,
- updateGroupInfo.GroupData.MembershipFee,
- updateGroupInfo.GroupData.OpenEnrollment,
- updateGroupInfo.GroupData.AllowPublish,
- updateGroupInfo.GroupData.MaturePublish);
- }
-
- break;
-
- case PacketType.SetGroupAcceptNotices:
- SetGroupAcceptNoticesPacket setGroupAcceptNotices =
- (SetGroupAcceptNoticesPacket)Pack;
-
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (setGroupAcceptNotices.AgentData.SessionID != SessionId ||
- setGroupAcceptNotices.AgentData.AgentID != AgentId)
- break;
- }
- #endregion
-
- if (m_GroupsModule != null)
- {
- m_GroupsModule.SetGroupAcceptNotices(this,
- setGroupAcceptNotices.Data.GroupID,
- setGroupAcceptNotices.Data.AcceptNotices,
- setGroupAcceptNotices.NewData.ListInProfile);
- }
-
- break;
-
- case PacketType.GroupTitleUpdate:
- GroupTitleUpdatePacket groupTitleUpdate =
- (GroupTitleUpdatePacket)Pack;
-
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (groupTitleUpdate.AgentData.SessionID != SessionId ||
- groupTitleUpdate.AgentData.AgentID != AgentId)
- break;
- }
- #endregion
-
- if (m_GroupsModule != null)
- {
- m_GroupsModule.GroupTitleUpdate(this,
- groupTitleUpdate.AgentData.GroupID,
- groupTitleUpdate.AgentData.TitleRoleID);
- }
-
- break;
-
-
- case PacketType.ParcelDeedToGroup:
- ParcelDeedToGroupPacket parcelDeedToGroup = (ParcelDeedToGroupPacket)Pack;
- if (m_GroupsModule != null)
- {
- ParcelDeedToGroup handlerParcelDeedToGroup = OnParcelDeedToGroup;
- if (handlerParcelDeedToGroup != null)
- {
- handlerParcelDeedToGroup(parcelDeedToGroup.Data.LocalID, parcelDeedToGroup.Data.GroupID, this);
-
- }
- }
-
- break;
-
-
- case PacketType.GroupNoticesListRequest:
- GroupNoticesListRequestPacket groupNoticesListRequest =
- (GroupNoticesListRequestPacket)Pack;
-
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (groupNoticesListRequest.AgentData.SessionID != SessionId ||
- groupNoticesListRequest.AgentData.AgentID != AgentId)
- break;
- }
- #endregion
-
- if (m_GroupsModule != null)
- {
- GroupNoticeData[] gn =
- m_GroupsModule.GroupNoticesListRequest(this,
- groupNoticesListRequest.Data.GroupID);
-
- GroupNoticesListReplyPacket groupNoticesListReply = (GroupNoticesListReplyPacket)PacketPool.Instance.GetPacket(PacketType.GroupNoticesListReply);
- groupNoticesListReply.AgentData =
- new GroupNoticesListReplyPacket.AgentDataBlock();
- groupNoticesListReply.AgentData.AgentID = AgentId;
- groupNoticesListReply.AgentData.GroupID = groupNoticesListRequest.Data.GroupID;
-
- groupNoticesListReply.Data = new GroupNoticesListReplyPacket.DataBlock[gn.Length];
-
- int i = 0;
- foreach (GroupNoticeData g in gn)
- {
- groupNoticesListReply.Data[i] = new GroupNoticesListReplyPacket.DataBlock();
- groupNoticesListReply.Data[i].NoticeID =
- g.NoticeID;
- groupNoticesListReply.Data[i].Timestamp =
- g.Timestamp;
- groupNoticesListReply.Data[i].FromName =
- Util.StringToBytes256(g.FromName);
- groupNoticesListReply.Data[i].Subject =
- Util.StringToBytes256(g.Subject);
- groupNoticesListReply.Data[i].HasAttachment =
- g.HasAttachment;
- groupNoticesListReply.Data[i].AssetType =
- g.AssetType;
- i++;
- }
-
- OutPacket(groupNoticesListReply, ThrottleOutPacketType.Task);
- }
-
- break;
-
- case PacketType.GroupNoticeRequest:
- GroupNoticeRequestPacket groupNoticeRequest =
- (GroupNoticeRequestPacket)Pack;
-
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (groupNoticeRequest.AgentData.SessionID != SessionId ||
- groupNoticeRequest.AgentData.AgentID != AgentId)
- break;
- }
- #endregion
-
- if (m_GroupsModule != null)
- {
- m_GroupsModule.GroupNoticeRequest(this,
- groupNoticeRequest.Data.GroupNoticeID);
- }
- break;
-
- case PacketType.GroupRoleUpdate:
- GroupRoleUpdatePacket groupRoleUpdate =
- (GroupRoleUpdatePacket)Pack;
-
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (groupRoleUpdate.AgentData.SessionID != SessionId ||
- groupRoleUpdate.AgentData.AgentID != AgentId)
- break;
- }
- #endregion
-
- if (m_GroupsModule != null)
- {
- foreach (GroupRoleUpdatePacket.RoleDataBlock d in
- groupRoleUpdate.RoleData)
- {
- m_GroupsModule.GroupRoleUpdate(this,
- groupRoleUpdate.AgentData.GroupID,
- d.RoleID,
- Utils.BytesToString(d.Name),
- Utils.BytesToString(d.Description),
- Utils.BytesToString(d.Title),
- d.Powers,
- d.UpdateType);
- }
- m_GroupsModule.NotifyChange(groupRoleUpdate.AgentData.GroupID);
- }
- break;
-
- case PacketType.GroupRoleChanges:
- GroupRoleChangesPacket groupRoleChanges =
- (GroupRoleChangesPacket)Pack;
-
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (groupRoleChanges.AgentData.SessionID != SessionId ||
- groupRoleChanges.AgentData.AgentID != AgentId)
- break;
- }
- #endregion
-
- if (m_GroupsModule != null)
- {
- foreach (GroupRoleChangesPacket.RoleChangeBlock d in
- groupRoleChanges.RoleChange)
- {
- m_GroupsModule.GroupRoleChanges(this,
- groupRoleChanges.AgentData.GroupID,
- d.RoleID,
- d.MemberID,
- d.Change);
- }
- m_GroupsModule.NotifyChange(groupRoleChanges.AgentData.GroupID);
- }
- break;
-
- case PacketType.JoinGroupRequest:
- JoinGroupRequestPacket joinGroupRequest =
- (JoinGroupRequestPacket)Pack;
-
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (joinGroupRequest.AgentData.SessionID != SessionId ||
- joinGroupRequest.AgentData.AgentID != AgentId)
- break;
- }
- #endregion
-
- if (m_GroupsModule != null)
- {
- m_GroupsModule.JoinGroupRequest(this,
- joinGroupRequest.GroupData.GroupID);
- }
- break;
-
- case PacketType.LeaveGroupRequest:
- LeaveGroupRequestPacket leaveGroupRequest =
- (LeaveGroupRequestPacket)Pack;
-
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (leaveGroupRequest.AgentData.SessionID != SessionId ||
- leaveGroupRequest.AgentData.AgentID != AgentId)
- break;
- }
- #endregion
-
- if (m_GroupsModule != null)
- {
- m_GroupsModule.LeaveGroupRequest(this,
- leaveGroupRequest.GroupData.GroupID);
- }
- break;
-
- case PacketType.EjectGroupMemberRequest:
- EjectGroupMemberRequestPacket ejectGroupMemberRequest =
- (EjectGroupMemberRequestPacket)Pack;
-
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (ejectGroupMemberRequest.AgentData.SessionID != SessionId ||
- ejectGroupMemberRequest.AgentData.AgentID != AgentId)
- break;
- }
- #endregion
-
- if (m_GroupsModule != null)
- {
- foreach (EjectGroupMemberRequestPacket.EjectDataBlock e
- in ejectGroupMemberRequest.EjectData)
- {
- m_GroupsModule.EjectGroupMemberRequest(this,
- ejectGroupMemberRequest.GroupData.GroupID,
- e.EjecteeID);
- }
- }
- break;
-
- case PacketType.InviteGroupRequest:
- InviteGroupRequestPacket inviteGroupRequest =
- (InviteGroupRequestPacket)Pack;
-
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (inviteGroupRequest.AgentData.SessionID != SessionId ||
- inviteGroupRequest.AgentData.AgentID != AgentId)
- break;
- }
- #endregion
-
- if (m_GroupsModule != null)
- {
- foreach (InviteGroupRequestPacket.InviteDataBlock b in
- inviteGroupRequest.InviteData)
- {
- m_GroupsModule.InviteGroupRequest(this,
- inviteGroupRequest.GroupData.GroupID,
- b.InviteeID,
- b.RoleID);
- }
- }
- break;
-
- //#endregion
-
- case PacketType.StartLure:
- StartLurePacket startLureRequest = (StartLurePacket)Pack;
-
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (startLureRequest.AgentData.SessionID != SessionId ||
- startLureRequest.AgentData.AgentID != AgentId)
- break;
- }
- #endregion
-
- StartLure handlerStartLure = OnStartLure;
- if (handlerStartLure != null)
- handlerStartLure(startLureRequest.Info.LureType,
- Utils.BytesToString(
- startLureRequest.Info.Message),
- startLureRequest.TargetData[0].TargetID,
- this);
- break;
-
- case PacketType.TeleportLureRequest:
- TeleportLureRequestPacket teleportLureRequest =
- (TeleportLureRequestPacket)Pack;
-
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (teleportLureRequest.Info.SessionID != SessionId ||
- teleportLureRequest.Info.AgentID != AgentId)
- break;
- }
- #endregion
-
- TeleportLureRequest handlerTeleportLureRequest = OnTeleportLureRequest;
- if (handlerTeleportLureRequest != null)
- handlerTeleportLureRequest(
- teleportLureRequest.Info.LureID,
- teleportLureRequest.Info.TeleportFlags,
- this);
- break;
-
- case PacketType.ClassifiedInfoRequest:
- ClassifiedInfoRequestPacket classifiedInfoRequest =
- (ClassifiedInfoRequestPacket)Pack;
-
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (classifiedInfoRequest.AgentData.SessionID != SessionId ||
- classifiedInfoRequest.AgentData.AgentID != AgentId)
- break;
- }
- #endregion
-
- ClassifiedInfoRequest handlerClassifiedInfoRequest = OnClassifiedInfoRequest;
- if (handlerClassifiedInfoRequest != null)
- handlerClassifiedInfoRequest(
- classifiedInfoRequest.Data.ClassifiedID,
- this);
- break;
-
- case PacketType.ClassifiedInfoUpdate:
- ClassifiedInfoUpdatePacket classifiedInfoUpdate =
- (ClassifiedInfoUpdatePacket)Pack;
-
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (classifiedInfoUpdate.AgentData.SessionID != SessionId ||
- classifiedInfoUpdate.AgentData.AgentID != AgentId)
- break;
- }
- #endregion
-
- ClassifiedInfoUpdate handlerClassifiedInfoUpdate = OnClassifiedInfoUpdate;
- if (handlerClassifiedInfoUpdate != null)
- handlerClassifiedInfoUpdate(
- classifiedInfoUpdate.Data.ClassifiedID,
- classifiedInfoUpdate.Data.Category,
- Utils.BytesToString(
- classifiedInfoUpdate.Data.Name),
- Utils.BytesToString(
- classifiedInfoUpdate.Data.Desc),
- classifiedInfoUpdate.Data.ParcelID,
- classifiedInfoUpdate.Data.ParentEstate,
- classifiedInfoUpdate.Data.SnapshotID,
- new Vector3(
- classifiedInfoUpdate.Data.PosGlobal),
- classifiedInfoUpdate.Data.ClassifiedFlags,
- classifiedInfoUpdate.Data.PriceForListing,
- this);
- break;
-
- case PacketType.ClassifiedDelete:
- ClassifiedDeletePacket classifiedDelete =
- (ClassifiedDeletePacket)Pack;
-
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (classifiedDelete.AgentData.SessionID != SessionId ||
- classifiedDelete.AgentData.AgentID != AgentId)
- break;
- }
- #endregion
-
- ClassifiedDelete handlerClassifiedDelete = OnClassifiedDelete;
- if (handlerClassifiedDelete != null)
- handlerClassifiedDelete(
- classifiedDelete.Data.ClassifiedID,
- this);
- break;
-
- case PacketType.ClassifiedGodDelete:
- ClassifiedGodDeletePacket classifiedGodDelete =
- (ClassifiedGodDeletePacket)Pack;
-
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (classifiedGodDelete.AgentData.SessionID != SessionId ||
- classifiedGodDelete.AgentData.AgentID != AgentId)
- break;
- }
- #endregion
-
- ClassifiedDelete handlerClassifiedGodDelete = OnClassifiedGodDelete;
- if (handlerClassifiedGodDelete != null)
- handlerClassifiedGodDelete(
- classifiedGodDelete.Data.ClassifiedID,
- this);
- break;
-
- case PacketType.EventGodDelete:
- EventGodDeletePacket eventGodDelete =
- (EventGodDeletePacket)Pack;
-
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (eventGodDelete.AgentData.SessionID != SessionId ||
- eventGodDelete.AgentData.AgentID != AgentId)
- break;
- }
- #endregion
-
- EventGodDelete handlerEventGodDelete = OnEventGodDelete;
- if (handlerEventGodDelete != null)
- handlerEventGodDelete(
- eventGodDelete.EventData.EventID,
- eventGodDelete.QueryData.QueryID,
- Utils.BytesToString(
- eventGodDelete.QueryData.QueryText),
- eventGodDelete.QueryData.QueryFlags,
- eventGodDelete.QueryData.QueryStart,
- this);
- break;
-
- case PacketType.EventNotificationAddRequest:
- EventNotificationAddRequestPacket eventNotificationAdd =
- (EventNotificationAddRequestPacket)Pack;
-
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (eventNotificationAdd.AgentData.SessionID != SessionId ||
- eventNotificationAdd.AgentData.AgentID != AgentId)
- break;
- }
- #endregion
-
- EventNotificationAddRequest handlerEventNotificationAddRequest = OnEventNotificationAddRequest;
- if (handlerEventNotificationAddRequest != null)
- handlerEventNotificationAddRequest(
- eventNotificationAdd.EventData.EventID, this);
- break;
-
- case PacketType.EventNotificationRemoveRequest:
- EventNotificationRemoveRequestPacket eventNotificationRemove =
- (EventNotificationRemoveRequestPacket)Pack;
-
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (eventNotificationRemove.AgentData.SessionID != SessionId ||
- eventNotificationRemove.AgentData.AgentID != AgentId)
- break;
- }
- #endregion
-
- EventNotificationRemoveRequest handlerEventNotificationRemoveRequest = OnEventNotificationRemoveRequest;
- if (handlerEventNotificationRemoveRequest != null)
- handlerEventNotificationRemoveRequest(
- eventNotificationRemove.EventData.EventID, this);
- break;
-
- case PacketType.RetrieveInstantMessages:
- RetrieveInstantMessagesPacket rimpInstantMessagePack = (RetrieveInstantMessagesPacket)Pack;
-
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (rimpInstantMessagePack.AgentData.SessionID != SessionId ||
- rimpInstantMessagePack.AgentData.AgentID != AgentId)
- break;
- }
- #endregion
-
- RetrieveInstantMessages handlerRetrieveInstantMessages = OnRetrieveInstantMessages;
- if (handlerRetrieveInstantMessages != null)
- handlerRetrieveInstantMessages(this);
- break;
-
- case PacketType.PickDelete:
- PickDeletePacket pickDelete =
- (PickDeletePacket)Pack;
-
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (pickDelete.AgentData.SessionID != SessionId ||
- pickDelete.AgentData.AgentID != AgentId)
- break;
- }
- #endregion
-
- PickDelete handlerPickDelete = OnPickDelete;
- if (handlerPickDelete != null)
- handlerPickDelete(this, pickDelete.Data.PickID);
- break;
-
- case PacketType.PickGodDelete:
- PickGodDeletePacket pickGodDelete =
- (PickGodDeletePacket)Pack;
-
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (pickGodDelete.AgentData.SessionID != SessionId ||
- pickGodDelete.AgentData.AgentID != AgentId)
- break;
- }
- #endregion
-
- PickGodDelete handlerPickGodDelete = OnPickGodDelete;
- if (handlerPickGodDelete != null)
- handlerPickGodDelete(this,
- pickGodDelete.AgentData.AgentID,
- pickGodDelete.Data.PickID,
- pickGodDelete.Data.QueryID);
- break;
-
- case PacketType.PickInfoUpdate:
- PickInfoUpdatePacket pickInfoUpdate =
- (PickInfoUpdatePacket)Pack;
-
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (pickInfoUpdate.AgentData.SessionID != SessionId ||
- pickInfoUpdate.AgentData.AgentID != AgentId)
- break;
- }
- #endregion
-
- PickInfoUpdate handlerPickInfoUpdate = OnPickInfoUpdate;
- if (handlerPickInfoUpdate != null)
- handlerPickInfoUpdate(this,
- pickInfoUpdate.Data.PickID,
- pickInfoUpdate.Data.CreatorID,
- pickInfoUpdate.Data.TopPick,
- Utils.BytesToString(pickInfoUpdate.Data.Name),
- Utils.BytesToString(pickInfoUpdate.Data.Desc),
- pickInfoUpdate.Data.SnapshotID,
- pickInfoUpdate.Data.SortOrder,
- pickInfoUpdate.Data.Enabled);
- break;
-
- case PacketType.AvatarNotesUpdate:
- AvatarNotesUpdatePacket avatarNotesUpdate =
- (AvatarNotesUpdatePacket)Pack;
-
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (avatarNotesUpdate.AgentData.SessionID != SessionId ||
- avatarNotesUpdate.AgentData.AgentID != AgentId)
- break;
- }
- #endregion
-
- AvatarNotesUpdate handlerAvatarNotesUpdate = OnAvatarNotesUpdate;
- if (handlerAvatarNotesUpdate != null)
- handlerAvatarNotesUpdate(this,
- avatarNotesUpdate.Data.TargetID,
- Utils.BytesToString(avatarNotesUpdate.Data.Notes));
- break;
-
- case PacketType.AvatarInterestsUpdate:
- AvatarInterestsUpdatePacket avatarInterestUpdate =
- (AvatarInterestsUpdatePacket)Pack;
-
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (avatarInterestUpdate.AgentData.SessionID != SessionId ||
- avatarInterestUpdate.AgentData.AgentID != AgentId)
- break;
- }
- #endregion
-
- AvatarInterestUpdate handlerAvatarInterestUpdate = OnAvatarInterestUpdate;
- if (handlerAvatarInterestUpdate != null)
- handlerAvatarInterestUpdate(this,
- avatarInterestUpdate.PropertiesData.WantToMask,
- Utils.BytesToString(avatarInterestUpdate.PropertiesData.WantToText),
- avatarInterestUpdate.PropertiesData.SkillsMask,
- Utils.BytesToString(avatarInterestUpdate.PropertiesData.SkillsText),
- Utils.BytesToString(avatarInterestUpdate.PropertiesData.LanguagesText));
- break;
-
- case PacketType.GrantUserRights:
- GrantUserRightsPacket GrantUserRights =
- (GrantUserRightsPacket)Pack;
- #region Packet Session and User Check
- if (m_checkPackets)
- {
- if (GrantUserRights.AgentData.SessionID != SessionId ||
- GrantUserRights.AgentData.AgentID != AgentId)
- break;
- }
- #endregion
- GrantUserFriendRights GrantUserRightsHandler = OnGrantUserRights;
- if (GrantUserRightsHandler != null)
- GrantUserRightsHandler(this,
- GrantUserRights.AgentData.AgentID,
- GrantUserRights.Rights[0].AgentRelated,
- GrantUserRights.Rights[0].RelatedRights);
- break;
-
- case PacketType.PlacesQuery:
- PlacesQueryPacket placesQueryPacket =
- (PlacesQueryPacket)Pack;
-
- PlacesQuery handlerPlacesQuery = OnPlacesQuery;
-
- if (handlerPlacesQuery != null)
- handlerPlacesQuery(placesQueryPacket.AgentData.QueryID,
- placesQueryPacket.TransactionData.TransactionID,
- Utils.BytesToString(
- placesQueryPacket.QueryData.QueryText),
- placesQueryPacket.QueryData.QueryFlags,
- (byte)placesQueryPacket.QueryData.Category,
- Utils.BytesToString(
- placesQueryPacket.QueryData.SimName),
- this);
- break;
- */
- #endregion
- default:
- m_log.Warn("[CLIENT]: unhandled packet " + Pack);
- break;
+ if (!ProcessPacketMethod(Pack))
+ {
+ m_log.Warn("[CLIENT]: unhandled packet " + Pack);
}
PacketPool.Instance.ReturnPacket(Pack);
-
}
private static PrimitiveBaseShape GetShapeFromAddPacket(ObjectAddPacket addPacket)
--
cgit v1.1