aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Grid/UserServer.Modules/UserServerAvatarAppearanceModule.cs
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--OpenSim/Grid/UserServer.Modules/UserServerAvatarAppearanceModule.cs132
1 files changed, 0 insertions, 132 deletions
diff --git a/OpenSim/Grid/UserServer.Modules/UserServerAvatarAppearanceModule.cs b/OpenSim/Grid/UserServer.Modules/UserServerAvatarAppearanceModule.cs
deleted file mode 100644
index 88918d1..0000000
--- a/OpenSim/Grid/UserServer.Modules/UserServerAvatarAppearanceModule.cs
+++ /dev/null
@@ -1,132 +0,0 @@
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
28using System;
29using System.Collections;
30using System.Collections.Generic;
31using System.Net;
32using System.Reflection;
33using log4net;
34using Nwc.XmlRpc;
35using OpenMetaverse;
36using OpenSim.Framework;
37using OpenSim.Framework.Communications;
38using OpenSim.Framework.Servers;
39using OpenSim.Framework.Servers.HttpServer;
40using OpenSim.Grid.Framework;
41
42namespace OpenSim.Grid.UserServer.Modules
43{
44 public class UserServerAvatarAppearanceModule
45 {
46 //private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
47
48 private UserDataBaseService m_userDataBaseService;
49 private BaseHttpServer m_httpServer;
50
51 public UserServerAvatarAppearanceModule(UserDataBaseService userDataBaseService)
52 {
53 m_userDataBaseService = userDataBaseService;
54 }
55
56 public void Initialise(IGridServiceCore core)
57 {
58
59 }
60
61 public void PostInitialise()
62 {
63
64 }
65
66 public void RegisterHandlers(BaseHttpServer httpServer)
67 {
68 m_httpServer = httpServer;
69
70 m_httpServer.AddXmlRPCHandler("get_avatar_appearance", XmlRPCGetAvatarAppearance);
71 m_httpServer.AddXmlRPCHandler("update_avatar_appearance", XmlRPCUpdateAvatarAppearance);
72 }
73
74 public XmlRpcResponse XmlRPCGetAvatarAppearance(XmlRpcRequest request, IPEndPoint remoteClient)
75 {
76 XmlRpcResponse response = new XmlRpcResponse();
77 Hashtable requestData = (Hashtable)request.Params[0];
78 AvatarAppearance appearance;
79 Hashtable responseData;
80 if (requestData.Contains("owner"))
81 {
82 appearance = m_userDataBaseService.GetUserAppearance(new UUID((string)requestData["owner"]));
83 if (appearance == null)
84 {
85 responseData = new Hashtable();
86 responseData["error_type"] = "no appearance";
87 responseData["error_desc"] = "There was no appearance found for this avatar";
88 }
89 else
90 {
91 responseData = appearance.ToHashTable();
92 }
93 }
94 else
95 {
96 responseData = new Hashtable();
97 responseData["error_type"] = "unknown_avatar";
98 responseData["error_desc"] = "The avatar appearance requested is not in the database";
99 }
100
101 response.Value = responseData;
102 return response;
103 }
104
105 public XmlRpcResponse XmlRPCUpdateAvatarAppearance(XmlRpcRequest request, IPEndPoint remoteClient)
106 {
107 XmlRpcResponse response = new XmlRpcResponse();
108 Hashtable requestData = (Hashtable)request.Params[0];
109 Hashtable responseData;
110 if (requestData.Contains("owner"))
111 {
112 AvatarAppearance appearance = new AvatarAppearance(requestData);
113
114 // TODO: Sometime in the future we may have a database layer that is capable of updating appearance when
115 // the TextureEntry is null. When that happens, this check can be removed
116 if (appearance.Texture != null)
117 m_userDataBaseService.UpdateUserAppearance(new UUID((string)requestData["owner"]), appearance);
118
119 responseData = new Hashtable();
120 responseData["returnString"] = "TRUE";
121 }
122 else
123 {
124 responseData = new Hashtable();
125 responseData["error_type"] = "unknown_avatar";
126 responseData["error_desc"] = "The avatar appearance requested is not in the database";
127 }
128 response.Value = responseData;
129 return response;
130 }
131 }
132}