diff options
author | Justin Clark-Casey (justincc) | 2012-03-28 02:52:11 +0100 |
---|---|---|
committer | Justin Clark-Casey (justincc) | 2012-03-28 02:52:11 +0100 |
commit | 514a9fdf8eaa09a286babbfdb4901776963ceb0e (patch) | |
tree | e092828e3bdb5530c9143f3c7824b50dd205bdcc | |
parent | Add "friends show cache <first-name> <last-name>" command for debugging purpo... (diff) | |
parent | Add a corresponding method for items. HG v2 (diff) | |
download | opensim-SC_OLD-514a9fdf8eaa09a286babbfdb4901776963ceb0e.zip opensim-SC_OLD-514a9fdf8eaa09a286babbfdb4901776963ceb0e.tar.gz opensim-SC_OLD-514a9fdf8eaa09a286babbfdb4901776963ceb0e.tar.bz2 opensim-SC_OLD-514a9fdf8eaa09a286babbfdb4901776963ceb0e.tar.xz |
Merge branch 'master' of ssh://opensimulator.org/var/git/opensim
-rw-r--r-- | OpenSim/Framework/Client/IClientInventory.cs | 38 | ||||
-rw-r--r-- | OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs | 79 |
2 files changed, 116 insertions, 1 deletions
diff --git a/OpenSim/Framework/Client/IClientInventory.cs b/OpenSim/Framework/Client/IClientInventory.cs new file mode 100644 index 0000000..d59f8b7 --- /dev/null +++ b/OpenSim/Framework/Client/IClientInventory.cs | |||
@@ -0,0 +1,38 @@ | |||
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 | void SendRemoveInventoryItems(UUID[] folders); | ||
37 | } | ||
38 | } | ||
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs index 68aae14..0c1d7f2 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. |
@@ -448,6 +448,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
448 | // DebugPacketLevel = 1; | 448 | // DebugPacketLevel = 1; |
449 | 449 | ||
450 | RegisterInterface<IClientIM>(this); | 450 | RegisterInterface<IClientIM>(this); |
451 | RegisterInterface<IClientInventory>(this); | ||
451 | RegisterInterface<IClientChat>(this); | 452 | RegisterInterface<IClientChat>(this); |
452 | RegisterInterface<IClientIPEndpoint>(this); | 453 | RegisterInterface<IClientIPEndpoint>(this); |
453 | 454 | ||
@@ -12262,5 +12263,81 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
12262 | if (reply != null) | 12263 | if (reply != null) |
12263 | OutPacket(reply, ThrottleOutPacketType.Task); | 12264 | OutPacket(reply, ThrottleOutPacketType.Task); |
12264 | } | 12265 | } |
12266 | |||
12267 | public void SendRemoveInventoryItems(UUID[] items) | ||
12268 | { | ||
12269 | IEventQueue eq = Scene.RequestModuleInterface<IEventQueue>(); | ||
12270 | |||
12271 | if (eq == null) | ||
12272 | { | ||
12273 | m_log.DebugFormat("[LLCLIENT]: Null event queue"); | ||
12274 | return; | ||
12275 | } | ||
12276 | |||
12277 | OSDMap llsd = new OSDMap(3); | ||
12278 | |||
12279 | OSDMap AgentDataMap = new OSDMap(1); | ||
12280 | AgentDataMap.Add("AgentID", OSD.FromUUID(AgentId)); | ||
12281 | AgentDataMap.Add("SessionID", OSD.FromUUID(SessionId)); | ||
12282 | |||
12283 | OSDArray AgentData = new OSDArray(1); | ||
12284 | AgentData.Add(AgentDataMap); | ||
12285 | |||
12286 | llsd.Add("AgentData", AgentData); | ||
12287 | |||
12288 | OSDArray ItemData = new OSDArray(); | ||
12289 | |||
12290 | foreach (UUID item in items) | ||
12291 | { | ||
12292 | OSDMap ItemDataMap = new OSDMap(2); | ||
12293 | ItemDataMap.Add("ItemID", OSD.FromUUID(item)); | ||
12294 | ItemDataMap.Add("AgentID", OSD.FromUUID(AgentId)); | ||
12295 | |||
12296 | ItemData.Add(ItemDataMap); | ||
12297 | } | ||
12298 | |||
12299 | llsd.Add("ItemData", ItemData); | ||
12300 | |||
12301 | eq.Enqueue(BuildEvent("RemoveInventoryItem", | ||
12302 | llsd), AgentId); | ||
12303 | } | ||
12304 | |||
12305 | public void SendRemoveInventoryFolders(UUID[] folders) | ||
12306 | { | ||
12307 | IEventQueue eq = Scene.RequestModuleInterface<IEventQueue>(); | ||
12308 | |||
12309 | if (eq == null) | ||
12310 | { | ||
12311 | m_log.DebugFormat("[LLCLIENT]: Null event queue"); | ||
12312 | return; | ||
12313 | } | ||
12314 | |||
12315 | OSDMap llsd = new OSDMap(3); | ||
12316 | |||
12317 | OSDMap AgentDataMap = new OSDMap(1); | ||
12318 | AgentDataMap.Add("AgentID", OSD.FromUUID(AgentId)); | ||
12319 | AgentDataMap.Add("SessionID", OSD.FromUUID(SessionId)); | ||
12320 | |||
12321 | OSDArray AgentData = new OSDArray(1); | ||
12322 | AgentData.Add(AgentDataMap); | ||
12323 | |||
12324 | llsd.Add("AgentData", AgentData); | ||
12325 | |||
12326 | OSDArray FolderData = new OSDArray(); | ||
12327 | |||
12328 | foreach (UUID folder in folders) | ||
12329 | { | ||
12330 | OSDMap FolderDataMap = new OSDMap(2); | ||
12331 | FolderDataMap.Add("FolderID", OSD.FromUUID(folder)); | ||
12332 | FolderDataMap.Add("AgentID", OSD.FromUUID(AgentId)); | ||
12333 | |||
12334 | FolderData.Add(FolderDataMap); | ||
12335 | } | ||
12336 | |||
12337 | llsd.Add("FolderData", FolderData); | ||
12338 | |||
12339 | eq.Enqueue(BuildEvent("RemoveInventoryFolder", | ||
12340 | llsd), AgentId); | ||
12341 | } | ||
12265 | } | 12342 | } |
12266 | } | 12343 | } |