From 7dc50c93b82f22da8a924eb11958c7e628e48a4c Mon Sep 17 00:00:00 2001 From: UbitUmarov Date: Wed, 26 Aug 2020 16:09:12 +0100 Subject: [PATCH] another.. --- OpenSim/Framework/IClientAPI.cs | 1 + .../Framework/Scenes/Scene.Inventory.cs | 27 ++++++------------ .../Server/IRCClientView.cs | 3 ++ .../OptionalModules/World/NPC/NPCAvatar.cs | 16 +++++++---- OpenSim/Tests/Common/Mock/TestClient.cs | 28 +++++++++++-------- 5 files changed, 39 insertions(+), 36 deletions(-) diff --git a/OpenSim/Framework/IClientAPI.cs b/OpenSim/Framework/IClientAPI.cs index cb6b78b6a4..7ac87122e8 100755 --- a/OpenSim/Framework/IClientAPI.cs +++ b/OpenSim/Framework/IClientAPI.cs @@ -1210,6 +1210,7 @@ namespace OpenSim.Framework void SendInventoryItemCreateUpdate(InventoryItemBase Item, UUID transactionID, uint callbackId); void SendRemoveInventoryItem(UUID itemID); + void SendRemoveInventoryItems(UUID[] items); void SendTakeControls(int controls, bool passToAgent, bool TakeControls); diff --git a/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs b/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs index 88b18e2533..f4955b6230 100644 --- a/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs +++ b/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs @@ -39,7 +39,6 @@ using log4net; using OpenSim.Framework; using OpenSim.Framework.Serialization.External; using OpenSim.Region.Framework; -using OpenSim.Framework.Client; using OpenSim.Region.Framework.Interfaces; using OpenSim.Region.Framework.Scenes.Serialization; using OpenSim.Services.Interfaces; @@ -214,24 +213,16 @@ namespace OpenSim.Region.Framework.Scenes private void ChangePlacement(InventoryItemBase item, InventoryFolderBase f) { ScenePresence sp = GetScenePresence(item.Owner); - if (sp != null) + if (sp != null && sp.ControllingClient != null && sp.ControllingClient.IsActive) { - if (sp.ControllingClient is IClientCore) - { - IClientCore core = (IClientCore)sp.ControllingClient; - IClientInventory inv; - - if (core.TryGet(out inv)) - { - InventoryFolderBase parent = InventoryService.GetFolder(f.Owner, f.ParentID); - inv.SendRemoveInventoryItems(new UUID[] { item.ID }); - inv.SendBulkUpdateInventory(new InventoryFolderBase[0], new InventoryItemBase[] { item }); - string message = "The item was placed in folder " + f.Name; - if (parent != null) - message += " under " + parent.Name; - sp.ControllingClient.SendAgentAlertMessage(message, false); - } - } + IClientAPI cli = sp.ControllingClient; + InventoryFolderBase parent = InventoryService.GetFolder(f.Owner, f.ParentID); + cli.SendRemoveInventoryItems(new UUID[] { item.ID }); + cli.SendBulkUpdateInventory(new InventoryFolderBase[0], new InventoryItemBase[] { item }); + string message = "The item was placed in folder " + f.Name; + if (parent != null) + message += " under " + parent.Name; + cli.SendAgentAlertMessage(message, false); } } diff --git a/OpenSim/Region/OptionalModules/Agent/InternetRelayClientView/Server/IRCClientView.cs b/OpenSim/Region/OptionalModules/Agent/InternetRelayClientView/Server/IRCClientView.cs index 490603b4b3..b2a20946e4 100755 --- a/OpenSim/Region/OptionalModules/Agent/InternetRelayClientView/Server/IRCClientView.cs +++ b/OpenSim/Region/OptionalModules/Agent/InternetRelayClientView/Server/IRCClientView.cs @@ -1142,7 +1142,10 @@ namespace OpenSim.Region.OptionalModules.Agent.InternetRelayClientView.Server public void SendRemoveInventoryItem(UUID itemID) { + } + public void SendRemoveInventoryItems(UUID[] items) + { } public void SendTakeControls(int controls, bool passToAgent, bool TakeControls) diff --git a/OpenSim/Region/OptionalModules/World/NPC/NPCAvatar.cs b/OpenSim/Region/OptionalModules/World/NPC/NPCAvatar.cs index 1c1fcfe80b..6fa4b89a01 100755 --- a/OpenSim/Region/OptionalModules/World/NPC/NPCAvatar.cs +++ b/OpenSim/Region/OptionalModules/World/NPC/NPCAvatar.cs @@ -845,11 +845,11 @@ namespace OpenSim.Region.OptionalModules.World.NPC { } - public virtual void SendInventoryItemDetails(InventoryItemBase[] items) + public void SendInventoryItemDetails(InventoryItemBase[] items) { } - public virtual void SendInventoryItemCreateUpdate(InventoryItemBase Item, uint callbackID) + public void SendInventoryItemCreateUpdate(InventoryItemBase Item, uint callbackID) { } @@ -857,15 +857,19 @@ namespace OpenSim.Region.OptionalModules.World.NPC { } - public virtual void SendRemoveInventoryItem(UUID itemID) + public void SendRemoveInventoryItem(UUID itemID) { } - public virtual void SendBulkUpdateInventory(InventoryNodeBase node, UUID? transactionID = null) + public void SendRemoveInventoryItems(UUID[] items) { } - public virtual void SendBulkUpdateInventory(InventoryFolderBase[] folders, InventoryItemBase[] items) + public void SendBulkUpdateInventory(InventoryNodeBase node, UUID? transactionID = null) + { + } + + public void SendBulkUpdateInventory(InventoryFolderBase[] folders, InventoryItemBase[] items) { } @@ -873,7 +877,7 @@ namespace OpenSim.Region.OptionalModules.World.NPC { } - public virtual void SendTaskInventory(UUID taskID, short serial, byte[] fileName) + public void SendTaskInventory(UUID taskID, short serial, byte[] fileName) { } diff --git a/OpenSim/Tests/Common/Mock/TestClient.cs b/OpenSim/Tests/Common/Mock/TestClient.cs index c90443577f..a2338b2893 100755 --- a/OpenSim/Tests/Common/Mock/TestClient.cs +++ b/OpenSim/Tests/Common/Mock/TestClient.cs @@ -787,21 +787,21 @@ namespace OpenSim.Tests.Common { } - public virtual void SendInventoryFolderDetails(UUID ownerID, UUID folderID, - List items, - List folders, - int version, - int descendents, - bool fetchFolders, - bool fetchItems) + public void SendInventoryFolderDetails(UUID ownerID, UUID folderID, + List items, + List folders, + int version, + int descendents, + bool fetchFolders, + bool fetchItems) { } - public virtual void SendInventoryItemDetails(InventoryItemBase[] items) + public void SendInventoryItemDetails(InventoryItemBase[] items) { } - public virtual void SendInventoryItemCreateUpdate(InventoryItemBase Item, uint callbackID) + public void SendInventoryItemCreateUpdate(InventoryItemBase Item, uint callbackID) { } @@ -809,15 +809,19 @@ namespace OpenSim.Tests.Common { } - public virtual void SendRemoveInventoryItem(UUID itemID) + public void SendRemoveInventoryItem(UUID itemID) { } - public virtual void SendBulkUpdateInventory(InventoryNodeBase node, UUID? transactionID = null) + public void SendRemoveInventoryItems(UUID[] items) { } - public virtual void SendBulkUpdateInventory(InventoryFolderBase[] folders, InventoryItemBase[] items) + public void SendBulkUpdateInventory(InventoryNodeBase node, UUID? transactionID = null) + { + } + + public void SendBulkUpdateInventory(InventoryFolderBase[] folders, InventoryItemBase[] items) { }