From f605a6242734bacc6dc4f224f0b7f9867ac8b432 Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Tue, 13 Nov 2012 04:15:21 +0000 Subject: Disable code to get server-side to move given items to a destination folder on TaskInventoryAccepted. This is because the fixes to inventory versioning (so that they better match viewer expections) now appear to allow the viewer to execute #RLV moves, as happens on the LL grid. Doing it again server-side now wrongly creates another child #RLV folder underneath the root one. As per http://opensimulator.org/mantis/view.php?id=6311 --- .../Inventory/Transfer/InventoryTransferModule.cs | 137 +++++++++++---------- 1 file changed, 70 insertions(+), 67 deletions(-) diff --git a/OpenSim/Region/CoreModules/Avatar/Inventory/Transfer/InventoryTransferModule.cs b/OpenSim/Region/CoreModules/Avatar/Inventory/Transfer/InventoryTransferModule.cs index 24208df..5d4fec1 100644 --- a/OpenSim/Region/CoreModules/Avatar/Inventory/Transfer/InventoryTransferModule.cs +++ b/OpenSim/Region/CoreModules/Avatar/Inventory/Transfer/InventoryTransferModule.cs @@ -298,73 +298,76 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Transfer } } - // XXX: This code was placed here to try and accomdate RLV which moves given folders named #RLV/~ - // to a folder called name in #RLV. However, this approach may not be ultimately correct - from analysis - // of Firestorm 4.2.2 on sending an InventoryOffered instead of TaskInventoryOffered (as was previously - // done), the viewer itself would appear to move and rename the folder, rather than the simulator doing it here. - else if (im.dialog == (byte) InstantMessageDialog.TaskInventoryAccepted) - { - UUID destinationFolderID = UUID.Zero; - - if (im.binaryBucket != null && im.binaryBucket.Length >= 16) - { - destinationFolderID = new UUID(im.binaryBucket, 0); - } - - if (destinationFolderID != UUID.Zero) - { - InventoryFolderBase destinationFolder = new InventoryFolderBase(destinationFolderID, client.AgentId); - if (destinationFolder == null) - { - m_log.WarnFormat( - "[INVENTORY TRANSFER]: TaskInventoryAccepted message from {0} in {1} specified folder {2} which does not exist", - client.Name, scene.Name, destinationFolderID); - - return; - } - - IInventoryService invService = scene.InventoryService; - - UUID inventoryID = new UUID(im.imSessionID); // The inventory item/folder, back from it's trip - - InventoryItemBase item = new InventoryItemBase(inventoryID, client.AgentId); - item = invService.GetItem(item); - InventoryFolderBase folder = null; - UUID? previousParentFolderID = null; - - if (item != null) // It's an item - { - previousParentFolderID = item.Folder; - item.Folder = destinationFolderID; - - invService.DeleteItems(item.Owner, new List() { item.ID }); - scene.AddInventoryItem(client, item); - } - else - { - folder = new InventoryFolderBase(inventoryID, client.AgentId); - folder = invService.GetFolder(folder); - - if (folder != null) // It's a folder - { - previousParentFolderID = folder.ParentID; - folder.ParentID = destinationFolderID; - invService.MoveFolder(folder); - } - } - - // Tell client about updates to original parent and new parent (this should probably be factored with existing move item/folder code). - if (previousParentFolderID != null) - { - InventoryFolderBase previousParentFolder - = new InventoryFolderBase((UUID)previousParentFolderID, client.AgentId); - previousParentFolder = invService.GetFolder(previousParentFolder); - scene.SendInventoryUpdate(client, previousParentFolder, true, true); - - scene.SendInventoryUpdate(client, destinationFolder, true, true); - } - } - } + // Disabled for now as it looks like http://opensimulator.org/mantis/view.php?id=6311 was fixed by fixes + // to inventory folder versioning allowing the viewer to move the received folder itself as happens on the + // LL grid. Doing it again server-side then wrongly does a second create and move +// // XXX: This code was placed here to try and accomdate RLV which moves given folders named #RLV/~ +// // to a folder called name in #RLV. However, this approach may not be ultimately correct - from analysis +// // of Firestorm 4.2.2 on sending an InventoryOffered instead of TaskInventoryOffered (as was previously +// // done), the viewer itself would appear to move and rename the folder, rather than the simulator doing it here. +// else if (im.dialog == (byte) InstantMessageDialog.TaskInventoryAccepted) +// { +// UUID destinationFolderID = UUID.Zero; +// +// if (im.binaryBucket != null && im.binaryBucket.Length >= 16) +// { +// destinationFolderID = new UUID(im.binaryBucket, 0); +// } +// +// if (destinationFolderID != UUID.Zero) +// { +// InventoryFolderBase destinationFolder = new InventoryFolderBase(destinationFolderID, client.AgentId); +// if (destinationFolder == null) +// { +// m_log.WarnFormat( +// "[INVENTORY TRANSFER]: TaskInventoryAccepted message from {0} in {1} specified folder {2} which does not exist", +// client.Name, scene.Name, destinationFolderID); +// +// return; +// } +// +// IInventoryService invService = scene.InventoryService; +// +// UUID inventoryID = new UUID(im.imSessionID); // The inventory item/folder, back from it's trip +// +// InventoryItemBase item = new InventoryItemBase(inventoryID, client.AgentId); +// item = invService.GetItem(item); +// InventoryFolderBase folder = null; +// UUID? previousParentFolderID = null; +// +// if (item != null) // It's an item +// { +// previousParentFolderID = item.Folder; +// item.Folder = destinationFolderID; +// +// invService.DeleteItems(item.Owner, new List() { item.ID }); +// scene.AddInventoryItem(client, item); +// } +// else +// { +// folder = new InventoryFolderBase(inventoryID, client.AgentId); +// folder = invService.GetFolder(folder); +// +// if (folder != null) // It's a folder +// { +// previousParentFolderID = folder.ParentID; +// folder.ParentID = destinationFolderID; +// invService.MoveFolder(folder); +// } +// } +// +// // Tell client about updates to original parent and new parent (this should probably be factored with existing move item/folder code). +// if (previousParentFolderID != null) +// { +// InventoryFolderBase previousParentFolder +// = new InventoryFolderBase((UUID)previousParentFolderID, client.AgentId); +// previousParentFolder = invService.GetFolder(previousParentFolder); +// scene.SendInventoryUpdate(client, previousParentFolder, true, true); +// +// scene.SendInventoryUpdate(client, destinationFolder, true, true); +// } +// } +// } else if ( im.dialog == (byte)InstantMessageDialog.InventoryDeclined || im.dialog == (byte)InstantMessageDialog.TaskInventoryDeclined) -- cgit v1.1 From 2fd36653b98c4c69645f2e4d6dea02bbe9f1260d Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Tue, 13 Nov 2012 04:34:03 +0000 Subject: minor: Add some explanative method doc to SceneHelpers.SetupSceneModules() --- OpenSim/Tests/Common/Helpers/SceneHelpers.cs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/OpenSim/Tests/Common/Helpers/SceneHelpers.cs b/OpenSim/Tests/Common/Helpers/SceneHelpers.cs index 939fc33..ea3e348 100644 --- a/OpenSim/Tests/Common/Helpers/SceneHelpers.cs +++ b/OpenSim/Tests/Common/Helpers/SceneHelpers.cs @@ -350,6 +350,10 @@ namespace OpenSim.Tests.Common /// /// /// If called directly, then all the modules must be shared modules. + /// + /// We are emulating here the normal calls made to setup region modules + /// (Initialise(), PostInitialise(), AddRegion, RegionLoaded()). + /// TODO: Need to reuse normal runtime module code. /// /// /// -- cgit v1.1 From 31177d9259a22c3dbe38fc5d13065c13dabfcf84 Mon Sep 17 00:00:00 2001 From: Diva Canto Date: Mon, 12 Nov 2012 21:14:58 -0800 Subject: Another 10 modules' directives moved from .addin.xml --- OpenSim/Region/CoreModules/Hypergrid/HGWorldMapModule.cs | 2 ++ .../Region/CoreModules/Resources/CoreModulePlugin.addin.xml | 10 ---------- OpenSim/Region/CoreModules/World/Archiver/ArchiverModule.cs | 2 ++ OpenSim/Region/CoreModules/World/Land/DwellModule.cs | 2 ++ OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs | 2 ++ OpenSim/Region/CoreModules/World/Land/PrimCountModule.cs | 2 ++ .../Region/CoreModules/World/Serialiser/SerialiserModule.cs | 2 ++ OpenSim/Region/CoreModules/World/Terrain/TerrainModule.cs | 2 ++ .../Region/CoreModules/World/Warp3DMap/Warp3DImageModule.cs | 2 ++ OpenSim/Region/CoreModules/World/WorldMap/MapSearchModule.cs | 2 ++ OpenSim/Region/CoreModules/World/WorldMap/WorldMapModule.cs | 2 ++ 11 files changed, 20 insertions(+), 10 deletions(-) diff --git a/OpenSim/Region/CoreModules/Hypergrid/HGWorldMapModule.cs b/OpenSim/Region/CoreModules/Hypergrid/HGWorldMapModule.cs index 0c60391..e0921ad 100644 --- a/OpenSim/Region/CoreModules/Hypergrid/HGWorldMapModule.cs +++ b/OpenSim/Region/CoreModules/Hypergrid/HGWorldMapModule.cs @@ -31,6 +31,7 @@ using System.Reflection; using log4net; using Nini.Config; using OpenMetaverse; +using Mono.Addins; using OpenSim.Framework; using OpenSim.Region.CoreModules.World.WorldMap; using OpenSim.Region.Framework.Interfaces; @@ -39,6 +40,7 @@ using GridRegion = OpenSim.Services.Interfaces.GridRegion; namespace OpenSim.Region.CoreModules.Hypergrid { + [Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule", Id = "HGWorldMapModule")] public class HGWorldMapModule : WorldMapModule { private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); diff --git a/OpenSim/Region/CoreModules/Resources/CoreModulePlugin.addin.xml b/OpenSim/Region/CoreModules/Resources/CoreModulePlugin.addin.xml index fee1d5f..31b61b2 100644 --- a/OpenSim/Region/CoreModules/Resources/CoreModulePlugin.addin.xml +++ b/OpenSim/Region/CoreModules/Resources/CoreModulePlugin.addin.xml @@ -8,15 +8,6 @@ - - - - - - - - - @@ -34,7 +25,6 @@ - diff --git a/OpenSim/Region/CoreModules/World/Archiver/ArchiverModule.cs b/OpenSim/Region/CoreModules/World/Archiver/ArchiverModule.cs index abf3713..1be6386 100644 --- a/OpenSim/Region/CoreModules/World/Archiver/ArchiverModule.cs +++ b/OpenSim/Region/CoreModules/World/Archiver/ArchiverModule.cs @@ -32,6 +32,7 @@ using System.Reflection; using log4net; using NDesk.Options; using Nini.Config; +using Mono.Addins; using OpenSim.Framework; using OpenSim.Framework.Console; using OpenSim.Region.Framework.Interfaces; @@ -42,6 +43,7 @@ namespace OpenSim.Region.CoreModules.World.Archiver /// /// This module loads and saves OpenSimulator region archives /// + [Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule", Id = "ArchiverModule")] public class ArchiverModule : INonSharedRegionModule, IRegionArchiverModule { private static readonly ILog m_log = diff --git a/OpenSim/Region/CoreModules/World/Land/DwellModule.cs b/OpenSim/Region/CoreModules/World/Land/DwellModule.cs index d1f05a7..bd22155 100644 --- a/OpenSim/Region/CoreModules/World/Land/DwellModule.cs +++ b/OpenSim/Region/CoreModules/World/Land/DwellModule.cs @@ -36,6 +36,7 @@ using Nini.Config; using OpenMetaverse; using OpenMetaverse.StructuredData; using OpenMetaverse.Messages.Linden; +using Mono.Addins; using OpenSim.Framework; using OpenSim.Framework.Capabilities; using OpenSim.Framework.Console; @@ -51,6 +52,7 @@ using GridRegion = OpenSim.Services.Interfaces.GridRegion; namespace OpenSim.Region.CoreModules.World.Land { + [Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule", Id = "DwellModule")] public class DwellModule : IDwellModule, INonSharedRegionModule { private Scene m_scene; diff --git a/OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs b/OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs index e935462..8682798 100644 --- a/OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs +++ b/OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs @@ -36,6 +36,7 @@ using Nini.Config; using OpenMetaverse; using OpenMetaverse.StructuredData; using OpenMetaverse.Messages.Linden; +using Mono.Addins; using OpenSim.Framework; using OpenSim.Framework.Capabilities; using OpenSim.Framework.Console; @@ -60,6 +61,7 @@ namespace OpenSim.Region.CoreModules.World.Land public byte RegionAccess; } + [Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule", Id = "LandManagementModule")] public class LandManagementModule : INonSharedRegionModule { private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); diff --git a/OpenSim/Region/CoreModules/World/Land/PrimCountModule.cs b/OpenSim/Region/CoreModules/World/Land/PrimCountModule.cs index 665875f..f9cc0cf 100644 --- a/OpenSim/Region/CoreModules/World/Land/PrimCountModule.cs +++ b/OpenSim/Region/CoreModules/World/Land/PrimCountModule.cs @@ -34,6 +34,7 @@ using log4net; using Nini.Config; using OpenMetaverse; using OpenSim.Framework; +using Mono.Addins; using OpenSim.Region.Framework.Interfaces; using OpenSim.Region.Framework.Scenes; using OpenSim.Services.Interfaces; @@ -49,6 +50,7 @@ namespace OpenSim.Region.CoreModules.World.Land public Dictionary Users = new Dictionary (); } + [Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule", Id = "PrimCountModule")] public class PrimCountModule : IPrimCountModule, INonSharedRegionModule { // private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); diff --git a/OpenSim/Region/CoreModules/World/Serialiser/SerialiserModule.cs b/OpenSim/Region/CoreModules/World/Serialiser/SerialiserModule.cs index 0e861a1..e0247d9 100644 --- a/OpenSim/Region/CoreModules/World/Serialiser/SerialiserModule.cs +++ b/OpenSim/Region/CoreModules/World/Serialiser/SerialiserModule.cs @@ -32,6 +32,7 @@ using System.Reflection; using log4net; using Nini.Config; +using Mono.Addins; using OpenMetaverse; using OpenSim.Region.CoreModules.Framework.InterfaceCommander; @@ -41,6 +42,7 @@ using OpenSim.Region.Framework.Scenes.Serialization; namespace OpenSim.Region.CoreModules.World.Serialiser { + [Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule", Id = "SerialiserModule")] public class SerialiserModule : ISharedRegionModule, IRegionSerialiserModule { private static readonly ILog m_log = diff --git a/OpenSim/Region/CoreModules/World/Terrain/TerrainModule.cs b/OpenSim/Region/CoreModules/World/Terrain/TerrainModule.cs index 4694b14..52b4313 100644 --- a/OpenSim/Region/CoreModules/World/Terrain/TerrainModule.cs +++ b/OpenSim/Region/CoreModules/World/Terrain/TerrainModule.cs @@ -33,6 +33,7 @@ using System.Net; using log4net; using Nini.Config; using OpenMetaverse; +using Mono.Addins; using OpenSim.Framework; using OpenSim.Region.CoreModules.Framework.InterfaceCommander; using OpenSim.Region.CoreModules.World.Terrain.FileLoaders; @@ -43,6 +44,7 @@ using OpenSim.Region.Framework.Scenes; namespace OpenSim.Region.CoreModules.World.Terrain { + [Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule", Id = "TerrainModule")] public class TerrainModule : INonSharedRegionModule, ICommandableModule, ITerrainModule { #region StandardTerrainEffects enum diff --git a/OpenSim/Region/CoreModules/World/Warp3DMap/Warp3DImageModule.cs b/OpenSim/Region/CoreModules/World/Warp3DMap/Warp3DImageModule.cs index 9e81331..5e0dfa7 100644 --- a/OpenSim/Region/CoreModules/World/Warp3DMap/Warp3DImageModule.cs +++ b/OpenSim/Region/CoreModules/World/Warp3DMap/Warp3DImageModule.cs @@ -35,6 +35,7 @@ using CSJ2K; using Nini.Config; using log4net; using Rednettle.Warp3D; +using Mono.Addins; using OpenMetaverse; using OpenMetaverse.Imaging; using OpenMetaverse.Rendering; @@ -49,6 +50,7 @@ using WarpRenderer = global::Warp3D.Warp3D; namespace OpenSim.Region.CoreModules.World.Warp3DMap { + [Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule", Id = "Warp3DImageModule")] public class Warp3DImageModule : IMapImageGenerator, INonSharedRegionModule { private static readonly UUID TEXTURE_METADATA_MAGIC = new UUID("802dc0e0-f080-4931-8b57-d1be8611c4f3"); diff --git a/OpenSim/Region/CoreModules/World/WorldMap/MapSearchModule.cs b/OpenSim/Region/CoreModules/World/WorldMap/MapSearchModule.cs index 8f1a35d..46b190e 100644 --- a/OpenSim/Region/CoreModules/World/WorldMap/MapSearchModule.cs +++ b/OpenSim/Region/CoreModules/World/WorldMap/MapSearchModule.cs @@ -30,6 +30,7 @@ using System.Reflection; using log4net; using Nini.Config; using OpenMetaverse; +using Mono.Addins; using OpenSim.Framework; using OpenSim.Region.Framework.Interfaces; using OpenSim.Region.Framework.Scenes; @@ -38,6 +39,7 @@ using GridRegion = OpenSim.Services.Interfaces.GridRegion; namespace OpenSim.Region.CoreModules.World.WorldMap { + [Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule", Id = "MapSearchModule")] public class MapSearchModule : ISharedRegionModule { private static readonly ILog m_log = diff --git a/OpenSim/Region/CoreModules/World/WorldMap/WorldMapModule.cs b/OpenSim/Region/CoreModules/World/WorldMap/WorldMapModule.cs index dfba3ff..e2f525c 100644 --- a/OpenSim/Region/CoreModules/World/WorldMap/WorldMapModule.cs +++ b/OpenSim/Region/CoreModules/World/WorldMap/WorldMapModule.cs @@ -40,6 +40,7 @@ using Nini.Config; using OpenMetaverse; using OpenMetaverse.Imaging; using OpenMetaverse.StructuredData; +using Mono.Addins; using OpenSim.Framework; using OpenSim.Framework.Capabilities; using OpenSim.Framework.Monitoring; @@ -55,6 +56,7 @@ using GridRegion = OpenSim.Services.Interfaces.GridRegion; namespace OpenSim.Region.CoreModules.World.WorldMap { + [Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule", Id = "WorldMapModule")] public class WorldMapModule : INonSharedRegionModule, IWorldMapModule { private static readonly ILog m_log = -- cgit v1.1 From d73aa8c1a6c70bb07d72f8f05d3369965d5ac543 Mon Sep 17 00:00:00 2001 From: Diva Canto Date: Mon, 12 Nov 2012 21:27:23 -0800 Subject: Moved the WindModule and its own plugins out of .addin.xml --- OpenSim/Region/CoreModules/Resources/CoreModulePlugin.addin.xml | 5 ----- OpenSim/Region/CoreModules/World/Wind/Plugins/ConfigurableWind.cs | 2 ++ OpenSim/Region/CoreModules/World/Wind/Plugins/SimpleRandomWind.cs | 2 ++ OpenSim/Region/CoreModules/World/Wind/WindModule.cs | 1 + 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/OpenSim/Region/CoreModules/Resources/CoreModulePlugin.addin.xml b/OpenSim/Region/CoreModules/Resources/CoreModulePlugin.addin.xml index 31b61b2..e39358b 100644 --- a/OpenSim/Region/CoreModules/Resources/CoreModulePlugin.addin.xml +++ b/OpenSim/Region/CoreModules/Resources/CoreModulePlugin.addin.xml @@ -24,7 +24,6 @@ - @@ -74,9 +73,5 @@ - - - - diff --git a/OpenSim/Region/CoreModules/World/Wind/Plugins/ConfigurableWind.cs b/OpenSim/Region/CoreModules/World/Wind/Plugins/ConfigurableWind.cs index 9d47e19..6af4050 100644 --- a/OpenSim/Region/CoreModules/World/Wind/Plugins/ConfigurableWind.cs +++ b/OpenSim/Region/CoreModules/World/Wind/Plugins/ConfigurableWind.cs @@ -31,12 +31,14 @@ using System.Reflection; using log4net; using OpenMetaverse; +using Mono.Addins; using OpenSim.Region.Framework.Interfaces; using OpenSim.Region.CoreModules.World.Wind; namespace OpenSim.Region.CoreModules.World.Wind.Plugins { + [Extension(Path = "/OpenSim/WindModule", NodeName = "WindModel", Id = "ConfigurableWind")] class ConfigurableWind : Mono.Addins.TypeExtensionNode, IWindModelPlugin { private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); diff --git a/OpenSim/Region/CoreModules/World/Wind/Plugins/SimpleRandomWind.cs b/OpenSim/Region/CoreModules/World/Wind/Plugins/SimpleRandomWind.cs index 071e20b..fcb0c10 100644 --- a/OpenSim/Region/CoreModules/World/Wind/Plugins/SimpleRandomWind.cs +++ b/OpenSim/Region/CoreModules/World/Wind/Plugins/SimpleRandomWind.cs @@ -29,11 +29,13 @@ using System; using System.Collections.Generic; using OpenMetaverse; +using Mono.Addins; using OpenSim.Region.Framework.Interfaces; namespace OpenSim.Region.CoreModules.World.Wind.Plugins { + [Extension(Path = "/OpenSim/WindModule", NodeName = "WindModel", Id = "SimpleRandomWind")] class SimpleRandomWind : Mono.Addins.TypeExtensionNode, IWindModelPlugin { private Vector2[] m_windSpeeds = new Vector2[16 * 16]; diff --git a/OpenSim/Region/CoreModules/World/Wind/WindModule.cs b/OpenSim/Region/CoreModules/World/Wind/WindModule.cs index 0186a41..fd8e2b4 100644 --- a/OpenSim/Region/CoreModules/World/Wind/WindModule.cs +++ b/OpenSim/Region/CoreModules/World/Wind/WindModule.cs @@ -40,6 +40,7 @@ using OpenSim.Region.CoreModules.World.Wind; namespace OpenSim.Region.CoreModules { + [Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule", Id = "WindModule")] public class WindModule : IWindModule { private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); -- cgit v1.1