diff --git a/CurrentPatches/0001-redirect-inventory-offers-on-npcs-to-their-owners.patch b/CurrentPatches/0001-Forwards-inventory-offers-for-NPCs-to-their-owners.patch similarity index 70% rename from CurrentPatches/0001-redirect-inventory-offers-on-npcs-to-their-owners.patch rename to CurrentPatches/0001-Forwards-inventory-offers-for-NPCs-to-their-owners.patch index ac93cef..9bb3108 100644 --- a/CurrentPatches/0001-redirect-inventory-offers-on-npcs-to-their-owners.patch +++ b/CurrentPatches/0001-Forwards-inventory-offers-for-NPCs-to-their-owners.patch @@ -1,21 +1,22 @@ -From 05218150d39869f85e1f93f7da8397226066ef91 Mon Sep 17 00:00:00 2001 +From 964d355b6eddd168ac5e884efb0e122a89175237 Mon Sep 17 00:00:00 2001 From: Christopher -Date: Sat, 7 Aug 2021 01:17:06 +0200 -Subject: [PATCH] redirect inventory offers on npcs to their owners. +Date: Sat, 7 Aug 2021 01:39:07 +0200 +Subject: [PATCH] Forwards inventory offers for NPCs to their owners. --- - .../Shared/Api/Implementation/LSL_Api.cs | 32 ++++++++++++++++++- - 1 file changed, 31 insertions(+), 1 deletion(-) + .../Shared/Api/Implementation/LSL_Api.cs | 30 ++++++++++++++++++- + bin/OpenSimDefaults.ini | 2 ++ + 2 files changed, 31 insertions(+), 1 deletion(-) diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs -index 9de2c8ca78..4b971a9882 100644 +index 9de2c8ca78..5359e3358e 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs @@ -246,8 +246,9 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api protected static List m_castRayCalls = new List(); protected bool m_useMeshCacheInCastRay = true; protected static Dictionary m_cachedMeshes = new Dictionary(); -+ protected bool m_giveNPCInventoryToOwner = true; ++ protected bool m_giveNPCInventoryToOwner = false; -// protected Timer m_ShoutSayTimer; + // protected Timer m_ShoutSayTimer; @@ -31,7 +32,7 @@ index 9de2c8ca78..4b971a9882 100644 // Rezzing an object with a velocity can create recoil. This feature seems to have been // removed from recent versions of SL. The code computes recoil (vel*mass) and scales -@@ -4795,6 +4798,18 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api +@@ -4795,6 +4798,16 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api } } @@ -39,21 +40,20 @@ index 9de2c8ca78..4b971a9882 100644 + if(presence.IsNPC && m_giveNPCInventoryToOwner) + { + INPCModule npcModule = World.RequestModuleInterface(); -+ UUID NPCOwner = npcModule.GetOwner(UUID.Parse(destination)); ++ UUID NPCOwner = npcModule.GetOwner(destId); + -+ if (NPCOwner == UUID.Zero) -+ return; -+ -+ destination = NPCOwner.ToString(); ++ if (NPCOwner != UUID.Zero) ++ destId = NPCOwner; + } + // destination is an avatar InventoryItemBase agentItem = World.MoveTaskInventoryItem(destId, UUID.Zero, m_host, objId, out string message); -@@ -7739,6 +7754,21 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api +@@ -7739,6 +7752,21 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api isNotOwner = sp.UUID != m_host.OwnerID; } ++ // destination is an npc + if (World.TryGetScenePresence(destID, out ScenePresence ncp)) + { + if(ncp.IsNPC && m_giveNPCInventoryToOwner) @@ -64,7 +64,6 @@ index 9de2c8ca78..4b971a9882 100644 + if (owner != UUID.Zero) + { + destID = owner; -+ destination = owner.ToString(); + } + } + } @@ -72,6 +71,19 @@ index 9de2c8ca78..4b971a9882 100644 List itemList = new List(inventory.Length); foreach (object item in inventory.Data) { +diff --git a/bin/OpenSimDefaults.ini b/bin/OpenSimDefaults.ini +index 1f44fcdae0..9ed700060d 100644 +--- a/bin/OpenSimDefaults.ini ++++ b/bin/OpenSimDefaults.ini +@@ -1921,6 +1921,8 @@ + ;; Path to script assemblies + ; ScriptEnginesPath = "ScriptEngines" + ++ ;; Forwards inventory offers for NPCs to their owners. ++ ; GiveNPCInventoryToOwner = false + + [Concierge] + ; Enable concierge module -- 2.30.1.windows.1