diff options
Diffstat (limited to 'OpenSim/Region')
4 files changed, 44 insertions, 12 deletions
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs index c20f7b2..8ed250d 100644 --- a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs +++ b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs | |||
@@ -7689,6 +7689,13 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
7689 | } | 7689 | } |
7690 | } | 7690 | } |
7691 | } | 7691 | } |
7692 | else | ||
7693 | if (transfer.TransferInfo.SourceType == (int)SourceType.SimEstate) | ||
7694 | { | ||
7695 | //TransferRequestPacket does not include covenant uuid? | ||
7696 | //get scene covenant uuid | ||
7697 | taskID = m_scene.RegionInfo.RegionSettings.Covenant; | ||
7698 | } | ||
7692 | 7699 | ||
7693 | MakeAssetRequest(transfer, taskID); | 7700 | MakeAssetRequest(transfer, taskID); |
7694 | 7701 | ||
@@ -12113,6 +12120,11 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
12113 | { | 12120 | { |
12114 | requestID = new UUID(transferRequest.TransferInfo.Params, 80); | 12121 | requestID = new UUID(transferRequest.TransferInfo.Params, 80); |
12115 | } | 12122 | } |
12123 | else if (transferRequest.TransferInfo.SourceType == (int)SourceType.SimEstate) | ||
12124 | { | ||
12125 | requestID = taskID; | ||
12126 | } | ||
12127 | |||
12116 | 12128 | ||
12117 | // m_log.DebugFormat("[CLIENT]: {0} requesting asset {1}", Name, requestID); | 12129 | // m_log.DebugFormat("[CLIENT]: {0} requesting asset {1}", Name, requestID); |
12118 | 12130 | ||
diff --git a/OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs b/OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs index a47bc9a..82a035b 100644 --- a/OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs +++ b/OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs | |||
@@ -560,12 +560,20 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess | |||
560 | return null; | 560 | return null; |
561 | 561 | ||
562 | userID = remoteClient.AgentId; | 562 | userID = remoteClient.AgentId; |
563 | |||
564 | // m_log.DebugFormat( | ||
565 | // "[INVENTORY ACCESS MODULE]: Target of {0} in CreateItemForObject() is {1} {2}", | ||
566 | // action, remoteClient.Name, userID); | ||
563 | } | 567 | } |
564 | else | 568 | else |
565 | { | 569 | { |
566 | // All returns / deletes go to the object owner | 570 | // All returns / deletes go to the object owner |
567 | // | 571 | // |
568 | userID = so.RootPart.OwnerID; | 572 | userID = so.RootPart.OwnerID; |
573 | |||
574 | // m_log.DebugFormat( | ||
575 | // "[INVENTORY ACCESS MODULE]: Target of {0} in CreateItemForObject() is object owner {1}", | ||
576 | // action, userID); | ||
569 | } | 577 | } |
570 | 578 | ||
571 | if (userID == UUID.Zero) // Can't proceed | 579 | if (userID == UUID.Zero) // Can't proceed |
@@ -651,11 +659,11 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess | |||
651 | } | 659 | } |
652 | 660 | ||
653 | // Override and put into where it came from, if it came | 661 | // Override and put into where it came from, if it came |
654 | // from anywhere in inventory | 662 | // from anywhere in inventory and the owner is taking it back. |
655 | // | 663 | // |
656 | if (action == DeRezAction.Take || action == DeRezAction.TakeCopy) | 664 | if (action == DeRezAction.Take || action == DeRezAction.TakeCopy) |
657 | { | 665 | { |
658 | if (so.RootPart.FromFolderID != UUID.Zero) | 666 | if (so.RootPart.FromFolderID != UUID.Zero && userID == remoteClient.AgentId) |
659 | { | 667 | { |
660 | InventoryFolderBase f = new InventoryFolderBase(so.RootPart.FromFolderID, userID); | 668 | InventoryFolderBase f = new InventoryFolderBase(so.RootPart.FromFolderID, userID); |
661 | if (f != null) | 669 | if (f != null) |
diff --git a/OpenSim/Region/Framework/Scenes/AsyncSceneObjectGroupDeleter.cs b/OpenSim/Region/Framework/Scenes/AsyncSceneObjectGroupDeleter.cs index 5dfd3e0..f678d07 100644 --- a/OpenSim/Region/Framework/Scenes/AsyncSceneObjectGroupDeleter.cs +++ b/OpenSim/Region/Framework/Scenes/AsyncSceneObjectGroupDeleter.cs | |||
@@ -148,7 +148,8 @@ namespace OpenSim.Region.Framework.Scenes | |||
148 | x = m_inventoryDeletes.Dequeue(); | 148 | x = m_inventoryDeletes.Dequeue(); |
149 | 149 | ||
150 | m_log.DebugFormat( | 150 | m_log.DebugFormat( |
151 | "[ASYNC DELETER]: Sending object to user's inventory, action {1}, count {2}, {0} item(s) remaining.", left, x.action, x.objectGroups.Count); | 151 | "[ASYNC DELETER]: Sending object to user's inventory, action {1}, count {2}, {0} item(s) remaining.", |
152 | left, x.action, x.objectGroups.Count); | ||
152 | 153 | ||
153 | try | 154 | try |
154 | { | 155 | { |
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/Plugins/SensorRepeat.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/Plugins/SensorRepeat.cs index 2a0ce44..5c200d6 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/Plugins/SensorRepeat.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/Plugins/SensorRepeat.cs | |||
@@ -450,17 +450,28 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api.Plugins | |||
450 | Vector3 toRegionPos; | 450 | Vector3 toRegionPos; |
451 | double dis; | 451 | double dis; |
452 | 452 | ||
453 | Action<ScenePresence> senseEntity = new Action<ScenePresence>(delegate(ScenePresence presence) | 453 | Action<ScenePresence> senseEntity = new Action<ScenePresence>(presence => |
454 | { | 454 | { |
455 | if ((ts.type & NPC) == 0 | 455 | if ((ts.type & NPC) == 0 && presence.PresenceType == PresenceType.Npc) |
456 | && presence.PresenceType == PresenceType.Npc | 456 | { |
457 | && !npcModule.GetNPC(presence.UUID, presence.Scene).SenseAsAgent) | 457 | INPC npcData = npcModule.GetNPC(presence.UUID, presence.Scene); |
458 | return; | 458 | if (npcData == null || !npcData.SenseAsAgent) |
459 | return; | ||
460 | } | ||
459 | 461 | ||
460 | if ((ts.type & AGENT) == 0 | 462 | if ((ts.type & AGENT) == 0) |
461 | && (presence.PresenceType == PresenceType.User | 463 | { |
462 | || npcModule.GetNPC(presence.UUID, presence.Scene).SenseAsAgent)) | 464 | if (presence.PresenceType == PresenceType.User) |
463 | return; | 465 | { |
466 | return; | ||
467 | } | ||
468 | else | ||
469 | { | ||
470 | INPC npcData = npcModule.GetNPC(presence.UUID, presence.Scene); | ||
471 | if (npcData != null && npcData.SenseAsAgent) | ||
472 | return; | ||
473 | } | ||
474 | } | ||
464 | 475 | ||
465 | if (presence.IsDeleted || presence.IsChildAgent || presence.GodLevel > 0.0) | 476 | if (presence.IsDeleted || presence.IsChildAgent || presence.GodLevel > 0.0) |
466 | return; | 477 | return; |