diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
index d347fdcdc0..cc1e71bb85 100755
--- a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
+++ b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
@@ -27,6 +27,7 @@
using System;
using System.Collections.Generic;
+using System.Collections.Frozen;
using System.Net;
using System.Reflection;
using System.Runtime;
@@ -66,6 +67,8 @@ namespace OpenSim.Region.ClientStack.LindenUDP
///
public int DebugPacketLevel { get; set; }
+ private delegate void StaticPacketMethod(LLClientView cli, Packet packet);
+
#region Events
public event BinaryGenericMessage OnBinaryGenericMessage;
@@ -478,7 +481,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
///
/// Used to synchronise threads when client is being closed.
///
- public object CloseSyncLock { get;} = new object();
+ public readonly object CloseSyncLock = new object();
public bool IsLoggingOut { get; set; }
@@ -549,7 +552,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
var myself = userAccountService.GetUserAccount(m_scene.RegionInfo.ScopeID, m_agentId);
RegisterLocalPacketHandlers();
- string name = string.Format("AsyncInUDP-{0}",m_agentId.ToString());
+ string name = $"AsyncInUDP-{m_agentId}";
m_asyncPacketProcess = new JobEngine(name, name, 5000);
IsActive = true;
@@ -691,6 +694,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
///
///
/// true if the handler was added. This is currently always the case.
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
public bool AddLocalPacketHandler(PacketType packetType, PacketMethod handler)
{
return AddLocalPacketHandler(packetType, handler, true);
@@ -707,12 +711,14 @@ namespace OpenSim.Region.ClientStack.LindenUDP
/// synchronously.
///
/// true if the handler was added. This is currently always the case.
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
public bool AddLocalPacketHandler(PacketType packetType, PacketMethod handler, bool doAsync)
{
lock (m_packetHandlers)
return m_packetHandlers.TryAdd(packetType, new PacketProcessor() { method = handler, Async = doAsync});
}
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
public bool AddGenericPacketHandler(string MethodName, GenericMessage handler)
{
MethodName = MethodName.ToLower().Trim();
@@ -727,24 +733,29 @@ namespace OpenSim.Region.ClientStack.LindenUDP
/// True if a handler was found which successfully processed the packet.
protected bool ProcessPacketMethod(Packet packet)
{
- if(m_packetHandlers.TryGetValue(packet.Type, out PacketProcessor pprocessor))
+ if (m_staticHandlers.TryGetValue(packet.Type, out StaticPacketProcessor spp))
+ {
+ if (spp.Async)
+ {
+ Packet lp = packet;
+ StaticPacketMethod m = spp.method;
+ LLClientView c = this;
+ _ = m_asyncPacketProcess.QueueJob(packet.Type.ToString(), () => { m(c,lp); });
+ }
+ else
+ {
+ spp.method(this, packet);
+ }
+ return true;
+ }
+
+ if (m_packetHandlers.TryGetValue(packet.Type, out PacketProcessor pprocessor))
{
if (pprocessor.Async)
{
Packet lp = packet;
- _ = m_asyncPacketProcess.QueueJob(packet.Type.ToString(), () =>
- {
- try
- {
- pprocessor.method(lp);
- }
- catch (Exception e)
- {
- // Make sure that we see any exception caused by the asynchronous operation.
- m_log.Error(
- $"[LLCLIENTVIEW]: Caught exception while processing {packet.Type} for {Name}: {e.Message}");
- }
- });
+ PacketMethod m = pprocessor.method;
+ _ = m_asyncPacketProcess.QueueJob(packet.Type.ToString(), () => { m(lp); });
}
else
{
@@ -8182,238 +8193,278 @@ namespace OpenSim.Region.ClientStack.LindenUDP
#endregion
+ private static readonly FrozenDictionary m_staticHandlers = new SortedDictionary()
+ //private static readonly Dictionary m_staticHandlers = new()
+ {
+ { PacketType.AgentUpdate, new(HandleAgentUpdate, false) },
+ { PacketType.ViewerEffect, new(HandleViewerEffect , false) },
+ { PacketType.VelocityInterpolateOn, new(HandleVelocityInterpolateOn, false) },
+ { PacketType.VelocityInterpolateOff, new(HandleVelocityInterpolateOff, false) },
+ { PacketType.AgentCachedTexture, new(HandleAgentTextureCached, false) },
+ { PacketType.MultipleObjectUpdate, new(HandleMultipleObjUpdate, false) },
+ { PacketType.MoneyTransferRequest, new(HandleMoneyTransferRequest, false) },
+ { PacketType.ParcelBuy, new(HandleParcelBuyRequest, false) },
+ { PacketType.RegionHandshakeReply, new(HandlerRegionHandshakeReply, false) },
+ { PacketType.SetAlwaysRun, new(HandleSetAlwaysRun, false) },
+ { PacketType.AgentAnimation, new(HandleAgentAnimation, false) },
+ { PacketType.AgentThrottle, new(HandleAgentThrottle, false) },
+ { PacketType.AgentPause, new(HandleAgentPause, false) },
+ { PacketType.AgentResume, new(HandleAgentResume, false) },
+ { PacketType.ObjectImage, new(HandleObjectImage, false) },
+ { PacketType.ObjectGrab, new(HandleObjectGrab, false) },
+ { PacketType.ObjectGrabUpdate, new(HandleObjectGrabUpdate, false) },
+ { PacketType.ObjectSpinStart, new(HandleObjectSpinStart, false) },
+ { PacketType.ObjectSpinUpdate, new(HandleObjectSpinUpdate, false) },
+ { PacketType.ObjectSpinStop, new(HandleObjectSpinStop, false) },
+ { PacketType.ObjectDescription, new(HandleObjectDescription, false) },
+ { PacketType.ObjectName, new(HandleObjectName, false) },
+ { PacketType.ObjectPermissions, new(HandleObjectPermissions, false) },
+ { PacketType.Undo, new(HandleUndo, false) },
+ { PacketType.UndoLand, new(HandleLandUndo, false) },
+ { PacketType.Redo, new(HandleRedo, false) },
+ { PacketType.RequestObjectPropertiesFamily, new(HandleRequestObjectPropertiesFamily, false) },
+ { PacketType.ScriptAnswerYes, new(HandleScriptAnswerYes, false) },
+ { PacketType.ObjectClickAction, new(HandleObjectClickAction, false) },
+ { PacketType.ObjectMaterial, new(HandleObjectMaterial, false) },
+ { PacketType.RequestImage, new(HandleRequestImage, false) },
+ { PacketType.TransferRequest, new(HandleTransferRequest, false) },
+ { PacketType.ConfirmXferPacket, new(HandleConfirmXferPacket, false) },
+ { PacketType.UUIDNameRequest, new(HandleUUIDNameRequest, false) },
+ { PacketType.RegionHandleRequest, new(HandleRegionHandleRequest, false) },
+ { PacketType.ParcelAccessListRequest, new(HandleParcelAccessListRequest, false) },
+ { PacketType.ParcelAccessListUpdate, new(HandleParcelAccessListUpdate, false) },
+ { PacketType.ParcelPropertiesRequest, new(HandleParcelPropertiesRequest, false) },
+ { PacketType.RequestRegionInfo, new(HandleRequestRegionInfo, false) },
+ { PacketType.AgentFOV, new(HandleAgentFOV, false) },
+ { PacketType.MapItemRequest, new(HandleMapItemRequest, false) },
+ { PacketType.TransferAbort, new(HandleTransferAbort, false) },
+ { PacketType.AgentHeightWidth, new(HandleAgentHeightWidth, false) },
+
+ { PacketType.LogoutRequest, new(HandleLogout, true) },
+ { PacketType.UUIDGroupNameRequest, new(HandleUUIDGroupNameRequest, true) },
+ { PacketType.ObjectGroup, new(HandleObjectGroupRequest, true) },
+ { PacketType.GenericMessage, new(HandleGenericMessage, true) },
+
+ { PacketType.MuteListRequest, new(HandleMuteListRequest, false) },
+ { PacketType.UpdateMuteListEntry, new(HandleUpdateMuteListEntry, true) },
+ { PacketType.RemoveMuteListEntry, new(HandleRemoveMuteListEntry, true) },
+
+ { PacketType.AvatarPropertiesRequest, new(HandleAvatarPropertiesRequest, true) },
+ { PacketType.ChatFromViewer, new(HandleChatFromViewer, true) },
+ { PacketType.AvatarPropertiesUpdate, new(HandlerAvatarPropertiesUpdate, true) },
+ { PacketType.ScriptDialogReply, new(HandlerScriptDialogReply, true) },
+ { PacketType.ImprovedInstantMessage, new(HandlerImprovedInstantMessage, true) },
+ { PacketType.AcceptFriendship, new(HandlerAcceptFriendship, true) },
+ { PacketType.DeclineFriendship, new(HandlerDeclineFriendship, true) },
+ { PacketType.TerminateFriendship, new(HandlerTerminateFriendship, true) },
+ { PacketType.RezObject, new(HandlerRezObject, true) },
+ { PacketType.DeRezObject, new(HandlerDeRezObject, true) },
+ { PacketType.RezRestoreToWorld, new(HandlerRezRestoreToWorld, true) },
+ { PacketType.ModifyLand, new(HandlerModifyLand, true) },
+ { PacketType.AgentWearablesRequest, new(HandlerAgentWearablesRequest, true) },
+ { PacketType.AgentSetAppearance, new(HandlerAgentSetAppearance, true) },
+ { PacketType.AgentIsNowWearing, new(HandlerAgentIsNowWearing, true) },
+ { PacketType.RezSingleAttachmentFromInv, new(HandlerRezSingleAttachmentFromInv, true) },
+ { PacketType.RezMultipleAttachmentsFromInv, new(HandleRezMultipleAttachmentsFromInv, true) },
+ { PacketType.DetachAttachmentIntoInv, new(HandleDetachAttachmentIntoInv, true) },
+ { PacketType.ObjectAttach, new(HandleObjectAttach, true) },
+ { PacketType.ObjectDetach, new(HandleObjectDetach, true) },
+ { PacketType.ObjectDrop, new(HandleObjectDrop, true) },
+ { PacketType.CompleteAgentMovement, new(HandleCompleteAgentMovement, true) },
+ { PacketType.AgentRequestSit, new(HandleAgentRequestSit, true) },
+ { PacketType.AgentSit, new(HandleAgentSit, true) },
+ { PacketType.SoundTrigger, new(HandleSoundTrigger, true) },
+ { PacketType.AvatarPickerRequest, new(HandleAvatarPickerRequest, true) },
+ { PacketType.AgentDataUpdateRequest, new(HandleAgentDataUpdateRequest, true) },
+ { PacketType.UserInfoRequest, new(HandleUserInfoRequest, true) },
+ { PacketType.UpdateUserInfo, new(HandleUpdateUserInfo, true) },
+ { PacketType.SetStartLocationRequest, new(HandleSetStartLocationRequest, true) },
+ { PacketType.ForceScriptControlRelease, new(HandleForceScriptControlRelease, true) },
+ { PacketType.ObjectLink, new(HandleObjectLink, true) },
+ { PacketType.ObjectDelink, new(HandleObjectDelink, true) },
+ { PacketType.ObjectAdd, new(HandleObjectAdd, true) },
+ { PacketType.ObjectShape, new(HandleObjectShape, true) },
+ { PacketType.ObjectExtraParams, new(HandleObjectExtraParams, true) },
+ { PacketType.ObjectDuplicate, new(HandleObjectDuplicate, true) },
+ { PacketType.RequestMultipleObjects, new(HandleRequestMultipleObjects, true) },
+ { PacketType.ObjectSelect, new(HandleObjectSelect, true) },
+ { PacketType.ObjectDeselect, new(HandleObjectDeselect, true) },
+ { PacketType.ObjectPosition, new(HandleObjectPosition, true) },
+ { PacketType.ObjectScale, new(HandleObjectScale, true) },
+ { PacketType.ObjectRotation, new(HandleObjectRotation, true) },
+ { PacketType.ObjectFlagUpdate, new(HandleObjectFlagUpdate, true) },
+ { PacketType.ObjectDeGrab, new(HandleObjectDeGrab, true) },
+ { PacketType.ObjectDuplicateOnRay, new(HandleObjectDuplicateOnRay, true) },
+ { PacketType.ObjectIncludeInSearch, new(HandleObjectIncludeInSearch, true) },
+ { PacketType.AssetUploadRequest, new(HandleAssetUploadRequest, true) },
+ { PacketType.RequestXfer, new(HandleRequestXfer, true) },
+ { PacketType.SendXferPacket, new(HandleSendXferPacket, true) },
+ { PacketType.AbortXfer, new(HandleAbortXfer, true) },
+
+ { PacketType.CreateInventoryFolder, new (HandleCreateInventoryFolder, true) },
+ { PacketType.UpdateInventoryFolder, new(HandleUpdateInventoryFolder, true) },
+ { PacketType.MoveInventoryFolder, new(HandleMoveInventoryFolder, true) },
+ { PacketType.CreateInventoryItem, new(HandleCreateInventoryItem, true) },
+ { PacketType.LinkInventoryItem, new(HandleLinkInventoryItem, true) },
+ { PacketType.FetchInventory, new(HandleFetchInventory, true) },
+ { PacketType.FetchInventoryDescendents, new(HandleFetchInventoryDescendents, true) },
+ { PacketType.InventoryDescendents, new (HandleInventoryDescendents, true) },
+ { PacketType.PurgeInventoryDescendents, new(HandlePurgeInventoryDescendents, true) },
+ { PacketType.UpdateInventoryItem, new(HandleUpdateInventoryItem, true) },
+ { PacketType.CopyInventoryItem, new(HandleCopyInventoryItem, true) },
+ { PacketType.MoveInventoryItem, new(HandleMoveInventoryItem, true) },
+ { PacketType.RemoveInventoryItem, new(HandleRemoveInventoryItem, true) },
+ { PacketType.RemoveInventoryFolder, new(HandleRemoveInventoryFolder, true) },
+ { PacketType.RemoveInventoryObjects, new(HandleRemoveInventoryObjects, true) },
+
+ { PacketType.RequestTaskInventory, new(HandleRequestTaskInventory, true) },
+ { PacketType.UpdateTaskInventory, new(HandleUpdateTaskInventory, true) },
+ { PacketType.RemoveTaskInventory, new(HandleRemoveTaskInventory, true) },
+ { PacketType.MoveTaskInventory, new(HandleMoveTaskInventory, true) },
+
+ { PacketType.RezScript, new(HandleRezScript, true) },
+
+ { PacketType.MapLayerRequest, new(HandleMapLayerRequest, true) },
+ { PacketType.MapBlockRequest, new(HandleMapBlockRequest, true) },
+ { PacketType.MapNameRequest, new(HandleMapNameRequest, true) },
+
+ { PacketType.TeleportLandmarkRequest, new(HandleTeleportLandmarkRequest, true) },
+ { PacketType.TeleportCancel, new(HandleTeleportCancel, true) },
+ { PacketType.TeleportLocationRequest, new(HandleTeleportLocationRequest, true) },
+
+ { PacketType.ParcelInfoRequest, new (HandleParcelInfoRequest, true) },
+ { PacketType.ParcelDivide, new(HandleParcelDivide, true) },
+ { PacketType.ParcelJoin, new(HandleParcelJoin, true) },
+ { PacketType.ParcelPropertiesUpdate, new(HandleParcelPropertiesUpdate, true) },
+ { PacketType.ParcelSelectObjects, new(HandleParcelSelectObjects, true) },
+ { PacketType.ParcelObjectOwnersRequest, new(HandleParcelObjectOwnersRequest, true) },
+ { PacketType.ParcelGodForceOwner, new(HandleParcelGodForceOwner, true) },
+ { PacketType.ParcelRelease, new(HandleParcelRelease, true) },
+ { PacketType.ParcelReclaim, new(HandleParcelReclaim, true) },
+ { PacketType.ParcelReturnObjects, new(HandleParcelReturnObjects, true) },
+ { PacketType.ParcelSetOtherCleanTime, new(HandleParcelSetOtherCleanTime, true) },
+ { PacketType.ParcelDeedToGroup, new (HandleParcelDeedToGroup, true) },
+
+ { PacketType.LandStatRequest, new(HandleLandStatRequest, true) },
+ { PacketType.ParcelDwellRequest, new(HandleParcelDwellRequest, true) },
+
+ { PacketType.EstateOwnerMessage, new(HandleEstateOwnerMessage, true) },
+ { PacketType.EstateCovenantRequest, new(HandleEstateCovenantRequest, true) },
+
+ { PacketType.RequestGodlikePowers, new(HandleRequestGodlikePowers, true) },
+ { PacketType.GodKickUser, new(HandleGodKickUser, true) },
+
+ { PacketType.MoneyBalanceRequest, new(HandleMoneyBalanceRequest, true) },
+ { PacketType.EconomyDataRequest, new(HandleEconomyDataRequest, true) },
+ { PacketType.RequestPayPrice, new(HandleRequestPayPrice, true) },
+ { PacketType.ObjectSaleInfo, new(HandleObjectSaleInfo, true) },
+ { PacketType.ObjectBuy, new(HandleObjectBuy, true) },
+
+ { PacketType.GetScriptRunning, new(HandleGetScriptRunning, true) },
+ { PacketType.SetScriptRunning, new(HandleSetScriptRunning, true) },
+ { PacketType.ScriptReset, new(HandleScriptReset, true) },
+
+ { PacketType.ActivateGestures, new(HandleActivateGestures, true) },
+ { PacketType.DeactivateGestures, new(HandleDeactivateGestures, true) },
+
+ { PacketType.ObjectOwner, new(HandleObjectOwner, true) },
+
+ { PacketType.ViewerStats, new(HandleViewerStats, true) },
+
+ { PacketType.UseCircuitCode, new(HandleUseCircuitCode, true) },
+
+ { PacketType.CreateNewOutfitAttachments, new(HandleCreateNewOutfitAttachments, true) },
+
+ { PacketType.DirFindQuery, new(HandleDirFindQuery, true) },
+ { PacketType.DirPlacesQuery, new(HandleDirPlacesQuery, true) },
+ { PacketType.DirClassifiedQuery, new(HandleDirClassifiedQuery, true) },
+ { PacketType.DirLandQuery, new(HandleDirLandQuery, true) },
+ { PacketType.DirPopularQuery, new(HandleDirPopularQuery, true) },
+
+ { PacketType.EventInfoRequest, new(HandleEventInfoRequest, true) },
+
+ { PacketType.OfferCallingCard, new(HandleOfferCallingCard, true) },
+ { PacketType.AcceptCallingCard, new(HandleAcceptCallingCard, true) },
+ { PacketType.DeclineCallingCard, new(HandleDeclineCallingCard, true) },
+
+ { PacketType.ActivateGroup, new(HandleActivateGroup, true) },
+ { PacketType.GroupTitlesRequest, new(HandleGroupTitlesRequest, true) },
+ { PacketType.GroupProfileRequest, new(HandleGroupProfileRequest, true) },
+ { PacketType.GroupMembersRequest, new(HandleGroupMembersRequest, true) },
+ { PacketType.GroupRoleDataRequest, new(HandleGroupRoleDataRequest, true) },
+ { PacketType.GroupRoleMembersRequest, new(HandleGroupRoleMembersRequest, true) },
+ { PacketType.CreateGroupRequest, new(HandleCreateGroupRequest, true) },
+ { PacketType.UpdateGroupInfo, new(HandleUpdateGroupInfo, true) },
+ { PacketType.SetGroupAcceptNotices, new(HandleSetGroupAcceptNotices, true) },
+ { PacketType.GroupTitleUpdate, new(HandleGroupTitleUpdate, true) },
+
+ { PacketType.GroupNoticesListRequest, new(HandleGroupNoticesListRequest, true) },
+ { PacketType.GroupNoticeRequest, new(HandleGroupNoticeRequest, true) },
+
+ { PacketType.GroupRoleChanges, new(HandleGroupRoleChanges, true) },
+
+ { PacketType.JoinGroupRequest, new(HandleJoinGroupRequest, true) },
+ { PacketType.LeaveGroupRequest, new(HandleLeaveGroupRequest, true) },
+ { PacketType.EjectGroupMemberRequest, new(HandleEjectGroupMemberRequest, true) },
+ { PacketType.InviteGroupRequest, new(HandleInviteGroupRequest, true) },
+
+ { PacketType.GroupAccountDetailsRequest, new(HandleGroupAccountDetailsRequest, true) },
+ { PacketType.GroupAccountSummaryRequest, new(HandleGroupAccountSummaryRequest, true) },
+ { PacketType.GroupAccountTransactionsRequest, new(HandleGroupTransactionsDetailsRequest, true) },
+
+ { PacketType.GroupActiveProposalsRequest, new(HandleGroupActiveProposalsRequest, true) },
+ { PacketType.GroupVoteHistoryRequest, new(HandleGroupVoteHistoryRequest, true) },
+
+ { PacketType.StartLure, new(HandleStartLure, true) },
+ { PacketType.TeleportLureRequest, new(HandleTeleportLureRequest, true) },
+
+ { PacketType.ClassifiedInfoRequest, new(HandleClassifiedInfoRequest, true) },
+ { PacketType.ClassifiedInfoUpdate, new(HandleClassifiedInfoUpdate, true) },
+ { PacketType.ClassifiedDelete, new(HandleClassifiedDelete, true) },
+ { PacketType.ClassifiedGodDelete, new(HandleClassifiedGodDelete, true) },
+
+ { PacketType.EventGodDelete, new(HandleEventGodDelete, true) },
+ { PacketType.EventNotificationAddRequest, new(HandleEventNotificationAddRequest, true) },
+ { PacketType.EventNotificationRemoveRequest, new(HandleEventNotificationRemoveRequest, true) },
+
+ { PacketType.RetrieveInstantMessages, new(HandleRetrieveInstantMessages, true) },
+
+ { PacketType.PickDelete, new(HandlePickDelete, true) },
+ { PacketType.PickGodDelete, new(HandlePickGodDelete, true) },
+ { PacketType.PickInfoUpdate, new(HandlePickInfoUpdate, true) },
+
+ { PacketType.AvatarNotesUpdate, new(HandleAvatarNotesUpdate, true) },
+ { PacketType.AvatarInterestsUpdate, new(HandleAvatarInterestsUpdate, true) },
+
+ { PacketType.GrantUserRights, new(HandleGrantUserRights, true) },
+
+ { PacketType.PlacesQuery, new(HandlePlacesQuery, true) },
+
+ { PacketType.UserReport, new(HandleUserReport, true) },
+ { PacketType.FindAgent, new(HandleFindAgent, true) },
+ { PacketType.TrackAgent, new(HandleTrackAgent, true) },
+
+ { PacketType.GodUpdateRegionInfo, new(HandleGodUpdateRegionInfoUpdate, true) },
+ { PacketType.GodlikeMessage, new(HandleGodlikeMessage, true) },
+
+ { PacketType.StateSave, new(HandleSaveStatePacket, true) },
+
+ { PacketType.RevokePermissions, new(HandleRevokePermissions, true) },
+
+ { PacketType.FreezeUser, new(HandleFreezeUser, true) },
+ { PacketType.EjectUser, new(HandleEjectUser, true) },
+
+ { PacketType.ParcelBuyPass, new(HandleParcelBuyPass, true) },
+ { PacketType.ParcelGodMarkAsContent, new(HandleParcelGodMarkAsContent, true) },
+ { PacketType.SimWideDeletes, new(HandleSimWideDeletes, true) },
+ { PacketType.SendPostcard, new(HandleSendPostcard, true) },
+ { PacketType.ChangeInventoryItemFlags, new(HandleChangeInventoryItemFlags, true) },
+
+ }.ToFrozenDictionary();
+ //};
+
protected virtual void RegisterLocalPacketHandlers()
{
- AddLocalPacketHandler(PacketType.LogoutRequest, HandleLogout);
-
- // If AgentUpdate is ever handled asynchronously, then we will also need to construct a new AgentUpdateArgs
- // for each AgentUpdate packet.
- AddLocalPacketHandler(PacketType.AgentUpdate, HandleAgentUpdate, false);
-
- AddLocalPacketHandler(PacketType.ViewerEffect, HandleViewerEffect, false);
- AddLocalPacketHandler(PacketType.VelocityInterpolateOff, HandleVelocityInterpolateOff, false);
- AddLocalPacketHandler(PacketType.VelocityInterpolateOn, HandleVelocityInterpolateOn, false);
- AddLocalPacketHandler(PacketType.AgentCachedTexture, HandleAgentTextureCached, false);
- AddLocalPacketHandler(PacketType.MultipleObjectUpdate, HandleMultipleObjUpdate, false);
- AddLocalPacketHandler(PacketType.MoneyTransferRequest, HandleMoneyTransferRequest, false);
- AddLocalPacketHandler(PacketType.ParcelBuy, HandleParcelBuyRequest, false);
- AddLocalPacketHandler(PacketType.UUIDGroupNameRequest, HandleUUIDGroupNameRequest);
- AddLocalPacketHandler(PacketType.ObjectGroup, HandleObjectGroupRequest);
- AddLocalPacketHandler(PacketType.GenericMessage, HandleGenericMessage);
- AddLocalPacketHandler(PacketType.AvatarPropertiesRequest, HandleAvatarPropertiesRequest);
- AddLocalPacketHandler(PacketType.ChatFromViewer, HandleChatFromViewer);
- AddLocalPacketHandler(PacketType.AvatarPropertiesUpdate, HandlerAvatarPropertiesUpdate);
- AddLocalPacketHandler(PacketType.ScriptDialogReply, HandlerScriptDialogReply);
- AddLocalPacketHandler(PacketType.ImprovedInstantMessage, HandlerImprovedInstantMessage);
- AddLocalPacketHandler(PacketType.AcceptFriendship, HandlerAcceptFriendship);
- AddLocalPacketHandler(PacketType.DeclineFriendship, HandlerDeclineFriendship);
- AddLocalPacketHandler(PacketType.TerminateFriendship, HandlerTerminateFriendship);
- AddLocalPacketHandler(PacketType.RezObject, HandlerRezObject);
- AddLocalPacketHandler(PacketType.DeRezObject, HandlerDeRezObject);
- AddLocalPacketHandler(PacketType.RezRestoreToWorld, HandlerRezRestoreToWorld);
- AddLocalPacketHandler(PacketType.ModifyLand, HandlerModifyLand);
- AddLocalPacketHandler(PacketType.RegionHandshakeReply, HandlerRegionHandshakeReply, false);
- AddLocalPacketHandler(PacketType.AgentWearablesRequest, HandlerAgentWearablesRequest);
- AddLocalPacketHandler(PacketType.AgentSetAppearance, HandlerAgentSetAppearance);
- AddLocalPacketHandler(PacketType.AgentIsNowWearing, HandlerAgentIsNowWearing);
- AddLocalPacketHandler(PacketType.RezSingleAttachmentFromInv, HandlerRezSingleAttachmentFromInv);
- AddLocalPacketHandler(PacketType.RezMultipleAttachmentsFromInv, HandleRezMultipleAttachmentsFromInv);
- AddLocalPacketHandler(PacketType.DetachAttachmentIntoInv, HandleDetachAttachmentIntoInv);
- AddLocalPacketHandler(PacketType.ObjectAttach, HandleObjectAttach);
- AddLocalPacketHandler(PacketType.ObjectDetach, HandleObjectDetach);
- AddLocalPacketHandler(PacketType.ObjectDrop, HandleObjectDrop);
- AddLocalPacketHandler(PacketType.SetAlwaysRun, HandleSetAlwaysRun, false);
- AddLocalPacketHandler(PacketType.CompleteAgentMovement, HandleCompleteAgentMovement);
- AddLocalPacketHandler(PacketType.AgentAnimation, HandleAgentAnimation, false);
- AddLocalPacketHandler(PacketType.AgentRequestSit, HandleAgentRequestSit);
- AddLocalPacketHandler(PacketType.AgentSit, HandleAgentSit);
- AddLocalPacketHandler(PacketType.SoundTrigger, HandleSoundTrigger);
- AddLocalPacketHandler(PacketType.AvatarPickerRequest, HandleAvatarPickerRequest);
- AddLocalPacketHandler(PacketType.AgentDataUpdateRequest, HandleAgentDataUpdateRequest);
- AddLocalPacketHandler(PacketType.UserInfoRequest, HandleUserInfoRequest);
- AddLocalPacketHandler(PacketType.UpdateUserInfo, HandleUpdateUserInfo);
- AddLocalPacketHandler(PacketType.SetStartLocationRequest, HandleSetStartLocationRequest);
- AddLocalPacketHandler(PacketType.AgentThrottle, HandleAgentThrottle, false);
- AddLocalPacketHandler(PacketType.AgentPause, HandleAgentPause, false);
- AddLocalPacketHandler(PacketType.AgentResume, HandleAgentResume, false);
- AddLocalPacketHandler(PacketType.ForceScriptControlRelease, HandleForceScriptControlRelease);
- AddLocalPacketHandler(PacketType.ObjectLink, HandleObjectLink);
- AddLocalPacketHandler(PacketType.ObjectDelink, HandleObjectDelink);
- AddLocalPacketHandler(PacketType.ObjectAdd, HandleObjectAdd);
- AddLocalPacketHandler(PacketType.ObjectShape, HandleObjectShape);
- AddLocalPacketHandler(PacketType.ObjectExtraParams, HandleObjectExtraParams);
- AddLocalPacketHandler(PacketType.ObjectDuplicate, HandleObjectDuplicate);
- AddLocalPacketHandler(PacketType.RequestMultipleObjects, HandleRequestMultipleObjects);
- AddLocalPacketHandler(PacketType.ObjectSelect, HandleObjectSelect);
- AddLocalPacketHandler(PacketType.ObjectDeselect, HandleObjectDeselect);
- AddLocalPacketHandler(PacketType.ObjectPosition, HandleObjectPosition);
- AddLocalPacketHandler(PacketType.ObjectScale, HandleObjectScale);
- AddLocalPacketHandler(PacketType.ObjectRotation, HandleObjectRotation);
- AddLocalPacketHandler(PacketType.ObjectFlagUpdate, HandleObjectFlagUpdate);
-
- // Handle ObjectImage (TextureEntry) updates synchronously, since when updating multiple prim faces at once,
- // some clients will send out a separate ObjectImage packet for each face
- AddLocalPacketHandler(PacketType.ObjectImage, HandleObjectImage, false);
-
- AddLocalPacketHandler(PacketType.ObjectGrab, HandleObjectGrab, false);
- AddLocalPacketHandler(PacketType.ObjectGrabUpdate, HandleObjectGrabUpdate, false);
- AddLocalPacketHandler(PacketType.ObjectDeGrab, HandleObjectDeGrab);
- AddLocalPacketHandler(PacketType.ObjectSpinStart, HandleObjectSpinStart, false);
- AddLocalPacketHandler(PacketType.ObjectSpinUpdate, HandleObjectSpinUpdate, false);
- AddLocalPacketHandler(PacketType.ObjectSpinStop, HandleObjectSpinStop, false);
- AddLocalPacketHandler(PacketType.ObjectDescription, HandleObjectDescription, false);
- AddLocalPacketHandler(PacketType.ObjectName, HandleObjectName, false);
- AddLocalPacketHandler(PacketType.ObjectPermissions, HandleObjectPermissions, false);
- AddLocalPacketHandler(PacketType.Undo, HandleUndo, false);
- AddLocalPacketHandler(PacketType.UndoLand, HandleLandUndo, false);
- AddLocalPacketHandler(PacketType.Redo, HandleRedo, false);
- AddLocalPacketHandler(PacketType.ObjectDuplicateOnRay, HandleObjectDuplicateOnRay);
- AddLocalPacketHandler(PacketType.RequestObjectPropertiesFamily, HandleRequestObjectPropertiesFamily, false);
- AddLocalPacketHandler(PacketType.ObjectIncludeInSearch, HandleObjectIncludeInSearch);
- AddLocalPacketHandler(PacketType.ScriptAnswerYes, HandleScriptAnswerYes, false);
- AddLocalPacketHandler(PacketType.ObjectClickAction, HandleObjectClickAction, false);
- AddLocalPacketHandler(PacketType.ObjectMaterial, HandleObjectMaterial, false);
- AddLocalPacketHandler(PacketType.RequestImage, HandleRequestImage, false);
- AddLocalPacketHandler(PacketType.TransferRequest, HandleTransferRequest, false);
- AddLocalPacketHandler(PacketType.AssetUploadRequest, HandleAssetUploadRequest);
- AddLocalPacketHandler(PacketType.RequestXfer, HandleRequestXfer);
- AddLocalPacketHandler(PacketType.SendXferPacket, HandleSendXferPacket);
- AddLocalPacketHandler(PacketType.ConfirmXferPacket, HandleConfirmXferPacket, false);
- AddLocalPacketHandler(PacketType.AbortXfer, HandleAbortXfer);
- AddLocalPacketHandler(PacketType.CreateInventoryFolder, HandleCreateInventoryFolder);
- AddLocalPacketHandler(PacketType.UpdateInventoryFolder, HandleUpdateInventoryFolder);
- AddLocalPacketHandler(PacketType.MoveInventoryFolder, HandleMoveInventoryFolder);
- AddLocalPacketHandler(PacketType.CreateInventoryItem, HandleCreateInventoryItem);
- AddLocalPacketHandler(PacketType.LinkInventoryItem, HandleLinkInventoryItem);
- AddLocalPacketHandler(PacketType.FetchInventory, HandleFetchInventory);
- AddLocalPacketHandler(PacketType.FetchInventoryDescendents, HandleFetchInventoryDescendents);
- AddLocalPacketHandler(PacketType.PurgeInventoryDescendents, HandlePurgeInventoryDescendents);
- AddLocalPacketHandler(PacketType.UpdateInventoryItem, HandleUpdateInventoryItem);
- AddLocalPacketHandler(PacketType.CopyInventoryItem, HandleCopyInventoryItem);
- AddLocalPacketHandler(PacketType.MoveInventoryItem, HandleMoveInventoryItem);
- AddLocalPacketHandler(PacketType.RemoveInventoryItem, HandleRemoveInventoryItem);
- AddLocalPacketHandler(PacketType.RemoveInventoryFolder, HandleRemoveInventoryFolder);
- AddLocalPacketHandler(PacketType.RemoveInventoryObjects, HandleRemoveInventoryObjects);
- AddLocalPacketHandler(PacketType.RequestTaskInventory, HandleRequestTaskInventory);
- AddLocalPacketHandler(PacketType.UpdateTaskInventory, HandleUpdateTaskInventory);
- AddLocalPacketHandler(PacketType.RemoveTaskInventory, HandleRemoveTaskInventory);
- AddLocalPacketHandler(PacketType.MoveTaskInventory, HandleMoveTaskInventory);
- AddLocalPacketHandler(PacketType.RezScript, HandleRezScript);
- AddLocalPacketHandler(PacketType.MapLayerRequest, HandleMapLayerRequest);
- AddLocalPacketHandler(PacketType.MapBlockRequest, HandleMapBlockRequest);
- AddLocalPacketHandler(PacketType.MapNameRequest, HandleMapNameRequest);
- AddLocalPacketHandler(PacketType.TeleportLandmarkRequest, HandleTeleportLandmarkRequest);
- AddLocalPacketHandler(PacketType.TeleportCancel, HandleTeleportCancel);
- AddLocalPacketHandler(PacketType.TeleportLocationRequest, HandleTeleportLocationRequest);
- AddLocalPacketHandler(PacketType.UUIDNameRequest, HandleUUIDNameRequest, false);
- AddLocalPacketHandler(PacketType.RegionHandleRequest, HandleRegionHandleRequest, false);
- AddLocalPacketHandler(PacketType.ParcelInfoRequest, HandleParcelInfoRequest);
- AddLocalPacketHandler(PacketType.ParcelAccessListRequest, HandleParcelAccessListRequest, false);
- AddLocalPacketHandler(PacketType.ParcelAccessListUpdate, HandleParcelAccessListUpdate, false);
- AddLocalPacketHandler(PacketType.ParcelPropertiesRequest, HandleParcelPropertiesRequest, false);
- AddLocalPacketHandler(PacketType.ParcelDivide, HandleParcelDivide);
- AddLocalPacketHandler(PacketType.ParcelJoin, HandleParcelJoin);
- AddLocalPacketHandler(PacketType.ParcelPropertiesUpdate, HandleParcelPropertiesUpdate);
- AddLocalPacketHandler(PacketType.ParcelSelectObjects, HandleParcelSelectObjects);
- AddLocalPacketHandler(PacketType.ParcelObjectOwnersRequest, HandleParcelObjectOwnersRequest);
- AddLocalPacketHandler(PacketType.ParcelGodForceOwner, HandleParcelGodForceOwner);
- AddLocalPacketHandler(PacketType.ParcelRelease, HandleParcelRelease);
- AddLocalPacketHandler(PacketType.ParcelReclaim, HandleParcelReclaim);
- AddLocalPacketHandler(PacketType.ParcelReturnObjects, HandleParcelReturnObjects);
- AddLocalPacketHandler(PacketType.ParcelSetOtherCleanTime, HandleParcelSetOtherCleanTime);
- AddLocalPacketHandler(PacketType.LandStatRequest, HandleLandStatRequest);
- AddLocalPacketHandler(PacketType.ParcelDwellRequest, HandleParcelDwellRequest);
- AddLocalPacketHandler(PacketType.EstateOwnerMessage, HandleEstateOwnerMessage);
- AddLocalPacketHandler(PacketType.RequestRegionInfo, HandleRequestRegionInfo, false);
- AddLocalPacketHandler(PacketType.EstateCovenantRequest, HandleEstateCovenantRequest);
- AddLocalPacketHandler(PacketType.RequestGodlikePowers, HandleRequestGodlikePowers);
- AddLocalPacketHandler(PacketType.GodKickUser, HandleGodKickUser);
- AddLocalPacketHandler(PacketType.MoneyBalanceRequest, HandleMoneyBalanceRequest);
- AddLocalPacketHandler(PacketType.EconomyDataRequest, HandleEconomyDataRequest);
- AddLocalPacketHandler(PacketType.RequestPayPrice, HandleRequestPayPrice);
- AddLocalPacketHandler(PacketType.ObjectSaleInfo, HandleObjectSaleInfo);
- AddLocalPacketHandler(PacketType.ObjectBuy, HandleObjectBuy);
- AddLocalPacketHandler(PacketType.GetScriptRunning, HandleGetScriptRunning);
- AddLocalPacketHandler(PacketType.SetScriptRunning, HandleSetScriptRunning);
- AddLocalPacketHandler(PacketType.ScriptReset, HandleScriptReset);
- AddLocalPacketHandler(PacketType.ActivateGestures, HandleActivateGestures);
- AddLocalPacketHandler(PacketType.DeactivateGestures, HandleDeactivateGestures);
- AddLocalPacketHandler(PacketType.ObjectOwner, HandleObjectOwner);
- AddLocalPacketHandler(PacketType.AgentFOV, HandleAgentFOV, false);
- AddLocalPacketHandler(PacketType.ViewerStats, HandleViewerStats);
- AddLocalPacketHandler(PacketType.MapItemRequest, HandleMapItemRequest, false);
- AddLocalPacketHandler(PacketType.TransferAbort, HandleTransferAbort, false);
- AddLocalPacketHandler(PacketType.MuteListRequest, HandleMuteListRequest, false);
- AddLocalPacketHandler(PacketType.UseCircuitCode, HandleUseCircuitCode);
- AddLocalPacketHandler(PacketType.CreateNewOutfitAttachments, HandleCreateNewOutfitAttachments);
- AddLocalPacketHandler(PacketType.AgentHeightWidth, HandleAgentHeightWidth, false);
- AddLocalPacketHandler(PacketType.InventoryDescendents, HandleInventoryDescendents);
- AddLocalPacketHandler(PacketType.DirPlacesQuery, HandleDirPlacesQuery);
- AddLocalPacketHandler(PacketType.DirFindQuery, HandleDirFindQuery);
- AddLocalPacketHandler(PacketType.DirLandQuery, HandleDirLandQuery);
- AddLocalPacketHandler(PacketType.DirPopularQuery, HandleDirPopularQuery);
- AddLocalPacketHandler(PacketType.DirClassifiedQuery, HandleDirClassifiedQuery);
- AddLocalPacketHandler(PacketType.EventInfoRequest, HandleEventInfoRequest);
- AddLocalPacketHandler(PacketType.OfferCallingCard, HandleOfferCallingCard);
- AddLocalPacketHandler(PacketType.AcceptCallingCard, HandleAcceptCallingCard);
- AddLocalPacketHandler(PacketType.DeclineCallingCard, HandleDeclineCallingCard);
- AddLocalPacketHandler(PacketType.ActivateGroup, HandleActivateGroup);
- AddLocalPacketHandler(PacketType.GroupTitlesRequest, HandleGroupTitlesRequest);
- AddLocalPacketHandler(PacketType.GroupProfileRequest, HandleGroupProfileRequest);
- AddLocalPacketHandler(PacketType.GroupMembersRequest, HandleGroupMembersRequest);
- AddLocalPacketHandler(PacketType.GroupRoleDataRequest, HandleGroupRoleDataRequest);
- AddLocalPacketHandler(PacketType.GroupRoleMembersRequest, HandleGroupRoleMembersRequest);
- AddLocalPacketHandler(PacketType.CreateGroupRequest, HandleCreateGroupRequest);
- AddLocalPacketHandler(PacketType.UpdateGroupInfo, HandleUpdateGroupInfo);
- AddLocalPacketHandler(PacketType.SetGroupAcceptNotices, HandleSetGroupAcceptNotices);
- AddLocalPacketHandler(PacketType.GroupTitleUpdate, HandleGroupTitleUpdate);
- AddLocalPacketHandler(PacketType.ParcelDeedToGroup, HandleParcelDeedToGroup);
- AddLocalPacketHandler(PacketType.GroupNoticesListRequest, HandleGroupNoticesListRequest);
- AddLocalPacketHandler(PacketType.GroupNoticeRequest, HandleGroupNoticeRequest);
- AddLocalPacketHandler(PacketType.GroupRoleUpdate, HandleGroupRoleUpdate);
- AddLocalPacketHandler(PacketType.GroupRoleChanges, HandleGroupRoleChanges);
- AddLocalPacketHandler(PacketType.JoinGroupRequest, HandleJoinGroupRequest);
- AddLocalPacketHandler(PacketType.LeaveGroupRequest, HandleLeaveGroupRequest);
- AddLocalPacketHandler(PacketType.EjectGroupMemberRequest, HandleEjectGroupMemberRequest);
- AddLocalPacketHandler(PacketType.InviteGroupRequest, HandleInviteGroupRequest);
- AddLocalPacketHandler(PacketType.StartLure, HandleStartLure);
- AddLocalPacketHandler(PacketType.TeleportLureRequest, HandleTeleportLureRequest);
- AddLocalPacketHandler(PacketType.ClassifiedInfoRequest, HandleClassifiedInfoRequest);
- AddLocalPacketHandler(PacketType.ClassifiedInfoUpdate, HandleClassifiedInfoUpdate);
- AddLocalPacketHandler(PacketType.ClassifiedDelete, HandleClassifiedDelete);
- AddLocalPacketHandler(PacketType.ClassifiedGodDelete, HandleClassifiedGodDelete);
- AddLocalPacketHandler(PacketType.EventGodDelete, HandleEventGodDelete);
- AddLocalPacketHandler(PacketType.EventNotificationAddRequest, HandleEventNotificationAddRequest);
- AddLocalPacketHandler(PacketType.EventNotificationRemoveRequest, HandleEventNotificationRemoveRequest);
- AddLocalPacketHandler(PacketType.RetrieveInstantMessages, HandleRetrieveInstantMessages);
- AddLocalPacketHandler(PacketType.PickDelete, HandlePickDelete);
- AddLocalPacketHandler(PacketType.PickGodDelete, HandlePickGodDelete);
- AddLocalPacketHandler(PacketType.PickInfoUpdate, HandlePickInfoUpdate);
- AddLocalPacketHandler(PacketType.AvatarNotesUpdate, HandleAvatarNotesUpdate);
- AddLocalPacketHandler(PacketType.AvatarInterestsUpdate, HandleAvatarInterestsUpdate);
- AddLocalPacketHandler(PacketType.GrantUserRights, HandleGrantUserRights);
- AddLocalPacketHandler(PacketType.PlacesQuery, HandlePlacesQuery);
- AddLocalPacketHandler(PacketType.UpdateMuteListEntry, HandleUpdateMuteListEntry);
- AddLocalPacketHandler(PacketType.RemoveMuteListEntry, HandleRemoveMuteListEntry);
- AddLocalPacketHandler(PacketType.UserReport, HandleUserReport);
- AddLocalPacketHandler(PacketType.FindAgent, HandleFindAgent);
- AddLocalPacketHandler(PacketType.TrackAgent, HandleTrackAgent);
- AddLocalPacketHandler(PacketType.GodUpdateRegionInfo, HandleGodUpdateRegionInfoUpdate);
- AddLocalPacketHandler(PacketType.GodlikeMessage, HandleGodlikeMessage);
- AddLocalPacketHandler(PacketType.StateSave, HandleSaveStatePacket);
- AddLocalPacketHandler(PacketType.GroupAccountDetailsRequest, HandleGroupAccountDetailsRequest);
- AddLocalPacketHandler(PacketType.GroupAccountSummaryRequest, HandleGroupAccountSummaryRequest);
- AddLocalPacketHandler(PacketType.GroupAccountTransactionsRequest, HandleGroupTransactionsDetailsRequest);
- AddLocalPacketHandler(PacketType.FreezeUser, HandleFreezeUser);
- AddLocalPacketHandler(PacketType.EjectUser, HandleEjectUser);
- AddLocalPacketHandler(PacketType.ParcelBuyPass, HandleParcelBuyPass);
- AddLocalPacketHandler(PacketType.ParcelGodMarkAsContent, HandleParcelGodMarkAsContent);
- AddLocalPacketHandler(PacketType.GroupActiveProposalsRequest, HandleGroupActiveProposalsRequest);
- AddLocalPacketHandler(PacketType.GroupVoteHistoryRequest, HandleGroupVoteHistoryRequest);
- AddLocalPacketHandler(PacketType.SimWideDeletes, HandleSimWideDeletes);
- AddLocalPacketHandler(PacketType.SendPostcard, HandleSendPostcard);
- AddLocalPacketHandler(PacketType.ChangeInventoryItemFlags, HandleChangeInventoryItemFlags);
- AddLocalPacketHandler(PacketType.RevokePermissions, HandleRevokePermissions);
AddGenericPacketHandler("autopilot", HandleAutopilot);
}
@@ -8482,23 +8533,23 @@ namespace OpenSim.Region.ClientStack.LindenUDP
);
}
- private void HandleAgentUpdate(Packet packet)
+ private static void HandleAgentUpdate(LLClientView c, Packet packet)
{
- if(OnAgentUpdate is null)
+ if(c.OnAgentUpdate is null)
return;
AgentUpdatePacket agentUpdate = (AgentUpdatePacket)packet;
AgentUpdatePacket.AgentDataBlock x = agentUpdate.AgentData;
- if (x.AgentID.NotEqual(m_agentId) || x.SessionID.NotEqual(m_sessionId))
+ if (x.AgentID.NotEqual(c.m_agentId) || x.SessionID.NotEqual(c.m_sessionId))
return;
uint seq = packet.Header.Sequence;
- TotalAgentUpdates++;
+ c.TotalAgentUpdates++;
// dont let ignored updates pollute this throttles
- if(SceneAgent is null || SceneAgent.IsChildAgent ||
- SceneAgent.IsInTransit || seq <= m_thisAgentUpdateArgs.lastpacketSequence )
+ if(c.SceneAgent is null || c.SceneAgent.IsChildAgent ||
+ c.SceneAgent.IsInTransit || seq <= c.m_thisAgentUpdateArgs.lastpacketSequence )
{
// throttle reset is done at MoveAgentIntoRegion()
// called by scenepresence on completemovement
@@ -8506,137 +8557,138 @@ namespace OpenSim.Region.ClientStack.LindenUDP
return;
}
- m_thisAgentUpdateArgs.lastpacketSequence = seq;
+ c.m_thisAgentUpdateArgs.lastpacketSequence = seq;
- OnPreAgentUpdate?.Invoke(this, m_thisAgentUpdateArgs);
+ c.OnPreAgentUpdate?.Invoke(c, c.m_thisAgentUpdateArgs);
bool movement;
bool camera;
double now = Util.GetTimeStampMS();
- if(now - m_thisAgentUpdateArgs.lastUpdateTS > 500.0) // at least 2 per sec
+ if(now - c.m_thisAgentUpdateArgs.lastUpdateTS > 500.0) // at least 2 per sec
{
movement = true;
camera = true;
}
else
{
- movement = CheckAgentMovementUpdateSignificance(x);
- camera = CheckAgentCameraUpdateSignificance(x);
+ movement = c.CheckAgentMovementUpdateSignificance(x);
+ camera = c.CheckAgentCameraUpdateSignificance(x);
}
// Was there a significant movement/state change?
if (movement)
{
- m_thisAgentUpdateArgs.BodyRotation = x.BodyRotation;
- m_thisAgentUpdateArgs.ControlFlags = x.ControlFlags;
- m_thisAgentUpdateArgs.Far = x.Far;
- m_thisAgentUpdateArgs.Flags = x.Flags;
- m_thisAgentUpdateArgs.HeadRotation = x.HeadRotation;
- m_thisAgentUpdateArgs.State = x.State;
+ c.m_thisAgentUpdateArgs.BodyRotation = x.BodyRotation;
+ c.m_thisAgentUpdateArgs.ControlFlags = x.ControlFlags;
+ c.m_thisAgentUpdateArgs.Far = x.Far;
+ c.m_thisAgentUpdateArgs.Flags = x.Flags;
+ c.m_thisAgentUpdateArgs.HeadRotation = x.HeadRotation;
+ c.m_thisAgentUpdateArgs.State = x.State;
- m_thisAgentUpdateArgs.NeedsCameraCollision = !camera;
+ c.m_thisAgentUpdateArgs.NeedsCameraCollision = !camera;
- OnAgentUpdate?.Invoke(this, m_thisAgentUpdateArgs);
+ c.OnAgentUpdate?.Invoke(c, c.m_thisAgentUpdateArgs);
}
// Was there a significant camera(s) change?
if (camera)
{
- m_thisAgentUpdateArgs.CameraAtAxis = x.CameraAtAxis;
- m_thisAgentUpdateArgs.CameraCenter = x.CameraCenter;
- m_thisAgentUpdateArgs.CameraLeftAxis = x.CameraLeftAxis;
- m_thisAgentUpdateArgs.CameraUpAxis = x.CameraUpAxis;
+ c.m_thisAgentUpdateArgs.CameraAtAxis = x.CameraAtAxis;
+ c.m_thisAgentUpdateArgs.CameraCenter = x.CameraCenter;
+ c.m_thisAgentUpdateArgs.CameraLeftAxis = x.CameraLeftAxis;
+ c.m_thisAgentUpdateArgs.CameraUpAxis = x.CameraUpAxis;
- m_thisAgentUpdateArgs.NeedsCameraCollision = true;
+ c.m_thisAgentUpdateArgs.NeedsCameraCollision = true;
- OnAgentCameraUpdate?.Invoke(this, m_thisAgentUpdateArgs);
+ c.OnAgentCameraUpdate?.Invoke(c, c.m_thisAgentUpdateArgs);
}
if(movement && camera)
- m_thisAgentUpdateArgs.lastUpdateTS = now;
+ c.m_thisAgentUpdateArgs.lastUpdateTS = now;
}
- private void HandleMoneyTransferRequest(Packet Pack)
+
+ private static void HandleMoneyTransferRequest(LLClientView c, Packet Pack)
{
- if(OnMoneyTransferRequest is null)
+ if(c.OnMoneyTransferRequest is null)
return;
MoneyTransferRequestPacket money = (MoneyTransferRequestPacket)Pack;
// validate the agent owns the agentID and sessionID
- if (money.MoneyData.SourceID.Equals(m_agentId) && money.AgentData.AgentID.Equals(m_agentId) &&
- money.AgentData.SessionID.Equals(m_sessionId))
+ if (money.MoneyData.SourceID.Equals(c.m_agentId) && money.AgentData.AgentID.Equals(c.m_agentId) &&
+ money.AgentData.SessionID.Equals(c.m_sessionId))
{
- OnMoneyTransferRequest?.Invoke(money.MoneyData.SourceID, money.MoneyData.DestID,
+ c.OnMoneyTransferRequest?.Invoke(money.MoneyData.SourceID, money.MoneyData.DestID,
money.MoneyData.Amount, money.MoneyData.TransactionType,
Util.FieldToString(money.MoneyData.Description));
}
}
- private void HandleParcelGodMarkAsContent(Packet packet)
+ private static void HandleParcelGodMarkAsContent(LLClientView c, Packet packet)
{
- if(OnParcelGodMark is null)
+ if(c.OnParcelGodMark is null)
return;
ParcelGodMarkAsContentPacket ParcelGodMarkAsContent = (ParcelGodMarkAsContentPacket)packet;
- if(m_sessionId != ParcelGodMarkAsContent.AgentData.SessionID || m_agentId != ParcelGodMarkAsContent.AgentData.AgentID)
+ if(c.m_sessionId.NotEqual(ParcelGodMarkAsContent.AgentData.SessionID) || c.m_agentId.NotEqual(ParcelGodMarkAsContent.AgentData.AgentID))
return;
- OnParcelGodMark?.Invoke(this,
- m_agentId,
+ c.OnParcelGodMark?.Invoke(c,
+ c.m_agentId,
ParcelGodMarkAsContent.ParcelData.LocalID);
}
- private void HandleFreezeUser(Packet packet)
+ private static void HandleFreezeUser(LLClientView c, Packet packet)
{
- if(OnParcelFreezeUser is null)
+ if(c.OnParcelFreezeUser is null)
return;
FreezeUserPacket FreezeUser = (FreezeUserPacket)packet;
- if(m_sessionId != FreezeUser.AgentData.SessionID || m_agentId != FreezeUser.AgentData.AgentID)
+ if(c.m_sessionId.NotEqual(FreezeUser.AgentData.SessionID) || c.m_agentId.NotEqual(FreezeUser.AgentData.AgentID))
return;
- OnParcelFreezeUser?.Invoke(this,
- m_agentId,
+ c.OnParcelFreezeUser?.Invoke(c,
+ c.m_agentId,
FreezeUser.Data.Flags,
FreezeUser.Data.TargetID);
}
- private void HandleEjectUser(Packet packet)
+ private static void HandleEjectUser(LLClientView c, Packet packet)
{
- if(OnParcelEjectUser is null)
+ if(c.OnParcelEjectUser is null)
return;
EjectUserPacket EjectUser = (EjectUserPacket)packet;
- if(m_sessionId != EjectUser.AgentData.SessionID || m_agentId != EjectUser.AgentData.AgentID)
+ if(c.m_sessionId.NotEqual(EjectUser.AgentData.SessionID) || c.m_agentId.NotEqual(EjectUser.AgentData.AgentID))
return;
- OnParcelEjectUser?.Invoke(this,
- m_agentId,
+ c.OnParcelEjectUser?.Invoke(c,
+ c.m_agentId,
EjectUser.Data.Flags,
EjectUser.Data.TargetID);
}
- private void HandleParcelBuyPass(Packet packet)
+ private static void HandleParcelBuyPass(LLClientView c, Packet packet)
{
- if(OnParcelBuyPass is null)
+ if(c.OnParcelBuyPass is null)
return;
ParcelBuyPassPacket ParcelBuyPass = (ParcelBuyPassPacket)packet;
- if(m_sessionId != ParcelBuyPass.AgentData.SessionID || m_agentId != ParcelBuyPass.AgentData.AgentID)
+ if(c.m_sessionId.NotEqual(ParcelBuyPass.AgentData.SessionID) || c.m_agentId.NotEqual(ParcelBuyPass.AgentData.AgentID))
return;
- OnParcelBuyPass?.Invoke(this,
- m_agentId,
+ c.OnParcelBuyPass?.Invoke(c,
+ c.m_agentId,
ParcelBuyPass.ParcelData.LocalID);
}
- private void HandleParcelBuyRequest(Packet Pack)
+ private static void HandleParcelBuyRequest(LLClientView c, Packet Pack)
{
ParcelBuyPacket parcel = (ParcelBuyPacket)Pack;
- if (parcel.AgentData.AgentID.Equals(m_agentId) && parcel.AgentData.SessionID.Equals(m_sessionId))
+ if (parcel.AgentData.AgentID.Equals(c.m_agentId) && parcel.AgentData.SessionID.Equals(c.m_sessionId))
{
- OnParcelBuy?.Invoke(m_agentId, parcel.Data.GroupID, parcel.Data.Final,
+ c.OnParcelBuy?.Invoke(c.m_agentId, parcel.Data.GroupID, parcel.Data.Final,
parcel.Data.IsGroupOwned,
parcel.Data.RemoveContribution, parcel.Data.LocalID, parcel.ParcelData.Area,
parcel.ParcelData.Price,
@@ -8644,34 +8696,34 @@ namespace OpenSim.Region.ClientStack.LindenUDP
}
}
- private void HandleUUIDGroupNameRequest(Packet Pack)
+ private static void HandleUUIDGroupNameRequest(LLClientView c, Packet Pack)
{
- if(OnUUIDGroupNameRequest is null)
+ if(c.OnUUIDGroupNameRequest is null)
return;
- ScenePresence sp = (ScenePresence)SceneAgent;
+ ScenePresence sp = (ScenePresence)c.SceneAgent;
if(sp is null || sp.IsDeleted || (sp.IsInTransit && !sp.IsInLocalTransit))
return;
UUIDGroupNameRequestPacket upack = (UUIDGroupNameRequestPacket)Pack;
for (int i = 0; i < upack.UUIDNameBlock.Length; i++)
{
- OnUUIDGroupNameRequest?.Invoke(upack.UUIDNameBlock[i].ID, this);
+ c.OnUUIDGroupNameRequest?.Invoke(upack.UUIDNameBlock[i].ID, c);
}
}
- public void HandleGenericMessage(Packet pack)
+ public static void HandleGenericMessage(LLClientView c, Packet pack)
{
- if (m_genericPacketHandlers.Count == 0)
+ if (c.m_genericPacketHandlers.Count == 0)
return;
GenericMessagePacket gmpack = (GenericMessagePacket)pack;
- if (gmpack.AgentData.SessionID.NotEqual(m_sessionId) || gmpack.AgentData.AgentID.NotEqual(m_agentId))
+ if (gmpack.AgentData.SessionID.NotEqual(c.m_sessionId) || gmpack.AgentData.AgentID.NotEqual(c.m_agentId))
return;
string method = Util.FieldToString(gmpack.MethodData.Method).ToLower().Trim();
- if (m_genericPacketHandlers.TryGetValue(method, out GenericMessage handlerGenericMessage))
+ if (c.m_genericPacketHandlers.TryGetValue(method, out GenericMessage handlerGenericMessage))
{
List msg = new();
List msgBytes = new();
@@ -8684,8 +8736,8 @@ namespace OpenSim.Region.ClientStack.LindenUDP
try
{
- OnBinaryGenericMessage?.Invoke(this, method, msgBytes.ToArray());
- handlerGenericMessage?.Invoke(this, method, msg);
+ c.OnBinaryGenericMessage?.Invoke(c, method, msgBytes.ToArray());
+ handlerGenericMessage?.Invoke(c, method, msg);
}
catch (Exception e)
{
@@ -8695,33 +8747,32 @@ namespace OpenSim.Region.ClientStack.LindenUDP
}
}
- public void HandleObjectGroupRequest(Packet Pack)
+ public static void HandleObjectGroupRequest(LLClientView c, Packet Pack)
{
- if(OnObjectGroupRequest is null)
+ if(c.OnObjectGroupRequest is null)
return;
ObjectGroupPacket ogpack = (ObjectGroupPacket)Pack;
- if (ogpack.AgentData.SessionID.NotEqual(m_sessionId))
+ if (ogpack.AgentData.SessionID.NotEqual(c.m_sessionId))
return;
for (int i = 0; i < ogpack.ObjectData.Length; i++)
{
- OnObjectGroupRequest?.Invoke(this, ogpack.AgentData.GroupID, ogpack.ObjectData[i].ObjectLocalID, UUID.Zero);
+ c.OnObjectGroupRequest?.Invoke(c, ogpack.AgentData.GroupID, ogpack.ObjectData[i].ObjectLocalID, UUID.Zero);
}
}
- private void HandleViewerEffect(Packet Pack)
+ private static void HandleViewerEffect(LLClientView c, Packet Pack)
{
- if(OnViewerEffect is null)
+ if(c.OnViewerEffect is null)
return;
ViewerEffectPacket viewer = (ViewerEffectPacket)Pack;
- if (viewer.AgentData.SessionID.NotEqual(m_sessionId) || m_agentId != viewer.AgentData.AgentID)
+ if (viewer.AgentData.SessionID.NotEqual(c.m_sessionId) || c.m_agentId != viewer.AgentData.AgentID)
return;
- int length = viewer.Effect.Length;
- List args = new(length);
- for (int i = 0; i < length; i++)
+ List args = new(viewer.Effect.Length);
+ for (int i = 0; i < viewer.Effect.Length; i++)
{
//copy the effects block arguments into the event handler arg.
ViewerEffectEventHandlerArg argument = new()
@@ -8735,45 +8786,41 @@ namespace OpenSim.Region.ClientStack.LindenUDP
};
args.Add(argument);
}
- OnViewerEffect?.Invoke(this, args);
+ c.OnViewerEffect?.Invoke(c, args);
}
- private void HandleVelocityInterpolateOff(Packet Pack)
+ private static void HandleVelocityInterpolateOff(LLClientView c, Packet Pack)
{
VelocityInterpolateOffPacket p = (VelocityInterpolateOffPacket)Pack;
- if (p.AgentData.SessionID.NotEqual(m_sessionId) || p.AgentData.AgentID.NotEqual(m_agentId))
- return ;
-
- m_VelocityInterpolate = false;
+ if (p.AgentData.SessionID.Equals(c.m_sessionId) && p.AgentData.AgentID.Equals(c.m_agentId))
+ c.m_VelocityInterpolate = false;
}
- private void HandleVelocityInterpolateOn(Packet Pack)
+ private static void HandleVelocityInterpolateOn(LLClientView c, Packet Pack)
{
- VelocityInterpolateOnPacket p = (VelocityInterpolateOnPacket)Pack;
- if (p.AgentData.SessionID.NotEqual(m_sessionId) || p.AgentData.AgentID.NotEqual(m_agentId))
- return;
-
- m_VelocityInterpolate = true;
+ VelocityInterpolateOffPacket p = (VelocityInterpolateOffPacket)Pack;
+ if (p.AgentData.SessionID.Equals(c.m_sessionId) && p.AgentData.AgentID.Equals(c.m_agentId))
+ c.m_VelocityInterpolate = true;
}
- private void HandleAvatarPropertiesRequest(Packet Pack)
+ private static void HandleAvatarPropertiesRequest(LLClientView c, Packet Pack)
{
AvatarPropertiesRequestPacket avatarProperties = (AvatarPropertiesRequestPacket)Pack;
- if (avatarProperties.AgentData.SessionID.NotEqual(m_sessionId) || avatarProperties.AgentData.AgentID.NotEqual(m_agentId))
+ if (avatarProperties.AgentData.SessionID.NotEqual(c.m_sessionId) || avatarProperties.AgentData.AgentID.NotEqual(c.m_agentId))
return;
- OnRequestAvatarProperties?.Invoke(this, avatarProperties.AgentData.AvatarID);
+ c.OnRequestAvatarProperties?.Invoke(c, avatarProperties.AgentData.AvatarID);
}
- private void HandleChatFromViewer(Packet Pack)
+ private static void HandleChatFromViewer(LLClientView c, Packet Pack)
{
- if (OnChatFromClient is null)
+ if (c.OnChatFromClient is null)
return;
ChatFromViewerPacket inchatpack = (ChatFromViewerPacket)Pack;
- if (inchatpack.AgentData.SessionID.NotEqual(m_sessionId) || inchatpack.AgentData.AgentID.NotEqual(m_agentId))
+ if (inchatpack.AgentData.SessionID.NotEqual(c.m_sessionId) || inchatpack.AgentData.AgentID.NotEqual(c.m_agentId))
return;
ChatFromViewerPacket.ChatDataBlock packdata = inchatpack.ChatData;
@@ -8782,28 +8829,28 @@ namespace OpenSim.Region.ClientStack.LindenUDP
Channel = packdata.Channel,
Message = Utils.BytesToString(packdata.Message),
Type = (ChatTypeEnum)packdata.Type,
- Position = SceneAgent.AbsolutePosition,
+ Position = c.SceneAgent.AbsolutePosition,
- Scene = Scene,
- Sender = this
+ Scene = c.Scene,
+ Sender = c
};
- OnChatFromClient?.Invoke(this, args);
+ c.OnChatFromClient?.Invoke(c, args);
}
- private void HandlerAvatarPropertiesUpdate(Packet Pack)
+ private static void HandlerAvatarPropertiesUpdate(LLClientView c, Packet Pack)
{
- if (OnUpdateAvatarProperties is null)
+ if (c.OnUpdateAvatarProperties is null)
return;
AvatarPropertiesUpdatePacket avatarProps = (AvatarPropertiesUpdatePacket)Pack;
- if (avatarProps.AgentData.SessionID.NotEqual(m_sessionId) || avatarProps.AgentData.AgentID.NotEqual(m_agentId))
+ if (avatarProps.AgentData.SessionID.NotEqual(c.m_sessionId) || avatarProps.AgentData.AgentID.NotEqual(c.m_agentId))
return;
AvatarPropertiesUpdatePacket.PropertiesDataBlock Properties = avatarProps.PropertiesData;
UserProfileProperties UserProfile = new()
{
- UserId = AgentId,
+ UserId = c.AgentId,
WebUrl = Utils.BytesToString(Properties.ProfileURL),
ImageId = Properties.ImageID,
FirstLifeImageId = Properties.FLImageID,
@@ -8812,17 +8859,17 @@ namespace OpenSim.Region.ClientStack.LindenUDP
PublishProfile = Properties.AllowPublish,
PublishMature = Properties.MaturePublish
};
- OnUpdateAvatarProperties?.Invoke(this, UserProfile);
+ c.OnUpdateAvatarProperties?.Invoke(c, UserProfile);
}
- private void HandlerScriptDialogReply(Packet Pack)
+ private static void HandlerScriptDialogReply(LLClientView c, Packet Pack)
{
- if (OnChatFromClient is null)
+ if (c.OnChatFromClient is null)
return;
ScriptDialogReplyPacket rdialog = (ScriptDialogReplyPacket)Pack;
//m_log.DebugFormat("[CLIENT]: Received ScriptDialogReply from {0}", rdialog.Data.ObjectID);
- if (rdialog.AgentData.SessionID.NotEqual(m_sessionId) || rdialog.AgentData.AgentID.NotEqual(m_agentId))
+ if (rdialog.AgentData.SessionID.NotEqual(c.m_sessionId) || rdialog.AgentData.AgentID.NotEqual(c.m_agentId))
return;
ScriptDialogReplyPacket.DataBlock rdialogData = rdialog.Data;
@@ -8831,25 +8878,25 @@ namespace OpenSim.Region.ClientStack.LindenUDP
Channel = rdialogData.ChatChannel,
Message = Utils.BytesToString(rdialogData.ButtonLabel),
Type = ChatTypeEnum.Region, //Behaviour in SL is that the response can be heard from any distance
- Scene = Scene,
- Sender = this
+ Scene = c.Scene,
+ Sender = c
};
- OnChatFromClient?.Invoke(this, args);
+ c.OnChatFromClient?.Invoke(c, args);
}
- private void HandlerImprovedInstantMessage(Packet Pack)
+ private static void HandlerImprovedInstantMessage(LLClientView c, Packet Pack)
{
- if(OnInstantMessage is null)
+ if(c.OnInstantMessage is null)
return;
ImprovedInstantMessagePacket msgpack = (ImprovedInstantMessagePacket)Pack;
- if (msgpack.AgentData.SessionID.NotEqual(m_sessionId) || msgpack.AgentData.AgentID.NotEqual(m_agentId))
+ if (msgpack.AgentData.SessionID.NotEqual(c.m_sessionId) || msgpack.AgentData.AgentID.NotEqual(c.m_agentId))
return;
string IMfromName = Util.FieldToString(msgpack.MessageBlock.FromAgentName);
string IMmessage = Utils.BytesToString(msgpack.MessageBlock.Message);
- GridInstantMessage im = new(Scene,
+ GridInstantMessage im = new(c.Scene,
msgpack.AgentData.AgentID,
IMfromName,
msgpack.MessageBlock.ToAgentID,
@@ -8862,16 +8909,16 @@ namespace OpenSim.Region.ClientStack.LindenUDP
msgpack.MessageBlock.BinaryBucket,
true);
- OnInstantMessage?.Invoke(this, im);
+ c.OnInstantMessage?.Invoke(c, im);
}
- private void HandlerAcceptFriendship(Packet Pack)
+ private static void HandlerAcceptFriendship(LLClientView c, Packet Pack)
{
- if(OnApproveFriendRequest is null)
+ if(c.OnApproveFriendRequest is null)
return;
AcceptFriendshipPacket afriendpack = (AcceptFriendshipPacket)Pack;
- if (afriendpack.AgentData.SessionID.NotEqual(m_sessionId) || afriendpack.AgentData.AgentID.NotEqual(m_agentId))
+ if (afriendpack.AgentData.SessionID.NotEqual(c.m_sessionId) || afriendpack.AgentData.AgentID.NotEqual(c.m_agentId))
return;
// My guess is this is the folder to stick the calling card into
@@ -8883,62 +8930,60 @@ namespace OpenSim.Region.ClientStack.LindenUDP
callingCardFolders.Add(afriendpack.FolderData[fi].FolderID);
}
- OnApproveFriendRequest?.Invoke(this, transactionID, callingCardFolders);
+ c.OnApproveFriendRequest?.Invoke(c, transactionID, callingCardFolders);
}
- private void HandlerDeclineFriendship(Packet Pack)
+ private static void HandlerDeclineFriendship(LLClientView c, Packet Pack)
{
DeclineFriendshipPacket dfriendpack = (DeclineFriendshipPacket)Pack;
- if (dfriendpack.AgentData.SessionID.NotEqual(m_sessionId) || dfriendpack.AgentData.AgentID.NotEqual(m_agentId))
+ if (dfriendpack.AgentData.SessionID.NotEqual(c.m_sessionId) || dfriendpack.AgentData.AgentID.NotEqual(c.m_agentId))
return;
- OnDenyFriendRequest?.Invoke(this,
- dfriendpack.TransactionBlock.TransactionID,
- null);
+ c.OnDenyFriendRequest?.Invoke(c, dfriendpack.TransactionBlock.TransactionID, null);
}
- private void HandlerTerminateFriendship(Packet Pack)
+ private static void HandlerTerminateFriendship(LLClientView c, Packet Pack)
{
TerminateFriendshipPacket tfriendpack = (TerminateFriendshipPacket)Pack;
- if (tfriendpack.AgentData.SessionID.NotEqual(m_sessionId) || tfriendpack.AgentData.AgentID.NotEqual(m_agentId))
+ if (tfriendpack.AgentData.SessionID.NotEqual(c.m_sessionId) || tfriendpack.AgentData.AgentID.NotEqual(c.m_agentId))
return;
UUID exFriendID = tfriendpack.ExBlock.OtherID;
- FriendshipTermination TerminateFriendshipHandler = OnTerminateFriendship;
- TerminateFriendshipHandler?.Invoke(this, exFriendID);
+ FriendshipTermination TerminateFriendshipHandler = c.OnTerminateFriendship;
+ TerminateFriendshipHandler?.Invoke(c, exFriendID);
}
- private void HandleFindAgent(Packet packet)
+ private static void HandleFindAgent(LLClientView c, Packet packet)
{
FindAgentPacket FindAgent = (FindAgentPacket)packet;
- OnFindAgent?.Invoke(this,FindAgent.AgentBlock.Hunter,FindAgent.AgentBlock.Prey);
+ c.OnFindAgent?.Invoke(c, FindAgent.AgentBlock.Hunter,FindAgent.AgentBlock.Prey);
}
- private void HandleTrackAgent(Packet packet)
+ private static void HandleTrackAgent(LLClientView c, Packet packet)
{
TrackAgentPacket TrackAgent = (TrackAgentPacket)packet;
- if(TrackAgent.AgentData.AgentID.NotEqual(m_agentId) || TrackAgent.AgentData.SessionID.NotEqual(m_sessionId))
+ if(TrackAgent.AgentData.AgentID.NotEqual(c.m_agentId) || TrackAgent.AgentData.SessionID.NotEqual(c.m_sessionId))
return;
- OnTrackAgent?.Invoke(this,
+ c.OnTrackAgent?.Invoke(c,
TrackAgent.AgentData.AgentID,
TrackAgent.TargetData.PreyID);
}
- private void HandlerRezObject(Packet Pack)
+ private static void HandlerRezObject(LLClientView c, Packet Pack)
{
RezObjectPacket rezPacket = (RezObjectPacket)Pack;
- if (rezPacket.AgentData.SessionID.NotEqual(m_sessionId) || rezPacket.AgentData.AgentID.NotEqual(m_agentId))
+ if (rezPacket.AgentData.SessionID.NotEqual(c.m_sessionId) || rezPacket.AgentData.AgentID.NotEqual(c.m_agentId))
return;
UUID rezGroupID = rezPacket.AgentData.GroupID;
- if(!IsGroupMember(rezGroupID))
+ if(!c.IsGroupMember(rezGroupID))
rezGroupID = UUID.Zero;
- OnRezObject?.Invoke(this, rezPacket.InventoryData.ItemID, rezGroupID, rezPacket.RezData.RayEnd,
+ c.OnRezObject?.Invoke(c, rezPacket.InventoryData.ItemID, rezGroupID, rezPacket.RezData.RayEnd,
rezPacket.RezData.RayStart, rezPacket.RezData.RayTargetID,
rezPacket.RezData.BypassRaycast, rezPacket.RezData.RayEndIsIntersection,
rezPacket.RezData.RezSelected, rezPacket.RezData.RemoveItem,
@@ -8952,14 +8997,14 @@ namespace OpenSim.Region.ClientStack.LindenUDP
}
private Dictionary m_DeRezObjectDelayed;
- private void HandlerDeRezObject(Packet Pack)
+ private static void HandlerDeRezObject(LLClientView c, Packet Pack)
{
- if (OnDeRezObject is null)
+ if (c.OnDeRezObject is null)
return;
DeRezObjectPacket DeRezPacket = (DeRezObjectPacket)Pack;
DeRezObjectPacket.AgentDataBlock DeRezPacketAgentData = DeRezPacket.AgentData;
- if (DeRezPacketAgentData.AgentID.NotEqual(m_agentId) || DeRezPacketAgentData.SessionID.NotEqual(m_sessionId))
+ if (DeRezPacketAgentData.AgentID.NotEqual(c.m_agentId) || DeRezPacketAgentData.SessionID.NotEqual(c.m_sessionId))
return;
List deRezIDs;
@@ -8971,9 +9016,9 @@ namespace OpenSim.Region.ClientStack.LindenUDP
if (numberPackets > 1)
{
- m_DeRezObjectDelayed ??= new Dictionary();
+ c.m_DeRezObjectDelayed ??= new Dictionary();
- if (!m_DeRezObjectDelayed.TryGetValue(id, out DeRezObjectInfo info))
+ if (!c.m_DeRezObjectDelayed.TryGetValue(id, out DeRezObjectInfo info))
{
deRezIDs = new List(DeRezPacket.ObjectData.Length);
info = new DeRezObjectInfo
@@ -8981,7 +9026,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
rcvedpackets = new HashSet() { curPacket },
objectids = deRezIDs
};
- m_DeRezObjectDelayed[id] = info;
+ c.m_DeRezObjectDelayed[id] = info;
}
else
{
@@ -8999,7 +9044,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
if (info.rcvedpackets.Count < numberPackets)
return;
- m_DeRezObjectDelayed.Remove(id);
+ c.m_DeRezObjectDelayed.Remove(id);
info.objectids = null;
info.rcvedpackets = null;
}
@@ -9012,23 +9057,23 @@ namespace OpenSim.Region.ClientStack.LindenUDP
}
}
- OnDeRezObject?.Invoke(this, deRezIDs, DeRezPacketAgentBlock.GroupID,
+ c.OnDeRezObject?.Invoke(c, deRezIDs, DeRezPacketAgentBlock.GroupID,
action, DeRezPacketAgentBlock.DestinationID);
}
- private void HandlerRezRestoreToWorld(Packet Pack)
+ private static void HandlerRezRestoreToWorld(LLClientView c, Packet Pack)
{
RezRestoreToWorldPacket restore = (RezRestoreToWorldPacket)Pack;
- if (restore.AgentData.SessionID.NotEqual(m_sessionId) || restore.AgentData.AgentID.NotEqual(m_agentId))
+ if (restore.AgentData.SessionID.NotEqual(c.m_sessionId) || restore.AgentData.AgentID.NotEqual(c.m_agentId))
return;
- OnRezRestoreToWorld?.Invoke(this, restore.InventoryData.ItemID);
+ c.OnRezRestoreToWorld?.Invoke(c, restore.InventoryData.ItemID);
}
- private void HandlerModifyLand(Packet Pack)
+ private static void HandlerModifyLand(LLClientView c, Packet Pack)
{
- if (OnModifyTerrain is null)
+ if (c.OnModifyTerrain is null)
return;
ModifyLandPacket modify = (ModifyLandPacket)Pack;
@@ -9036,13 +9081,13 @@ namespace OpenSim.Region.ClientStack.LindenUDP
if (modify.ParcelData.Length == 0)
return;
- if (modify.AgentData.SessionID.NotEqual(m_sessionId) || modify.AgentData.AgentID.NotEqual(m_agentId))
+ if (modify.AgentData.SessionID.NotEqual(c.m_sessionId) || modify.AgentData.AgentID.NotEqual(c.m_agentId))
return;
//m_log.Info("[LAND]: LAND:" + modify.ToString());
for (int i = 0; i < modify.ParcelData.Length; i++)
{
- OnModifyTerrain?.Invoke(m_agentId, modify.ModifyBlock.Height, modify.ModifyBlock.Seconds,
+ c.OnModifyTerrain?.Invoke(c.m_agentId, modify.ModifyBlock.Height, modify.ModifyBlock.Seconds,
modify.ModifyBlockExtended[i].BrushSize, modify.ModifyBlock.Action,
modify.ParcelData[i].North, modify.ParcelData[i].West,
modify.ParcelData[i].South, modify.ParcelData[i].East,
@@ -9052,36 +9097,36 @@ namespace OpenSim.Region.ClientStack.LindenUDP
public uint m_viewerHandShakeFlags = 0;
- private void HandlerRegionHandshakeReply(Packet Pack)
+ private static void HandlerRegionHandshakeReply(LLClientView c, Packet Pack)
{
- if (OnRegionHandShakeReply is null)
+ if (c.OnRegionHandShakeReply is null)
return; // silence the warning
RegionHandshakeReplyPacket rsrpkt = (RegionHandshakeReplyPacket)Pack;
- if(rsrpkt.AgentData.AgentID.NotEqual(m_agentId) || rsrpkt.AgentData.SessionID.NotEqual(m_sessionId))
+ if(rsrpkt.AgentData.AgentID.NotEqual(c.m_agentId) || rsrpkt.AgentData.SessionID.NotEqual(c.m_sessionId))
return;
- if(m_supportViewerCache)
- m_viewerHandShakeFlags = rsrpkt.RegionInfo.Flags;
+ if(c.m_supportViewerCache)
+ c.m_viewerHandShakeFlags = rsrpkt.RegionInfo.Flags;
else
- m_viewerHandShakeFlags = 0;
+ c.m_viewerHandShakeFlags = 0;
- OnRegionHandShakeReply?.Invoke(this);
+ c.OnRegionHandShakeReply?.Invoke(c);
}
- private void HandlerAgentWearablesRequest(Packet Pack)
+ private static void HandlerAgentWearablesRequest(LLClientView c, Packet Pack)
{
- OnRequestWearables?.Invoke(this);
- OnRequestAvatarsData?.Invoke(this);
+ c.OnRequestWearables?.Invoke(c);
+ c.OnRequestAvatarsData?.Invoke(c);
}
- private void HandlerAgentSetAppearance(Packet Pack)
+ private static void HandlerAgentSetAppearance(LLClientView c, Packet Pack)
{
- if(OnSetAppearance is null)
+ if(c.OnSetAppearance is null)
return;
AgentSetAppearancePacket appear = (AgentSetAppearancePacket)Pack;
- if (appear.AgentData.SessionID.NotEqual(m_sessionId) || appear.AgentData.AgentID.NotEqual(m_agentId))
+ if (appear.AgentData.SessionID.NotEqual(c.m_sessionId) || appear.AgentData.AgentID.NotEqual(c.m_agentId))
return;
try
@@ -9103,24 +9148,22 @@ namespace OpenSim.Region.ClientStack.LindenUDP
TextureIndex=Convert.ToUInt32(appear.WearableData[i].TextureIndex)
};
- OnSetAppearance?.Invoke(this, te, visualparams,avSize, cacheitems);
+ c.OnSetAppearance?.Invoke(c, te, visualparams,avSize, cacheitems);
}
catch (Exception e)
{
- m_log.ErrorFormat(
- "[CLIENT VIEW]: AgentSetApperance packet handler threw an exception, {0}",
- e);
+ m_log.Error($"[CLIENT VIEW]: AgentSetApperance packet handler threw an exception, {e.Message}");
}
}
- private void HandlerAgentIsNowWearing(Packet Pack)
+ private static void HandlerAgentIsNowWearing(LLClientView c, Packet Pack)
{
- if (OnAvatarNowWearing is null)
+ if (c.OnAvatarNowWearing is null)
return;
AgentIsNowWearingPacket nowWearing = (AgentIsNowWearingPacket)Pack;
- if (nowWearing.AgentData.SessionID.NotEqual(m_sessionId) || nowWearing.AgentData.AgentID.NotEqual(m_agentId))
+ if (nowWearing.AgentData.SessionID.NotEqual(c.m_sessionId) || nowWearing.AgentData.AgentID.NotEqual(c.m_agentId))
return;
AvatarWearingArgs wearingArgs = new();
@@ -9132,166 +9175,164 @@ namespace OpenSim.Region.ClientStack.LindenUDP
wearingArgs.NowWearing.Add(wearable);
}
- OnAvatarNowWearing?.Invoke(this, wearingArgs);
+ c.OnAvatarNowWearing?.Invoke(c, wearingArgs);
}
- private void HandlerRezSingleAttachmentFromInv(Packet Pack)
+ private static void HandlerRezSingleAttachmentFromInv(LLClientView c, Packet Pack)
{
RezSingleAttachmentFromInvPacket rez = (RezSingleAttachmentFromInvPacket)Pack;
- if (rez.AgentData.SessionID.NotEqual(m_sessionId) || rez.AgentData.AgentID.NotEqual(m_agentId))
+ if (rez.AgentData.SessionID.NotEqual(c.m_sessionId) || rez.AgentData.AgentID.NotEqual(c.m_agentId))
return;
- OnRezSingleAttachmentFromInv?.Invoke(this, rez.ObjectData.ItemID,
+ c.OnRezSingleAttachmentFromInv?.Invoke(c, rez.ObjectData.ItemID,
rez.ObjectData.AttachmentPt);
}
- private void HandleRezMultipleAttachmentsFromInv(Packet Pack)
+ private static void HandleRezMultipleAttachmentsFromInv(LLClientView c, Packet Pack)
{
- if(OnRezMultipleAttachmentsFromInv is null)
+ if(c.OnRezMultipleAttachmentsFromInv is null)
return;
RezMultipleAttachmentsFromInvPacket rez = (RezMultipleAttachmentsFromInvPacket)Pack;
RezMultipleAttachmentsFromInvPacket.AgentDataBlock rezAgentData = rez.AgentData;
- if (rezAgentData.SessionID.NotEqual(m_sessionId) || rezAgentData.AgentID.NotEqual(m_agentId))
+ if (rezAgentData.SessionID.NotEqual(c.m_sessionId) || rezAgentData.AgentID.NotEqual(c.m_agentId))
return;
List> rezlist = new();
foreach (RezMultipleAttachmentsFromInvPacket.ObjectDataBlock obj in rez.ObjectData)
rezlist.Add(new KeyValuePair(obj.ItemID, obj.AttachmentPt));
- OnRezMultipleAttachmentsFromInv?.Invoke(this, rezlist);
+ c.OnRezMultipleAttachmentsFromInv?.Invoke(c, rezlist);
}
- private void HandleDetachAttachmentIntoInv(Packet Pack)
+ private static void HandleDetachAttachmentIntoInv(LLClientView c, Packet Pack)
{
- if (OnDetachAttachmentIntoInv is null)
+ if (c.OnDetachAttachmentIntoInv is null)
return;
- DetachAttachmentIntoInvPacket detachtoInv = (DetachAttachmentIntoInvPacket)Pack;
- if(detachtoInv.ObjectData.AgentID.NotEqual(m_agentId))
- return;
+ DetachAttachmentIntoInvPacket detachtoInv = (DetachAttachmentIntoInvPacket)Pack;
+ if(detachtoInv.ObjectData.AgentID.NotEqual(c.m_agentId))
+ return;
- OnDetachAttachmentIntoInv?.Invoke(detachtoInv.ObjectData.ItemID, this);
+ c.OnDetachAttachmentIntoInv?.Invoke(detachtoInv.ObjectData.ItemID, c);
}
- private void HandleObjectAttach(Packet Pack)
+ private static void HandleObjectAttach(LLClientView c, Packet Pack)
{
- if (OnObjectAttach is null)
+ if (c.OnObjectAttach is null)
return;
ObjectAttachPacket att = (ObjectAttachPacket)Pack;
- if (att.AgentData.SessionID.NotEqual(m_sessionId) || att.AgentData.AgentID.NotEqual(m_agentId))
+ if (att.AgentData.SessionID.NotEqual(c.m_sessionId) || att.AgentData.AgentID.NotEqual(c.m_agentId))
return;
if (att.ObjectData.Length > 0)
- OnObjectAttach?.Invoke(this, att.ObjectData[0].ObjectLocalID, att.AgentData.AttachmentPoint, false);
+ c.OnObjectAttach?.Invoke(c, att.ObjectData[0].ObjectLocalID, att.AgentData.AttachmentPoint, false);
}
- private void HandleObjectDetach(Packet Pack)
+ private static void HandleObjectDetach(LLClientView c, Packet Pack)
{
- if(OnObjectDetach is null)
+ if(c.OnObjectDetach is null)
return;
ObjectDetachPacket dett = (ObjectDetachPacket)Pack;
- if (dett.AgentData.SessionID.NotEqual(m_sessionId) || dett.AgentData.AgentID.NotEqual(m_agentId))
+ if (dett.AgentData.SessionID.NotEqual(c.m_sessionId) || dett.AgentData.AgentID.NotEqual(c.m_agentId))
return;
for (int j = 0; j < dett.ObjectData.Length; j++)
{
uint obj = dett.ObjectData[j].ObjectLocalID;
- OnObjectDetach?.Invoke(obj, this);
+ c.OnObjectDetach?.Invoke(obj, c);
}
}
- private void HandleObjectDrop(Packet Pack)
+ private static void HandleObjectDrop(LLClientView c, Packet Pack)
{
- if(OnObjectDrop is null)
+ if(c.OnObjectDrop is null)
return;
ObjectDropPacket dropp = (ObjectDropPacket)Pack;
- if (dropp.AgentData.SessionID.NotEqual(m_sessionId) || dropp.AgentData.AgentID.NotEqual(m_agentId))
+ if (dropp.AgentData.SessionID.NotEqual(c.m_sessionId) || dropp.AgentData.AgentID.NotEqual(c.m_agentId))
return;
for (int j = 0; j < dropp.ObjectData.Length; j++)
{
uint obj = dropp.ObjectData[j].ObjectLocalID;
- OnObjectDrop?.Invoke(obj, this);
+ c.OnObjectDrop?.Invoke(obj, c);
}
}
- private void HandleSetAlwaysRun(Packet Pack)
+ private static void HandleSetAlwaysRun(LLClientView c, Packet Pack)
{
SetAlwaysRunPacket run = (SetAlwaysRunPacket)Pack;
- if (run.AgentData.SessionID.NotEqual(m_sessionId) || run.AgentData.AgentID.NotEqual(m_agentId))
- return;
-
- OnSetAlwaysRun?.Invoke(this, run.AgentData.AlwaysRun);
+ if (run.AgentData.SessionID.Equals(c.m_sessionId) && run.AgentData.AgentID.Equals(c.m_agentId))
+ c.OnSetAlwaysRun?.Invoke(c, run.AgentData.AlwaysRun);
}
- private void HandleCompleteAgentMovement(Packet Pack)
+ private static void HandleCompleteAgentMovement(LLClientView c, Packet Pack)
{
//m_log.DebugFormat("[LLClientView] HandleCompleteAgentMovement");
CompleteAgentMovementPacket cmp = (CompleteAgentMovementPacket)Pack;
- if(cmp.AgentData.AgentID.NotEqual(m_agentId) || cmp.AgentData.SessionID.NotEqual(m_sessionId) || cmp.AgentData.CircuitCode != m_circuitCode)
- return;
-
- OnCompleteMovementToRegion?.Invoke(this, true);
+ if(cmp.AgentData.CircuitCode == c.m_circuitCode &&
+ cmp.AgentData.AgentID.Equals(c.m_agentId) &&
+ cmp.AgentData.SessionID.Equals(c.m_sessionId))
+ c.OnCompleteMovementToRegion?.Invoke(c, true);
}
- private void HandleAgentAnimation(Packet Pack)
+ private static void HandleAgentAnimation(LLClientView c, Packet Pack)
{
- if(OnChangeAnim is null)
+ if(c.OnChangeAnim is null)
return;
AgentAnimationPacket AgentAni = (AgentAnimationPacket)Pack;
- if (AgentAni.AgentData.SessionID.NotEqual(m_sessionId) || AgentAni.AgentData.AgentID.NotEqual(m_agentId))
+ if (AgentAni.AgentData.SessionID.NotEqual(c.m_sessionId) || AgentAni.AgentData.AgentID.NotEqual(c.m_agentId))
return;
for (int i = 0; i < AgentAni.AnimationList.Length; i++)
- OnChangeAnim?.Invoke(AgentAni.AnimationList[i].AnimID, AgentAni.AnimationList[i].StartAnim, false);
+ c.OnChangeAnim?.Invoke(AgentAni.AnimationList[i].AnimID, AgentAni.AnimationList[i].StartAnim, false);
- OnChangeAnim?.Invoke(UUID.Zero, false, true);
+ c.OnChangeAnim?.Invoke(UUID.Zero, false, true);
}
- private void HandleAgentRequestSit(Packet Pack)
+ private static void HandleAgentRequestSit(LLClientView c, Packet Pack)
{
- if (OnAgentRequestSit is null)
+ if (c.OnAgentRequestSit is null)
return;
AgentRequestSitPacket agentRequestSit = (AgentRequestSitPacket)Pack;
- if (agentRequestSit.AgentData.SessionID.NotEqual(m_sessionId) || agentRequestSit.AgentData.AgentID.NotEqual(m_agentId))
+ if (agentRequestSit.AgentData.SessionID.NotEqual(c.m_sessionId) || agentRequestSit.AgentData.AgentID.NotEqual(c.m_agentId))
return;
- if (SceneAgent.IsChildAgent)
+ if (c.SceneAgent.IsChildAgent)
{
- SendCantSitBecauseChildAgentResponse();
+ c.SendCantSitBecauseChildAgentResponse();
return;
}
- OnAgentRequestSit?.Invoke(this, agentRequestSit.AgentData.AgentID,
+ c.OnAgentRequestSit?.Invoke(c, agentRequestSit.AgentData.AgentID,
agentRequestSit.TargetObject.TargetID, agentRequestSit.TargetObject.Offset);
}
- private void HandleAgentSit(Packet Pack)
+ private static void HandleAgentSit(LLClientView c, Packet Pack)
{
- if (OnAgentSit is null)
+ if (c.OnAgentSit is null)
return;
AgentSitPacket agentSit = (AgentSitPacket)Pack;
- if (agentSit.AgentData.SessionID.NotEqual(m_sessionId) || agentSit.AgentData.AgentID.NotEqual(m_agentId))
+ if (agentSit.AgentData.SessionID.NotEqual(c.m_sessionId) || agentSit.AgentData.AgentID.NotEqual(c.m_agentId))
return;
- if (SceneAgent.IsChildAgent)
+ if (c.SceneAgent.IsChildAgent)
{
- SendCantSitBecauseChildAgentResponse();
+ c.SendCantSitBecauseChildAgentResponse();
return;
}
- OnAgentSit?.Invoke(this, agentSit.AgentData.AgentID);
+ c.OnAgentSit?.Invoke(c, agentSit.AgentData.AgentID);
}
///
@@ -9299,64 +9340,64 @@ namespace OpenSim.Region.ClientStack.LindenUDP
///
private void SendCantSitBecauseChildAgentResponse()
{
- SendAlertMessage("Try moving closer. Can't sit on object because it is not in the same region as you.");
+ SendAlertMessage("Can't sit on object because it is not in the same region as you.");
}
- private void HandleSoundTrigger(Packet Pack)
+ private static void HandleSoundTrigger(LLClientView c, Packet Pack)
{
SoundTriggerPacket soundTriggerPacket = (SoundTriggerPacket)Pack;
// UUIDS are sent as zeroes by the client, substitute agent's id
- OnSoundTrigger?.Invoke(soundTriggerPacket.SoundData.SoundID, m_agentId,
- m_agentId, m_agentId,
+ c.OnSoundTrigger?.Invoke(soundTriggerPacket.SoundData.SoundID, c.m_agentId,
+ c.m_agentId, c.m_agentId,
soundTriggerPacket.SoundData.Gain, soundTriggerPacket.SoundData.Position,
soundTriggerPacket.SoundData.Handle);
}
- private void HandleAvatarPickerRequest(Packet Pack)
+ private static void HandleAvatarPickerRequest(LLClientView c, Packet Pack)
{
AvatarPickerRequestPacket avRequestQuery = (AvatarPickerRequestPacket)Pack;
- if (avRequestQuery.AgentData.SessionID.NotEqual(m_sessionId) || avRequestQuery.AgentData.AgentID.NotEqual(m_agentId))
+ if (avRequestQuery.AgentData.SessionID.NotEqual(c.m_sessionId) || avRequestQuery.AgentData.AgentID.NotEqual(c.m_agentId))
return;
AvatarPickerRequestPacket.AgentDataBlock Requestdata = avRequestQuery.AgentData;
AvatarPickerRequestPacket.DataBlock querydata = avRequestQuery.Data;
//m_log.Debug("Agent Sends:" + Utils.BytesToString(querydata.Name));
- OnAvatarPickerRequest?.Invoke(this, Requestdata.AgentID, Requestdata.QueryID,
+ c.OnAvatarPickerRequest?.Invoke(c, Requestdata.AgentID, Requestdata.QueryID,
Utils.BytesToString(querydata.Name));
}
- private void HandleAgentDataUpdateRequest(Packet Pack)
+ private static void HandleAgentDataUpdateRequest(LLClientView c, Packet Pack)
{
AgentDataUpdateRequestPacket avRequestDataUpdatePacket = (AgentDataUpdateRequestPacket)Pack;
- if (avRequestDataUpdatePacket.AgentData.SessionID.NotEqual(m_sessionId) || avRequestDataUpdatePacket.AgentData.AgentID.NotEqual(m_agentId))
+ if (avRequestDataUpdatePacket.AgentData.SessionID.NotEqual(c.m_sessionId) || avRequestDataUpdatePacket.AgentData.AgentID.NotEqual(c.m_agentId))
return;
- OnAgentDataUpdateRequest?.Invoke(this, avRequestDataUpdatePacket.AgentData.AgentID, avRequestDataUpdatePacket.AgentData.SessionID);
+ c.OnAgentDataUpdateRequest?.Invoke(c, avRequestDataUpdatePacket.AgentData.AgentID, avRequestDataUpdatePacket.AgentData.SessionID);
}
- private void HandleUserInfoRequest(Packet Pack)
+ private static void HandleUserInfoRequest(LLClientView c, Packet _)
{
- if (OnUserInfoRequest != null)
+ if (c.OnUserInfoRequest != null)
{
- OnUserInfoRequest(this);
+ c.OnUserInfoRequest(c);
}
else
{
- SendUserInfoReply(false, true, "");
+ c.SendUserInfoReply(false, true, "");
}
}
- private void HandleUpdateUserInfo(Packet Pack)
+ private static void HandleUpdateUserInfo(LLClientView c, Packet Pack)
{
- if(OnUpdateUserInfo is null)
+ if(c.OnUpdateUserInfo is null)
return;
UpdateUserInfoPacket updateUserInfo = (UpdateUserInfoPacket)Pack;
- if (updateUserInfo.AgentData.SessionID.NotEqual(m_sessionId) || updateUserInfo.AgentData.AgentID.NotEqual(m_agentId))
+ if (updateUserInfo.AgentData.SessionID.NotEqual(c.m_sessionId) || updateUserInfo.AgentData.AgentID.NotEqual(c.m_agentId))
return;
bool visible = true;
@@ -9364,15 +9405,15 @@ namespace OpenSim.Region.ClientStack.LindenUDP
if (DirectoryVisibility == "hidden")
visible = false;
- OnUpdateUserInfo?.Invoke( updateUserInfo.UserData.IMViaEMail, visible, this);
+ c.OnUpdateUserInfo?.Invoke( updateUserInfo.UserData.IMViaEMail, visible, c);
}
- private void HandleSetStartLocationRequest(Packet Pack)
+ private static void HandleSetStartLocationRequest(LLClientView c, Packet Pack)
{
SetStartLocationRequestPacket avSetStartLocationRequestPacket = (SetStartLocationRequestPacket)Pack;
- if (avSetStartLocationRequestPacket.AgentData.SessionID.NotEqual(m_sessionId) ||
- avSetStartLocationRequestPacket.AgentData.AgentID.NotEqual(m_agentId))
+ if (avSetStartLocationRequestPacket.AgentData.SessionID.NotEqual(c.m_sessionId) ||
+ avSetStartLocationRequestPacket.AgentData.AgentID.NotEqual(c.m_agentId))
return;
float packX = avSetStartLocationRequestPacket.StartLocationData.LocationPos.X;
@@ -9380,7 +9421,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
// Linden Client limitation..
if (packX == 255.5f || packY == 255.5f)
{
- if (((Scene)m_scene).TryGetScenePresence(m_agentId, out ScenePresence avatar))
+ if (c.m_scene.TryGetScenePresence(c.m_agentId, out ScenePresence avatar))
{
if (packX == 255.5f)
{
@@ -9393,47 +9434,47 @@ namespace OpenSim.Region.ClientStack.LindenUDP
}
}
- OnSetStartLocationRequest?.Invoke(this, 0, avSetStartLocationRequestPacket.StartLocationData.LocationPos,
+ c.OnSetStartLocationRequest?.Invoke(c, 0, avSetStartLocationRequestPacket.StartLocationData.LocationPos,
avSetStartLocationRequestPacket.StartLocationData.LocationLookAt,
avSetStartLocationRequestPacket.StartLocationData.LocationID);
}
- private void HandleAgentThrottle(Packet Pack)
+ private static void HandleAgentThrottle(LLClientView c, Packet Pack)
{
AgentThrottlePacket atpack = (AgentThrottlePacket)Pack;
- if (atpack.AgentData.SessionID.NotEqual(m_sessionId) || atpack.AgentData.AgentID.NotEqual(m_agentId))
+ if (atpack.AgentData.SessionID.NotEqual(c.m_sessionId) || atpack.AgentData.AgentID.NotEqual(c.m_agentId))
return;
- m_udpClient.SetThrottles(atpack.Throttle.Throttles);
- OnUpdateThrottles?.Invoke();
+ c.m_udpClient.SetThrottles(atpack.Throttle.Throttles);
+ c.OnUpdateThrottles?.Invoke();
}
- private void HandleAgentPause(Packet Pack)
+ private static void HandleAgentPause(LLClientView c, Packet Pack)
{
- m_udpClient.IsPaused = true;
+ c.m_udpClient.IsPaused = true;
}
- private void HandleAgentResume(Packet Pack)
+ private static void HandleAgentResume(LLClientView c, Packet Pack)
{
- m_udpClient.IsPaused = false;
- m_udpServer.SendPing(m_udpClient);
+ c.m_udpClient.IsPaused = false;
+ c.m_udpServer.SendPing(c.m_udpClient);
}
- private void HandleForceScriptControlRelease(Packet Pack)
+ private static void HandleForceScriptControlRelease(LLClientView c, Packet _)
{
- OnForceReleaseControls?.Invoke(this, m_agentId);
+ c.OnForceReleaseControls?.Invoke(c, c.m_agentId);
}
#endregion Scene/Avatar
#region Objects/m_sceneObjects
- private void HandleObjectLink(Packet Pack)
+ private static void HandleObjectLink(LLClientView c, Packet Pack)
{
ObjectLinkPacket link = (ObjectLinkPacket)Pack;
- if (link.AgentData.SessionID.NotEqual(m_sessionId) || link.AgentData.AgentID.NotEqual(m_agentId))
+ if (link.AgentData.SessionID.NotEqual(c.m_sessionId) || link.AgentData.AgentID.NotEqual(c.m_agentId))
return;
uint parentprimid = 0;
@@ -9447,14 +9488,14 @@ namespace OpenSim.Region.ClientStack.LindenUDP
childrenprims.Add(link.ObjectData[i].ObjectLocalID);
}
}
- OnLinkObjects?.Invoke(this, parentprimid, childrenprims);
+ c.OnLinkObjects?.Invoke(c, parentprimid, childrenprims);
}
- private void HandleObjectDelink(Packet Pack)
+ private static void HandleObjectDelink(LLClientView c, Packet Pack)
{
ObjectDelinkPacket delink = (ObjectDelinkPacket)Pack;
- if (delink.AgentData.SessionID.NotEqual(m_sessionId) || delink.AgentData.AgentID.NotEqual(m_agentId))
+ if (delink.AgentData.SessionID.NotEqual(c.m_sessionId) || delink.AgentData.AgentID.NotEqual(c.m_agentId))
return;
// It appears the prim at index 0 is not always the root prim (for
@@ -9467,31 +9508,31 @@ namespace OpenSim.Region.ClientStack.LindenUDP
prims.Add(delink.ObjectData[i].ObjectLocalID);
}
- OnDelinkObjects?.Invoke(prims, this);
+ c.OnDelinkObjects?.Invoke(prims, c);
}
- private void HandleObjectAdd(Packet Pack)
+ private static void HandleObjectAdd(LLClientView c, Packet Pack)
{
ObjectAddPacket addPacket = (ObjectAddPacket)Pack;
- if (addPacket.AgentData.SessionID.NotEqual(m_sessionId) || addPacket.AgentData.AgentID.NotEqual(m_agentId))
+ if (addPacket.AgentData.SessionID.NotEqual(c.m_sessionId) || addPacket.AgentData.AgentID.NotEqual(c.m_agentId))
return;
ObjectAddPacket.ObjectDataBlock datablk = addPacket.ObjectData;
PrimitiveBaseShape shape = GetShapeFromAddPacket(addPacket);
- OnAddPrim?.Invoke(m_agentId, addPacket.AgentData.GroupID, datablk.RayEnd,
+ c.OnAddPrim?.Invoke(c.m_agentId, addPacket.AgentData.GroupID, datablk.RayEnd,
datablk.Rotation, shape,
datablk.BypassRaycast, datablk.RayStart, datablk.RayTargetID, datablk.RayEndIsIntersection,
datablk.AddFlags);
}
- private void HandleObjectShape(Packet Pack)
+ private static void HandleObjectShape(LLClientView c, Packet Pack)
{
- if(OnUpdatePrimShape is null)
+ if(c.OnUpdatePrimShape is null)
return;
ObjectShapePacket shapePacket = (ObjectShapePacket)Pack;
- if (shapePacket.AgentData.SessionID.NotEqual(m_sessionId) || shapePacket.AgentData.AgentID.NotEqual(m_agentId))
+ if (shapePacket.AgentData.SessionID.NotEqual(c.m_sessionId) || shapePacket.AgentData.AgentID.NotEqual(c.m_agentId))
return;
for (int i = 0; i < shapePacket.ObjectData.Length; i++)
@@ -9520,144 +9561,141 @@ namespace OpenSim.Region.ClientStack.LindenUDP
ProfileHollow = shapePacket.ObjectData[i].ProfileHollow
};
- OnUpdatePrimShape?.Invoke(m_agentId, id, shapeData);
+ c.OnUpdatePrimShape?.Invoke(c.m_agentId, id, shapeData);
}
}
- private void HandleObjectExtraParams(Packet Pack)
+ private static void HandleObjectExtraParams(LLClientView c, Packet Pack)
{
ObjectExtraParamsPacket extraPar = (ObjectExtraParamsPacket)Pack;
- if (extraPar.AgentData.SessionID.NotEqual(m_sessionId) || extraPar.AgentData.AgentID.NotEqual(m_agentId))
+ if (extraPar.AgentData.SessionID.NotEqual(c.m_sessionId) || extraPar.AgentData.AgentID.NotEqual(c.m_agentId))
return;
- ObjectExtraParams handlerUpdateExtraParams = OnUpdateExtraParams;
- if (handlerUpdateExtraParams != null)
+ if (c.OnUpdateExtraParams != null)
{
for (int i = 0; i < extraPar.ObjectData.Length; i++)
{
- OnUpdateExtraParams?.Invoke(m_agentId, extraPar.ObjectData[i].ObjectLocalID,
+ c.OnUpdateExtraParams?.Invoke(c.m_agentId, extraPar.ObjectData[i].ObjectLocalID,
extraPar.ObjectData[i].ParamType,
extraPar.ObjectData[i].ParamInUse, extraPar.ObjectData[i].ParamData);
}
}
}
- private void HandleObjectDuplicate(Packet Pack)
+ private static void HandleObjectDuplicate(LLClientView c, Packet Pack)
{
- if(OnObjectDuplicate is null)
+ if(c.OnObjectDuplicate is null)
return;
ObjectDuplicatePacket dupe = (ObjectDuplicatePacket)Pack;
- if (dupe.AgentData.SessionID.NotEqual(m_sessionId) || dupe.AgentData.AgentID.NotEqual(m_agentId))
+ if (dupe.AgentData.SessionID.NotEqual(c.m_sessionId) || dupe.AgentData.AgentID.NotEqual(c.m_agentId))
return;
-// ObjectDuplicatePacket.AgentDataBlock AgentandGroupData = dupe.AgentData;
+ UUID rezGroupID = c.IsGroupMember(dupe.AgentData.GroupID) ? dupe.AgentData.GroupID : UUID.Zero;
+ //ObjectDuplicatePacket.AgentDataBlock AgentandGroupData = dupe.AgentData;
for (int i = 0; i < dupe.ObjectData.Length; i++)
{
- UUID rezGroupID = dupe.AgentData.GroupID;
- if(!IsGroupMember(rezGroupID))
- rezGroupID = UUID.Zero;
- OnObjectDuplicate?.Invoke(dupe.ObjectData[i].ObjectLocalID, dupe.SharedData.Offset,
- dupe.SharedData.DuplicateFlags, m_agentId,
+ c.OnObjectDuplicate?.Invoke(dupe.ObjectData[i].ObjectLocalID, dupe.SharedData.Offset,
+ dupe.SharedData.DuplicateFlags, c.m_agentId,
rezGroupID);
}
}
- private void HandleRequestMultipleObjects(Packet Pack)
+ private static void HandleRequestMultipleObjects(LLClientView c, Packet Pack)
{
- if (OnObjectRequest is null)
+ if (c.OnObjectRequest is null)
return;
RequestMultipleObjectsPacket incomingRequest = (RequestMultipleObjectsPacket)Pack;
- if (incomingRequest.AgentData.SessionID.NotEqual(m_sessionId) || incomingRequest.AgentData.AgentID.NotEqual(m_agentId))
+ if (incomingRequest.AgentData.SessionID.NotEqual(c.m_sessionId) || incomingRequest.AgentData.AgentID.NotEqual(c.m_agentId))
return;
for (int i = 0; i < incomingRequest.ObjectData.Length; i++)
- OnObjectRequest?.Invoke(incomingRequest.ObjectData[i].ID, this);
+ c.OnObjectRequest?.Invoke(incomingRequest.ObjectData[i].ID, c);
}
- private void HandleObjectSelect(Packet Pack)
+ private static void HandleObjectSelect(LLClientView c, Packet Pack)
{
- if(OnObjectSelect is null)
+ if(c.OnObjectSelect is null)
return;
ObjectSelectPacket incomingselect = (ObjectSelectPacket)Pack;
- if (incomingselect.AgentData.SessionID.NotEqual(m_sessionId) || incomingselect.AgentData.AgentID.NotEqual(m_agentId))
+ if (incomingselect.AgentData.SessionID.NotEqual(c.m_sessionId) || incomingselect.AgentData.AgentID.NotEqual(c.m_agentId))
return;
List thisSelection = new();
for (int i = 0; i < incomingselect.ObjectData.Length; i++)
thisSelection.Add(incomingselect.ObjectData[i].ObjectLocalID);
- OnObjectSelect?.Invoke(thisSelection, this);
+ c.OnObjectSelect?.Invoke(thisSelection, c);
}
- private void HandleObjectDeselect(Packet Pack)
+ private static void HandleObjectDeselect(LLClientView c, Packet Pack)
{
- if(OnObjectDeselect is null)
+ if(c.OnObjectDeselect is null)
return;
ObjectDeselectPacket incomingdeselect = (ObjectDeselectPacket)Pack;
- if (incomingdeselect.AgentData.SessionID.NotEqual(m_sessionId) || incomingdeselect.AgentData.AgentID.NotEqual(m_agentId))
+ if (incomingdeselect.AgentData.SessionID.NotEqual(c.m_sessionId) || incomingdeselect.AgentData.AgentID.NotEqual(c.m_agentId))
return;
for (int i = 0; i < incomingdeselect.ObjectData.Length; i++)
{
- OnObjectDeselect?.Invoke(incomingdeselect.ObjectData[i].ObjectLocalID, this);
+ c.OnObjectDeselect?.Invoke(incomingdeselect.ObjectData[i].ObjectLocalID, c);
}
}
- private void HandleObjectPosition(Packet Pack)
+ private static void HandleObjectPosition(LLClientView c, Packet Pack)
{
- if (OnUpdatePrimGroupPosition is null)
+ if (c.OnUpdatePrimGroupPosition is null)
return;
// DEPRECATED: but till libsecondlife removes it, people will use it
ObjectPositionPacket position = (ObjectPositionPacket)Pack;
- if (position.AgentData.SessionID.NotEqual(m_sessionId) || position.AgentData.AgentID.NotEqual(m_agentId))
+ if (position.AgentData.SessionID.NotEqual(c.m_sessionId) || position.AgentData.AgentID.NotEqual(c.m_agentId))
return;
for (int i = 0; i < position.ObjectData.Length; i++)
- OnUpdatePrimGroupPosition?.Invoke(position.ObjectData[i].ObjectLocalID, position.ObjectData[i].Position, this);
+ c.OnUpdatePrimGroupPosition?.Invoke(position.ObjectData[i].ObjectLocalID, position.ObjectData[i].Position, c);
}
- private void HandleObjectScale(Packet Pack)
+ private static void HandleObjectScale(LLClientView c, Packet Pack)
{
- if (OnUpdatePrimGroupScale is null)
+ if (c.OnUpdatePrimGroupScale is null)
return;
// DEPRECATED: but till libsecondlife removes it, people will use it
ObjectScalePacket scale = (ObjectScalePacket)Pack;
- if (scale.AgentData.SessionID.NotEqual(m_sessionId) || scale.AgentData.AgentID.NotEqual(m_agentId))
+ if (scale.AgentData.SessionID.NotEqual(c.m_sessionId) || scale.AgentData.AgentID.NotEqual(c.m_agentId))
return;
for (int i = 0; i < scale.ObjectData.Length; i++)
- OnUpdatePrimGroupScale?.Invoke(scale.ObjectData[i].ObjectLocalID, scale.ObjectData[i].Scale, this);
+ c.OnUpdatePrimGroupScale?.Invoke(scale.ObjectData[i].ObjectLocalID, scale.ObjectData[i].Scale, c);
}
- private void HandleObjectRotation(Packet Pack)
+ private static void HandleObjectRotation(LLClientView c, Packet Pack)
{
- if (OnUpdatePrimGroupRotation is null)
+ if (c.OnUpdatePrimGroupRotation is null)
return;
// DEPRECATED: but till libsecondlife removes it, people will use it
ObjectRotationPacket rotation = (ObjectRotationPacket)Pack;
- if (rotation.AgentData.SessionID.NotEqual(m_sessionId) || rotation.AgentData.AgentID.NotEqual(m_agentId))
+ if (rotation.AgentData.SessionID.NotEqual(c.m_sessionId) || rotation.AgentData.AgentID.NotEqual(c.m_agentId))
return;
for (int i = 0; i < rotation.ObjectData.Length; i++)
- OnUpdatePrimGroupRotation?.Invoke(rotation.ObjectData[i].ObjectLocalID, rotation.ObjectData[i].Rotation, this);
+ c.OnUpdatePrimGroupRotation?.Invoke(rotation.ObjectData[i].ObjectLocalID, rotation.ObjectData[i].Rotation, c);
}
- private void HandleObjectFlagUpdate(Packet Pack)
+ private static void HandleObjectFlagUpdate(LLClientView c, Packet Pack)
{
- if(OnUpdatePrimFlags is null)
+ if(c.OnUpdatePrimFlags is null)
return;
ObjectFlagUpdatePacket flags = (ObjectFlagUpdatePacket)Pack;
- if (flags.AgentData.SessionID.NotEqual(m_sessionId) || flags.AgentData.AgentID.NotEqual(m_agentId))
+ if (flags.AgentData.SessionID.NotEqual(c.m_sessionId) || flags.AgentData.AgentID.NotEqual(c.m_agentId))
return;
// byte[] data = Pack.ToBytes();
@@ -9670,7 +9708,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
bool IsPhantom = (data[48] != 0) ? true : false;
handlerUpdatePrimFlags(flags.AgentData.ObjectLocalID, UsePhysics, IsTemporary, IsPhantom, this);
*/
- bool UsePhysics = flags.AgentData.UsePhysics;
+ bool UsePhysics = flags.AgentData.UsePhysics;
bool IsPhantom = flags.AgentData.IsPhantom;
bool IsTemporary = flags.AgentData.IsTemporary;
ObjectFlagUpdatePacket.ExtraPhysicsBlock[] blocks = flags.ExtraPhysics;
@@ -9690,29 +9728,26 @@ namespace OpenSim.Region.ClientStack.LindenUDP
physdata.GravitationModifier = phsblock.GravityMultiplier;
}
- OnUpdatePrimFlags?.Invoke(flags.AgentData.ObjectLocalID, UsePhysics, IsTemporary, IsPhantom, physdata, this);
+ c.OnUpdatePrimFlags?.Invoke(flags.AgentData.ObjectLocalID, UsePhysics, IsTemporary, IsPhantom, physdata, c);
}
Dictionary objImageSeqs = null;
double lastobjImageSeqsMS = 0.0;
- private void HandleObjectImage(Packet Pack)
+ private static void HandleObjectImage(LLClientView c, Packet Pack)
{
- if (OnUpdatePrimTexture is null)
+ if (c.OnUpdatePrimTexture is null)
return;
ObjectImagePacket imagePack = (ObjectImagePacket)Pack;
- if (imagePack.AgentData.SessionID.NotEqual(m_sessionId) || imagePack.AgentData.AgentID.NotEqual(m_agentId))
+ if (imagePack.AgentData.SessionID.NotEqual(c.m_sessionId) || imagePack.AgentData.AgentID.NotEqual(c.m_agentId))
return;
double now = Util.GetTimeStampMS();
- if(objImageSeqs is null || ( now - lastobjImageSeqsMS > 30000.0))
- {
- objImageSeqs = null; // yeah i know superstition...
- objImageSeqs = new Dictionary(16);
- }
+ if(c.objImageSeqs is null || ( now - c.lastobjImageSeqsMS > 30000.0))
+ c.objImageSeqs = new Dictionary(16);
- lastobjImageSeqsMS = now;
+ c.lastobjImageSeqsMS = now;
uint seq = Pack.Header.Sequence;
uint id;
@@ -9721,23 +9756,23 @@ namespace OpenSim.Region.ClientStack.LindenUDP
{
o = imagePack.ObjectData[i];
id = o.ObjectLocalID;
- if(objImageSeqs.TryGetValue(id, out uint lastseq))
+ if(c.objImageSeqs.TryGetValue(id, out uint lastseq))
{
if(seq <= lastseq)
continue;
}
- objImageSeqs[id] = seq;
- OnUpdatePrimTexture?.Invoke(id, o.TextureEntry, this);
+ c.objImageSeqs[id] = seq;
+ c.OnUpdatePrimTexture?.Invoke(id, o.TextureEntry, c);
}
}
- private void HandleObjectGrab(Packet Pack)
+ private static void HandleObjectGrab(LLClientView c, Packet Pack)
{
- if(OnGrabObject is null)
+ if(c.OnGrabObject is null)
return;
ObjectGrabPacket grab = (ObjectGrabPacket)Pack;
- if (grab.AgentData.SessionID.NotEqual(m_sessionId) || grab.AgentData.AgentID.NotEqual(m_agentId))
+ if (grab.AgentData.SessionID.NotEqual(c.m_sessionId) || grab.AgentData.AgentID.NotEqual(c.m_agentId))
return;
List touchArgs = new();
@@ -9757,16 +9792,16 @@ namespace OpenSim.Region.ClientStack.LindenUDP
touchArgs.Add(arg);
}
}
- OnGrabObject?.Invoke(grab.ObjectData.LocalID, grab.ObjectData.GrabOffset, this, touchArgs);
+ c.OnGrabObject?.Invoke(grab.ObjectData.LocalID, grab.ObjectData.GrabOffset, c, touchArgs);
}
- private void HandleObjectGrabUpdate(Packet Pack)
+ private static void HandleObjectGrabUpdate(LLClientView c, Packet Pack)
{
- if (OnGrabUpdate is null)
+ if (c.OnGrabUpdate is null)
return;
ObjectGrabUpdatePacket grabUpdate = (ObjectGrabUpdatePacket)Pack;
- if (grabUpdate.AgentData.SessionID.NotEqual(m_sessionId) || grabUpdate.AgentData.AgentID.NotEqual(m_agentId))
+ if (grabUpdate.AgentData.SessionID.NotEqual(c.m_sessionId) || grabUpdate.AgentData.AgentID.NotEqual(c.m_agentId))
return;
List touchArgs = new();
@@ -9787,18 +9822,18 @@ namespace OpenSim.Region.ClientStack.LindenUDP
}
}
- OnGrabUpdate?.Invoke(grabUpdate.ObjectData.ObjectID, grabUpdate.ObjectData.GrabOffsetInitial,
- grabUpdate.ObjectData.GrabPosition, this, touchArgs);
+ c.OnGrabUpdate?.Invoke(grabUpdate.ObjectData.ObjectID, grabUpdate.ObjectData.GrabOffsetInitial,
+ grabUpdate.ObjectData.GrabPosition, c, touchArgs);
}
- private void HandleObjectDeGrab(Packet Pack)
+ private static void HandleObjectDeGrab(LLClientView c, Packet Pack)
{
- if (OnDeGrabObject is null)
+ if (c.OnDeGrabObject is null)
return;
ObjectDeGrabPacket deGrab = (ObjectDeGrabPacket)Pack;
- if (deGrab.AgentData.SessionID.NotEqual(m_sessionId) || deGrab.AgentData.AgentID.NotEqual(m_agentId))
+ if (deGrab.AgentData.SessionID.NotEqual(c.m_sessionId) || deGrab.AgentData.AgentID.NotEqual(c.m_agentId))
return;
List touchArgs = new();
@@ -9818,81 +9853,73 @@ namespace OpenSim.Region.ClientStack.LindenUDP
touchArgs.Add(arg);
}
}
- OnDeGrabObject?.Invoke(deGrab.ObjectData.LocalID, this, touchArgs);
+ c.OnDeGrabObject?.Invoke(deGrab.ObjectData.LocalID, c, touchArgs);
}
- private void HandleObjectSpinStart(Packet Pack)
+ private static void HandleObjectSpinStart(LLClientView c, Packet Pack)
{
//m_log.Warn("[CLIENT]: unhandled ObjectSpinStart packet");
ObjectSpinStartPacket spinStart = (ObjectSpinStartPacket)Pack;
- if (spinStart.AgentData.SessionID.NotEqual(m_sessionId) || spinStart.AgentData.AgentID.NotEqual(m_agentId))
- return;
-
- OnSpinStart?.Invoke(spinStart.ObjectData.ObjectID, this);
+ if (spinStart.AgentData.SessionID.Equals(c.m_sessionId) && spinStart.AgentData.AgentID.Equals(c.m_agentId))
+ c.OnSpinStart?.Invoke(spinStart.ObjectData.ObjectID, c);
}
- private void HandleObjectSpinUpdate(Packet Pack)
+ private static void HandleObjectSpinUpdate(LLClientView c, Packet Pack)
{
//m_log.Warn("[CLIENT]: unhandled ObjectSpinUpdate packet");
ObjectSpinUpdatePacket spinUpdate = (ObjectSpinUpdatePacket)Pack;
- if (spinUpdate.AgentData.SessionID.NotEqual(m_sessionId) || spinUpdate.AgentData.AgentID.NotEqual(m_agentId))
+ if (spinUpdate.AgentData.SessionID.NotEqual(c.m_sessionId) || spinUpdate.AgentData.AgentID.NotEqual(c.m_agentId))
return;
spinUpdate.ObjectData.Rotation.GetAxisAngle(out Vector3 axis, out float angle);
//m_log.Warn("[CLIENT]: ObjectSpinUpdate packet rot axis:" + axis + " angle:" + angle);
- OnSpinUpdate?.Invoke(spinUpdate.ObjectData.ObjectID, spinUpdate.ObjectData.Rotation, this);
+ c.OnSpinUpdate?.Invoke(spinUpdate.ObjectData.ObjectID, spinUpdate.ObjectData.Rotation, c);
}
- private void HandleObjectSpinStop(Packet Pack)
+ private static void HandleObjectSpinStop(LLClientView c, Packet Pack)
{
//m_log.Warn("[CLIENT]: unhandled ObjectSpinStop packet");
ObjectSpinStopPacket spinStop = (ObjectSpinStopPacket)Pack;
- if (spinStop.AgentData.SessionID.NotEqual(m_sessionId) || spinStop.AgentData.AgentID.NotEqual(m_agentId))
- return;
-
- OnSpinStop?.Invoke(spinStop.ObjectData.ObjectID, this);
+ if (spinStop.AgentData.SessionID.Equals(c.m_sessionId) && spinStop.AgentData.AgentID.Equals(c.m_agentId))
+ c.OnSpinStop?.Invoke(spinStop.ObjectData.ObjectID, c);
}
- private void HandleObjectDescription(Packet Pack)
+ private static void HandleObjectDescription(LLClientView c, Packet Pack)
{
- if(OnObjectDescription is null)
+ if(c.OnObjectDescription is null)
return;
ObjectDescriptionPacket objDes = (ObjectDescriptionPacket)Pack;
- if (objDes.AgentData.SessionID.NotEqual(m_sessionId) || objDes.AgentData.AgentID.NotEqual(m_agentId))
+ if (objDes.AgentData.SessionID.NotEqual(c.m_sessionId) || objDes.AgentData.AgentID.NotEqual(c.m_agentId))
return;
for (int i = 0; i < objDes.ObjectData.Length; i++)
- OnObjectDescription?.Invoke(this, objDes.ObjectData[i].LocalID,
+ c.OnObjectDescription?.Invoke(c, objDes.ObjectData[i].LocalID,
Util.FieldToString(objDes.ObjectData[i].Description));
}
- private void HandleObjectName(Packet Pack)
+ private static void HandleObjectName(LLClientView c, Packet Pack)
{
- if(OnObjectName is null)
+ if(c.OnObjectName is null)
return;
ObjectNamePacket objName = (ObjectNamePacket)Pack;
- if (objName.AgentData.SessionID.NotEqual(m_sessionId) || objName.AgentData.AgentID.NotEqual(m_agentId))
+ if (objName.AgentData.SessionID.NotEqual(c.m_sessionId) || objName.AgentData.AgentID.NotEqual(c.m_agentId))
return;
for (int i = 0; i < objName.ObjectData.Length; i++)
- OnObjectName?.Invoke(this, objName.ObjectData[i].LocalID,
+ c.OnObjectName?.Invoke(c, objName.ObjectData[i].LocalID,
Util.FieldToString(objName.ObjectData[i].Name));
}
- private void HandleObjectPermissions(Packet Pack)
+ private static void HandleObjectPermissions(LLClientView c, Packet Pack)
{
- if (OnObjectPermissions is null)
+ if (c.OnObjectPermissions is null)
return;
ObjectPermissionsPacket newobjPerms = (ObjectPermissionsPacket)Pack;
- UUID SessionID = newobjPerms.AgentData.SessionID;
- if (SessionID.NotEqual(m_sessionId))
- return;
- UUID AgentID = newobjPerms.AgentData.AgentID;
- if(AgentID.NotEqual(m_agentId))
+ if (newobjPerms.AgentData.SessionID.NotEqual(c.m_sessionId) || newobjPerms.AgentData.AgentID.NotEqual(c.m_agentId))
return;
for (int i = 0; i < newobjPerms.ObjectData.Length; i++)
@@ -9904,7 +9931,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
uint mask = permChanges.Mask;
byte set = permChanges.Set;
- OnObjectPermissions?.Invoke(this, AgentID, SessionID, field, localID, mask, set);
+ c.OnObjectPermissions?.Invoke(c, newobjPerms.AgentData.AgentID, newobjPerms.AgentData.SessionID, field, localID, mask, set);
}
// Here's our data,
@@ -9920,58 +9947,58 @@ namespace OpenSim.Region.ClientStack.LindenUDP
// That means multiple object perms may be updated in a single packet.
}
- private void HandleUndo(Packet Pack)
+ private static void HandleUndo(LLClientView c, Packet Pack)
{
- if(OnUndo is null)
+ if(c.OnUndo is null)
return;
UndoPacket undoitem = (UndoPacket)Pack;
- if (undoitem.AgentData.SessionID.NotEqual(m_sessionId) || undoitem.AgentData.AgentID.NotEqual(m_agentId))
+ if (undoitem.AgentData.SessionID.NotEqual(c.m_sessionId) || undoitem.AgentData.AgentID.NotEqual(c.m_agentId))
return;
for (int i = 0; i < undoitem.ObjectData.Length; i++)
- OnUndo?.Invoke(this, undoitem.ObjectData[i].ObjectID);
+ c.OnUndo?.Invoke(c, undoitem.ObjectData[i].ObjectID);
}
- private void HandleLandUndo(Packet Pack)
+ private static void HandleLandUndo(LLClientView c, Packet Pack)
{
UndoLandPacket undolanditem = (UndoLandPacket)Pack;
- if (undolanditem.AgentData.SessionID.NotEqual(m_sessionId) || undolanditem.AgentData.AgentID.NotEqual(m_agentId))
+ if (undolanditem.AgentData.SessionID.NotEqual(c.m_sessionId) || undolanditem.AgentData.AgentID.NotEqual(c.m_agentId))
return;
- OnLandUndo?.Invoke(this);
+ c.OnLandUndo?.Invoke(c);
}
- private void HandleRedo(Packet Pack)
+ private static void HandleRedo(LLClientView c, Packet Pack)
{
- if(OnRedo is null)
+ if(c.OnRedo is null)
return;
RedoPacket redoitem = (RedoPacket)Pack;
- if (redoitem.AgentData.SessionID.NotEqual(m_sessionId) || redoitem.AgentData.AgentID.NotEqual(m_agentId))
+ if (redoitem.AgentData.SessionID.NotEqual(c.m_sessionId) || redoitem.AgentData.AgentID.NotEqual(c.m_agentId))
return;
for (int i = 0; i < redoitem.ObjectData.Length; i++)
- OnRedo?.Invoke(this, redoitem.ObjectData[i].ObjectID);
+ c.OnRedo?.Invoke(c, redoitem.ObjectData[i].ObjectID);
}
- private void HandleObjectDuplicateOnRay(Packet Pack)
+ private static void HandleObjectDuplicateOnRay(LLClientView c, Packet Pack)
{
- if(OnObjectDuplicateOnRay is null)
+ if(c.OnObjectDuplicateOnRay is null)
return;
ObjectDuplicateOnRayPacket dupeOnRay = (ObjectDuplicateOnRayPacket)Pack;
- if (dupeOnRay.AgentData.SessionID.NotEqual(m_sessionId) || dupeOnRay.AgentData.AgentID.NotEqual(m_agentId))
+ if (dupeOnRay.AgentData.SessionID.NotEqual(c.m_sessionId) || dupeOnRay.AgentData.AgentID.NotEqual(c.m_agentId))
return;
+ UUID rezGroupID = dupeOnRay.AgentData.GroupID;
+ if (!c.IsGroupMember(rezGroupID))
+ rezGroupID = UUID.Zero;
+
for (int i = 0; i < dupeOnRay.ObjectData.Length; i++)
{
- UUID rezGroupID = dupeOnRay.AgentData.GroupID;
- if(!IsGroupMember(rezGroupID))
- rezGroupID = UUID.Zero;
-
- OnObjectDuplicateOnRay?.Invoke(dupeOnRay.ObjectData[i].ObjectLocalID,
- dupeOnRay.AgentData.DuplicateFlags, m_agentId, rezGroupID,
+ c.OnObjectDuplicateOnRay?.Invoke(dupeOnRay.ObjectData[i].ObjectLocalID,
+ dupeOnRay.AgentData.DuplicateFlags, c.m_agentId, rezGroupID,
dupeOnRay.AgentData.RayTargetID, dupeOnRay.AgentData.RayEnd,
dupeOnRay.AgentData.RayStart, dupeOnRay.AgentData.BypassRaycast,
dupeOnRay.AgentData.RayEndIsIntersection,
@@ -9979,77 +10006,71 @@ namespace OpenSim.Region.ClientStack.LindenUDP
}
}
- private void HandleRequestObjectPropertiesFamily(Packet Pack)
+ private static void HandleRequestObjectPropertiesFamily(LLClientView c, Packet Pack)
{
//This powers the little tooltip that appears when you move your mouse over an object
RequestObjectPropertiesFamilyPacket packToolTip = (RequestObjectPropertiesFamilyPacket)Pack;
- if (packToolTip.AgentData.SessionID.NotEqual(m_sessionId) || packToolTip.AgentData.AgentID.NotEqual(m_agentId))
+ if (packToolTip.AgentData.SessionID.NotEqual(c.m_sessionId) || packToolTip.AgentData.AgentID.NotEqual(c.m_agentId))
return;
RequestObjectPropertiesFamilyPacket.ObjectDataBlock packObjBlock = packToolTip.ObjectData;
- OnRequestObjectPropertiesFamily?.Invoke(this, m_agentId, packObjBlock.RequestFlags,
+ c.OnRequestObjectPropertiesFamily?.Invoke(c, c.m_agentId, packObjBlock.RequestFlags,
packObjBlock.ObjectID);
}
- private void HandleObjectIncludeInSearch(Packet Pack)
+ private static void HandleObjectIncludeInSearch(LLClientView c, Packet Pack)
{
- if(OnObjectIncludeInSearch is null)
+ if(c.OnObjectIncludeInSearch is null)
return;
//This lets us set objects to appear in search (stuff like DataSnapshot, etc)
ObjectIncludeInSearchPacket packInSearch = (ObjectIncludeInSearchPacket)Pack;
- if (packInSearch.AgentData.SessionID.NotEqual(m_sessionId) || packInSearch.AgentData.AgentID.NotEqual(m_agentId))
+ if (packInSearch.AgentData.SessionID.NotEqual(c.m_sessionId) || packInSearch.AgentData.AgentID.NotEqual(c.m_agentId))
return;
foreach (ObjectIncludeInSearchPacket.ObjectDataBlock objData in packInSearch.ObjectData)
- {
- bool inSearch = objData.IncludeInSearch;
- uint localID = objData.ObjectLocalID;
- OnObjectIncludeInSearch?.Invoke(this, inSearch, localID);
- }
+ c.OnObjectIncludeInSearch?.Invoke(c, objData.IncludeInSearch, objData.ObjectLocalID);
}
- private void HandleScriptAnswerYes(Packet Pack)
+ private static void HandleScriptAnswerYes(LLClientView c, Packet Pack)
{
ScriptAnswerYesPacket scriptAnswer = (ScriptAnswerYesPacket)Pack;
- if (scriptAnswer.AgentData.SessionID.NotEqual(m_sessionId) || scriptAnswer.AgentData.AgentID.NotEqual(m_agentId))
- return;
-
- OnScriptAnswer?.Invoke(this, scriptAnswer.Data.TaskID, scriptAnswer.Data.ItemID, scriptAnswer.Data.Questions);
+ if (scriptAnswer.AgentData.SessionID.Equals(c.m_sessionId) && scriptAnswer.AgentData.AgentID.Equals(c.m_agentId))
+ c.OnScriptAnswer?.Invoke(c, scriptAnswer.Data.TaskID, scriptAnswer.Data.ItemID, scriptAnswer.Data.Questions);
}
- private void HandleObjectClickAction(Packet Pack)
+ private static void HandleObjectClickAction(LLClientView c, Packet Pack)
{
- if(OnObjectClickAction is null)
+ if(c.OnObjectClickAction is null)
return;
ObjectClickActionPacket ocpacket = (ObjectClickActionPacket)Pack;
- if (ocpacket.AgentData.SessionID.NotEqual(m_sessionId) || ocpacket.AgentData.AgentID.NotEqual(m_agentId))
+ if (ocpacket.AgentData.SessionID.NotEqual(c.m_sessionId) || ocpacket.AgentData.AgentID.NotEqual(c.m_agentId))
return;
foreach (ObjectClickActionPacket.ObjectDataBlock odata in ocpacket.ObjectData)
{
byte action = odata.ClickAction;
uint localID = odata.ObjectLocalID;
- OnObjectClickAction?.Invoke(this, localID, action.ToString());
+ c.OnObjectClickAction?.Invoke(c, localID, action.ToString());
}
}
- private void HandleObjectMaterial(Packet Pack)
+ private static void HandleObjectMaterial(LLClientView c, Packet Pack)
{
- if(OnObjectMaterial is null)
+ if(c.OnObjectMaterial is null)
return;
ObjectMaterialPacket ompacket = (ObjectMaterialPacket)Pack;
- if (ompacket.AgentData.SessionID.NotEqual(m_sessionId) || ompacket.AgentData.AgentID.NotEqual(m_agentId))
+ if (ompacket.AgentData.SessionID.NotEqual(c.m_sessionId) || ompacket.AgentData.AgentID.NotEqual(c.m_agentId))
return;
foreach (ObjectMaterialPacket.ObjectDataBlock odata in ompacket.ObjectData)
{
byte material = odata.Material;
uint localID = odata.ObjectLocalID;
- OnObjectMaterial?.Invoke(this, localID, material.ToString());
+ c.OnObjectMaterial?.Invoke(c, localID, material.ToString());
}
}
@@ -10057,10 +10078,10 @@ namespace OpenSim.Region.ClientStack.LindenUDP
#region Inventory/Asset/Other related packets
- private void HandleRequestImage(Packet Pack)
+ private static void HandleRequestImage(LLClientView c, Packet Pack)
{
RequestImagePacket imageRequest = (RequestImagePacket)Pack;
- if (imageRequest.AgentData.SessionID.NotEqual(m_sessionId) || imageRequest.AgentData.AgentID.NotEqual(m_agentId))
+ if (imageRequest.AgentData.SessionID.NotEqual(c.m_sessionId) || imageRequest.AgentData.AgentID.NotEqual(c.m_agentId))
return;
//handlerTextureRequest = null;
@@ -10082,7 +10103,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
if ((ImageType)block.Type == ImageType.Baked)
args.Priority *= 2.0f;
- ImageManager.EnqueueReq(args);
+ c.ImageManager.EnqueueReq(args);
}
}
@@ -10093,7 +10114,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
///
///
/// This parameter may be ignored since we appear to return true whatever happens
- private void HandleTransferRequest(Packet Pack)
+ private static void HandleTransferRequest(LLClientView c, Packet Pack)
{
//m_log.Debug("ClientView.ProcessPackets.cs:ProcessInPacket() - Got transfer request");
@@ -10101,13 +10122,13 @@ namespace OpenSim.Region.ClientStack.LindenUDP
UUID taskID = UUID.Zero;
if (transfer.TransferInfo.SourceType == (int)SourceType.SimInventoryItem)
{
- if (!(((Scene)m_scene).Permissions.BypassPermissions()))
+ if (!c.m_scene.Permissions.BypassPermissions())
{
// We're spawning a thread because the permissions check can block this thread
Util.FireAndForget(delegate
{
// This requests the asset if needed
- HandleSimInventoryTransferRequestWithPermsCheck(this, transfer);
+ c.HandleSimInventoryTransferRequestWithPermsCheck(c, transfer);
}, null, "LLClientView.HandleTransferRequest");
return;
@@ -10117,11 +10138,11 @@ namespace OpenSim.Region.ClientStack.LindenUDP
{
//TransferRequestPacket does not include covenant uuid?
//get scene covenant uuid
- taskID = m_scene.RegionInfo.RegionSettings.Covenant;
+ taskID = c.m_scene.RegionInfo.RegionSettings.Covenant;
}
// This is non-blocking
- MakeAssetRequest(transfer, taskID);
+ c.MakeAssetRequest(transfer, taskID);
}
private void HandleSimInventoryTransferRequestWithPermsCheck(IClientAPI sender, TransferRequestPacket transfer)
@@ -10235,97 +10256,96 @@ namespace OpenSim.Region.ClientStack.LindenUDP
}
-
- private void HandleAssetUploadRequest(Packet Pack)
+ private static void HandleAssetUploadRequest(LLClientView c, Packet Pack)
{
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);
+ UUID temp = UUID.Combine(request.AssetBlock.TransactionID, c.SecureSessionId);
- OnAssetUploadRequest?.Invoke(this, temp,
+ c.OnAssetUploadRequest?.Invoke(c, temp,
request.AssetBlock.TransactionID, request.AssetBlock.Type,
request.AssetBlock.AssetData, request.AssetBlock.StoreLocal,
request.AssetBlock.Tempfile);
}
- private void HandleRequestXfer(Packet Pack)
+ private static void HandleRequestXfer(LLClientView c, Packet Pack)
{
RequestXferPacket xferReq = (RequestXferPacket)Pack;
- OnRequestXfer?.Invoke(this, xferReq.XferID.ID, Util.FieldToString(xferReq.XferID.Filename));
+ c.OnRequestXfer?.Invoke(c, xferReq.XferID.ID, Util.FieldToString(xferReq.XferID.Filename));
}
- private void HandleSendXferPacket(Packet Pack)
+ private static void HandleSendXferPacket(LLClientView c, Packet Pack)
{
SendXferPacketPacket xferRec = (SendXferPacketPacket)Pack;
- OnXferReceive?.Invoke(this, xferRec.XferID.ID, xferRec.XferID.Packet, xferRec.DataPacket.Data);
+ c.OnXferReceive?.Invoke(c, xferRec.XferID.ID, xferRec.XferID.Packet, xferRec.DataPacket.Data);
}
- private void HandleConfirmXferPacket(Packet Pack)
+ private static void HandleConfirmXferPacket(LLClientView c, Packet Pack)
{
ConfirmXferPacketPacket confirmXfer = (ConfirmXferPacketPacket)Pack;
- OnConfirmXfer?.Invoke(this, confirmXfer.XferID.ID, confirmXfer.XferID.Packet);
+ c.OnConfirmXfer?.Invoke(c, confirmXfer.XferID.ID, confirmXfer.XferID.Packet);
}
- private void HandleAbortXfer(Packet Pack)
+ private static void HandleAbortXfer(LLClientView c, Packet Pack)
{
AbortXferPacket abortXfer = (AbortXferPacket)Pack;
- OnAbortXfer?.Invoke(this, abortXfer.XferID.ID);
+ c.OnAbortXfer?.Invoke(c, abortXfer.XferID.ID);
}
- private void HandleCreateInventoryFolder(Packet Pack)
+ private static void HandleCreateInventoryFolder(LLClientView c, Packet Pack)
{
CreateInventoryFolderPacket invFolder = (CreateInventoryFolderPacket)Pack;
- if (invFolder.AgentData.SessionID.NotEqual(m_sessionId) || invFolder.AgentData.AgentID.NotEqual(m_agentId))
+ if (invFolder.AgentData.SessionID.NotEqual(c.m_sessionId) || invFolder.AgentData.AgentID.NotEqual(c.m_agentId))
return;
- OnCreateNewInventoryFolder?.Invoke(this, invFolder.FolderData.FolderID,
+ c.OnCreateNewInventoryFolder?.Invoke(c, invFolder.FolderData.FolderID,
(ushort)invFolder.FolderData.Type,
Util.FieldToString(invFolder.FolderData.Name),
invFolder.FolderData.ParentID);
}
- private void HandleUpdateInventoryFolder(Packet Pack)
+ private static void HandleUpdateInventoryFolder(LLClientView c, Packet Pack)
{
- if (OnUpdateInventoryFolder is null)
+ if (c.OnUpdateInventoryFolder is null)
return;
UpdateInventoryFolderPacket invFolderx = (UpdateInventoryFolderPacket)Pack;
- if (invFolderx.AgentData.SessionID.NotEqual(m_sessionId) || invFolderx.AgentData.AgentID.NotEqual(m_agentId))
+ if (invFolderx.AgentData.SessionID.NotEqual(c.m_sessionId) || invFolderx.AgentData.AgentID.NotEqual(c.m_agentId))
return;
for (int i = 0; i < invFolderx.FolderData.Length; i++)
{
- OnUpdateInventoryFolder?.Invoke(this, invFolderx.FolderData[i].FolderID,
+ c.OnUpdateInventoryFolder?.Invoke(c, invFolderx.FolderData[i].FolderID,
(ushort)invFolderx.FolderData[i].Type,
Util.FieldToString(invFolderx.FolderData[i].Name),
invFolderx.FolderData[i].ParentID);
}
}
- private void HandleMoveInventoryFolder(Packet Pack)
+ private static void HandleMoveInventoryFolder(LLClientView c, Packet Pack)
{
- if (OnMoveInventoryFolder is null)
+ if (c.OnMoveInventoryFolder is null)
return;
MoveInventoryFolderPacket invFoldery = (MoveInventoryFolderPacket)Pack;
- if (invFoldery.AgentData.SessionID.NotEqual(m_sessionId) || invFoldery.AgentData.AgentID.NotEqual(m_agentId))
+ if (invFoldery.AgentData.SessionID.NotEqual(c.m_sessionId) || invFoldery.AgentData.AgentID.NotEqual(c.m_agentId))
return;
for (int i = 0; i < invFoldery.InventoryData.Length; i++)
{
- OnMoveInventoryFolder?.Invoke(this, invFoldery.InventoryData[i].FolderID,
+ c.OnMoveInventoryFolder?.Invoke(c, invFoldery.InventoryData[i].FolderID,
invFoldery.InventoryData[i].ParentID);
}
}
- private void HandleCreateInventoryItem(Packet Pack)
+ private static void HandleCreateInventoryItem(LLClientView c, Packet Pack)
{
CreateInventoryItemPacket createItem = (CreateInventoryItemPacket)Pack;
- if (createItem.AgentData.SessionID.NotEqual(m_sessionId) || createItem.AgentData.AgentID.NotEqual(m_agentId))
+ if (createItem.AgentData.SessionID.NotEqual(c.m_sessionId) || createItem.AgentData.AgentID.NotEqual(c.m_agentId))
return;
- OnCreateNewInventoryItem?.Invoke(this, createItem.InventoryBlock.TransactionID,
+ c.OnCreateNewInventoryItem?.Invoke(c, createItem.InventoryBlock.TransactionID,
createItem.InventoryBlock.FolderID,
createItem.InventoryBlock.CallbackID,
Util.FieldToString(createItem.InventoryBlock.Description),
@@ -10337,14 +10357,14 @@ namespace OpenSim.Region.ClientStack.LindenUDP
Util.UnixTimeSinceEpoch());
}
- private void HandleLinkInventoryItem(Packet Pack)
+ private static void HandleLinkInventoryItem(LLClientView c, Packet Pack)
{
LinkInventoryItemPacket createLink = (LinkInventoryItemPacket)Pack;
- if (createLink.AgentData.SessionID.NotEqual(m_sessionId) || createLink.AgentData.AgentID.NotEqual(m_agentId))
+ if (createLink.AgentData.SessionID.NotEqual(c.m_sessionId) || createLink.AgentData.AgentID.NotEqual(c.m_agentId))
return;
- OnLinkInventoryItem?.Invoke(
- this,
+ c.OnLinkInventoryItem?.Invoke(
+ c,
createLink.InventoryBlock.TransactionID,
createLink.InventoryBlock.FolderID,
createLink.InventoryBlock.CallbackID,
@@ -10355,13 +10375,13 @@ namespace OpenSim.Region.ClientStack.LindenUDP
createLink.InventoryBlock.OldItemID);
}
- private void HandleFetchInventory(Packet Pack)
+ private static void HandleFetchInventory(LLClientView c, Packet Pack)
{
- if (OnFetchInventory is null)
+ if (c.OnFetchInventory is null)
return;
FetchInventoryPacket FetchInventoryx = (FetchInventoryPacket)Pack;
- if (FetchInventoryx.AgentData.SessionID.NotEqual(m_sessionId) || FetchInventoryx.AgentData.AgentID.NotEqual(m_agentId))
+ if (FetchInventoryx.AgentData.SessionID.NotEqual(c.m_sessionId) || FetchInventoryx.AgentData.AgentID.NotEqual(c.m_agentId))
return;
FetchInventoryPacket.InventoryDataBlock[] data = FetchInventoryx.InventoryData;
@@ -10375,37 +10395,37 @@ namespace OpenSim.Region.ClientStack.LindenUDP
owners[i] = data[i].OwnerID;
}
- OnFetchInventory?.Invoke(this, items, owners);
+ c.OnFetchInventory?.Invoke(c, items, owners);
}
- private void HandleFetchInventoryDescendents(Packet Pack)
+ private static void HandleFetchInventoryDescendents(LLClientView c, Packet Pack)
{
FetchInventoryDescendentsPacket Fetch = (FetchInventoryDescendentsPacket)Pack;
- if (Fetch.AgentData.SessionID.NotEqual(m_sessionId) || Fetch.AgentData.AgentID.NotEqual(m_agentId))
+ if (Fetch.AgentData.SessionID.NotEqual(c.m_sessionId) || Fetch.AgentData.AgentID.NotEqual(c.m_agentId))
return;
FetchInventoryDescendentsPacket.InventoryDataBlock data = Fetch.InventoryData;
- OnFetchInventoryDescendents?.Invoke(this, data.FolderID, data.OwnerID,
+ c.OnFetchInventoryDescendents?.Invoke(c, data.FolderID, data.OwnerID,
data.FetchFolders, data.FetchItems,
data.SortOrder);
}
- private void HandlePurgeInventoryDescendents(Packet Pack)
+ private static void HandlePurgeInventoryDescendents(LLClientView c, Packet Pack)
{
PurgeInventoryDescendentsPacket Purge = (PurgeInventoryDescendentsPacket)Pack;
- if (Purge.AgentData.SessionID.NotEqual(m_sessionId) || Purge.AgentData.AgentID.NotEqual(m_agentId))
+ if (Purge.AgentData.SessionID.NotEqual(c.m_sessionId) || Purge.AgentData.AgentID.NotEqual(c.m_agentId))
return;
- OnPurgeInventoryDescendents?.Invoke(this, Purge.InventoryData.FolderID);
+ c.OnPurgeInventoryDescendents?.Invoke(c, Purge.InventoryData.FolderID);
}
- private void HandleUpdateInventoryItem(Packet Pack)
+ private static void HandleUpdateInventoryItem(LLClientView c, Packet Pack)
{
- if (OnUpdateInventoryItem is null)
+ if (c.OnUpdateInventoryItem is null)
return;
UpdateInventoryItemPacket inventoryItemUpdate = (UpdateInventoryItemPacket)Pack;
- if (inventoryItemUpdate.AgentData.SessionID.NotEqual(m_sessionId) || inventoryItemUpdate.AgentData.AgentID.NotEqual(m_agentId))
+ if (inventoryItemUpdate.AgentData.SessionID.NotEqual(c.m_sessionId) || inventoryItemUpdate.AgentData.AgentID.NotEqual(c.m_agentId))
return;
for (int i = 0; i < inventoryItemUpdate.InventoryData.Length; i++)
@@ -10428,43 +10448,43 @@ namespace OpenSim.Region.ClientStack.LindenUDP
Flags = inventoryItemUpdate.InventoryData[i].Flags
};
- OnUpdateInventoryItem?.Invoke(this, inventoryItemUpdate.InventoryData[i].TransactionID,
+ c.OnUpdateInventoryItem?.Invoke(c, inventoryItemUpdate.InventoryData[i].TransactionID,
inventoryItemUpdate.InventoryData[i].ItemID,
itemUpd);
}
}
- private void HandleCopyInventoryItem(Packet Pack)
+ private static void HandleCopyInventoryItem(LLClientView c, Packet Pack)
{
- if(OnCopyInventoryItem is null)
+ if(c.OnCopyInventoryItem is null)
return;
CopyInventoryItemPacket copyitem = (CopyInventoryItemPacket)Pack;
- if (copyitem.AgentData.SessionID.NotEqual(m_sessionId) || copyitem.AgentData.AgentID.NotEqual(m_agentId))
+ if (copyitem.AgentData.SessionID.NotEqual(c.m_sessionId) || copyitem.AgentData.AgentID.NotEqual(c.m_agentId))
return;
foreach (CopyInventoryItemPacket.InventoryDataBlock datablock in copyitem.InventoryData)
{
- OnCopyInventoryItem?.Invoke(this, datablock.CallbackID, datablock.OldAgentID,
+ c.OnCopyInventoryItem?.Invoke(c, datablock.CallbackID, datablock.OldAgentID,
datablock.OldItemID, datablock.NewFolderID,
Util.FieldToString(datablock.NewName));
}
}
- private void HandleMoveInventoryItem(Packet Pack)
+ private static void HandleMoveInventoryItem(LLClientView c, Packet Pack)
{
- if (OnMoveInventoryItem is null)
+ if (c.OnMoveInventoryItem is null)
return;
MoveInventoryItemPacket moveitem = (MoveInventoryItemPacket)Pack;
- if (moveitem.AgentData.SessionID.NotEqual(m_sessionId) || moveitem.AgentData.AgentID.NotEqual(m_agentId))
+ if (moveitem.AgentData.SessionID.NotEqual(c.m_sessionId) || moveitem.AgentData.AgentID.NotEqual(c.m_agentId))
return;
InventoryItemBase itm = null;
List items = new();
foreach (MoveInventoryItemPacket.InventoryDataBlock datablock in moveitem.InventoryData)
{
- itm = new InventoryItemBase(datablock.ItemID, m_agentId)
+ itm = new InventoryItemBase(datablock.ItemID, c.m_agentId)
{
Folder = datablock.FolderID,
Name = Util.FieldToString(datablock.NewName)
@@ -10473,16 +10493,16 @@ namespace OpenSim.Region.ClientStack.LindenUDP
//m_log.DebugFormat("[XXX] new name: {0}", itm.Name);
items.Add(itm);
}
- OnMoveInventoryItem?.Invoke(this, items);
+ c.OnMoveInventoryItem?.Invoke(c, items);
}
- private void HandleRemoveInventoryItem(Packet Pack)
+ private static void HandleRemoveInventoryItem(LLClientView c, Packet Pack)
{
- if(OnRemoveInventoryItem is null)
+ if(c.OnRemoveInventoryItem is null)
return;
RemoveInventoryItemPacket removeItem = (RemoveInventoryItemPacket)Pack;
- if (removeItem.AgentData.SessionID.NotEqual(m_sessionId) || removeItem.AgentData.AgentID.NotEqual(m_agentId))
+ if (removeItem.AgentData.SessionID.NotEqual(c.m_sessionId) || removeItem.AgentData.AgentID.NotEqual(c.m_agentId))
return;
List uuids = new(removeItem.InventoryData.Length);
@@ -10490,16 +10510,16 @@ namespace OpenSim.Region.ClientStack.LindenUDP
{
uuids.Add(datablock.ItemID);
}
- OnRemoveInventoryItem?.Invoke(this, uuids);
+ c.OnRemoveInventoryItem?.Invoke(c, uuids);
}
- private void HandleRemoveInventoryFolder(Packet Pack)
+ private static void HandleRemoveInventoryFolder(LLClientView c, Packet Pack)
{
- if (OnRemoveInventoryFolder is null)
+ if (c.OnRemoveInventoryFolder is null)
return;
RemoveInventoryFolderPacket removeFolder = (RemoveInventoryFolderPacket)Pack;
- if (removeFolder.AgentData.SessionID.NotEqual(m_sessionId) || removeFolder.AgentData.AgentID.NotEqual(m_agentId))
+ if (removeFolder.AgentData.SessionID.NotEqual(c.m_sessionId) || removeFolder.AgentData.AgentID.NotEqual(c.m_agentId))
return;
List uuids = new(removeFolder.FolderData.Length);
@@ -10507,48 +10527,48 @@ namespace OpenSim.Region.ClientStack.LindenUDP
{
uuids.Add(datablock.FolderID);
}
- OnRemoveInventoryFolder?.Invoke(this, uuids);
+ c.OnRemoveInventoryFolder?.Invoke(c, uuids);
}
- private void HandleRemoveInventoryObjects(Packet Pack)
+ private static void HandleRemoveInventoryObjects(LLClientView c, Packet Pack)
{
- if (OnRemoveInventoryFolder is null || OnRemoveInventoryItem is null)
+ if (c.OnRemoveInventoryFolder is null || c.OnRemoveInventoryItem is null)
return;
RemoveInventoryObjectsPacket removeObject = (RemoveInventoryObjectsPacket)Pack;
- if (removeObject.AgentData.SessionID.NotEqual(m_sessionId) || removeObject.AgentData.AgentID.NotEqual(m_agentId))
+ if (removeObject.AgentData.SessionID.NotEqual(c.m_sessionId) || removeObject.AgentData.AgentID.NotEqual(c.m_agentId))
return;
List uuids = new(removeObject.FolderData.Length);
foreach (RemoveInventoryObjectsPacket.FolderDataBlock datablock in removeObject.FolderData)
uuids.Add(datablock.FolderID);
- OnRemoveInventoryFolder?.Invoke(this, uuids);
+ c.OnRemoveInventoryFolder?.Invoke(c, uuids);
uuids.Clear();
foreach (RemoveInventoryObjectsPacket.ItemDataBlock datablock in removeObject.ItemData)
uuids.Add(datablock.ItemID);
- OnRemoveInventoryItem?.Invoke(this, uuids);
+ c.OnRemoveInventoryItem?.Invoke(c, uuids);
}
- private void HandleRequestTaskInventory(Packet Pack)
+ private static void HandleRequestTaskInventory(LLClientView c, Packet Pack)
{
RequestTaskInventoryPacket requesttask = (RequestTaskInventoryPacket)Pack;
- if (requesttask.AgentData.SessionID.NotEqual(m_sessionId) || requesttask.AgentData.AgentID.NotEqual(m_agentId))
+ if (requesttask.AgentData.SessionID.NotEqual(c.m_sessionId) || requesttask.AgentData.AgentID.NotEqual(c.m_agentId))
return;
- OnRequestTaskInventory?.Invoke(this, requesttask.InventoryData.LocalID);
+ c.OnRequestTaskInventory?.Invoke(c, requesttask.InventoryData.LocalID);
}
- private void HandleUpdateTaskInventory(Packet Pack)
+ private static void HandleUpdateTaskInventory(LLClientView c, Packet Pack)
{
- if (OnUpdateTaskInventory is null)
+ if (c.OnUpdateTaskInventory is null)
return;
UpdateTaskInventoryPacket updatetask = (UpdateTaskInventoryPacket)Pack;
if (updatetask.UpdateData.Key != 0)
return; // only do inventory not assets
- if (updatetask.AgentData.SessionID.NotEqual(m_sessionId) || updatetask.AgentData.AgentID.NotEqual(m_agentId))
+ if (updatetask.AgentData.SessionID.NotEqual(c.m_sessionId) || updatetask.AgentData.AgentID.NotEqual(c.m_agentId))
return;
TaskInventoryItem newTaskItem = new()
@@ -10577,39 +10597,39 @@ namespace OpenSim.Region.ClientStack.LindenUDP
CreationDate = (uint)updatetask.InventoryData.CreationDate
};
- OnUpdateTaskInventory?.Invoke(this, updatetask.InventoryData.TransactionID,
+ c.OnUpdateTaskInventory?.Invoke(c, updatetask.InventoryData.TransactionID,
newTaskItem, updatetask.UpdateData.LocalID);
}
- private void HandleRemoveTaskInventory(Packet Pack)
+ private static void HandleRemoveTaskInventory(LLClientView c, Packet Pack)
{
RemoveTaskInventoryPacket removeTask = (RemoveTaskInventoryPacket)Pack;
- if (removeTask.AgentData.SessionID.NotEqual(m_sessionId) || removeTask.AgentData.AgentID.NotEqual(m_agentId))
+ if (removeTask.AgentData.SessionID.NotEqual(c.m_sessionId) || removeTask.AgentData.AgentID.NotEqual(c.m_agentId))
return;
- OnRemoveTaskItem?.Invoke(this, removeTask.InventoryData.ItemID, removeTask.InventoryData.LocalID);
+ c.OnRemoveTaskItem?.Invoke(c, removeTask.InventoryData.ItemID, removeTask.InventoryData.LocalID);
}
- private void HandleMoveTaskInventory(Packet Pack)
+ private static void HandleMoveTaskInventory(LLClientView c, Packet Pack)
{
MoveTaskInventoryPacket moveTaskInventoryPacket = (MoveTaskInventoryPacket)Pack;
- if (moveTaskInventoryPacket.AgentData.SessionID.NotEqual(m_sessionId) || moveTaskInventoryPacket.AgentData.AgentID.NotEqual(m_agentId))
+ if (moveTaskInventoryPacket.AgentData.SessionID.NotEqual(c.m_sessionId) || moveTaskInventoryPacket.AgentData.AgentID.NotEqual(c.m_agentId))
return;
- OnMoveTaskItem?.Invoke(
- this, moveTaskInventoryPacket.AgentData.FolderID,
+ c.OnMoveTaskItem?.Invoke(
+ c, moveTaskInventoryPacket.AgentData.FolderID,
moveTaskInventoryPacket.InventoryData.LocalID,
moveTaskInventoryPacket.InventoryData.ItemID);
}
- private void HandleRezScript(Packet Pack)
+ private static void HandleRezScript(LLClientView c, Packet Pack)
{
- if(OnRezScript is null)
+ if(c.OnRezScript is null)
return;
//m_log.Debug(Pack.ToString());
RezScriptPacket rezScriptx = (RezScriptPacket)Pack;
- if (rezScriptx.AgentData.SessionID.NotEqual(m_sessionId) || rezScriptx.AgentData.AgentID.NotEqual(m_agentId))
+ if (rezScriptx.AgentData.SessionID.NotEqual(c.m_sessionId) || rezScriptx.AgentData.AgentID.NotEqual(c.m_agentId))
return;
InventoryItemBase item = new()
@@ -10635,40 +10655,40 @@ namespace OpenSim.Region.ClientStack.LindenUDP
CreationDate = rezScriptx.InventoryBlock.CreationDate
};
- OnRezScript?.Invoke(this, item, rezScriptx.InventoryBlock.TransactionID, rezScriptx.UpdateBlock.ObjectLocalID);
+ c.OnRezScript?.Invoke(c, item, rezScriptx.InventoryBlock.TransactionID, rezScriptx.UpdateBlock.ObjectLocalID);
}
- private void HandleMapLayerRequest(Packet Pack)
+ private static void HandleMapLayerRequest(LLClientView c, Packet Pack)
{
- RequestMapLayer();
+ c.RequestMapLayer();
}
- private void HandleMapBlockRequest(Packet Pack)
+ private static void HandleMapBlockRequest(LLClientView c, Packet Pack)
{
MapBlockRequestPacket MapRequest = (MapBlockRequestPacket)Pack;
- if (MapRequest.AgentData.SessionID.NotEqual(m_sessionId) || MapRequest.AgentData.AgentID.NotEqual(m_agentId))
+ if (MapRequest.AgentData.SessionID.NotEqual(c.m_sessionId) || MapRequest.AgentData.AgentID.NotEqual(c.m_agentId))
return;
- OnRequestMapBlocks?.Invoke(this, MapRequest.PositionData.MinX, MapRequest.PositionData.MinY,
+ c.OnRequestMapBlocks?.Invoke(c, MapRequest.PositionData.MinX, MapRequest.PositionData.MinY,
MapRequest.PositionData.MaxX, MapRequest.PositionData.MaxY, MapRequest.AgentData.Flags);
}
- private void HandleMapNameRequest(Packet Pack)
+ private static void HandleMapNameRequest(LLClientView c, Packet Pack)
{
MapNameRequestPacket map = (MapNameRequestPacket)Pack;
- if (map.AgentData.SessionID.NotEqual(m_sessionId) || map.AgentData.AgentID.NotEqual(m_agentId))
+ if (map.AgentData.SessionID.NotEqual(c.m_sessionId) || map.AgentData.AgentID.NotEqual(c.m_agentId))
return;
- string mapName = (map.NameData.Name.Length == 0) ? m_scene.RegionInfo.RegionName :
+ string mapName = map.NameData.Name.Length == 0 ? c.m_scene.RegionInfo.RegionName :
Util.UTF8.GetString(map.NameData.Name, 0, map.NameData.Name.Length - 1);
- OnMapNameRequest?.Invoke(this, mapName, map.AgentData.Flags);
+ c.OnMapNameRequest?.Invoke(c, mapName, map.AgentData.Flags);
}
- private void HandleTeleportLandmarkRequest(Packet Pack)
+ private static void HandleTeleportLandmarkRequest(LLClientView c, Packet Pack)
{
TeleportLandmarkRequestPacket tpReq = (TeleportLandmarkRequestPacket)Pack;
- if (tpReq.Info.SessionID.NotEqual(m_sessionId) || tpReq.Info.AgentID.NotEqual(m_agentId))
+ if (tpReq.Info.SessionID.NotEqual(c.m_sessionId) || tpReq.Info.AgentID.NotEqual(c.m_agentId))
return;
UUID lmid = tpReq.Info.LandmarkID;
@@ -10676,20 +10696,20 @@ namespace OpenSim.Region.ClientStack.LindenUDP
if (!lmid.IsZero())
{
//AssetBase lma = m_assetCache.GetAsset(lmid, false);
- AssetBase lma = m_assetService.Get(lmid.ToString());
+ AssetBase lma = c.m_assetService.Get(lmid.ToString());
if (lma is null)
{
// Failed to find landmark
// Let's try to search in the user's home asset server
- lma = FindAssetInUserAssetServer(lmid.ToString());
+ lma = c.FindAssetInUserAssetServer(lmid.ToString());
if (lma is null)
{
// Really doesn't exist
m_log.WarnFormat("[llClient]: landmark asset {0} not found",lmid.ToString());
- SendTeleportFailed("Could not find the landmark asset data");
+ c.SendTeleportFailed("Could not find the landmark asset data");
return;
}
}
@@ -10701,27 +10721,27 @@ namespace OpenSim.Region.ClientStack.LindenUDP
catch (NullReferenceException)
{
// asset not found generates null ref inside the assetlandmark constructor.
- SendTeleportFailed("Could not find the landmark asset data");
+ c.SendTeleportFailed("Could not find the landmark asset data");
return;
}
}
else
{
// Teleport home request
- OnTeleportHomeRequest?.Invoke(m_agentId, this);
+ c.OnTeleportHomeRequest?.Invoke(c.m_agentId, c);
return;
}
- OnTeleportLandmarkRequest?.Invoke(this, lm);
+ c.OnTeleportLandmarkRequest?.Invoke(c, lm);
}
- private void HandleTeleportCancel(Packet Pack)
+ private static void HandleTeleportCancel(LLClientView c, Packet Pack)
{
TeleportCancelPacket pkt = (TeleportCancelPacket) Pack;
- if(pkt.Info.AgentID.NotEqual(m_agentId) || pkt.Info.SessionID.NotEqual(m_sessionId))
+ if(pkt.Info.AgentID.NotEqual(c.m_agentId) || pkt.Info.SessionID.NotEqual(c.m_sessionId))
return;
- OnTeleportCancel?.Invoke(this);
+ c.OnTeleportCancel?.Invoke(c);
}
private AssetBase FindAssetInUserAssetServer(string id)
@@ -10737,89 +10757,90 @@ namespace OpenSim.Region.ClientStack.LindenUDP
return null;
}
- private void HandleTeleportLocationRequest(Packet Pack)
+ private static void HandleTeleportLocationRequest(LLClientView c, Packet Pack)
{
- if(OnTeleportLocationRequest is null)
+ if(c.OnTeleportLocationRequest is null)
{
- SendTeleportFailed("Could not process the teleport");
+ c.SendTeleportFailed("Could not process the teleport");
return;
}
TeleportLocationRequestPacket tpLocReq = (TeleportLocationRequestPacket)Pack;
- if (tpLocReq.AgentData.SessionID.NotEqual(m_sessionId) || tpLocReq.AgentData.AgentID.NotEqual(m_agentId))
+ if (tpLocReq.AgentData.SessionID.NotEqual(c.m_sessionId) || tpLocReq.AgentData.AgentID.NotEqual(c.m_agentId))
return;
// Adjust teleport location to base of a larger region if requested to teleport to a sub-region
Util.RegionHandleToWorldLoc(tpLocReq.Info.RegionHandle, out uint locX, out uint locY);
- if ((locX >= m_scene.RegionInfo.WorldLocX)
- && (locX < (m_scene.RegionInfo.WorldLocX + m_scene.RegionInfo.RegionSizeX))
- && (locY >= m_scene.RegionInfo.WorldLocY)
- && (locY < (m_scene.RegionInfo.WorldLocY + m_scene.RegionInfo.RegionSizeY)))
+ RegionInfo ri = c.m_scene.RegionInfo;
+ if ((locX >= ri.WorldLocX)
+ && (locX < (ri.WorldLocX + ri.RegionSizeX))
+ && (locY >= ri.WorldLocY)
+ && (locY < (ri.WorldLocY + ri.RegionSizeY)))
{
- tpLocReq.Info.RegionHandle = m_scene.RegionInfo.RegionHandle;
- tpLocReq.Info.Position.X += locX - m_scene.RegionInfo.WorldLocX;
- tpLocReq.Info.Position.Y += locY - m_scene.RegionInfo.WorldLocY;
+ tpLocReq.Info.RegionHandle = ri.RegionHandle;
+ tpLocReq.Info.Position.X += locX - ri.WorldLocX;
+ tpLocReq.Info.Position.Y += locY - ri.WorldLocY;
}
- OnTeleportLocationRequest?.Invoke(this, tpLocReq.Info.RegionHandle, tpLocReq.Info.Position,
+ c.OnTeleportLocationRequest?.Invoke(c, tpLocReq.Info.RegionHandle, tpLocReq.Info.Position,
tpLocReq.Info.LookAt, 16);
}
#endregion Inventory/Asset/Other related packets
- private void HandleUUIDNameRequest(Packet Pack)
+ private static void HandleUUIDNameRequest(LLClientView c, Packet Pack)
{
- if(OnNameFromUUIDRequest is null)
+ if(c.OnNameFromUUIDRequest is null)
return;
- ScenePresence sp = (ScenePresence)SceneAgent;
+ ScenePresence sp = (ScenePresence)c.SceneAgent;
if(sp is null || sp.IsDeleted || (sp.IsInTransit && !sp.IsInLocalTransit))
return;
UUIDNameRequestPacket incoming = (UUIDNameRequestPacket)Pack;
foreach (UUIDNameRequestPacket.UUIDNameBlockBlock UUIDBlock in incoming.UUIDNameBlock)
- OnNameFromUUIDRequest?.Invoke(UUIDBlock.ID, this);
+ c.OnNameFromUUIDRequest?.Invoke(UUIDBlock.ID, c);
}
#region Parcel related packets
- private void HandleRegionHandleRequest(Packet Pack)
+ private static void HandleRegionHandleRequest(LLClientView c, Packet Pack)
{
RegionHandleRequestPacket rhrPack = (RegionHandleRequestPacket)Pack;
- OnRegionHandleRequest?.Invoke(this, rhrPack.RequestBlock.RegionID);
+ c.OnRegionHandleRequest?.Invoke(c, rhrPack.RequestBlock.RegionID);
}
- private void HandleParcelInfoRequest(Packet Pack)
+ private static void HandleParcelInfoRequest(LLClientView c, Packet Pack)
{
- if(OnParcelInfoRequest is null)
+ if(c.OnParcelInfoRequest is null)
return;
ParcelInfoRequestPacket pirPack = (ParcelInfoRequestPacket)Pack;
- if (pirPack.AgentData.SessionID.NotEqual(m_sessionId) || pirPack.AgentData.AgentID.NotEqual(m_agentId))
+ if (pirPack.AgentData.SessionID.NotEqual(c.m_sessionId) || pirPack.AgentData.AgentID.NotEqual(c.m_agentId))
return;
- OnParcelInfoRequest?.Invoke(this, pirPack.Data.ParcelID);
+ c.OnParcelInfoRequest?.Invoke(c, pirPack.Data.ParcelID);
}
- private void HandleParcelAccessListRequest(Packet Pack)
+ private static void HandleParcelAccessListRequest(LLClientView c, Packet Pack)
{
ParcelAccessListRequestPacket requestPacket = (ParcelAccessListRequestPacket)Pack;
- if (requestPacket.AgentData.SessionID.NotEqual(m_sessionId) || requestPacket.AgentData.AgentID.NotEqual(m_agentId))
+ if (requestPacket.AgentData.SessionID.NotEqual(c.m_sessionId) || requestPacket.AgentData.AgentID.NotEqual(c.m_agentId))
return;
- OnParcelAccessListRequest?.Invoke(requestPacket.AgentData.AgentID, requestPacket.AgentData.SessionID,
+ c.OnParcelAccessListRequest?.Invoke(requestPacket.AgentData.AgentID, requestPacket.AgentData.SessionID,
requestPacket.Data.Flags, requestPacket.Data.SequenceID,
- requestPacket.Data.LocalID, this);
+ requestPacket.Data.LocalID, c);
}
- private void HandleParcelAccessListUpdate(Packet Pack)
+ private static void HandleParcelAccessListUpdate(LLClientView c, Packet Pack)
{
- if(OnParcelAccessListUpdateRequest is null)
+ if(c.OnParcelAccessListUpdateRequest is null)
return;
ParcelAccessListUpdatePacket updatePacket = (ParcelAccessListUpdatePacket)Pack;
- if (updatePacket.AgentData.SessionID.NotEqual(m_sessionId) || updatePacket.AgentData.AgentID.NotEqual(m_agentId))
+ if (updatePacket.AgentData.SessionID.NotEqual(c.m_sessionId) || updatePacket.AgentData.AgentID.NotEqual(c.m_agentId))
return;
// viewers do send estimated number of packets and sequenceID, but don't seem reliable.
@@ -10835,56 +10856,56 @@ namespace OpenSim.Region.ClientStack.LindenUDP
entries.Add(entry);
}
- OnParcelAccessListUpdateRequest?.Invoke(updatePacket.AgentData.AgentID,
+ c.OnParcelAccessListUpdateRequest?.Invoke(updatePacket.AgentData.AgentID,
updatePacket.Data.Flags,
updatePacket.Data.TransactionID,
updatePacket.Data.LocalID,
- entries, this);
+ entries, c);
}
- private void HandleParcelPropertiesRequest(Packet Pack)
+ private static void HandleParcelPropertiesRequest(LLClientView c, Packet Pack)
{
ParcelPropertiesRequestPacket propertiesRequest = (ParcelPropertiesRequestPacket)Pack;
- if (propertiesRequest.AgentData.SessionID.NotEqual(m_sessionId) || propertiesRequest.AgentData.AgentID.NotEqual(m_agentId))
+ if (propertiesRequest.AgentData.SessionID.NotEqual(c.m_sessionId) || propertiesRequest.AgentData.AgentID.NotEqual(c.m_agentId))
return;
ParcelPropertiesRequestPacket.ParcelDataBlock pdb = propertiesRequest.ParcelData;
- OnParcelPropertiesRequest?.Invoke((int)MathF.Round(pdb.West), (int)MathF.Round(pdb.South),
+ c.OnParcelPropertiesRequest?.Invoke((int)MathF.Round(pdb.West), (int)MathF.Round(pdb.South),
(int)MathF.Round(pdb.East), (int)MathF.Round(pdb.North),
- pdb.SequenceID, pdb.SnapSelection, this);
+ pdb.SequenceID, pdb.SnapSelection, c);
}
- private void HandleParcelDivide(Packet Pack)
+ private static void HandleParcelDivide(LLClientView c, Packet Pack)
{
ParcelDividePacket landDivide = (ParcelDividePacket)Pack;
- if (landDivide.AgentData.SessionID.NotEqual(m_sessionId) || landDivide.AgentData.AgentID.NotEqual(m_agentId))
+ if (landDivide.AgentData.SessionID.NotEqual(c.m_sessionId) || landDivide.AgentData.AgentID.NotEqual(c.m_agentId))
return;
- OnParcelDivideRequest?.Invoke((int)MathF.Round(landDivide.ParcelData.West),
+ c.OnParcelDivideRequest?.Invoke((int)MathF.Round(landDivide.ParcelData.West),
(int)MathF.Round(landDivide.ParcelData.South),
(int)Math.Round(landDivide.ParcelData.East),
- (int)MathF.Round(landDivide.ParcelData.North), this);
+ (int)MathF.Round(landDivide.ParcelData.North), c);
}
- private void HandleParcelJoin(Packet Pack)
+ private static void HandleParcelJoin(LLClientView c, Packet Pack)
{
ParcelJoinPacket landJoin = (ParcelJoinPacket)Pack;
- if (landJoin.AgentData.SessionID.NotEqual(m_sessionId) || landJoin.AgentData.AgentID.NotEqual(m_agentId))
+ if (landJoin.AgentData.SessionID.NotEqual(c.m_sessionId) || landJoin.AgentData.AgentID.NotEqual(c.m_agentId))
return;
- OnParcelJoinRequest?.Invoke((int)MathF.Round(landJoin.ParcelData.West),
+ c.OnParcelJoinRequest?.Invoke((int)MathF.Round(landJoin.ParcelData.West),
(int)MathF.Round(landJoin.ParcelData.South),
(int)MathF.Round(landJoin.ParcelData.East),
- (int)MathF.Round(landJoin.ParcelData.North), this);
+ (int)MathF.Round(landJoin.ParcelData.North), c);
}
- private void HandleParcelPropertiesUpdate(Packet Pack)
+ private static void HandleParcelPropertiesUpdate(LLClientView c, Packet Pack)
{
- if (OnParcelPropertiesUpdateRequest is null)
+ if (c.OnParcelPropertiesUpdateRequest is null)
return;
ParcelPropertiesUpdatePacket parcelPropertiesPacket = (ParcelPropertiesUpdatePacket)Pack;
- if (parcelPropertiesPacket.AgentData.SessionID.NotEqual(m_sessionId) || parcelPropertiesPacket.AgentData.AgentID.NotEqual(m_agentId))
+ if (parcelPropertiesPacket.AgentData.SessionID.NotEqual(c.m_sessionId) || parcelPropertiesPacket.AgentData.AgentID.NotEqual(c.m_agentId))
return;
LandUpdateArgs args = new()
@@ -10908,16 +10929,16 @@ namespace OpenSim.Region.ClientStack.LindenUDP
UserLookAt = parcelPropertiesPacket.ParcelData.UserLookAt
};
- OnParcelPropertiesUpdateRequest?.Invoke(args, parcelPropertiesPacket.ParcelData.LocalID, this);
+ c.OnParcelPropertiesUpdateRequest?.Invoke(args, parcelPropertiesPacket.ParcelData.LocalID, c);
}
- private void HandleParcelSelectObjects(Packet Pack)
+ private static void HandleParcelSelectObjects(LLClientView c, Packet Pack)
{
- if(OnParcelSelectObjects is null)
+ if(c.OnParcelSelectObjects is null)
return;
ParcelSelectObjectsPacket selectPacket = (ParcelSelectObjectsPacket)Pack;
- if (selectPacket.AgentData.SessionID.NotEqual(m_sessionId) || selectPacket.AgentData.AgentID.NotEqual(m_agentId))
+ if (selectPacket.AgentData.SessionID.NotEqual(c.m_sessionId) || selectPacket.AgentData.AgentID.NotEqual(c.m_agentId))
return;
List returnIDs = new(selectPacket.ReturnIDs.Length);
@@ -10926,53 +10947,53 @@ namespace OpenSim.Region.ClientStack.LindenUDP
returnIDs.Add(rb.ReturnID);
}
- OnParcelSelectObjects?.Invoke(selectPacket.ParcelData.LocalID,
- Convert.ToInt32(selectPacket.ParcelData.ReturnType), returnIDs, this);
+ c.OnParcelSelectObjects?.Invoke(selectPacket.ParcelData.LocalID,
+ Convert.ToInt32(selectPacket.ParcelData.ReturnType), returnIDs, c);
}
- private void HandleParcelObjectOwnersRequest(Packet Pack)
+ private static void HandleParcelObjectOwnersRequest(LLClientView c, Packet Pack)
{
ParcelObjectOwnersRequestPacket reqPacket = (ParcelObjectOwnersRequestPacket)Pack;
- if (reqPacket.AgentData.SessionID.NotEqual(m_sessionId) || reqPacket.AgentData.AgentID.NotEqual(m_agentId))
+ if (reqPacket.AgentData.SessionID.NotEqual(c.m_sessionId) || reqPacket.AgentData.AgentID.NotEqual(c.m_agentId))
return;
- OnParcelObjectOwnerRequest?.Invoke(reqPacket.ParcelData.LocalID, this);
+ c.OnParcelObjectOwnerRequest?.Invoke(reqPacket.ParcelData.LocalID, c);
}
- private void HandleParcelGodForceOwner(Packet Pack)
+ private static void HandleParcelGodForceOwner(LLClientView c, Packet Pack)
{
ParcelGodForceOwnerPacket godForceOwnerPacket = (ParcelGodForceOwnerPacket)Pack;
- if (godForceOwnerPacket.AgentData.SessionID.NotEqual(m_sessionId) || godForceOwnerPacket.AgentData.AgentID.NotEqual(m_agentId))
+ if (godForceOwnerPacket.AgentData.SessionID.NotEqual(c.m_sessionId) || godForceOwnerPacket.AgentData.AgentID.NotEqual(c.m_agentId))
return;
- OnParcelGodForceOwner?.Invoke(godForceOwnerPacket.Data.LocalID, godForceOwnerPacket.Data.OwnerID, this);
+ c.OnParcelGodForceOwner?.Invoke(godForceOwnerPacket.Data.LocalID, godForceOwnerPacket.Data.OwnerID, c);
}
- private void HandleParcelRelease(Packet Pack)
+ private static void HandleParcelRelease(LLClientView c, Packet Pack)
{
ParcelReleasePacket releasePacket = (ParcelReleasePacket)Pack;
- if (releasePacket.AgentData.SessionID.NotEqual(m_sessionId) || releasePacket.AgentData.AgentID.NotEqual(m_agentId))
+ if (releasePacket.AgentData.SessionID.NotEqual(c.m_sessionId) || releasePacket.AgentData.AgentID.NotEqual(c.m_agentId))
return;
- OnParcelAbandonRequest?.Invoke(releasePacket.Data.LocalID, this);
+ c.OnParcelAbandonRequest?.Invoke(releasePacket.Data.LocalID, c);
}
- private void HandleParcelReclaim(Packet Pack)
+ private static void HandleParcelReclaim(LLClientView c, Packet Pack)
{
ParcelReclaimPacket reclaimPacket = (ParcelReclaimPacket)Pack;
- if (reclaimPacket.AgentData.SessionID.NotEqual(m_sessionId) || reclaimPacket.AgentData.AgentID.NotEqual(m_agentId))
+ if (reclaimPacket.AgentData.SessionID.NotEqual(c.m_sessionId) || reclaimPacket.AgentData.AgentID.NotEqual(c.m_agentId))
return;
- OnParcelReclaim?.Invoke(reclaimPacket.Data.LocalID, this);
+ c.OnParcelReclaim?.Invoke(reclaimPacket.Data.LocalID, c);
}
- private void HandleParcelReturnObjects(Packet Pack)
+ private static void HandleParcelReturnObjects(LLClientView c, Packet Pack)
{
- if(OnParcelReturnObjectsRequest is null)
+ if(c.OnParcelReturnObjectsRequest is null)
return;
ParcelReturnObjectsPacket parcelReturnObjects = (ParcelReturnObjectsPacket)Pack;
- if (parcelReturnObjects.AgentData.SessionID.NotEqual(m_sessionId) || parcelReturnObjects.AgentData.AgentID.NotEqual(m_agentId))
+ if (parcelReturnObjects.AgentData.SessionID.NotEqual(c.m_sessionId) || parcelReturnObjects.AgentData.AgentID.NotEqual(c.m_agentId))
return;
UUID[] puserselectedOwnerIDs = new UUID[parcelReturnObjects.OwnerIDs.Length];
@@ -10983,36 +11004,36 @@ namespace OpenSim.Region.ClientStack.LindenUDP
for (int parceliterator = 0; parceliterator < parcelReturnObjects.TaskIDs.Length; parceliterator++)
puserselectedTaskIDs[parceliterator] = parcelReturnObjects.TaskIDs[parceliterator].TaskID;
- OnParcelReturnObjectsRequest?.Invoke(parcelReturnObjects.ParcelData.LocalID, parcelReturnObjects.ParcelData.ReturnType, puserselectedOwnerIDs, puserselectedTaskIDs, this);
+ c.OnParcelReturnObjectsRequest?.Invoke(parcelReturnObjects.ParcelData.LocalID, parcelReturnObjects.ParcelData.ReturnType, puserselectedOwnerIDs, puserselectedTaskIDs, c);
}
- private void HandleParcelSetOtherCleanTime(Packet Pack)
+ private static void HandleParcelSetOtherCleanTime(LLClientView c, Packet Pack)
{
ParcelSetOtherCleanTimePacket parcelSetOtherCleanTimePacket = (ParcelSetOtherCleanTimePacket)Pack;
- if (parcelSetOtherCleanTimePacket.AgentData.SessionID.NotEqual(m_sessionId) || parcelSetOtherCleanTimePacket.AgentData.AgentID.NotEqual(m_agentId))
+ if (parcelSetOtherCleanTimePacket.AgentData.SessionID.NotEqual(c.m_sessionId) || parcelSetOtherCleanTimePacket.AgentData.AgentID.NotEqual(c.m_agentId))
return;
- OnParcelSetOtherCleanTime?.Invoke(this,
+ c.OnParcelSetOtherCleanTime?.Invoke(c,
parcelSetOtherCleanTimePacket.ParcelData.LocalID,
parcelSetOtherCleanTimePacket.ParcelData.OtherCleanTime);
}
- private void HandleLandStatRequest(Packet Pack)
+ private static void HandleLandStatRequest(LLClientView c, Packet Pack)
{
LandStatRequestPacket lsrp = (LandStatRequestPacket)Pack;
- if (lsrp.AgentData.SessionID.NotEqual(m_sessionId) || lsrp.AgentData.AgentID.NotEqual(m_agentId))
+ if (lsrp.AgentData.SessionID.NotEqual(c.m_sessionId) || lsrp.AgentData.AgentID.NotEqual(c.m_agentId))
return;
- OnLandStatRequest?.Invoke(lsrp.RequestData.ParcelLocalID, lsrp.RequestData.ReportType, lsrp.RequestData.RequestFlags, Utils.BytesToString(lsrp.RequestData.Filter), this);
+ c.OnLandStatRequest?.Invoke(lsrp.RequestData.ParcelLocalID, lsrp.RequestData.ReportType, lsrp.RequestData.RequestFlags, Utils.BytesToString(lsrp.RequestData.Filter), c);
}
- private void HandleParcelDwellRequest(Packet Pack)
+ private static void HandleParcelDwellRequest(LLClientView c, Packet Pack)
{
ParcelDwellRequestPacket dwellrq = (ParcelDwellRequestPacket)Pack;
- if (dwellrq.AgentData.SessionID.NotEqual(m_sessionId) || dwellrq.AgentData.AgentID.NotEqual(m_agentId))
+ if (dwellrq.AgentData.SessionID.NotEqual(c.m_sessionId) || dwellrq.AgentData.AgentID.NotEqual(c.m_agentId))
return;
- OnParcelDwellRequest?.Invoke(dwellrq.Data.LocalID, this);
+ c.OnParcelDwellRequest?.Invoke(dwellrq.Data.LocalID, c);
}
#endregion Parcel related packets
@@ -11020,25 +11041,25 @@ namespace OpenSim.Region.ClientStack.LindenUDP
#region Estate Packets
private static double m_lastMapRegenTime = Double.MinValue;
- private void HandleEstateOwnerMessage(Packet Pack)
+ private static void HandleEstateOwnerMessage(LLClientView c, Packet Pack)
{
EstateOwnerMessagePacket messagePacket = (EstateOwnerMessagePacket)Pack;
- if (messagePacket.AgentData.SessionID.NotEqual(m_sessionId) || messagePacket.AgentData.AgentID.NotEqual(m_agentId))
+ if (messagePacket.AgentData.SessionID.NotEqual(c.m_sessionId) || messagePacket.AgentData.AgentID.NotEqual(c.m_agentId))
return;
string method = Utils.BytesToString(messagePacket.MethodData.Method);
switch (method)
{
case "getinfo":
- if (m_scene.Permissions.CanIssueEstateCommand(m_agentId, false))
+ if (c.m_scene.Permissions.CanIssueEstateCommand(c.m_agentId, false))
{
- OnDetailedEstateDataRequest?.Invoke(this, messagePacket.MethodData.Invoice);
+ c.OnDetailedEstateDataRequest?.Invoke(c, messagePacket.MethodData.Invoice);
}
return;
case "setregioninfo":
- if (m_scene.Permissions.CanIssueEstateCommand(m_agentId, false))
+ if (c.m_scene.Permissions.CanIssueEstateCommand(c.m_agentId, false))
{
- OnSetEstateFlagsRequest?.Invoke(convertParamStringToBool(messagePacket.ParamList[0].Parameter), convertParamStringToBool(messagePacket.ParamList[1].Parameter),
+ c.OnSetEstateFlagsRequest?.Invoke(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),
@@ -11062,7 +11083,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
// }
// break;
case "texturedetail":
- if (m_scene.Permissions.CanIssueEstateCommand(m_agentId, false))
+ if (c.m_scene.Permissions.CanIssueEstateCommand(c.m_agentId, false))
{
foreach (EstateOwnerMessagePacket.ParamListBlock block in messagePacket.ParamList)
{
@@ -11073,14 +11094,14 @@ namespace OpenSim.Region.ClientStack.LindenUDP
Int16 corner = Convert.ToInt16(splitField[0]);
UUID textureUUID = new(splitField[1]);
- OnSetEstateTerrainDetailTexture?.Invoke(this, corner, textureUUID);
+ c.OnSetEstateTerrainDetailTexture?.Invoke(c, corner, textureUUID);
}
}
}
return;
case "textureheights":
- if (m_scene.Permissions.CanIssueEstateCommand(m_agentId, false))
+ if (c.m_scene.Permissions.CanIssueEstateCommand(c.m_agentId, false))
{
foreach (EstateOwnerMessagePacket.ParamListBlock block in messagePacket.ParamList)
{
@@ -11092,16 +11113,16 @@ namespace OpenSim.Region.ClientStack.LindenUDP
float lowValue = Convert.ToSingle(splitField[1], Culture.NumberFormatInfo);
float highValue = Convert.ToSingle(splitField[2], Culture.NumberFormatInfo);
- OnSetEstateTerrainTextureHeights?.Invoke(this, corner, lowValue, highValue);
+ c.OnSetEstateTerrainTextureHeights?.Invoke(c, corner, lowValue, highValue);
}
}
}
return;
case "texturecommit":
- OnCommitEstateTerrainTextureRequest?.Invoke(this);
+ c.OnCommitEstateTerrainTextureRequest?.Invoke(c);
return;
case "setregionterrain":
- if (m_scene.Permissions.CanIssueEstateCommand(m_agentId, false))
+ if (c.m_scene.Permissions.CanIssueEstateCommand(c.m_agentId, false))
{
if (messagePacket.ParamList.Length != 9)
{
@@ -11121,7 +11142,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
bool EstateFixedSun = convertParamStringToBool(messagePacket.ParamList[7].Parameter);
float EstateSunHour = Convert.ToSingle(Utils.BytesToString(messagePacket.ParamList[8].Parameter), Culture.NumberFormatInfo);
- OnSetRegionTerrainSettings?.Invoke(WaterHeight, TerrainRaiseLimit, TerrainLowerLimit, UseEstateSun, UseFixedSun, SunHour, UseGlobal, EstateFixedSun, EstateSunHour);
+ c.OnSetRegionTerrainSettings?.Invoke(WaterHeight, TerrainRaiseLimit, TerrainLowerLimit, UseEstateSun, UseFixedSun, SunHour, UseGlobal, EstateFixedSun, EstateSunHour);
}
catch (Exception ex)
{
@@ -11132,47 +11153,47 @@ namespace OpenSim.Region.ClientStack.LindenUDP
return;
case "restart":
- if (m_scene.Permissions.CanIssueEstateCommand(m_agentId, false))
+ if (c.m_scene.Permissions.CanIssueEstateCommand(c.m_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)
{
if(Utils.TryParseSingle(Utils.BytesToString(block.Parameter), out float timeSeconds))
- OnEstateRestartSimRequest?.Invoke(this, (int)timeSeconds);
+ c.OnEstateRestartSimRequest?.Invoke(c, (int)timeSeconds);
}
}
return;
case "estatechangecovenantid":
- if (m_scene.Permissions.CanIssueEstateCommand(m_agentId, false))
+ if (c.m_scene.Permissions.CanIssueEstateCommand(c.m_agentId, false))
{
foreach (EstateOwnerMessagePacket.ParamListBlock block in messagePacket.ParamList)
{
UUID newCovenantID = new(Utils.BytesToString(block.Parameter));
- OnEstateChangeCovenantRequest?.Invoke(this, newCovenantID);
+ c.OnEstateChangeCovenantRequest?.Invoke(c, newCovenantID);
}
}
return;
case "estateaccessdelta": // Estate access delta manages the banlist and allow list too.
- if (m_scene.Permissions.CanIssueEstateCommand(m_agentId, false))
+ if (c.m_scene.Permissions.CanIssueEstateCommand(c.m_agentId, false))
{
int estateAccessType = Convert.ToInt16(Utils.BytesToString(messagePacket.ParamList[1].Parameter));
- OnUpdateEstateAccessDeltaRequest?.Invoke(this, messagePacket.MethodData.Invoice, estateAccessType, new UUID(Utils.BytesToString(messagePacket.ParamList[2].Parameter)));
+ c.OnUpdateEstateAccessDeltaRequest?.Invoke(c, messagePacket.MethodData.Invoice, estateAccessType, new UUID(Utils.BytesToString(messagePacket.ParamList[2].Parameter)));
}
return;
case "simulatormessage":
- if (m_scene.Permissions.CanIssueEstateCommand(m_agentId, false))
+ if (c.m_scene.Permissions.CanIssueEstateCommand(c.m_agentId, false))
{
UUID SenderID = new(Utils.BytesToString(messagePacket.ParamList[2].Parameter));
string SenderName = Utils.BytesToString(messagePacket.ParamList[3].Parameter);
string Message = Utils.BytesToString(messagePacket.ParamList[4].Parameter);
- OnSimulatorBlueBoxMessageRequest?.Invoke(this, messagePacket.MethodData.Invoice,
+ c.OnSimulatorBlueBoxMessageRequest?.Invoke(c, messagePacket.MethodData.Invoice,
SenderID, messagePacket.AgentData.SessionID, SenderName, Message);
}
return;
case "instantmessage":
- if (m_scene.Permissions.CanIssueEstateCommand(m_agentId, false))
+ if (c.m_scene.Permissions.CanIssueEstateCommand(c.m_agentId, false))
{
if (messagePacket.ParamList.Length < 2)
return;
@@ -11183,7 +11204,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
if (messagePacket.ParamList.Length < 5)
{
- SenderID = m_agentId;
+ SenderID = c.m_agentId;
SenderName = Utils.BytesToString(messagePacket.ParamList[0].Parameter);
Message = Utils.BytesToString(messagePacket.ParamList[1].Parameter);
}
@@ -11194,45 +11215,45 @@ namespace OpenSim.Region.ClientStack.LindenUDP
Message = Utils.BytesToString(messagePacket.ParamList[4].Parameter);
}
- OnEstateBlueBoxMessageRequest?.Invoke(this, messagePacket.MethodData.Invoice,
- SenderID, m_sessionId, SenderName, Message);
+ c.OnEstateBlueBoxMessageRequest?.Invoke(c, messagePacket.MethodData.Invoice,
+ SenderID, c.m_sessionId, SenderName, Message);
}
return;
case "setregiondebug":
- if (m_scene.Permissions.CanIssueEstateCommand(m_agentId, false))
+ if (c.m_scene.Permissions.CanIssueEstateCommand(c.m_agentId, false))
{
- if(OnEstateDebugRegionRequest is not null)
+ if(c.OnEstateDebugRegionRequest is not null)
{
bool scripted = convertParamStringToBool(messagePacket.ParamList[0].Parameter);
bool collisionEvents = convertParamStringToBool(messagePacket.ParamList[1].Parameter);
bool physics = convertParamStringToBool(messagePacket.ParamList[2].Parameter);
- OnEstateDebugRegionRequest?.Invoke(this, messagePacket.MethodData.Invoice,
- m_agentId, scripted, collisionEvents, physics);
+ c.OnEstateDebugRegionRequest?.Invoke(c, messagePacket.MethodData.Invoice,
+ c.m_agentId, scripted, collisionEvents, physics);
}
}
return;
case "teleporthomeuser":
- if (m_scene.Permissions.CanIssueEstateCommand(m_agentId, false))
+ if (c.m_scene.Permissions.CanIssueEstateCommand(c.m_agentId, false))
{
if(UUID.TryParse(Utils.BytesToString(messagePacket.ParamList[1].Parameter), out UUID Prey))
- OnEstateTeleportOneUserHomeRequest?.Invoke(this, messagePacket.MethodData.Invoice, m_agentId, Prey, false);
+ c.OnEstateTeleportOneUserHomeRequest?.Invoke(c, messagePacket.MethodData.Invoice, c.m_agentId, Prey, false);
}
return;
case "teleporthomeallusers":
- if (m_scene.Permissions.CanIssueEstateCommand(m_agentId, false))
+ if (c.m_scene.Permissions.CanIssueEstateCommand(c.m_agentId, false))
{
- OnEstateTeleportAllUsersHomeRequest?.Invoke(this, messagePacket.MethodData.Invoice, m_agentId);
+ c.OnEstateTeleportAllUsersHomeRequest?.Invoke(c, messagePacket.MethodData.Invoice, c.m_agentId);
}
return;
case "colliders":
- OnLandStatRequest?.Invoke(0, 1, 0, "", this);
+ c.OnLandStatRequest?.Invoke(0, 1, 0, "", c);
return;
case "scripts":
- OnLandStatRequest?.Invoke(0, 0, 0, "", this);
+ c.OnLandStatRequest?.Invoke(0, 0, 0, "", c);
return;
case "terrain":
- if (m_scene.Permissions.CanIssueEstateCommand(m_agentId, false))
+ if (c.m_scene.Permissions.CanIssueEstateCommand(c.m_agentId, false))
{
if (messagePacket.ParamList.Length > 0)
{
@@ -11240,17 +11261,17 @@ namespace OpenSim.Region.ClientStack.LindenUDP
switch(p0)
{
case "bake":
- OnBakeTerrain?.Invoke(this);
+ c.OnBakeTerrain?.Invoke(c);
break;
case "download filename":
if (messagePacket.ParamList.Length > 1)
- OnRequestTerrain?.Invoke(this, Utils.BytesToString(messagePacket.ParamList[1].Parameter));
+ c.OnRequestTerrain?.Invoke(c, Utils.BytesToString(messagePacket.ParamList[1].Parameter));
break;
case "upload filename":
if (messagePacket.ParamList.Length > 1)
- OnUploadTerrain?.Invoke(this, Utils.BytesToString(messagePacket.ParamList[1].Parameter));
+ c.OnUploadTerrain?.Invoke(c, Utils.BytesToString(messagePacket.ParamList[1].Parameter));
break;
default:
@@ -11261,16 +11282,16 @@ namespace OpenSim.Region.ClientStack.LindenUDP
return;
case "estatechangeinfo":
- if (m_scene.Permissions.CanIssueEstateCommand(m_agentId, false))
+ if (c.m_scene.Permissions.CanIssueEstateCommand(c.m_agentId, false))
{
UInt32 param1 = Convert.ToUInt32(Utils.BytesToString(messagePacket.ParamList[1].Parameter));
UInt32 param2 = Convert.ToUInt32(Utils.BytesToString(messagePacket.ParamList[2].Parameter));
- OnEstateChangeInfo?.Invoke(this, messagePacket.MethodData.Invoice, m_agentId, param1, param2);
+ c.OnEstateChangeInfo?.Invoke(c, messagePacket.MethodData.Invoice, c.m_agentId, param1, param2);
}
return;
case "telehub":
- if (m_scene.Permissions.CanIssueEstateCommand(m_agentId, false))
+ if (c.m_scene.Permissions.CanIssueEstateCommand(c.m_agentId, false))
{
UInt32 param1 = 0u;
string command = Utils.BytesToString(messagePacket.ParamList[0].Parameter);
@@ -11282,53 +11303,53 @@ namespace OpenSim.Region.ClientStack.LindenUDP
}
catch {}
}
- OnEstateManageTelehub?.Invoke(this, messagePacket.MethodData.Invoice, messagePacket.AgentData.AgentID, command, param1);
+ c.OnEstateManageTelehub?.Invoke(c, messagePacket.MethodData.Invoice, messagePacket.AgentData.AgentID, command, param1);
}
return;
case "refreshmapvisibility":
- if (m_scene.Permissions.CanIssueEstateCommand(m_agentId, false))
+ if (c.m_scene.Permissions.CanIssueEstateCommand(c.m_agentId, false))
{
- IWorldMapModule mapModule = Scene.RequestModuleInterface();
+ IWorldMapModule mapModule = c.m_scene.RequestModuleInterface();
if (mapModule is null)
{
- SendAlertMessage("Terrain map generator not avaiable");
+ c.SendAlertMessage("Terrain map generator not avaiable");
return;
}
if (m_lastMapRegenTime == Double.MaxValue)
{
- SendAlertMessage("Terrain map generation still in progress");
+ c.SendAlertMessage("Terrain map generation still in progress");
return;
}
double now = Util.GetTimeStamp();
if (now - m_lastMapRegenTime < 120) // 2 minutes global cool down
{
- SendAlertMessage("Please wait at least 2 minutes between map generation commands");
+ c.SendAlertMessage("Please wait at least 2 minutes between map generation commands");
return;
}
m_lastMapRegenTime = Double.MaxValue;
- m_scene.RegenerateMaptileAndReregister(this, null);
- SendAlertMessage("Terrain map generated");
+ c.m_scene.RegenerateMaptileAndReregister(c, null);
+ c.SendAlertMessage("Terrain map generated");
m_lastMapRegenTime = now;
}
return;
case "kickestate":
- if(m_scene.Permissions.CanIssueEstateCommand(m_agentId, false))
+ if(c.m_scene.Permissions.CanIssueEstateCommand(c.m_agentId, false))
{
if(UUID.TryParse(Utils.BytesToString(messagePacket.ParamList[0].Parameter), out UUID Prey))
- OnEstateTeleportOneUserHomeRequest?.Invoke(this, messagePacket.MethodData.Invoice,
- m_agentId, Prey, true);
+ c.OnEstateTeleportOneUserHomeRequest?.Invoke(c, messagePacket.MethodData.Invoice,
+ c.m_agentId, Prey, true);
}
return;
default:
m_log.WarnFormat(
"[LLCLIENTVIEW]: EstateOwnerMessage: Unknown method {0} requested for {1} in {2}",
- method, Name, Scene.Name);
+ method, c.Name, c.m_scene.Name);
for (int i = 0; i < messagePacket.ParamList.Length; i++)
{
@@ -11348,47 +11369,47 @@ namespace OpenSim.Region.ClientStack.LindenUDP
//lsrp.RequestData.Filter;
}
- private void HandleRequestRegionInfo(Packet Pack)
+ private static void HandleRequestRegionInfo(LLClientView c, Packet Pack)
{
RequestRegionInfoPacket.AgentDataBlock mPacket = ((RequestRegionInfoPacket)Pack).AgentData;
- if (mPacket.SessionID.NotEqual(m_sessionId) || mPacket.AgentID.NotEqual(m_agentId))
+ if (mPacket.SessionID.NotEqual(c.m_sessionId) || mPacket.AgentID.NotEqual(c.m_agentId))
return;
- OnRegionInfoRequest?.Invoke(this);
+ c.OnRegionInfoRequest?.Invoke(c);
}
- private void HandleEstateCovenantRequest(Packet Pack)
+ private static void HandleEstateCovenantRequest(LLClientView c, Packet Pack)
{
EstateCovenantRequestPacket.AgentDataBlock epack = ((EstateCovenantRequestPacket)Pack).AgentData;
- if (epack.SessionID.NotEqual(m_sessionId) || epack.AgentID.NotEqual(m_agentId))
+ if (epack.SessionID.NotEqual(c.m_sessionId) || epack.AgentID.NotEqual(c.m_agentId))
return;
- OnEstateCovenantRequest?.Invoke(this);
+ c.OnEstateCovenantRequest?.Invoke(c);
}
#endregion Estate Packets
#region GodPackets
- private void HandleRequestGodlikePowers(Packet Pack)
+ private static void HandleRequestGodlikePowers(LLClientView c, Packet Pack)
{
RequestGodlikePowersPacket rglpPack = (RequestGodlikePowersPacket)Pack;
RequestGodlikePowersPacket.AgentDataBlock ablock = rglpPack.AgentData;
- if (ablock.SessionID.NotEqual(m_sessionId) || ablock.AgentID.NotEqual(m_agentId))
+ if (ablock.SessionID.NotEqual(c.m_sessionId) || ablock.AgentID.NotEqual(c.m_agentId))
return;
RequestGodlikePowersPacket.RequestBlockBlock rblock = rglpPack.RequestBlock;
UUID token = rblock.Token;
- OnRequestGodlikePowers?.Invoke(ablock.AgentID, ablock.SessionID, token, rblock.Godlike);
+ c.OnRequestGodlikePowers?.Invoke(ablock.AgentID, ablock.SessionID, token, rblock.Godlike);
}
- private void HandleGodUpdateRegionInfoUpdate(Packet packet)
+ private static void HandleGodUpdateRegionInfoUpdate(LLClientView c, Packet packet)
{
GodUpdateRegionInfoPacket GodUpdateRegionInfo = (GodUpdateRegionInfoPacket)packet;
- if (GodUpdateRegionInfo.AgentData.SessionID.NotEqual(m_sessionId) || GodUpdateRegionInfo.AgentData.AgentID.NotEqual(m_agentId))
+ if (GodUpdateRegionInfo.AgentData.SessionID.NotEqual(c.m_sessionId) || GodUpdateRegionInfo.AgentData.AgentID.NotEqual(c.m_agentId))
return;
- OnGodUpdateRegionInfoUpdate?.Invoke(this,
+ c.OnGodUpdateRegionInfoUpdate?.Invoke(c,
GodUpdateRegionInfo.RegionInfo.BillableFactor,
GodUpdateRegionInfo.RegionInfo.EstateID,
GodUpdateRegionInfo.RegionInfo.RegionFlags,
@@ -11397,102 +11418,103 @@ namespace OpenSim.Region.ClientStack.LindenUDP
GodUpdateRegionInfo.RegionInfo.RedirectGridY);
}
- private void HandleSimWideDeletes(Packet packet)
+ private static void HandleSimWideDeletes(LLClientView c, Packet packet)
{
SimWideDeletesPacket SimWideDeletesRequest = (SimWideDeletesPacket)packet;
- if(SimWideDeletesRequest.AgentData.AgentID.NotEqual(m_agentId) || SimWideDeletesRequest.AgentData.SessionID.NotEqual(m_sessionId))
+ if(SimWideDeletesRequest.AgentData.AgentID.NotEqual(c.m_agentId) || SimWideDeletesRequest.AgentData.SessionID.NotEqual(c.m_sessionId))
return;
- OnSimWideDeletes?.Invoke(this, SimWideDeletesRequest.AgentData.AgentID,(int)SimWideDeletesRequest.DataBlock.Flags,SimWideDeletesRequest.DataBlock.TargetID);
+ c.OnSimWideDeletes?.Invoke(c, SimWideDeletesRequest.AgentData.AgentID,(int)SimWideDeletesRequest.DataBlock.Flags,
+ SimWideDeletesRequest.DataBlock.TargetID);
}
- private void HandleGodlikeMessage(Packet packet)
+ private static void HandleGodlikeMessage(LLClientView c, Packet packet)
{
GodlikeMessagePacket GodlikeMessage = (GodlikeMessagePacket)packet;
- if (GodlikeMessage.AgentData.SessionID.NotEqual(m_sessionId) || GodlikeMessage.AgentData.AgentID.NotEqual(m_agentId))
+ if (GodlikeMessage.AgentData.SessionID.NotEqual(c.m_sessionId) || GodlikeMessage.AgentData.AgentID.NotEqual(c.m_agentId))
return;
- onGodlikeMessage?.Invoke(this,
+ c.onGodlikeMessage?.Invoke(c,
GodlikeMessage.MethodData.Invoice,
GodlikeMessage.MethodData.Method,
GodlikeMessage.ParamList[0].Parameter);
}
- private void HandleSaveStatePacket(Packet packet)
+ private static void HandleSaveStatePacket(LLClientView c, Packet packet)
{
StateSavePacket SaveStateMessage = (StateSavePacket)packet;
- if (SaveStateMessage.AgentData.SessionID.NotEqual(m_sessionId) || SaveStateMessage.AgentData.AgentID.NotEqual(m_agentId))
+ if (SaveStateMessage.AgentData.SessionID.NotEqual(c.m_sessionId) || SaveStateMessage.AgentData.AgentID.NotEqual(c.m_agentId))
return;
- OnSaveState?.Invoke(this,SaveStateMessage.AgentData.AgentID);
+ c.OnSaveState?.Invoke(c, SaveStateMessage.AgentData.AgentID);
}
- private void HandleGodKickUser(Packet Pack)
+ private static void HandleGodKickUser(LLClientView c, Packet Pack)
{
GodKickUserPacket gkupack = (GodKickUserPacket)Pack;
- if (gkupack.UserInfo.GodSessionID.NotEqual(m_sessionId) || gkupack.UserInfo.GodID.NotEqual(m_agentId))
+ if (gkupack.UserInfo.GodSessionID.NotEqual(c.m_sessionId) || gkupack.UserInfo.GodID.NotEqual(c.m_agentId))
return;
- OnGodKickUser?.Invoke(gkupack.UserInfo.GodID, gkupack.UserInfo.AgentID, gkupack.UserInfo.KickFlags, gkupack.UserInfo.Reason);
+ c.OnGodKickUser?.Invoke(gkupack.UserInfo.GodID, gkupack.UserInfo.AgentID, gkupack.UserInfo.KickFlags, gkupack.UserInfo.Reason);
}
#endregion GodPackets
#region Economy/Transaction Packets
- private void HandleMoneyBalanceRequest(Packet Pack)
+ private static void HandleMoneyBalanceRequest(LLClientView c, Packet Pack)
{
MoneyBalanceRequestPacket moneybalancerequestpacket = (MoneyBalanceRequestPacket)Pack;
- if (moneybalancerequestpacket.AgentData.SessionID.NotEqual(m_sessionId) || moneybalancerequestpacket.AgentData.AgentID.NotEqual(m_agentId))
+ if (moneybalancerequestpacket.AgentData.SessionID.NotEqual(c.m_sessionId) || moneybalancerequestpacket.AgentData.AgentID.NotEqual(c.m_agentId))
return;
- OnMoneyBalanceRequest?.Invoke(this, moneybalancerequestpacket.AgentData.AgentID, moneybalancerequestpacket.AgentData.SessionID, moneybalancerequestpacket.MoneyData.TransactionID);
+ c.OnMoneyBalanceRequest?.Invoke(c, moneybalancerequestpacket.AgentData.AgentID, moneybalancerequestpacket.AgentData.SessionID, moneybalancerequestpacket.MoneyData.TransactionID);
}
- private void HandleEconomyDataRequest(Packet Pack)
+ private static void HandleEconomyDataRequest(LLClientView c, Packet _)
{
- OnEconomyDataRequest?.Invoke(this);
+ c.OnEconomyDataRequest?.Invoke(c);
}
- private void HandleRequestPayPrice(Packet Pack)
+ private static void HandleRequestPayPrice(LLClientView c, Packet Pack)
{
RequestPayPricePacket requestPayPricePacket = (RequestPayPricePacket)Pack;
- OnRequestPayPrice?.Invoke(this, requestPayPricePacket.ObjectData.ObjectID);
+ c.OnRequestPayPrice?.Invoke(c, requestPayPricePacket.ObjectData.ObjectID);
}
- private void HandleObjectSaleInfo(Packet Pack)
+ private static void HandleObjectSaleInfo(LLClientView c, Packet Pack)
{
- if(OnObjectSaleInfo is null)
+ if(c.OnObjectSaleInfo is null)
return;
ObjectSaleInfoPacket objectSaleInfoPacket = (ObjectSaleInfoPacket)Pack;
- if (objectSaleInfoPacket.AgentData.SessionID.NotEqual(m_sessionId) || objectSaleInfoPacket.AgentData.AgentID.NotEqual(m_agentId))
+ if (objectSaleInfoPacket.AgentData.SessionID.NotEqual(c.m_sessionId) || objectSaleInfoPacket.AgentData.AgentID.NotEqual(c.m_agentId))
return;
foreach (ObjectSaleInfoPacket.ObjectDataBlock d in objectSaleInfoPacket.ObjectData)
{
- OnObjectSaleInfo?.Invoke(this,
- m_agentId,
- SessionId,
+ c.OnObjectSaleInfo?.Invoke(c,
+ c.m_agentId,
+ c.SessionId,
d.LocalID,
d.SaleType,
d.SalePrice);
}
}
- private void HandleObjectBuy(Packet Pack)
+ private static void HandleObjectBuy(LLClientView c, Packet Pack)
{
- if(OnObjectBuy is null)
+ if(c.OnObjectBuy is null)
return;
ObjectBuyPacket objectBuyPacket = (ObjectBuyPacket)Pack;
- if (objectBuyPacket.AgentData.SessionID.NotEqual(m_sessionId) || objectBuyPacket.AgentData.AgentID.NotEqual(m_agentId))
+ if (objectBuyPacket.AgentData.SessionID.NotEqual(c.m_sessionId) || objectBuyPacket.AgentData.AgentID.NotEqual(c.m_agentId))
return;
foreach (ObjectBuyPacket.ObjectDataBlock d in objectBuyPacket.ObjectData)
{
- OnObjectBuy?.Invoke(this,
+ c.OnObjectBuy?.Invoke(c,
objectBuyPacket.AgentData.AgentID,
objectBuyPacket.AgentData.SessionID,
objectBuyPacket.AgentData.GroupID,
@@ -11506,122 +11528,122 @@ namespace OpenSim.Region.ClientStack.LindenUDP
#endregion Economy/Transaction Packets
#region Script Packets
- private void HandleGetScriptRunning(Packet Pack)
+ private static void HandleGetScriptRunning(LLClientView c, Packet Pack)
{
GetScriptRunningPacket scriptRunning = (GetScriptRunningPacket)Pack;
- OnGetScriptRunning?.Invoke(this, scriptRunning.Script.ObjectID, scriptRunning.Script.ItemID);
+ c.OnGetScriptRunning?.Invoke(c, scriptRunning.Script.ObjectID, scriptRunning.Script.ItemID);
}
- private void HandleSetScriptRunning(Packet Pack)
+ private static void HandleSetScriptRunning(LLClientView c, Packet Pack)
{
SetScriptRunningPacket setScriptRunning = (SetScriptRunningPacket)Pack;
- if (setScriptRunning.AgentData.SessionID.NotEqual(m_sessionId) || setScriptRunning.AgentData.AgentID.NotEqual(m_agentId))
+ if (setScriptRunning.AgentData.SessionID.NotEqual(c.m_sessionId) || setScriptRunning.AgentData.AgentID.NotEqual(c.m_agentId))
return;
- OnSetScriptRunning?.Invoke(this, setScriptRunning.Script.ObjectID, setScriptRunning.Script.ItemID, setScriptRunning.Script.Running);
+ c.OnSetScriptRunning?.Invoke(c, setScriptRunning.Script.ObjectID, setScriptRunning.Script.ItemID, setScriptRunning.Script.Running);
}
- private void HandleScriptReset(Packet Pack)
+ private static void HandleScriptReset(LLClientView c, Packet Pack)
{
ScriptResetPacket scriptResetPacket = (ScriptResetPacket)Pack;
- if (scriptResetPacket.AgentData.SessionID.NotEqual(m_sessionId) || scriptResetPacket.AgentData.AgentID.NotEqual(m_agentId))
+ if (scriptResetPacket.AgentData.SessionID.NotEqual(c.m_sessionId) || scriptResetPacket.AgentData.AgentID.NotEqual(c.m_agentId))
return;
- OnScriptReset?.Invoke(this, scriptResetPacket.Script.ObjectID, scriptResetPacket.Script.ItemID);
+ c.OnScriptReset?.Invoke(c, scriptResetPacket.Script.ObjectID, scriptResetPacket.Script.ItemID);
}
#endregion Script Packets
#region Gesture Managment
- private void HandleActivateGestures(Packet Pack)
+ private static void HandleActivateGestures(LLClientView c, Packet Pack)
{
- if(OnActivateGesture is null)
+ if(c.OnActivateGesture is null)
return;
ActivateGesturesPacket activateGesturePacket = (ActivateGesturesPacket)Pack;
- if (activateGesturePacket.AgentData.SessionID.NotEqual(m_sessionId) || activateGesturePacket.AgentData.AgentID.NotEqual(m_agentId))
+ if (activateGesturePacket.AgentData.SessionID.NotEqual(c.m_sessionId) || activateGesturePacket.AgentData.AgentID.NotEqual(c.m_agentId))
return;
ActivateGesturesPacket.DataBlock[] data = activateGesturePacket.Data;
for (int i= 0; i < data.Length; ++i)
{
- OnActivateGesture?.Invoke(this,
+ c.OnActivateGesture?.Invoke(c,
data[i].AssetID,
data[i].ItemID);
}
}
- private void HandleDeactivateGestures(Packet Pack)
+ private static void HandleDeactivateGestures(LLClientView c, Packet Pack)
{
- if(OnDeactivateGesture is null)
+ if(c.OnDeactivateGesture is null)
return;
DeactivateGesturesPacket deactivateGesturePacket = (DeactivateGesturesPacket)Pack;
- if (deactivateGesturePacket.AgentData.SessionID.NotEqual(m_sessionId) || deactivateGesturePacket.AgentData.AgentID.NotEqual(m_agentId))
+ if (deactivateGesturePacket.AgentData.SessionID.NotEqual(c.m_sessionId) || deactivateGesturePacket.AgentData.AgentID.NotEqual(c.m_agentId))
return;
DeactivateGesturesPacket.DataBlock[] data = deactivateGesturePacket.Data;
for (int i = 0; i < data.Length; ++i)
{
- OnDeactivateGesture?.Invoke(this, data[i].ItemID);
+ c.OnDeactivateGesture?.Invoke(c, data[i].ItemID);
}
}
#endregion Gesture Managment
- private void HandleObjectOwner(Packet Pack)
+ private static void HandleObjectOwner(LLClientView c, Packet Pack)
{
- if (OnObjectOwner is null)
+ if (c.OnObjectOwner is null)
return;
ObjectOwnerPacket objectOwnerPacket = (ObjectOwnerPacket)Pack;
- if (objectOwnerPacket.AgentData.SessionID.NotEqual(m_sessionId) || objectOwnerPacket.AgentData.AgentID.NotEqual(m_agentId))
+ if (objectOwnerPacket.AgentData.SessionID.NotEqual(c.m_sessionId) || objectOwnerPacket.AgentData.AgentID.NotEqual(c.m_agentId))
return;
List localIDs = new();
foreach (ObjectOwnerPacket.ObjectDataBlock d in objectOwnerPacket.ObjectData)
localIDs.Add(d.ObjectLocalID);
- OnObjectOwner?.Invoke(this, objectOwnerPacket.HeaderData.OwnerID, objectOwnerPacket.HeaderData.GroupID, localIDs);
+ c.OnObjectOwner?.Invoke(c, objectOwnerPacket.HeaderData.OwnerID, objectOwnerPacket.HeaderData.GroupID, localIDs);
}
- private void HandleAgentFOV(Packet Pack)
+ private static void HandleAgentFOV(LLClientView c, Packet Pack)
{
AgentFOVPacket fovPacket = (AgentFOVPacket)Pack;
- if(fovPacket.AgentData.AgentID.NotEqual(m_agentId) || fovPacket.AgentData.SessionID.NotEqual(m_sessionId))
+ if(fovPacket.AgentData.AgentID.NotEqual(c.m_agentId) || fovPacket.AgentData.SessionID.NotEqual(c.m_sessionId))
return;
uint genCounter = fovPacket.FOVBlock.GenCounter;
- if (genCounter == 0 || genCounter > m_agentFOVCounter)
+ if (genCounter == 0 || genCounter > c.m_agentFOVCounter)
{
- m_agentFOVCounter = genCounter;
- FOV = fovPacket.FOVBlock.VerticalAngle;
- OnAgentFOV?.Invoke(this, FOV);
+ c.m_agentFOVCounter = genCounter;
+ c.FOV = fovPacket.FOVBlock.VerticalAngle;
+ c.OnAgentFOV?.Invoke(c, c.FOV);
}
}
#region unimplemented handlers
- private void HandleViewerStats(Packet Pack)
+ private static void HandleViewerStats(LLClientView c, Packet Pack)
{
// TODO: handle this packet
//m_log.Warn("[CLIENT]: unhandled ViewerStats packet");
}
- private void HandleMapItemRequest(Packet Pack)
+ private static void HandleMapItemRequest(LLClientView c, Packet Pack)
{
MapItemRequestPacket mirpk = (MapItemRequestPacket)Pack;
- if (mirpk.AgentData.SessionID.NotEqual(m_sessionId) || mirpk.AgentData.AgentID.NotEqual(m_agentId))
+ if (mirpk.AgentData.SessionID.NotEqual(c.m_sessionId) || mirpk.AgentData.AgentID.NotEqual(c.m_agentId))
return;
//m_log.Debug(mirpk.ToString());
try
{
- OnMapItemRequest?.Invoke(this, mirpk.AgentData.Flags, mirpk.AgentData.EstateID,
+ c.OnMapItemRequest?.Invoke(c, mirpk.AgentData.Flags, mirpk.AgentData.EstateID,
mirpk.AgentData.Godlike, mirpk.RequestData.ItemType,
mirpk.RequestData.RegionHandle);
}
@@ -11631,59 +11653,59 @@ namespace OpenSim.Region.ClientStack.LindenUDP
}
}
- private void HandleTransferAbort(Packet Pack)
+ private static void HandleTransferAbort(LLClientView c, Packet Pack)
{
}
- private void HandleMuteListRequest(Packet Pack)
+ private static void HandleMuteListRequest(LLClientView c, Packet Pack)
{
MuteListRequestPacket muteListRequest = (MuteListRequestPacket)Pack;
- if (muteListRequest.AgentData.SessionID.NotEqual(m_sessionId) || muteListRequest.AgentData.AgentID.NotEqual(m_agentId))
+ if (muteListRequest.AgentData.SessionID.NotEqual(c.m_sessionId) || muteListRequest.AgentData.AgentID.NotEqual(c.m_agentId))
return;
- if (OnMuteListRequest != null)
+ if (c.OnMuteListRequest != null)
{
- OnMuteListRequest?.Invoke(this, muteListRequest.MuteData.MuteCRC);
+ c.OnMuteListRequest?.Invoke(c, muteListRequest.MuteData.MuteCRC);
}
else
{
if(muteListRequest.MuteData.MuteCRC == 0)
- SendEmpytMuteList();
+ c.SendEmpytMuteList();
else
- SendUseCachedMuteList();
+ c.SendUseCachedMuteList();
}
}
- private void HandleUpdateMuteListEntry(Packet packet)
+ private static void HandleUpdateMuteListEntry(LLClientView c, Packet packet)
{
UpdateMuteListEntryPacket UpdateMuteListEntry = (UpdateMuteListEntryPacket)packet;
- if (UpdateMuteListEntry.AgentData.SessionID.NotEqual(m_sessionId) || UpdateMuteListEntry.AgentData.AgentID.NotEqual(m_agentId))
+ if (UpdateMuteListEntry.AgentData.SessionID.NotEqual(c.m_sessionId) || UpdateMuteListEntry.AgentData.AgentID.NotEqual(c.m_agentId))
return;
- OnUpdateMuteListEntry?.Invoke(this, UpdateMuteListEntry.MuteData.MuteID,
+ c.OnUpdateMuteListEntry?.Invoke(c, UpdateMuteListEntry.MuteData.MuteID,
Utils.BytesToString(UpdateMuteListEntry.MuteData.MuteName),
UpdateMuteListEntry.MuteData.MuteType,
UpdateMuteListEntry.MuteData.MuteFlags);
}
- private void HandleRemoveMuteListEntry(Packet packet)
+ private static void HandleRemoveMuteListEntry(LLClientView c, Packet packet)
{
RemoveMuteListEntryPacket RemoveMuteListEntry = (RemoveMuteListEntryPacket)packet;
- if (RemoveMuteListEntry.AgentData.SessionID.NotEqual(m_sessionId) || RemoveMuteListEntry.AgentData.AgentID.NotEqual(m_agentId))
+ if (RemoveMuteListEntry.AgentData.SessionID.NotEqual(c.m_sessionId) || RemoveMuteListEntry.AgentData.AgentID.NotEqual(c.m_agentId))
return;
- OnRemoveMuteListEntry?.Invoke(this,
+ c.OnRemoveMuteListEntry?.Invoke(c,
RemoveMuteListEntry.MuteData.MuteID,
Utils.BytesToString(RemoveMuteListEntry.MuteData.MuteName));
}
- private void HandleUserReport(Packet packet)
+ private static void HandleUserReport(LLClientView c, Packet packet)
{
UserReportPacket UserReport = (UserReportPacket)packet;
- if (UserReport.AgentData.SessionID.NotEqual(m_sessionId) || UserReport.AgentData.AgentID.NotEqual(m_agentId))
+ if (UserReport.AgentData.SessionID.NotEqual(c.m_sessionId) || UserReport.AgentData.AgentID.NotEqual(c.m_agentId))
return;
- OnUserReport?.Invoke(this,
+ c.OnUserReport?.Invoke(c,
Utils.BytesToString(UserReport.ReportData.AbuseRegionName),
UserReport.ReportData.AbuserID,
UserReport.ReportData.Category,
@@ -11697,27 +11719,27 @@ namespace OpenSim.Region.ClientStack.LindenUDP
UserReport.AgentData.AgentID);
}
- private void HandleSendPostcard(Packet packet)
+ private static void HandleSendPostcard(LLClientView c, Packet packet)
{
// SendPostcardPacket SendPostcard =
// (SendPostcardPacket)packet;
- OnSendPostcard?.Invoke(this);
+ c.OnSendPostcard?.Invoke(c);
}
- private void HandleChangeInventoryItemFlags(Packet packet)
+ private static void HandleChangeInventoryItemFlags(LLClientView c, Packet packet)
{
- if(OnChangeInventoryItemFlags is null)
+ if(c.OnChangeInventoryItemFlags is null)
return;
ChangeInventoryItemFlagsPacket ChangeInventoryItemFlags = (ChangeInventoryItemFlagsPacket)packet;
- if (ChangeInventoryItemFlags.AgentData.SessionID.NotEqual(m_sessionId) || ChangeInventoryItemFlags.AgentData.AgentID.NotEqual(m_agentId))
+ if (ChangeInventoryItemFlags.AgentData.SessionID.NotEqual(c.m_sessionId) || ChangeInventoryItemFlags.AgentData.AgentID.NotEqual(c.m_agentId))
return;
foreach(ChangeInventoryItemFlagsPacket.InventoryDataBlock b in ChangeInventoryItemFlags.InventoryData)
- OnChangeInventoryItemFlags?.Invoke(this, b.ItemID, b.Flags);
+ c.OnChangeInventoryItemFlags?.Invoke(c, b.ItemID, b.Flags);
}
- private void HandleUseCircuitCode(Packet Pack)
+ private static void HandleUseCircuitCode(LLClientView c, Packet Pack)
{
/*
UseCircuitCodePacket uccp = (UseCircuitCodePacket)Pack;
@@ -11731,13 +11753,13 @@ namespace OpenSim.Region.ClientStack.LindenUDP
*/
}
- private void HandleCreateNewOutfitAttachments(Packet Pack)
+ private static void HandleCreateNewOutfitAttachments(LLClientView c, Packet Pack)
{
- if(OnMoveItemsAndLeaveCopy is null)
+ if(c.OnMoveItemsAndLeaveCopy is null)
return;
CreateNewOutfitAttachmentsPacket packet = (CreateNewOutfitAttachmentsPacket)Pack;
- if (packet.AgentData.SessionID.NotEqual(m_sessionId) || packet.AgentData.AgentID.NotEqual(m_agentId))
+ if (packet.AgentData.SessionID.NotEqual(c.m_sessionId) || packet.AgentData.AgentID.NotEqual(c.m_agentId))
return;
List items = new();
@@ -11751,21 +11773,20 @@ namespace OpenSim.Region.ClientStack.LindenUDP
items.Add(b);
}
- OnMoveItemsAndLeaveCopy?.Invoke(this, items, packet.HeaderData.NewFolderID);
+ c.OnMoveItemsAndLeaveCopy?.Invoke(c, items, packet.HeaderData.NewFolderID);
}
- private void HandleAgentHeightWidth(Packet Pack)
+ private static void HandleAgentHeightWidth(LLClientView c, Packet Pack)
{
AgentHeightWidthPacket hwPacket = (AgentHeightWidthPacket)Pack;
- if (hwPacket.AgentData.AgentID.NotEqual(m_agentId) || hwPacket.AgentData.SessionID.NotEqual(m_sessionId))
+ if (hwPacket.AgentData.AgentID.NotEqual(c.m_agentId) || hwPacket.AgentData.SessionID.NotEqual(c.m_sessionId))
return;
- viewHeight = hwPacket.HeightWidthBlock.Height;
- viewWidth = hwPacket.HeightWidthBlock.Width;
+ c.viewHeight = hwPacket.HeightWidthBlock.Height;
+ c.viewWidth = hwPacket.HeightWidthBlock.Width;
}
-
- private void HandleInventoryDescendents(Packet Pack)
+ private static void HandleInventoryDescendents(LLClientView c, Packet Pack)
{
}
@@ -11773,13 +11794,13 @@ namespace OpenSim.Region.ClientStack.LindenUDP
#region Dir handlers
- private void HandleDirPlacesQuery(Packet Pack)
+ private static void HandleDirPlacesQuery(LLClientView c, Packet Pack)
{
DirPlacesQueryPacket dirPlacesQueryPacket = (DirPlacesQueryPacket)Pack;
- if (dirPlacesQueryPacket.AgentData.SessionID.NotEqual(m_sessionId) || dirPlacesQueryPacket.AgentData.AgentID.NotEqual(m_agentId))
+ if (dirPlacesQueryPacket.AgentData.SessionID.NotEqual(c.m_sessionId) || dirPlacesQueryPacket.AgentData.AgentID.NotEqual(c.m_agentId))
return;
- OnDirPlacesQuery?.Invoke(this,
+ c.OnDirPlacesQuery?.Invoke(c,
dirPlacesQueryPacket.QueryData.QueryID,
Utils.BytesToString(
dirPlacesQueryPacket.QueryData.QueryText),
@@ -11790,13 +11811,13 @@ namespace OpenSim.Region.ClientStack.LindenUDP
dirPlacesQueryPacket.QueryData.QueryStart);
}
- private void HandleDirFindQuery(Packet Pack)
+ private static void HandleDirFindQuery(LLClientView c, Packet Pack)
{
DirFindQueryPacket dirFindQueryPacket = (DirFindQueryPacket)Pack;
- if (dirFindQueryPacket.AgentData.SessionID.NotEqual(m_sessionId) || dirFindQueryPacket.AgentData.AgentID.NotEqual(m_agentId))
+ if (dirFindQueryPacket.AgentData.SessionID.NotEqual(c.m_sessionId) || dirFindQueryPacket.AgentData.AgentID.NotEqual(c.m_agentId))
return;
- OnDirFindQuery?.Invoke(this,
+ c.OnDirFindQuery?.Invoke(c,
dirFindQueryPacket.QueryData.QueryID,
Utils.BytesToString(
dirFindQueryPacket.QueryData.QueryText).Trim(),
@@ -11804,13 +11825,13 @@ namespace OpenSim.Region.ClientStack.LindenUDP
dirFindQueryPacket.QueryData.QueryStart);
}
- private void HandleDirLandQuery(Packet Pack)
+ private static void HandleDirLandQuery(LLClientView c, Packet Pack)
{
DirLandQueryPacket dirLandQueryPacket = (DirLandQueryPacket)Pack;
- if (dirLandQueryPacket.AgentData.SessionID.NotEqual(m_sessionId) || dirLandQueryPacket.AgentData.AgentID.NotEqual(m_agentId))
+ if (dirLandQueryPacket.AgentData.SessionID.NotEqual(c.m_sessionId) || dirLandQueryPacket.AgentData.AgentID.NotEqual(c.m_agentId))
return;
- OnDirLandQuery?.Invoke(this,
+ c.OnDirLandQuery?.Invoke(c,
dirLandQueryPacket.QueryData.QueryID,
dirLandQueryPacket.QueryData.QueryFlags,
dirLandQueryPacket.QueryData.SearchType,
@@ -11819,24 +11840,24 @@ namespace OpenSim.Region.ClientStack.LindenUDP
dirLandQueryPacket.QueryData.QueryStart);
}
- private void HandleDirPopularQuery(Packet Pack)
+ private static void HandleDirPopularQuery(LLClientView c, Packet Pack)
{
DirPopularQueryPacket dirPopularQueryPacket = (DirPopularQueryPacket)Pack;
- if (dirPopularQueryPacket.AgentData.SessionID.NotEqual(m_sessionId) || dirPopularQueryPacket.AgentData.AgentID.NotEqual(m_agentId))
+ if (dirPopularQueryPacket.AgentData.SessionID.NotEqual(c.m_sessionId) || dirPopularQueryPacket.AgentData.AgentID.NotEqual(c.m_agentId))
return;
- OnDirPopularQuery?.Invoke(this,
+ c.OnDirPopularQuery?.Invoke(c,
dirPopularQueryPacket.QueryData.QueryID,
dirPopularQueryPacket.QueryData.QueryFlags);
}
- private void HandleDirClassifiedQuery(Packet Pack)
+ private static void HandleDirClassifiedQuery(LLClientView c, Packet Pack)
{
DirClassifiedQueryPacket dirClassifiedQueryPacket = (DirClassifiedQueryPacket)Pack;
- if (dirClassifiedQueryPacket.AgentData.SessionID.NotEqual(m_sessionId) || dirClassifiedQueryPacket.AgentData.AgentID.NotEqual(m_agentId))
+ if (dirClassifiedQueryPacket.AgentData.SessionID.NotEqual(c.m_sessionId) || dirClassifiedQueryPacket.AgentData.AgentID.NotEqual(c.m_agentId))
return;
- OnDirClassifiedQuery?.Invoke(this,
+ c.OnDirClassifiedQuery?.Invoke(c,
dirClassifiedQueryPacket.QueryData.QueryID,
Utils.BytesToString(
dirClassifiedQueryPacket.QueryData.QueryText),
@@ -11845,53 +11866,53 @@ namespace OpenSim.Region.ClientStack.LindenUDP
dirClassifiedQueryPacket.QueryData.QueryStart);
}
- private void HandleEventInfoRequest(Packet Pack)
+ private static void HandleEventInfoRequest(LLClientView c, Packet Pack)
{
EventInfoRequestPacket eventInfoRequestPacket = (EventInfoRequestPacket)Pack;
- if (eventInfoRequestPacket.AgentData.SessionID.NotEqual(m_sessionId) || eventInfoRequestPacket.AgentData.AgentID.NotEqual(m_agentId))
+ if (eventInfoRequestPacket.AgentData.SessionID.NotEqual(c.m_sessionId) || eventInfoRequestPacket.AgentData.AgentID.NotEqual(c.m_agentId))
return;
- OnEventInfoRequest?.Invoke(this, eventInfoRequestPacket.EventData.EventID);
+ c.OnEventInfoRequest?.Invoke(c, eventInfoRequestPacket.EventData.EventID);
}
#endregion
#region Calling Card
- private void HandleOfferCallingCard(Packet Pack)
+ private static void HandleOfferCallingCard(LLClientView c, Packet Pack)
{
OfferCallingCardPacket offerCallingCardPacket = (OfferCallingCardPacket)Pack;
- if (offerCallingCardPacket.AgentData.SessionID.NotEqual(m_sessionId) || offerCallingCardPacket.AgentData.AgentID.NotEqual(m_agentId))
+ if (offerCallingCardPacket.AgentData.SessionID.NotEqual(c.m_sessionId) || offerCallingCardPacket.AgentData.AgentID.NotEqual(c.m_agentId))
return;
- OnOfferCallingCard?.Invoke(this,
+ c.OnOfferCallingCard?.Invoke(c,
offerCallingCardPacket.AgentBlock.DestID,
offerCallingCardPacket.AgentBlock.TransactionID);
}
- private void HandleAcceptCallingCard(Packet Pack)
+ private static void HandleAcceptCallingCard(LLClientView c, Packet Pack)
{
AcceptCallingCardPacket acceptCallingCardPacket = (AcceptCallingCardPacket)Pack;
- if (acceptCallingCardPacket.AgentData.SessionID.NotEqual(m_sessionId) || acceptCallingCardPacket.AgentData.AgentID.NotEqual(m_agentId))
+ if (acceptCallingCardPacket.AgentData.SessionID.NotEqual(c.m_sessionId) || acceptCallingCardPacket.AgentData.AgentID.NotEqual(c.m_agentId))
return;
// according to http://wiki.secondlife.com/wiki/AcceptCallingCard FolderData should
// contain exactly one entry
if (acceptCallingCardPacket.FolderData.Length > 0)
{
- OnAcceptCallingCard?.Invoke(this,
+ c.OnAcceptCallingCard?.Invoke(c,
acceptCallingCardPacket.TransactionBlock.TransactionID,
acceptCallingCardPacket.FolderData[0].FolderID);
}
}
- private void HandleDeclineCallingCard(Packet Pack)
+ private static void HandleDeclineCallingCard(LLClientView c, Packet Pack)
{
DeclineCallingCardPacket declineCallingCardPacket = (DeclineCallingCardPacket)Pack;
- if (declineCallingCardPacket.AgentData.SessionID.NotEqual(m_sessionId) || declineCallingCardPacket.AgentData.AgentID.NotEqual(m_agentId))
+ if (declineCallingCardPacket.AgentData.SessionID.NotEqual(c.m_sessionId) || declineCallingCardPacket.AgentData.AgentID.NotEqual(c.m_agentId))
return;
- OnDeclineCallingCard?.Invoke(this,
+ c.OnDeclineCallingCard?.Invoke(c,
declineCallingCardPacket.TransactionBlock.TransactionID);
}
@@ -11899,81 +11920,82 @@ namespace OpenSim.Region.ClientStack.LindenUDP
#region Groups
- private void HandleActivateGroup(Packet Pack)
+ private static void HandleActivateGroup(LLClientView c, Packet Pack)
{
- if (m_GroupsModule is null)
+ if (c.m_GroupsModule is null)
return;
ActivateGroupPacket activateGroupPacket = (ActivateGroupPacket)Pack;
- if (activateGroupPacket.AgentData.SessionID.NotEqual(m_sessionId) || activateGroupPacket.AgentData.AgentID.NotEqual(m_agentId))
+ if (activateGroupPacket.AgentData.SessionID.NotEqual(c.m_sessionId) || activateGroupPacket.AgentData.AgentID.NotEqual(c.m_agentId))
return;
- m_GroupsModule.ActivateGroup(this, activateGroupPacket.AgentData.GroupID);
+ c.m_GroupsModule.ActivateGroup(c, activateGroupPacket.AgentData.GroupID);
}
- private void HandleGroupVoteHistoryRequest(Packet packet)
+ private static void HandleGroupVoteHistoryRequest(LLClientView c, Packet packet)
{
GroupVoteHistoryRequestPacket GroupVoteHistoryRequest = (GroupVoteHistoryRequestPacket)packet;
- if (GroupVoteHistoryRequest.AgentData.SessionID.NotEqual(m_sessionId) || GroupVoteHistoryRequest.AgentData.AgentID.NotEqual(m_agentId))
+ if (GroupVoteHistoryRequest.AgentData.SessionID.NotEqual(c.m_sessionId) || GroupVoteHistoryRequest.AgentData.AgentID.NotEqual(c.m_agentId))
return;
- OnGroupVoteHistoryRequest?.Invoke(this, m_agentId, SessionId, GroupVoteHistoryRequest.GroupData.GroupID, GroupVoteHistoryRequest.TransactionData.TransactionID);
+ c.OnGroupVoteHistoryRequest?.Invoke(c, c.m_agentId, c.SessionId, GroupVoteHistoryRequest.GroupData.GroupID, GroupVoteHistoryRequest.TransactionData.TransactionID);
}
- private void HandleGroupActiveProposalsRequest(Packet packet)
+ private static void HandleGroupActiveProposalsRequest(LLClientView c, Packet packet)
{
GroupActiveProposalsRequestPacket GroupActiveProposalsRequest = (GroupActiveProposalsRequestPacket)packet;
- if (GroupActiveProposalsRequest.AgentData.SessionID.NotEqual(m_sessionId) || GroupActiveProposalsRequest.AgentData.AgentID.NotEqual(m_agentId))
+ if (GroupActiveProposalsRequest.AgentData.SessionID.NotEqual(c.m_sessionId) || GroupActiveProposalsRequest.AgentData.AgentID.NotEqual(c.m_agentId))
return;
- OnGroupActiveProposalsRequest?.Invoke(this, m_agentId, SessionId, GroupActiveProposalsRequest.GroupData.GroupID, GroupActiveProposalsRequest.TransactionData.TransactionID);
+ c.OnGroupActiveProposalsRequest?.Invoke(c, c.m_agentId, c.SessionId, GroupActiveProposalsRequest.GroupData.GroupID, GroupActiveProposalsRequest.TransactionData.TransactionID);
}
- private void HandleGroupAccountDetailsRequest(Packet packet)
+ private static void HandleGroupAccountDetailsRequest(LLClientView c, Packet packet)
{
GroupAccountDetailsRequestPacket GroupAccountDetailsRequest = (GroupAccountDetailsRequestPacket)packet;
- if (GroupAccountDetailsRequest.AgentData.SessionID.NotEqual(m_sessionId) || GroupAccountDetailsRequest.AgentData.AgentID.NotEqual(m_agentId))
+ if (GroupAccountDetailsRequest.AgentData.SessionID.NotEqual(c.m_sessionId) || GroupAccountDetailsRequest.AgentData.AgentID.NotEqual(c.m_agentId))
return;
- OnGroupAccountDetailsRequest?.Invoke(this, m_agentId, GroupAccountDetailsRequest.AgentData.GroupID, GroupAccountDetailsRequest.MoneyData.RequestID, SessionId);
+ c.OnGroupAccountDetailsRequest?.Invoke(c, c.m_agentId, GroupAccountDetailsRequest.AgentData.GroupID, GroupAccountDetailsRequest.MoneyData.RequestID, c.SessionId);
}
- private void HandleGroupAccountSummaryRequest(Packet packet)
+ private static void HandleGroupAccountSummaryRequest(LLClientView c, Packet packet)
{
GroupAccountSummaryRequestPacket GroupAccountSummaryRequest = (GroupAccountSummaryRequestPacket)packet;
- if (GroupAccountSummaryRequest.AgentData.SessionID.NotEqual(m_sessionId) || GroupAccountSummaryRequest.AgentData.AgentID.NotEqual(m_agentId))
+ if (GroupAccountSummaryRequest.AgentData.SessionID.NotEqual(c.m_sessionId) || GroupAccountSummaryRequest.AgentData.AgentID.NotEqual(c.m_agentId))
return;
- OnGroupAccountSummaryRequest?.Invoke(this, m_agentId, GroupAccountSummaryRequest.AgentData.GroupID);
+ c.OnGroupAccountSummaryRequest?.Invoke(c, c.m_agentId, GroupAccountSummaryRequest.AgentData.GroupID);
}
- private void HandleGroupTransactionsDetailsRequest(Packet packet)
+ private static void HandleGroupTransactionsDetailsRequest(LLClientView c, Packet packet)
{
GroupAccountTransactionsRequestPacket GroupAccountTransactionsRequest = (GroupAccountTransactionsRequestPacket)packet;
- if (GroupAccountTransactionsRequest.AgentData.SessionID.NotEqual(m_sessionId) || GroupAccountTransactionsRequest.AgentData.AgentID.NotEqual(m_agentId))
+ if (GroupAccountTransactionsRequest.AgentData.SessionID.NotEqual(c.m_sessionId) || GroupAccountTransactionsRequest.AgentData.AgentID.NotEqual(c.m_agentId))
return;
- OnGroupAccountTransactionsRequest?.Invoke(this, m_agentId, GroupAccountTransactionsRequest.AgentData.GroupID,GroupAccountTransactionsRequest.MoneyData.RequestID, SessionId);
+ c.OnGroupAccountTransactionsRequest?.Invoke(c, c.m_agentId, GroupAccountTransactionsRequest.AgentData.GroupID,
+ GroupAccountTransactionsRequest.MoneyData.RequestID, c.SessionId);
}
- private void HandleGroupTitlesRequest(Packet Pack)
+ private static void HandleGroupTitlesRequest(LLClientView c, Packet Pack)
{
- if (m_GroupsModule is null)
+ if (c.m_GroupsModule is null)
return;
GroupTitlesRequestPacket groupTitlesRequest = (GroupTitlesRequestPacket)Pack;
- if (groupTitlesRequest.AgentData.SessionID.NotEqual(m_sessionId) || groupTitlesRequest.AgentData.AgentID.NotEqual(m_agentId))
+ if (groupTitlesRequest.AgentData.SessionID.NotEqual(c.m_sessionId) || groupTitlesRequest.AgentData.AgentID.NotEqual(c.m_agentId))
return;
GroupTitlesReplyPacket groupTitlesReply = (GroupTitlesReplyPacket)PacketPool.Instance.GetPacket(PacketType.GroupTitlesReply);
groupTitlesReply.AgentData = new GroupTitlesReplyPacket.AgentDataBlock
{
- AgentID = m_agentId,
+ AgentID = c.m_agentId,
GroupID = groupTitlesRequest.AgentData.GroupID,
RequestID = groupTitlesRequest.AgentData.RequestID
};
- List titles = m_GroupsModule.GroupTitlesRequest(this,
+ List titles = c.m_GroupsModule.GroupTitlesRequest(c,
groupTitlesRequest.AgentData.GroupID);
groupTitlesReply.GroupData = new GroupTitlesReplyPacket.GroupDataBlock[titles.Count];
@@ -11988,36 +12010,36 @@ namespace OpenSim.Region.ClientStack.LindenUDP
};
}
- OutPacket(groupTitlesReply, ThrottleOutPacketType.Task);
+ c.OutPacket(groupTitlesReply, ThrottleOutPacketType.Task);
}
UUID lastGroupProfileRequestID = UUID.Zero;
double lastGroupProfileRequestTS = Util.GetTimeStampMS();
- private void HandleGroupProfileRequest(Packet Pack)
+ private static void HandleGroupProfileRequest(LLClientView c, Packet Pack)
{
- if(m_GroupsModule is null)
+ if(c.m_GroupsModule is null)
return;
GroupProfileRequestPacket groupProfileRequest = (GroupProfileRequestPacket)Pack;
- if (groupProfileRequest.AgentData.SessionID.NotEqual(m_sessionId) || groupProfileRequest.AgentData.AgentID.NotEqual(m_agentId))
+ if (groupProfileRequest.AgentData.SessionID.NotEqual(c.m_sessionId) || groupProfileRequest.AgentData.AgentID.NotEqual(c.m_agentId))
return;
UUID grpID = groupProfileRequest.GroupData.GroupID;
double ts = Util.GetTimeStampMS();
- if(grpID == lastGroupProfileRequestID && ts - lastGroupProfileRequestTS < 10000)
+ if(grpID == c.lastGroupProfileRequestID && ts - c.lastGroupProfileRequestTS < 10000)
return;
- lastGroupProfileRequestID = grpID;
- lastGroupProfileRequestTS = ts;
+ c.lastGroupProfileRequestID = grpID;
+ c.lastGroupProfileRequestTS = ts;
GroupProfileReplyPacket groupProfileReply = (GroupProfileReplyPacket)PacketPool.Instance.GetPacket(PacketType.GroupProfileReply);
groupProfileReply.AgentData = new GroupProfileReplyPacket.AgentDataBlock();
groupProfileReply.GroupData = new GroupProfileReplyPacket.GroupDataBlock();
- groupProfileReply.AgentData.AgentID = m_agentId;
+ groupProfileReply.AgentData.AgentID = c.m_agentId;
- GroupProfileData d = m_GroupsModule.GroupProfileRequest(this, groupProfileRequest.GroupData.GroupID);
+ GroupProfileData d = c.m_GroupsModule.GroupProfileRequest(c, groupProfileRequest.GroupData.GroupID);
if(d.GroupID.IsZero()) // don't send broken data
return;
@@ -12039,9 +12061,9 @@ namespace OpenSim.Region.ClientStack.LindenUDP
groupProfileReply.GroupData.MaturePublish = d.MaturePublish;
groupProfileReply.GroupData.OwnerRole = d.OwnerRole;
- if (m_scene.Permissions.IsGod(m_agentId) && (!IsGroupMember(groupProfileRequest.GroupData.GroupID)))
+ if (c.m_scene.Permissions.IsGod(c.m_agentId) && (!c.IsGroupMember(groupProfileRequest.GroupData.GroupID)))
{
- if (m_scene.TryGetScenePresence(m_agentId, out ScenePresence p))
+ if (c.m_scene.TryGetScenePresence(c.m_agentId, out ScenePresence p))
{
if (p.IsViewerUIGod)
{
@@ -12051,24 +12073,24 @@ namespace OpenSim.Region.ClientStack.LindenUDP
}
}
- OutPacket(groupProfileReply, ThrottleOutPacketType.Task);
+ c.OutPacket(groupProfileReply, ThrottleOutPacketType.Task);
- if(grpID == lastGroupProfileRequestID)
- lastGroupProfileRequestTS = Util.GetTimeStampMS() - 7000;
+ if(grpID.Equals(c.lastGroupProfileRequestID))
+ c.lastGroupProfileRequestTS = Util.GetTimeStampMS() - 7000;
}
- private void HandleGroupMembersRequest(Packet Pack)
+ private static void HandleGroupMembersRequest(LLClientView c, Packet Pack)
{
- if (m_GroupsModule is null)
+ if (c.m_GroupsModule is null)
return;
GroupMembersRequestPacket groupMembersRequestPacket =
(GroupMembersRequestPacket)Pack;
- if (groupMembersRequestPacket.AgentData.SessionID.NotEqual(m_sessionId) || groupMembersRequestPacket.AgentData.AgentID.NotEqual(m_agentId))
+ if (groupMembersRequestPacket.AgentData.SessionID.NotEqual(c.m_sessionId) || groupMembersRequestPacket.AgentData.AgentID.NotEqual(c.m_agentId))
return;
List members =
- m_GroupsModule.GroupMembersRequest(this, groupMembersRequestPacket.GroupData.GroupID);
+ c.m_GroupsModule.GroupMembersRequest(c, groupMembersRequestPacket.GroupData.GroupID);
int memberCount = members.Count;
int indx = 0;
@@ -12084,7 +12106,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
groupMembersReply.GroupData = new GroupMembersReplyPacket.GroupDataBlock();
groupMembersReply.MemberData = new GroupMembersReplyPacket.MemberDataBlock[blockCount];
- groupMembersReply.AgentData.AgentID = m_agentId;
+ groupMembersReply.AgentData.AgentID = c.m_agentId;
groupMembersReply.GroupData.GroupID = groupMembersRequestPacket.GroupData.GroupID;
groupMembersReply.GroupData.RequestID = groupMembersRequestPacket.GroupData.RequestID;
groupMembersReply.GroupData.MemberCount = memberCount;
@@ -12102,28 +12124,28 @@ namespace OpenSim.Region.ClientStack.LindenUDP
IsOwner = m.IsOwner
};
}
- OutPacket(groupMembersReply, ThrottleOutPacketType.Task);
+ c.OutPacket(groupMembersReply, ThrottleOutPacketType.Task);
}
}
- private void HandleGroupRoleDataRequest(Packet Pack)
+ private static void HandleGroupRoleDataRequest(LLClientView c, Packet Pack)
{
- if (m_GroupsModule is null)
+ if (c.m_GroupsModule is null)
return;
GroupRoleDataRequestPacket groupRolesRequest = (GroupRoleDataRequestPacket)Pack;
- if (groupRolesRequest.AgentData.SessionID.NotEqual(m_sessionId) || groupRolesRequest.AgentData.AgentID.NotEqual(m_agentId))
+ if (groupRolesRequest.AgentData.SessionID.NotEqual(c.m_sessionId) || groupRolesRequest.AgentData.AgentID.NotEqual(c.m_agentId))
return;
GroupRoleDataReplyPacket groupRolesReply = (GroupRoleDataReplyPacket)PacketPool.Instance.GetPacket(PacketType.GroupRoleDataReply);
- groupRolesReply.AgentData = new GroupRoleDataReplyPacket.AgentDataBlock { AgentID = m_agentId };
+ groupRolesReply.AgentData = new GroupRoleDataReplyPacket.AgentDataBlock { AgentID = c.m_agentId };
groupRolesReply.GroupData = new GroupRoleDataReplyPacket.GroupDataBlock
{
GroupID = groupRolesRequest.GroupData.GroupID,
RequestID = groupRolesRequest.GroupData.RequestID
};
- List titles = m_GroupsModule.GroupRoleDataRequest(this,
+ List titles = c.m_GroupsModule.GroupRoleDataRequest(c,
groupRolesRequest.GroupData.GroupID);
groupRolesReply.GroupData.RoleCount = titles.Count;
groupRolesReply.RoleData = new GroupRoleDataReplyPacket.RoleDataBlock[titles.Count];
@@ -12143,19 +12165,19 @@ namespace OpenSim.Region.ClientStack.LindenUDP
i++;
}
- OutPacket(groupRolesReply, ThrottleOutPacketType.Task);
+ c.OutPacket(groupRolesReply, ThrottleOutPacketType.Task);
}
- private void HandleGroupRoleMembersRequest(Packet Pack)
+ private static void HandleGroupRoleMembersRequest(LLClientView c, Packet Pack)
{
- if (m_GroupsModule is null)
+ if (c.m_GroupsModule is null)
return;
GroupRoleMembersRequestPacket groupRoleMembersRequest = (GroupRoleMembersRequestPacket)Pack;
- if (groupRoleMembersRequest.AgentData.SessionID.NotEqual(m_sessionId) || groupRoleMembersRequest.AgentData.AgentID.NotEqual(m_agentId))
+ if (groupRoleMembersRequest.AgentData.SessionID.NotEqual(c.m_sessionId) || groupRoleMembersRequest.AgentData.AgentID.NotEqual(c.m_agentId))
return;
- List mappings = m_GroupsModule.GroupRoleMembersRequest(this,
+ List mappings = c.m_GroupsModule.GroupRoleMembersRequest(c,
groupRoleMembersRequest.GroupData.GroupID);
int mappingsCount = mappings.Count;
@@ -12169,7 +12191,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
GroupRoleMembersReplyPacket groupRoleMembersReply = (GroupRoleMembersReplyPacket)PacketPool.Instance.GetPacket(PacketType.GroupRoleMembersReply);
groupRoleMembersReply.AgentData = new GroupRoleMembersReplyPacket.AgentDataBlock
{
- AgentID = m_agentId,
+ AgentID = c.m_agentId,
GroupID = groupRoleMembersRequest.GroupData.GroupID,
RequestID = groupRoleMembersRequest.GroupData.RequestID,
@@ -12190,20 +12212,20 @@ namespace OpenSim.Region.ClientStack.LindenUDP
};
}
- OutPacket(groupRoleMembersReply, ThrottleOutPacketType.Task);
+ c.OutPacket(groupRoleMembersReply, ThrottleOutPacketType.Task);
}
}
- private void HandleCreateGroupRequest(Packet Pack)
+ private static void HandleCreateGroupRequest(LLClientView c, Packet Pack)
{
- if (m_GroupsModule is null)
+ if (c.m_GroupsModule is null)
return;
CreateGroupRequestPacket createGroupRequest = (CreateGroupRequestPacket)Pack;
- if (createGroupRequest.AgentData.SessionID.NotEqual(m_sessionId) || createGroupRequest.AgentData.AgentID.NotEqual(m_agentId))
+ if (createGroupRequest.AgentData.SessionID.NotEqual(c.m_sessionId) || createGroupRequest.AgentData.AgentID.NotEqual(c.m_agentId))
return;
- m_GroupsModule.CreateGroup(this,
+ c.m_GroupsModule.CreateGroup(c,
Utils.BytesToString(createGroupRequest.GroupData.Name),
Utils.BytesToString(createGroupRequest.GroupData.Charter),
createGroupRequest.GroupData.ShowInList,
@@ -12214,16 +12236,16 @@ namespace OpenSim.Region.ClientStack.LindenUDP
createGroupRequest.GroupData.MaturePublish);
}
- private void HandleUpdateGroupInfo(Packet Pack)
+ private static void HandleUpdateGroupInfo(LLClientView c, Packet Pack)
{
- if (m_GroupsModule is null)
+ if (c.m_GroupsModule is null)
return;
UpdateGroupInfoPacket updateGroupInfo = (UpdateGroupInfoPacket)Pack;
- if (updateGroupInfo.AgentData.SessionID.NotEqual(m_sessionId) || updateGroupInfo.AgentData.AgentID.NotEqual(m_agentId))
+ if (updateGroupInfo.AgentData.SessionID.NotEqual(c.m_sessionId) || updateGroupInfo.AgentData.AgentID.NotEqual(c.m_agentId))
return;
- m_GroupsModule.UpdateGroupInfo(this,
+ c.m_GroupsModule.UpdateGroupInfo(c,
updateGroupInfo.GroupData.GroupID,
Utils.BytesToString(updateGroupInfo.GroupData.Charter),
updateGroupInfo.GroupData.ShowInList,
@@ -12234,60 +12256,60 @@ namespace OpenSim.Region.ClientStack.LindenUDP
updateGroupInfo.GroupData.MaturePublish);
}
- private void HandleSetGroupAcceptNotices(Packet Pack)
+ private static void HandleSetGroupAcceptNotices(LLClientView c, Packet Pack)
{
- if (m_GroupsModule is null)
+ if (c.m_GroupsModule is null)
return;
SetGroupAcceptNoticesPacket setGroupAcceptNotices = (SetGroupAcceptNoticesPacket)Pack;
- if (setGroupAcceptNotices.AgentData.SessionID.NotEqual(m_sessionId) || setGroupAcceptNotices.AgentData.AgentID.NotEqual(m_agentId))
+ if (setGroupAcceptNotices.AgentData.SessionID.NotEqual(c.m_sessionId) || setGroupAcceptNotices.AgentData.AgentID.NotEqual(c.m_agentId))
return;
- m_GroupsModule.SetGroupAcceptNotices(this,
+ c.m_GroupsModule.SetGroupAcceptNotices(c,
setGroupAcceptNotices.Data.GroupID,
setGroupAcceptNotices.Data.AcceptNotices,
setGroupAcceptNotices.NewData.ListInProfile);
}
- private void HandleGroupTitleUpdate(Packet Pack)
+ private static void HandleGroupTitleUpdate(LLClientView c, Packet Pack)
{
GroupTitleUpdatePacket groupTitleUpdate = (GroupTitleUpdatePacket)Pack;
- if (groupTitleUpdate.AgentData.SessionID.NotEqual(m_sessionId) || groupTitleUpdate.AgentData.AgentID.NotEqual(m_agentId))
+ if (groupTitleUpdate.AgentData.SessionID.NotEqual(c.m_sessionId) || groupTitleUpdate.AgentData.AgentID.NotEqual(c.m_agentId))
return;
- m_GroupsModule.GroupTitleUpdate(this,
+ c.m_GroupsModule.GroupTitleUpdate(c,
groupTitleUpdate.AgentData.GroupID,
groupTitleUpdate.AgentData.TitleRoleID);
}
- private void HandleParcelDeedToGroup(Packet Pack)
+ private static void HandleParcelDeedToGroup(LLClientView c, Packet Pack)
{
- if (m_GroupsModule is null)
+ if (c.m_GroupsModule is null)
return;
ParcelDeedToGroupPacket parcelDeedToGroup = (ParcelDeedToGroupPacket)Pack;
- if (parcelDeedToGroup.AgentData.SessionID.NotEqual(m_sessionId) || parcelDeedToGroup.AgentData.AgentID.NotEqual(m_agentId))
+ if (parcelDeedToGroup.AgentData.SessionID.NotEqual(c.m_sessionId) || parcelDeedToGroup.AgentData.AgentID.NotEqual(c.m_agentId))
return;
- OnParcelDeedToGroup?.Invoke(parcelDeedToGroup.Data.LocalID, parcelDeedToGroup.Data.GroupID, this);
+ c.OnParcelDeedToGroup?.Invoke(parcelDeedToGroup.Data.LocalID, parcelDeedToGroup.Data.GroupID, c);
}
- private void HandleGroupNoticesListRequest(Packet Pack)
+ private static void HandleGroupNoticesListRequest(LLClientView c, Packet Pack)
{
- if (m_GroupsModule is null)
+ if (c.m_GroupsModule is null)
return;
GroupNoticesListRequestPacket groupNoticesListRequest = (GroupNoticesListRequestPacket)Pack;
- if (groupNoticesListRequest.AgentData.SessionID.NotEqual(m_sessionId) || groupNoticesListRequest.AgentData.AgentID.NotEqual(m_agentId))
+ if (groupNoticesListRequest.AgentData.SessionID.NotEqual(c.m_sessionId) || groupNoticesListRequest.AgentData.AgentID.NotEqual(c.m_agentId))
return;
- GroupNoticeData[] gn = m_GroupsModule.GroupNoticesListRequest(this, groupNoticesListRequest.Data.GroupID);
+ GroupNoticeData[] gn = c.m_GroupsModule.GroupNoticesListRequest(c, groupNoticesListRequest.Data.GroupID);
GroupNoticesListReplyPacket groupNoticesListReply = (GroupNoticesListReplyPacket)PacketPool.Instance.GetPacket(PacketType.GroupNoticesListReply);
groupNoticesListReply.AgentData = new GroupNoticesListReplyPacket.AgentDataBlock
{
- AgentID = m_agentId,
+ AgentID = c.m_agentId,
GroupID = groupNoticesListRequest.Data.GroupID
};
@@ -12307,33 +12329,33 @@ namespace OpenSim.Region.ClientStack.LindenUDP
};
}
- OutPacket(groupNoticesListReply, ThrottleOutPacketType.Task);
+ c.OutPacket(groupNoticesListReply, ThrottleOutPacketType.Task);
}
- private void HandleGroupNoticeRequest(Packet Pack)
+ private static void HandleGroupNoticeRequest(LLClientView c, Packet Pack)
{
- if (m_GroupsModule is null)
+ if (c.m_GroupsModule is null)
return;
GroupNoticeRequestPacket groupNoticeRequest = (GroupNoticeRequestPacket)Pack;
- if (groupNoticeRequest.AgentData.SessionID.NotEqual(m_sessionId) || groupNoticeRequest.AgentData.AgentID.NotEqual(m_agentId))
+ if (groupNoticeRequest.AgentData.SessionID.NotEqual(c.m_sessionId) || groupNoticeRequest.AgentData.AgentID.NotEqual(c.m_agentId))
return;
- m_GroupsModule.GroupNoticeRequest(this, groupNoticeRequest.Data.GroupNoticeID);
+ c.m_GroupsModule.GroupNoticeRequest(c, groupNoticeRequest.Data.GroupNoticeID);
}
- private void HandleGroupRoleUpdate(Packet Pack)
+ private static void HandleGroupRoleUpdate(LLClientView c, Packet Pack)
{
- if (m_GroupsModule is null)
+ if (c.m_GroupsModule is null)
return;
GroupRoleUpdatePacket groupRoleUpdate = (GroupRoleUpdatePacket)Pack;
- if (groupRoleUpdate.AgentData.SessionID.NotEqual(m_sessionId) || groupRoleUpdate.AgentData.AgentID.NotEqual(m_agentId))
+ if (groupRoleUpdate.AgentData.SessionID.NotEqual(c.m_sessionId) || groupRoleUpdate.AgentData.AgentID.NotEqual(c.m_agentId))
return;
foreach (GroupRoleUpdatePacket.RoleDataBlock d in groupRoleUpdate.RoleData)
{
- m_GroupsModule.GroupRoleUpdate(this,
+ c.m_GroupsModule.GroupRoleUpdate(c,
groupRoleUpdate.AgentData.GroupID,
d.RoleID,
Utils.BytesToString(d.Name),
@@ -12342,82 +12364,82 @@ namespace OpenSim.Region.ClientStack.LindenUDP
d.Powers,
d.UpdateType);
}
- m_GroupsModule.NotifyChange(groupRoleUpdate.AgentData.GroupID);
+ c.m_GroupsModule.NotifyChange(groupRoleUpdate.AgentData.GroupID);
}
- private void HandleGroupRoleChanges(Packet Pack)
+ private static void HandleGroupRoleChanges(LLClientView c, Packet Pack)
{
- if (m_GroupsModule is null)
+ if (c.m_GroupsModule is null)
return;
GroupRoleChangesPacket groupRoleChanges = (GroupRoleChangesPacket)Pack;
- if (groupRoleChanges.AgentData.SessionID.NotEqual(m_sessionId) || groupRoleChanges.AgentData.AgentID.NotEqual(m_agentId))
+ if (groupRoleChanges.AgentData.SessionID.NotEqual(c.m_sessionId) || groupRoleChanges.AgentData.AgentID.NotEqual(c.m_agentId))
return;
foreach (GroupRoleChangesPacket.RoleChangeBlock d in groupRoleChanges.RoleChange)
{
- m_GroupsModule.GroupRoleChanges(this,
+ c.m_GroupsModule.GroupRoleChanges(c,
groupRoleChanges.AgentData.GroupID,
d.RoleID,
d.MemberID,
d.Change);
}
- m_GroupsModule.NotifyChange(groupRoleChanges.AgentData.GroupID);
+ c.m_GroupsModule.NotifyChange(groupRoleChanges.AgentData.GroupID);
}
- private void HandleJoinGroupRequest(Packet Pack)
+ private static void HandleJoinGroupRequest(LLClientView c, Packet Pack)
{
- if (m_GroupsModule is null)
+ if (c.m_GroupsModule is null)
return;
JoinGroupRequestPacket joinGroupRequest = (JoinGroupRequestPacket)Pack;
- if (joinGroupRequest.AgentData.SessionID.NotEqual(m_sessionId) || joinGroupRequest.AgentData.AgentID.NotEqual(m_agentId))
+ if (joinGroupRequest.AgentData.SessionID.NotEqual(c.m_sessionId) || joinGroupRequest.AgentData.AgentID.NotEqual(c.m_agentId))
return;
- m_GroupsModule.JoinGroupRequest(this, joinGroupRequest.GroupData.GroupID);
+ c.m_GroupsModule.JoinGroupRequest(c, joinGroupRequest.GroupData.GroupID);
}
- private void HandleLeaveGroupRequest(Packet Pack)
+ private static void HandleLeaveGroupRequest(LLClientView c, Packet Pack)
{
- if (m_GroupsModule is null)
+ if (c.m_GroupsModule is null)
return;
LeaveGroupRequestPacket leaveGroupRequest = (LeaveGroupRequestPacket)Pack;
- if (leaveGroupRequest.AgentData.SessionID.NotEqual(m_sessionId) || leaveGroupRequest.AgentData.AgentID.NotEqual(m_agentId))
+ if (leaveGroupRequest.AgentData.SessionID.NotEqual(c.m_sessionId) || leaveGroupRequest.AgentData.AgentID.NotEqual(c.m_agentId))
return;
- m_GroupsModule.LeaveGroupRequest(this, leaveGroupRequest.GroupData.GroupID);
+ c.m_GroupsModule.LeaveGroupRequest(c, leaveGroupRequest.GroupData.GroupID);
}
- private void HandleEjectGroupMemberRequest(Packet Pack)
+ private static void HandleEjectGroupMemberRequest(LLClientView c, Packet Pack)
{
- if (m_GroupsModule is null)
+ if (c.m_GroupsModule is null)
return;
EjectGroupMemberRequestPacket ejectGroupMemberRequest = (EjectGroupMemberRequestPacket)Pack;
- if (ejectGroupMemberRequest.AgentData.SessionID.NotEqual(m_sessionId) || ejectGroupMemberRequest.AgentData.AgentID.NotEqual(m_agentId))
+ if (ejectGroupMemberRequest.AgentData.SessionID.NotEqual(c.m_sessionId) || ejectGroupMemberRequest.AgentData.AgentID.NotEqual(c.m_agentId))
return;
foreach (EjectGroupMemberRequestPacket.EjectDataBlock e in ejectGroupMemberRequest.EjectData)
{
- m_GroupsModule.EjectGroupMemberRequest(this,
+ c.m_GroupsModule.EjectGroupMemberRequest(c,
ejectGroupMemberRequest.GroupData.GroupID,
e.EjecteeID);
}
}
- private void HandleInviteGroupRequest(Packet Pack)
+ private static void HandleInviteGroupRequest(LLClientView c, Packet Pack)
{
- if (m_GroupsModule is null)
+ if (c.m_GroupsModule is null)
return;
InviteGroupRequestPacket inviteGroupRequest = (InviteGroupRequestPacket)Pack;
- if (inviteGroupRequest.AgentData.SessionID.NotEqual(m_sessionId) || inviteGroupRequest.AgentData.AgentID.NotEqual(m_agentId))
+ if (inviteGroupRequest.AgentData.SessionID.NotEqual(c.m_sessionId) || inviteGroupRequest.AgentData.AgentID.NotEqual(c.m_agentId))
return;
foreach (InviteGroupRequestPacket.InviteDataBlock b in inviteGroupRequest.InviteData)
{
- m_GroupsModule.InviteGroupRequest(this,
+ c.m_GroupsModule.InviteGroupRequest(c,
inviteGroupRequest.GroupData.GroupID,
b.InviteeID,
b.RoleID);
@@ -12426,52 +12448,52 @@ namespace OpenSim.Region.ClientStack.LindenUDP
#endregion Groups
- private void HandleStartLure(Packet Pack)
+ private static void HandleStartLure(LLClientView c, Packet Pack)
{
- if(OnStartLure is null)
+ if(c.OnStartLure is null)
return;
StartLurePacket startLureRequest = (StartLurePacket)Pack;
- if (startLureRequest.AgentData.SessionID.NotEqual(m_sessionId) || startLureRequest.AgentData.AgentID.NotEqual(m_agentId))
+ if (startLureRequest.AgentData.SessionID.NotEqual(c.m_sessionId) || startLureRequest.AgentData.AgentID.NotEqual(c.m_agentId))
return;
for (int i = 0 ; i < startLureRequest.TargetData.Length ; i++)
{
- OnStartLure?.Invoke(startLureRequest.Info.LureType,
+ c.OnStartLure?.Invoke(startLureRequest.Info.LureType,
Utils.BytesToString(
startLureRequest.Info.Message),
startLureRequest.TargetData[i].TargetID,
- this);
+ c);
}
}
- private void HandleTeleportLureRequest(Packet Pack)
+ private static void HandleTeleportLureRequest(LLClientView c, Packet Pack)
{
TeleportLureRequestPacket teleportLureRequest = (TeleportLureRequestPacket)Pack;
- if (teleportLureRequest.Info.SessionID.NotEqual(m_sessionId) || teleportLureRequest.Info.AgentID.NotEqual(m_agentId))
+ if (teleportLureRequest.Info.SessionID.NotEqual(c.m_sessionId) || teleportLureRequest.Info.AgentID.NotEqual(c.m_agentId))
return;
- OnTeleportLureRequest?.Invoke(
+ c.OnTeleportLureRequest?.Invoke(
teleportLureRequest.Info.LureID,
teleportLureRequest.Info.TeleportFlags,
- this);
+ c);
}
- private void HandleClassifiedInfoRequest(Packet Pack)
+ private static void HandleClassifiedInfoRequest(LLClientView c, Packet Pack)
{
ClassifiedInfoRequestPacket classifiedInfoRequest = (ClassifiedInfoRequestPacket)Pack;
- if (classifiedInfoRequest.AgentData.SessionID.NotEqual(m_sessionId) || classifiedInfoRequest.AgentData.AgentID.NotEqual(m_agentId))
+ if (classifiedInfoRequest.AgentData.SessionID.NotEqual(c.m_sessionId) || classifiedInfoRequest.AgentData.AgentID.NotEqual(c.m_agentId))
return;
- OnClassifiedInfoRequest?.Invoke(
+ c.OnClassifiedInfoRequest?.Invoke(
classifiedInfoRequest.Data.ClassifiedID,
- this);
+ c);
}
- private void HandleClassifiedInfoUpdate(Packet Pack)
+ private static void HandleClassifiedInfoUpdate(LLClientView c, Packet Pack)
{
ClassifiedInfoUpdatePacket classifiedInfoUpdate = (ClassifiedInfoUpdatePacket)Pack;
- if (classifiedInfoUpdate.AgentData.SessionID.NotEqual(m_sessionId) || classifiedInfoUpdate.AgentData.AgentID.NotEqual(m_agentId))
+ if (classifiedInfoUpdate.AgentData.SessionID.NotEqual(c.m_sessionId) || classifiedInfoUpdate.AgentData.AgentID.NotEqual(c.m_agentId))
return;
// fix classifiedFlags maturity
@@ -12479,7 +12501,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
if ((classifiedFlags & 0x4e) == 0) // if none
classifiedFlags |= 0x4; // pg
- OnClassifiedInfoUpdate?.Invoke(
+ c.OnClassifiedInfoUpdate?.Invoke(
classifiedInfoUpdate.Data.ClassifiedID,
classifiedInfoUpdate.Data.Category,
Utils.BytesToString(
@@ -12493,103 +12515,103 @@ namespace OpenSim.Region.ClientStack.LindenUDP
classifiedInfoUpdate.Data.PosGlobal),
classifiedFlags,
classifiedInfoUpdate.Data.PriceForListing,
- this);
+ c);
}
- private void HandleClassifiedDelete(Packet Pack)
+ private static void HandleClassifiedDelete(LLClientView c, Packet Pack)
{
ClassifiedDeletePacket classifiedDelete = (ClassifiedDeletePacket)Pack;
- if (classifiedDelete.AgentData.SessionID.NotEqual(m_sessionId) || classifiedDelete.AgentData.AgentID.NotEqual(m_agentId))
+ if (classifiedDelete.AgentData.SessionID.NotEqual(c.m_sessionId) || classifiedDelete.AgentData.AgentID.NotEqual(c.m_agentId))
return;
- OnClassifiedDelete?.Invoke(
+ c.OnClassifiedDelete?.Invoke(
classifiedDelete.Data.ClassifiedID,
- this);
+ c);
}
- private void HandleClassifiedGodDelete(Packet Pack)
+ private static void HandleClassifiedGodDelete(LLClientView c, Packet Pack)
{
ClassifiedGodDeletePacket classifiedGodDelete = (ClassifiedGodDeletePacket)Pack;
- if (classifiedGodDelete.AgentData.SessionID.NotEqual(m_sessionId) || classifiedGodDelete.AgentData.AgentID.NotEqual(m_agentId))
+ if (classifiedGodDelete.AgentData.SessionID.NotEqual(c.m_sessionId) || classifiedGodDelete.AgentData.AgentID.NotEqual(c.m_agentId))
return;
- OnClassifiedGodDelete?.Invoke(
+ c.OnClassifiedGodDelete?.Invoke(
classifiedGodDelete.Data.ClassifiedID,
classifiedGodDelete.Data.QueryID,
- this);
+ c);
}
- private void HandleEventGodDelete(Packet Pack)
+ private static void HandleEventGodDelete(LLClientView c, Packet Pack)
{
EventGodDeletePacket eventGodDelete = (EventGodDeletePacket)Pack;
- if (eventGodDelete.AgentData.SessionID.NotEqual(m_sessionId) || eventGodDelete.AgentData.AgentID.NotEqual(m_agentId))
+ if (eventGodDelete.AgentData.SessionID.NotEqual(c.m_sessionId) || eventGodDelete.AgentData.AgentID.NotEqual(c.m_agentId))
return;
- OnEventGodDelete?.Invoke(
+ c.OnEventGodDelete?.Invoke(
eventGodDelete.EventData.EventID,
eventGodDelete.QueryData.QueryID,
Utils.BytesToString(
eventGodDelete.QueryData.QueryText),
eventGodDelete.QueryData.QueryFlags,
eventGodDelete.QueryData.QueryStart,
- this);
+ c);
}
- private void HandleEventNotificationAddRequest(Packet Pack)
+ private static void HandleEventNotificationAddRequest(LLClientView c, Packet Pack)
{
EventNotificationAddRequestPacket eventNotificationAdd = (EventNotificationAddRequestPacket)Pack;
- if (eventNotificationAdd.AgentData.SessionID.NotEqual(m_sessionId) || eventNotificationAdd.AgentData.AgentID.NotEqual(m_agentId))
+ if (eventNotificationAdd.AgentData.SessionID.NotEqual(c.m_sessionId) || eventNotificationAdd.AgentData.AgentID.NotEqual(c.m_agentId))
return;
- OnEventNotificationAddRequest?.Invoke(eventNotificationAdd.EventData.EventID, this);
+ c.OnEventNotificationAddRequest?.Invoke(eventNotificationAdd.EventData.EventID, c);
}
- private void HandleEventNotificationRemoveRequest(Packet Pack)
+ private static void HandleEventNotificationRemoveRequest(LLClientView c, Packet Pack)
{
EventNotificationRemoveRequestPacket eventNotificationRemove = (EventNotificationRemoveRequestPacket)Pack;
- if (eventNotificationRemove.AgentData.SessionID.NotEqual(m_sessionId) || eventNotificationRemove.AgentData.AgentID.NotEqual(m_agentId))
+ if (eventNotificationRemove.AgentData.SessionID.NotEqual(c.m_sessionId) || eventNotificationRemove.AgentData.AgentID.NotEqual(c.m_agentId))
return;
- OnEventNotificationRemoveRequest?.Invoke(eventNotificationRemove.EventData.EventID, this);
+ c.OnEventNotificationRemoveRequest?.Invoke(eventNotificationRemove.EventData.EventID, c);
}
- private void HandleRetrieveInstantMessages(Packet Pack)
+ private static void HandleRetrieveInstantMessages(LLClientView c, Packet Pack)
{
RetrieveInstantMessagesPacket rimpInstantMessagePack = (RetrieveInstantMessagesPacket)Pack;
- if (rimpInstantMessagePack.AgentData.SessionID.NotEqual(m_sessionId) || rimpInstantMessagePack.AgentData.AgentID.NotEqual(m_agentId))
+ if (rimpInstantMessagePack.AgentData.SessionID.NotEqual(c.m_sessionId) || rimpInstantMessagePack.AgentData.AgentID.NotEqual(c.m_agentId))
return;
- OnRetrieveInstantMessages?.Invoke(this);
+ c.OnRetrieveInstantMessages?.Invoke(c);
}
- private void HandlePickDelete(Packet Pack)
+ private static void HandlePickDelete(LLClientView c, Packet Pack)
{
PickDeletePacket pickDelete = (PickDeletePacket)Pack;
- if (pickDelete.AgentData.SessionID.NotEqual(m_sessionId) || pickDelete.AgentData.AgentID.NotEqual(m_agentId))
+ if (pickDelete.AgentData.SessionID.NotEqual(c.m_sessionId) || pickDelete.AgentData.AgentID.NotEqual(c.m_agentId))
return;
- OnPickDelete?.Invoke(this, pickDelete.Data.PickID);
+ c.OnPickDelete?.Invoke(c, pickDelete.Data.PickID);
}
- private void HandlePickGodDelete(Packet Pack)
+ private static void HandlePickGodDelete(LLClientView c, Packet Pack)
{
PickGodDeletePacket pickGodDelete = (PickGodDeletePacket)Pack;
- if (pickGodDelete.AgentData.SessionID.NotEqual(m_sessionId) || pickGodDelete.AgentData.AgentID.NotEqual(m_agentId))
+ if (pickGodDelete.AgentData.SessionID.NotEqual(c.m_sessionId) || pickGodDelete.AgentData.AgentID.NotEqual(c.m_agentId))
return;
- OnPickGodDelete?.Invoke(this,
+ c.OnPickGodDelete?.Invoke(c,
pickGodDelete.AgentData.AgentID,
pickGodDelete.Data.PickID,
pickGodDelete.Data.QueryID);
}
- private void HandlePickInfoUpdate(Packet Pack)
+ private static void HandlePickInfoUpdate(LLClientView c, Packet Pack)
{
PickInfoUpdatePacket pickInfoUpdate = (PickInfoUpdatePacket)Pack;
- if (pickInfoUpdate.AgentData.SessionID.NotEqual(m_sessionId) || pickInfoUpdate.AgentData.AgentID.NotEqual(m_agentId))
+ if (pickInfoUpdate.AgentData.SessionID.NotEqual(c.m_sessionId) || pickInfoUpdate.AgentData.AgentID.NotEqual(c.m_agentId))
return;
- OnPickInfoUpdate?.Invoke(this,
+ c.OnPickInfoUpdate?.Invoke(c,
pickInfoUpdate.Data.PickID,
pickInfoUpdate.Data.CreatorID,
pickInfoUpdate.Data.TopPick,
@@ -12600,24 +12622,24 @@ namespace OpenSim.Region.ClientStack.LindenUDP
pickInfoUpdate.Data.Enabled);
}
- private void HandleAvatarNotesUpdate(Packet Pack)
+ private static void HandleAvatarNotesUpdate(LLClientView c, Packet Pack)
{
AvatarNotesUpdatePacket avatarNotesUpdate = (AvatarNotesUpdatePacket)Pack;
- if (avatarNotesUpdate.AgentData.SessionID.NotEqual(m_sessionId) || avatarNotesUpdate.AgentData.AgentID.NotEqual(m_agentId))
+ if (avatarNotesUpdate.AgentData.SessionID.NotEqual(c.m_sessionId) || avatarNotesUpdate.AgentData.AgentID.NotEqual(c.m_agentId))
return;
- OnAvatarNotesUpdate?.Invoke(this,
+ c.OnAvatarNotesUpdate?.Invoke(c,
avatarNotesUpdate.Data.TargetID,
Utils.BytesToString(avatarNotesUpdate.Data.Notes));
}
- private void HandleAvatarInterestsUpdate(Packet Pack)
+ private static void HandleAvatarInterestsUpdate(LLClientView c, Packet Pack)
{
AvatarInterestsUpdatePacket avatarInterestUpdate = (AvatarInterestsUpdatePacket)Pack;
- if (avatarInterestUpdate.AgentData.SessionID.NotEqual(m_sessionId) || avatarInterestUpdate.AgentData.AgentID.NotEqual(m_agentId))
+ if (avatarInterestUpdate.AgentData.SessionID.NotEqual(c.m_sessionId) || avatarInterestUpdate.AgentData.AgentID.NotEqual(c.m_agentId))
return;
- OnAvatarInterestUpdate?.Invoke(this,
+ c.OnAvatarInterestUpdate?.Invoke(c,
avatarInterestUpdate.PropertiesData.WantToMask,
Utils.BytesToString(avatarInterestUpdate.PropertiesData.WantToText),
avatarInterestUpdate.PropertiesData.SkillsMask,
@@ -12625,13 +12647,13 @@ namespace OpenSim.Region.ClientStack.LindenUDP
Utils.BytesToString(avatarInterestUpdate.PropertiesData.LanguagesText));
}
- private void HandleGrantUserRights(Packet Pack)
+ private static void HandleGrantUserRights(LLClientView c, Packet Pack)
{
GrantUserRightsPacket GrantUserRights = (GrantUserRightsPacket)Pack;
- if (GrantUserRights.AgentData.SessionID.NotEqual(m_sessionId) || GrantUserRights.AgentData.AgentID.NotEqual(m_agentId))
+ if (GrantUserRights.AgentData.SessionID.NotEqual(c.m_sessionId) || GrantUserRights.AgentData.AgentID.NotEqual(c.m_agentId))
return;
- OnGrantUserRights?.Invoke(this,
+ c.OnGrantUserRights?.Invoke(c,
GrantUserRights.Rights[0].AgentRelated,
GrantUserRights.Rights[0].RelatedRights);
}
@@ -12639,43 +12661,43 @@ namespace OpenSim.Region.ClientStack.LindenUDP
private double m_nextRevokePermissionsTime = Double.MinValue;
private uint m_lastRevokePermissionsSeq = uint.MinValue;
- private void HandleRevokePermissions(Packet Pack)
+ private static void HandleRevokePermissions(LLClientView c, Packet Pack)
{
RevokePermissionsPacket pkt = (RevokePermissionsPacket)Pack;
- if (pkt.AgentData.SessionID.NotEqual(m_sessionId) || pkt .AgentData.AgentID.NotEqual(m_agentId))
+ if (pkt.AgentData.SessionID.NotEqual(c.m_sessionId) || pkt .AgentData.AgentID.NotEqual(c.m_agentId))
return;
uint thisSeq = pkt.Header.Sequence;
- if (thisSeq == m_lastRevokePermissionsSeq)
+ if (thisSeq == c.m_lastRevokePermissionsSeq)
return;
- m_lastRevokePermissionsSeq = thisSeq;
+ c.m_lastRevokePermissionsSeq = thisSeq;
- ScenePresence sp = (ScenePresence)SceneAgent;
+ ScenePresence sp = (ScenePresence)c.SceneAgent;
if(sp != null && !sp.IsDeleted && !sp.IsInTransit)
{
UUID objectID = pkt.Data.ObjectID;
double now = Util.GetTimeStampMS();
- if (now < m_nextRevokePermissionsTime)
+ if (now < c.m_nextRevokePermissionsTime)
return;
- if (objectID == m_scene.RegionInfo.RegionID)
- m_nextRevokePermissionsTime = now + 2000;
+ if (objectID == c.m_scene.RegionInfo.RegionID)
+ c.m_nextRevokePermissionsTime = now + 2000;
else
- m_nextRevokePermissionsTime = now + 50;
+ c.m_nextRevokePermissionsTime = now + 50;
uint permissions = pkt.Data.ObjectPermissions;
sp.HandleRevokePermissions(objectID , permissions);
}
}
- private void HandlePlacesQuery(Packet Pack)
+ private static void HandlePlacesQuery(LLClientView c, Packet Pack)
{
PlacesQueryPacket placesQueryPacket = (PlacesQueryPacket)Pack;
- if (placesQueryPacket.AgentData.SessionID.NotEqual(m_sessionId) || placesQueryPacket.AgentData.AgentID.NotEqual(m_agentId))
+ if (placesQueryPacket.AgentData.SessionID.NotEqual(c.m_sessionId) || placesQueryPacket.AgentData.AgentID.NotEqual(c.m_agentId))
return;
- OnPlacesQuery?.Invoke(placesQueryPacket.AgentData.QueryID,
+ c.OnPlacesQuery?.Invoke(placesQueryPacket.AgentData.QueryID,
placesQueryPacket.TransactionData.TransactionID,
Utils.BytesToString(
placesQueryPacket.QueryData.QueryText),
@@ -12683,7 +12705,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
(byte)placesQueryPacket.QueryData.Category,
Utils.BytesToString(
placesQueryPacket.QueryData.SimName),
- this);
+ c);
}
#endregion Packet Handlers
@@ -12699,20 +12721,14 @@ namespace OpenSim.Region.ClientStack.LindenUDP
OutPacket(scriptQuestion, ThrottleOutPacketType.Task);
}
- ///
- /// Handler called when we receive a logout packet.
- ///
- ///
- ///
- ///
- protected virtual void HandleLogout(Packet packet)
+ protected static void HandleLogout(LLClientView c, Packet packet)
{
- if (packet.Type == PacketType.LogoutRequest)
+ var lrp = (LogoutRequestPacket)packet;
+ if (lrp.AgentData.SessionID.Equals(c.m_sessionId) && lrp.AgentData.AgentID.Equals(c.m_agentId))
{
- if (((LogoutRequestPacket)packet).AgentData.SessionID.NotEqual(m_sessionId))
- return;
+ m_log.Info($"[CLIENT]: Got a logout request for {c.Name} in {c.Scene.Name}");
+ c.OnLogout?.Invoke(c);
}
- Logout(this);
}
///
@@ -12729,30 +12745,28 @@ namespace OpenSim.Region.ClientStack.LindenUDP
///
///
///
- /// At the moment, we always reply that there is no cached texture.
///
///
///
///
-
- protected void HandleAgentTextureCached(Packet packet)
+ protected static void HandleAgentTextureCached(LLClientView c, Packet packet)
{
//m_log.Debug("texture cached: " + packet.ToString());
AgentCachedTexturePacket cachedtex = (AgentCachedTexturePacket)packet;
AgentCachedTextureResponsePacket cachedresp =
(AgentCachedTextureResponsePacket)PacketPool.Instance.GetPacket(PacketType.AgentCachedTextureResponse);
- if (cachedtex.AgentData.SessionID.NotEqual(m_sessionId) || cachedtex.AgentData.AgentID.NotEqual(m_agentId))
+ if (cachedtex.AgentData.SessionID.NotEqual(c.m_sessionId) || cachedtex.AgentData.AgentID.NotEqual(c.m_agentId))
return;
- ScenePresence p = m_scene.GetScenePresence(m_agentId);
- if(p is null)
+ ScenePresence p = c.m_scene.GetScenePresence(c.m_agentId);
+ if (p is null)
return;
WearableCacheItem[] cacheItems = p.Appearance?.WearableCacheItems;
- cachedresp.AgentData.AgentID = m_agentId;
- cachedresp.AgentData.SessionID = m_sessionId;
+ cachedresp.AgentData.AgentID = c.m_agentId;
+ cachedresp.AgentData.SessionID = c.m_sessionId;
cachedresp.AgentData.SerialNum = cachedtex.AgentData.SerialNum;
cachedresp.WearableData = new AgentCachedTextureResponsePacket.WearableDataBlock[cachedtex.WearableData.Length];
@@ -12796,7 +12810,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
}
}
cachedresp.Header.Zerocoded = true;
- OutPacket(cachedresp, ThrottleOutPacketType.Task);
+ c.OutPacket(cachedresp, ThrottleOutPacketType.Task);
}
///
@@ -12834,17 +12848,17 @@ namespace OpenSim.Region.ClientStack.LindenUDP
OutPacket(cachedresp, ThrottleOutPacketType.Task);
}
- protected void HandleMultipleObjUpdate(Packet packet)
+ protected static void HandleMultipleObjUpdate(LLClientView c, Packet packet)
{
MultipleObjectUpdatePacket multipleupdate = (MultipleObjectUpdatePacket)packet;
- if (multipleupdate.AgentData.SessionID.NotEqual(m_sessionId) || multipleupdate.AgentData.AgentID.NotEqual(m_agentId))
+ if (multipleupdate.AgentData.SessionID.NotEqual(c.m_sessionId) || multipleupdate.AgentData.AgentID.NotEqual(c.m_agentId))
return;
// m_log.DebugFormat(
// "[CLIENT]: Incoming MultipleObjectUpdatePacket contained {0} blocks", multipleupdate.ObjectData.Length);
- Scene tScene = (Scene)m_scene;
+ Scene tScene = c.m_scene;
for (int i = 0; i < multipleupdate.ObjectData.Length; i++)
{
@@ -12859,11 +12873,11 @@ namespace OpenSim.Region.ClientStack.LindenUDP
if (part is null)
{
// It's a ghost! tell the client to delete it from view.
- SendKillObject(new List { localId });
+ c.SendKillObject([localId]);
}
else
{
- ClientChangeObject updatehandler = onClientChangeObject;
+ ClientChangeObject updatehandler = c.onClientChangeObject;
if (updatehandler != null)
{
@@ -12887,14 +12901,14 @@ namespace OpenSim.Region.ClientStack.LindenUDP
udata.position = new Vector3(block.Data, 0);
udata.change = ObjectChangeType.primP;
- updatehandler(localId, udata, this);
+ updatehandler(localId, udata, c);
break;
case 2: // rotation sp
udata.rotation = new Quaternion(block.Data, 0, true);
udata.change = ObjectChangeType.primR;
- updatehandler(localId, udata, this);
+ updatehandler(localId, udata, c);
break;
case 3: // position plus rotation
@@ -12902,21 +12916,21 @@ namespace OpenSim.Region.ClientStack.LindenUDP
udata.rotation = new Quaternion(block.Data, 12, true);
udata.change = ObjectChangeType.primPR;
- updatehandler(localId, udata, this);
+ updatehandler(localId, udata, c);
break;
case 4: // scale sp
udata.scale = new Vector3(block.Data, 0);
udata.change = ObjectChangeType.primS;
- updatehandler(localId, udata, this);
+ updatehandler(localId, udata, c);
break;
case 0x14: // uniform scale sp
udata.scale = new Vector3(block.Data, 0);
udata.change = ObjectChangeType.primUS;
- updatehandler(localId, udata, this);
+ updatehandler(localId, udata, c);
break;
case 5: // scale and position sp
@@ -12924,7 +12938,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
udata.scale = new Vector3(block.Data, 12);
udata.change = ObjectChangeType.primPS;
- updatehandler(localId, udata, this);
+ updatehandler(localId, udata, c);
break;
case 0x15: //uniform scale and position
@@ -12932,7 +12946,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
udata.scale = new Vector3(block.Data, 12);
udata.change = ObjectChangeType.primPUS;
- updatehandler(localId, udata, this);
+ updatehandler(localId, udata, c);
break;
// now group related (bit 4)
@@ -12940,14 +12954,14 @@ namespace OpenSim.Region.ClientStack.LindenUDP
udata.position = new Vector3(block.Data, 0);
udata.change = ObjectChangeType.groupP;
- updatehandler(localId, udata, this);
+ updatehandler(localId, udata, c);
break;
case 0x0A: // (8 + 2) group rotation
udata.rotation = new Quaternion(block.Data, 0, true);
udata.change = ObjectChangeType.groupR;
- updatehandler(localId, udata, this);
+ updatehandler(localId, udata, c);
break;
case 0x0B: //( 8 + 2 + 1) group rotation and position
@@ -12955,7 +12969,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
udata.rotation = new Quaternion(block.Data, 12, true);
udata.change = ObjectChangeType.groupPR;
- updatehandler(localId, udata, this);
+ updatehandler(localId, udata, c);
break;
case 0x0C: // (8 + 4) group scale
@@ -12966,7 +12980,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
udata.scale = new Vector3(block.Data, 0);
udata.change = ObjectChangeType.groupS;
- updatehandler(localId, udata, this);
+ updatehandler(localId, udata, c);
break;
@@ -12977,14 +12991,14 @@ namespace OpenSim.Region.ClientStack.LindenUDP
udata.scale = new Vector3(block.Data, 12);
udata.change = ObjectChangeType.groupPS;
- updatehandler(localId, udata, this);
+ updatehandler(localId, udata, c);
break;
case 0x1C: // (0x10 + 8 + 4 ) group scale UNIFORM
udata.scale = new Vector3(block.Data, 0);
udata.change = ObjectChangeType.groupUS;
- updatehandler(localId, udata, this);
+ updatehandler(localId, udata, c);
break;
case 0x1D: // (UNIFORM + GROUP + SCALE + POS)
@@ -12992,7 +13006,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
udata.scale = new Vector3(block.Data, 12);
udata.change = ObjectChangeType.groupPUS;
- updatehandler(localId, udata, this);
+ updatehandler(localId, udata, c);
break;
default:
@@ -13642,7 +13656,17 @@ namespace OpenSim.Region.ClientStack.LindenUDP
/// Should this packet be handled asynchronously?
///
public bool Async;
+ }
+ private struct StaticPacketProcessor
+ {
+ public StaticPacketMethod method;
+ public bool Async;
+ public StaticPacketProcessor(StaticPacketMethod m, bool a)
+ {
+ method = m;
+ Async = a;
+ }
}
public void SendAvatarInterestsReply(UUID avatarID, uint wantMask, string wantText, uint skillsMask, string skillsText, string languages)