diff options
-rw-r--r-- | OpenSim/Framework/Client/IClientInventory.cs | 37 | ||||
-rw-r--r-- | OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs | 41 |
2 files changed, 77 insertions, 1 deletions
diff --git a/OpenSim/Framework/Client/IClientInventory.cs b/OpenSim/Framework/Client/IClientInventory.cs new file mode 100644 index 0000000..00651e0 --- /dev/null +++ b/OpenSim/Framework/Client/IClientInventory.cs | |||
@@ -0,0 +1,37 @@ | |||
1 | /* | ||
2 | * Copyright (c) Contributors, http://opensimulator.org/ | ||
3 | * See CONTRIBUTORS.TXT for a full list of copyright holders. | ||
4 | * | ||
5 | * Redistribution and use in source and binary forms, with or without | ||
6 | * modification, are permitted provided that the following conditions are met: | ||
7 | * * Redistributions of source code must retain the above copyright | ||
8 | * notice, this list of conditions and the following disclaimer. | ||
9 | * * Redistributions in binary form must reproduce the above copyright | ||
10 | * notice, this list of conditions and the following disclaimer in the | ||
11 | * documentation and/or other materials provided with the distribution. | ||
12 | * * Neither the name of the OpenSimulator Project nor the | ||
13 | * names of its contributors may be used to endorse or promote products | ||
14 | * derived from this software without specific prior written permission. | ||
15 | * | ||
16 | * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY | ||
17 | * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED | ||
18 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | ||
19 | * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY | ||
20 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES | ||
21 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; | ||
22 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND | ||
23 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | ||
24 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS | ||
25 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||
26 | */ | ||
27 | |||
28 | using System; | ||
29 | using OpenMetaverse; | ||
30 | |||
31 | namespace OpenSim.Framework.Client | ||
32 | { | ||
33 | public interface IClientInventory | ||
34 | { | ||
35 | void SendRemoveInventoryFolders(UUID[] folders); | ||
36 | } | ||
37 | } | ||
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs index c40c0ec..557ab30 100644 --- a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs +++ b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs | |||
@@ -59,7 +59,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
59 | /// Handles new client connections | 59 | /// Handles new client connections |
60 | /// Constructor takes a single Packet and authenticates everything | 60 | /// Constructor takes a single Packet and authenticates everything |
61 | /// </summary> | 61 | /// </summary> |
62 | public class LLClientView : IClientAPI, IClientCore, IClientIM, IClientChat, IClientIPEndpoint, IStatsCollector | 62 | public class LLClientView : IClientAPI, IClientCore, IClientIM, IClientChat, IClientInventory, IClientIPEndpoint, IStatsCollector |
63 | { | 63 | { |
64 | /// <value> | 64 | /// <value> |
65 | /// Debug packet level. See OpenSim.RegisterConsoleCommands() for more details. | 65 | /// Debug packet level. See OpenSim.RegisterConsoleCommands() for more details. |
@@ -460,6 +460,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
460 | // DebugPacketLevel = 1; | 460 | // DebugPacketLevel = 1; |
461 | 461 | ||
462 | RegisterInterface<IClientIM>(this); | 462 | RegisterInterface<IClientIM>(this); |
463 | RegisterInterface<IClientInventory>(this); | ||
463 | RegisterInterface<IClientChat>(this); | 464 | RegisterInterface<IClientChat>(this); |
464 | RegisterInterface<IClientIPEndpoint>(this); | 465 | RegisterInterface<IClientIPEndpoint>(this); |
465 | 466 | ||
@@ -12421,5 +12422,43 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
12421 | if (reply != null) | 12422 | if (reply != null) |
12422 | OutPacket(reply, ThrottleOutPacketType.Task); | 12423 | OutPacket(reply, ThrottleOutPacketType.Task); |
12423 | } | 12424 | } |
12425 | |||
12426 | public void SendRemoveInventoryFolders(UUID[] folders) | ||
12427 | { | ||
12428 | IEventQueue eq = Scene.RequestModuleInterface<IEventQueue>(); | ||
12429 | |||
12430 | if (eq == null) | ||
12431 | { | ||
12432 | m_log.DebugFormat("[LLCLIENT]: Null event queue"); | ||
12433 | return; | ||
12434 | } | ||
12435 | |||
12436 | OSDMap llsd = new OSDMap(3); | ||
12437 | |||
12438 | OSDMap AgentDataMap = new OSDMap(1); | ||
12439 | AgentDataMap.Add("AgentID", OSD.FromUUID(AgentId)); | ||
12440 | AgentDataMap.Add("SessionID", OSD.FromUUID(SessionId)); | ||
12441 | |||
12442 | OSDArray AgentData = new OSDArray(1); | ||
12443 | AgentData.Add(AgentDataMap); | ||
12444 | |||
12445 | llsd.Add("AgentData", AgentData); | ||
12446 | |||
12447 | OSDArray FolderData = new OSDArray(); | ||
12448 | |||
12449 | foreach (UUID folder in folders) | ||
12450 | { | ||
12451 | OSDMap FolderDataMap = new OSDMap(2); | ||
12452 | FolderDataMap.Add("FolderID", OSD.FromUUID(folder)); | ||
12453 | FolderDataMap.Add("AgentID", OSD.FromUUID(AgentId)); | ||
12454 | |||
12455 | FolderData.Add(FolderDataMap); | ||
12456 | } | ||
12457 | |||
12458 | llsd.Add("FolderData", FolderData); | ||
12459 | |||
12460 | eq.Enqueue(BuildEvent("RemoveInventoryFolder", | ||
12461 | llsd), AgentId); | ||
12462 | } | ||
12424 | } | 12463 | } |
12425 | } | 12464 | } |