aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Services
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Services')
-rw-r--r--OpenSim/Services/AvatarService/AvatarService.cs11
-rw-r--r--OpenSim/Services/Connectors/SimianGrid/SimianAvatarServiceConnector.cs53
-rw-r--r--OpenSim/Services/Connectors/Simulation/SimulationServiceConnector.cs52
-rw-r--r--OpenSim/Services/Interfaces/IAvatarService.cs149
4 files changed, 153 insertions, 112 deletions
diff --git a/OpenSim/Services/AvatarService/AvatarService.cs b/OpenSim/Services/AvatarService/AvatarService.cs
index a8ad413..53ca7c8 100644
--- a/OpenSim/Services/AvatarService/AvatarService.cs
+++ b/OpenSim/Services/AvatarService/AvatarService.cs
@@ -51,8 +51,6 @@ namespace OpenSim.Services.AvatarService
51 m_log.Debug("[AVATAR SERVICE]: Starting avatar service"); 51 m_log.Debug("[AVATAR SERVICE]: Starting avatar service");
52 } 52 }
53 53
54 // Get|SetAppearance should preserve existing semantics
55 // until AvatarData can be removed completely
56 public AvatarAppearance GetAppearance(UUID principalID) 54 public AvatarAppearance GetAppearance(UUID principalID)
57 { 55 {
58 AvatarData avatar = GetAvatar(principalID); 56 AvatarData avatar = GetAvatar(principalID);
@@ -68,12 +66,15 @@ namespace OpenSim.Services.AvatarService
68 public AvatarData GetAvatar(UUID principalID) 66 public AvatarData GetAvatar(UUID principalID)
69 { 67 {
70 AvatarBaseData[] av = m_Database.Get("PrincipalID", principalID.ToString()); 68 AvatarBaseData[] av = m_Database.Get("PrincipalID", principalID.ToString());
71 if (av.Length == 0)
72 return null;
73
74 AvatarData ret = new AvatarData(); 69 AvatarData ret = new AvatarData();
75 ret.Data = new Dictionary<string,string>(); 70 ret.Data = new Dictionary<string,string>();
76 71
72 if (av.Length == 0)
73 {
74 ret.AvatarType = 1; // SL avatar
75 return ret;
76 }
77
77 foreach (AvatarBaseData b in av) 78 foreach (AvatarBaseData b in av)
78 { 79 {
79 if (b.Data["Name"] == "AvatarType") 80 if (b.Data["Name"] == "AvatarType")
diff --git a/OpenSim/Services/Connectors/SimianGrid/SimianAvatarServiceConnector.cs b/OpenSim/Services/Connectors/SimianGrid/SimianAvatarServiceConnector.cs
index ea9b4b4..7a28c2b 100644
--- a/OpenSim/Services/Connectors/SimianGrid/SimianAvatarServiceConnector.cs
+++ b/OpenSim/Services/Connectors/SimianGrid/SimianAvatarServiceConnector.cs
@@ -265,32 +265,33 @@ namespace OpenSim.Services.Connectors.SimianGrid
265 265
266 map["Height"] = OSD.FromReal(appearance.AvatarHeight); 266 map["Height"] = OSD.FromReal(appearance.AvatarHeight);
267 267
268 map["ShapeItem"] = OSD.FromUUID(appearance.BodyItem); 268 map["BodyItem"] = appearance.Wearables[AvatarWearable.BODY][0].ItemID.ToString();
269 map["ShapeAsset"] = OSD.FromUUID(appearance.BodyAsset); 269 map["EyesItem"] = appearance.Wearables[AvatarWearable.EYES][0].ItemID.ToString();
270 map["SkinItem"] = OSD.FromUUID(appearance.SkinItem); 270 map["GlovesItem"] = appearance.Wearables[AvatarWearable.GLOVES][0].ItemID.ToString();
271 map["SkinAsset"] = OSD.FromUUID(appearance.SkinAsset); 271 map["HairItem"] = appearance.Wearables[AvatarWearable.HAIR][0].ItemID.ToString();
272 map["HairItem"] = OSD.FromUUID(appearance.HairItem); 272 map["JacketItem"] = appearance.Wearables[AvatarWearable.JACKET][0].ItemID.ToString();
273 map["HairAsset"] = OSD.FromUUID(appearance.HairAsset); 273 map["PantsItem"] = appearance.Wearables[AvatarWearable.PANTS][0].ItemID.ToString();
274 map["EyesItem"] = OSD.FromUUID(appearance.EyesItem); 274 map["ShirtItem"] = appearance.Wearables[AvatarWearable.SHIRT][0].ItemID.ToString();
275 map["EyesAsset"] = OSD.FromUUID(appearance.EyesAsset); 275 map["ShoesItem"] = appearance.Wearables[AvatarWearable.SHOES][0].ItemID.ToString();
276 map["ShirtItem"] = OSD.FromUUID(appearance.ShirtItem); 276 map["SkinItem"] = appearance.Wearables[AvatarWearable.SKIN][0].ItemID.ToString();
277 map["ShirtAsset"] = OSD.FromUUID(appearance.ShirtAsset); 277 map["SkirtItem"] = appearance.Wearables[AvatarWearable.SKIRT][0].ItemID.ToString();
278 map["PantsItem"] = OSD.FromUUID(appearance.PantsItem); 278 map["SocksItem"] = appearance.Wearables[AvatarWearable.SOCKS][0].ItemID.ToString();
279 map["PantsAsset"] = OSD.FromUUID(appearance.PantsAsset); 279 map["UnderPantsItem"] = appearance.Wearables[AvatarWearable.UNDERPANTS][0].ItemID.ToString();
280 map["ShoesItem"] = OSD.FromUUID(appearance.ShoesItem); 280 map["UnderShirtItem"] = appearance.Wearables[AvatarWearable.UNDERSHIRT][0].ItemID.ToString();
281 map["ShoesAsset"] = OSD.FromUUID(appearance.ShoesAsset); 281 map["BodyAsset"] = appearance.Wearables[AvatarWearable.BODY][0].AssetID.ToString();
282 map["SocksItem"] = OSD.FromUUID(appearance.SocksItem); 282 map["EyesAsset"] = appearance.Wearables[AvatarWearable.EYES][0].AssetID.ToString();
283 map["SocksAsset"] = OSD.FromUUID(appearance.SocksAsset); 283 map["GlovesAsset"] = appearance.Wearables[AvatarWearable.GLOVES][0].AssetID.ToString();
284 map["JacketItem"] = OSD.FromUUID(appearance.JacketItem); 284 map["HairAsset"] = appearance.Wearables[AvatarWearable.HAIR][0].AssetID.ToString();
285 map["JacketAsset"] = OSD.FromUUID(appearance.JacketAsset); 285 map["JacketAsset"] = appearance.Wearables[AvatarWearable.JACKET][0].AssetID.ToString();
286 map["GlovesItem"] = OSD.FromUUID(appearance.GlovesItem); 286 map["PantsAsset"] = appearance.Wearables[AvatarWearable.PANTS][0].AssetID.ToString();
287 map["GlovesAsset"] = OSD.FromUUID(appearance.GlovesAsset); 287 map["ShirtAsset"] = appearance.Wearables[AvatarWearable.SHIRT][0].AssetID.ToString();
288 map["UndershirtItem"] = OSD.FromUUID(appearance.UnderShirtItem); 288 map["ShoesAsset"] = appearance.Wearables[AvatarWearable.SHOES][0].AssetID.ToString();
289 map["UndershirtAsset"] = OSD.FromUUID(appearance.UnderShirtAsset); 289 map["SkinAsset"] = appearance.Wearables[AvatarWearable.SKIN][0].AssetID.ToString();
290 map["UnderpantsItem"] = OSD.FromUUID(appearance.UnderPantsItem); 290 map["SkirtAsset"] = appearance.Wearables[AvatarWearable.SKIRT][0].AssetID.ToString();
291 map["UnderpantsAsset"] = OSD.FromUUID(appearance.UnderPantsAsset); 291 map["SocksAsset"] = appearance.Wearables[AvatarWearable.SOCKS][0].AssetID.ToString();
292 map["SkirtItem"] = OSD.FromUUID(appearance.SkirtItem); 292 map["UnderPantsAsset"] = appearance.Wearables[AvatarWearable.UNDERPANTS][0].AssetID.ToString();
293 map["SkirtAsset"] = OSD.FromUUID(appearance.SkirtAsset); 293 map["UnderShirtAsset"] = appearance.Wearables[AvatarWearable.UNDERSHIRT][0].AssetID.ToString();
294
294 295
295 OSDMap items = new OSDMap(); 296 OSDMap items = new OSDMap();
296 foreach (KeyValuePair<string, string> kvp in avatar.Data) 297 foreach (KeyValuePair<string, string> kvp in avatar.Data)
diff --git a/OpenSim/Services/Connectors/Simulation/SimulationServiceConnector.cs b/OpenSim/Services/Connectors/Simulation/SimulationServiceConnector.cs
index c4284eb..7936cb8 100644
--- a/OpenSim/Services/Connectors/Simulation/SimulationServiceConnector.cs
+++ b/OpenSim/Services/Connectors/Simulation/SimulationServiceConnector.cs
@@ -1,4 +1,4 @@
1/* 1/*
2 * Copyright (c) Contributors, http://opensimulator.org/ 2 * Copyright (c) Contributors, http://opensimulator.org/
3 * See CONTRIBUTORS.TXT for a full list of copyright holders. 3 * See CONTRIBUTORS.TXT for a full list of copyright holders.
4 * 4 *
@@ -139,13 +139,13 @@ namespace OpenSim.Services.Connectors.Simulation
139 AgentCreateRequest.ContentLength = buffer.Length; //Count bytes to send 139 AgentCreateRequest.ContentLength = buffer.Length; //Count bytes to send
140 os = AgentCreateRequest.GetRequestStream(); 140 os = AgentCreateRequest.GetRequestStream();
141 os.Write(buffer, 0, strBuffer.Length); //Send it 141 os.Write(buffer, 0, strBuffer.Length); //Send it
142 m_log.InfoFormat("[REMOTE SIMULATION CONNECTOR]: Posted CreateAgent request to remote sim {0}, region {1}, x={2} y={3}", 142 m_log.DebugFormat("[REMOTE SIMULATION CONNECTOR]: Posted CreateAgent request to remote sim {0}, region {1}, x={2} y={3}",
143 uri, destination.RegionName, destination.RegionLocX, destination.RegionLocY); 143 uri, destination.RegionName, destination.RegionLocX, destination.RegionLocY);
144 } 144 }
145 //catch (WebException ex) 145 //catch (WebException ex)
146 catch 146 catch
147 { 147 {
148 //m_log.InfoFormat("[REMOTE SIMULATION CONNECTOR]: Bad send on ChildAgentUpdate {0}", ex.Message); 148 //m_log.ErrorFormat("[REMOTE SIMULATION CONNECTOR]: Bad send on ChildAgentUpdate {0}", ex.Message);
149 reason = "cannot contact remote region"; 149 reason = "cannot contact remote region";
150 return false; 150 return false;
151 } 151 }
@@ -172,19 +172,19 @@ namespace OpenSim.Services.Connectors.Simulation
172 webResponse = AgentCreateRequest.GetResponse(); 172 webResponse = AgentCreateRequest.GetResponse();
173 if (webResponse == null) 173 if (webResponse == null)
174 { 174 {
175 m_log.Info("[REMOTE SIMULATION CONNECTOR]: Null reply on DoCreateChildAgentCall post"); 175 m_log.Debug("[REMOTE SIMULATION CONNECTOR]: Null reply on DoCreateChildAgentCall post");
176 } 176 }
177 else 177 else
178 { 178 {
179 179
180 sr = new StreamReader(webResponse.GetResponseStream()); 180 sr = new StreamReader(webResponse.GetResponseStream());
181 response = sr.ReadToEnd().Trim(); 181 response = sr.ReadToEnd().Trim();
182 m_log.InfoFormat("[REMOTE SIMULATION CONNECTOR]: DoCreateChildAgentCall reply was {0} ", response); 182 m_log.DebugFormat("[REMOTE SIMULATION CONNECTOR]: DoCreateChildAgentCall reply was {0} ", response);
183 } 183 }
184 } 184 }
185 catch (WebException ex) 185 catch (WebException ex)
186 { 186 {
187 m_log.InfoFormat("[REMOTE SIMULATION CONNECTOR]: exception on reply of DoCreateChildAgentCall {0}", ex.Message); 187 m_log.WarnFormat("[REMOTE SIMULATION CONNECTOR]: exception on reply of DoCreateChildAgentCall {0}", ex.Message);
188 reason = "Destination did not reply"; 188 reason = "Destination did not reply";
189 return string.Empty; 189 return string.Empty;
190 } 190 }
@@ -212,7 +212,7 @@ namespace OpenSim.Services.Connectors.Simulation
212 } 212 }
213 catch (NullReferenceException e) 213 catch (NullReferenceException e)
214 { 214 {
215 m_log.InfoFormat("[REMOTE SIMULATION CONNECTOR]: exception on reply of DoCreateChildAgentCall {0}", e.Message); 215 m_log.WarnFormat("[REMOTE SIMULATION CONNECTOR]: exception on reply of DoCreateChildAgentCall {0}", e.Message);
216 216
217 // check for old style response 217 // check for old style response
218 if (response.ToLower().StartsWith("true")) 218 if (response.ToLower().StartsWith("true"))
@@ -232,7 +232,7 @@ namespace OpenSim.Services.Connectors.Simulation
232 } 232 }
233 catch (Exception e) 233 catch (Exception e)
234 { 234 {
235 m_log.Debug("[REMOTE SIMULATION CONNECTOR]: PackAgentCircuitData failed with exception: " + e.Message); 235 m_log.Warn("[REMOTE SIMULATION CONNECTOR]: PackAgentCircuitData failed with exception: " + e.Message);
236 return null; 236 return null;
237 } 237 }
238 // Add the input arguments 238 // Add the input arguments
@@ -258,6 +258,7 @@ namespace OpenSim.Services.Connectors.Simulation
258 private bool UpdateAgent(GridRegion destination, IAgentData cAgentData) 258 private bool UpdateAgent(GridRegion destination, IAgentData cAgentData)
259 { 259 {
260 // Eventually, we want to use a caps url instead of the agentID 260 // Eventually, we want to use a caps url instead of the agentID
261
261 string uri = destination.ServerURI + AgentPath() + cAgentData.AgentID + "/"; 262 string uri = destination.ServerURI + AgentPath() + cAgentData.AgentID + "/";
262 263
263 HttpWebRequest ChildUpdateRequest = (HttpWebRequest)WebRequest.Create(uri); 264 HttpWebRequest ChildUpdateRequest = (HttpWebRequest)WebRequest.Create(uri);
@@ -274,7 +275,7 @@ namespace OpenSim.Services.Connectors.Simulation
274 } 275 }
275 catch (Exception e) 276 catch (Exception e)
276 { 277 {
277 m_log.Debug("[REMOTE SIMULATION CONNECTOR]: PackUpdateMessage failed with exception: " + e.Message); 278 m_log.Warn("[REMOTE SIMULATION CONNECTOR]: PackUpdateMessage failed with exception: " + e.Message);
278 } 279 }
279 // Add the input arguments 280 // Add the input arguments
280 args["destination_x"] = OSD.FromString(destination.RegionLocX.ToString()); 281 args["destination_x"] = OSD.FromString(destination.RegionLocX.ToString());
@@ -303,12 +304,12 @@ namespace OpenSim.Services.Connectors.Simulation
303 ChildUpdateRequest.ContentLength = buffer.Length; //Count bytes to send 304 ChildUpdateRequest.ContentLength = buffer.Length; //Count bytes to send
304 os = ChildUpdateRequest.GetRequestStream(); 305 os = ChildUpdateRequest.GetRequestStream();
305 os.Write(buffer, 0, strBuffer.Length); //Send it 306 os.Write(buffer, 0, strBuffer.Length); //Send it
306 //m_log.InfoFormat("[REMOTE SIMULATION CONNECTOR]: Posted AgentUpdate request to remote sim {0}", uri); 307 //m_log.DebugFormat("[REMOTE SIMULATION CONNECTOR]: Posted AgentUpdate request to remote sim {0}", uri);
307 } 308 }
308 catch (WebException ex) 309 catch (WebException ex)
309 //catch 310 //catch
310 { 311 {
311 m_log.InfoFormat("[REMOTE SIMULATION CONNECTOR]: Bad send on AgentUpdate {0}", ex.Message); 312 m_log.WarnFormat("[REMOTE SIMULATION CONNECTOR]: Bad send on AgentUpdate {0}", ex.Message);
312 313
313 return false; 314 return false;
314 } 315 }
@@ -319,7 +320,7 @@ namespace OpenSim.Services.Connectors.Simulation
319 } 320 }
320 321
321 // Let's wait for the response 322 // Let's wait for the response
322 //m_log.Info("[REMOTE SIMULATION CONNECTOR]: Waiting for a reply after ChildAgentUpdate"); 323 //m_log.Debug("[REMOTE SIMULATION CONNECTOR]: Waiting for a reply after ChildAgentUpdate");
323 324
324 WebResponse webResponse = null; 325 WebResponse webResponse = null;
325 StreamReader sr = null; 326 StreamReader sr = null;
@@ -328,19 +329,19 @@ namespace OpenSim.Services.Connectors.Simulation
328 webResponse = ChildUpdateRequest.GetResponse(); 329 webResponse = ChildUpdateRequest.GetResponse();
329 if (webResponse == null) 330 if (webResponse == null)
330 { 331 {
331 m_log.Info("[REMOTE SIMULATION CONNECTOR]: Null reply on ChilAgentUpdate post"); 332 m_log.Debug("[REMOTE SIMULATION CONNECTOR]: Null reply on ChilAgentUpdate post");
332 } 333 }
333 334
334 sr = new StreamReader(webResponse.GetResponseStream()); 335 sr = new StreamReader(webResponse.GetResponseStream());
335 //reply = sr.ReadToEnd().Trim(); 336 //reply = sr.ReadToEnd().Trim();
336 sr.ReadToEnd().Trim(); 337 sr.ReadToEnd().Trim();
337 sr.Close(); 338 sr.Close();
338 //m_log.InfoFormat("[REMOTE SIMULATION CONNECTOR]: ChilAgentUpdate reply was {0} ", reply); 339 //m_log.DebugFormat("[REMOTE SIMULATION CONNECTOR]: ChilAgentUpdate reply was {0} ", reply);
339 340
340 } 341 }
341 catch (WebException ex) 342 catch (WebException ex)
342 { 343 {
343 m_log.InfoFormat("[REMOTE SIMULATION CONNECTOR]: exception on reply of ChilAgentUpdate from {0}: {1}", uri, ex.Message); 344 m_log.WarnFormat("[REMOTE SIMULATION CONNECTOR]: exception on reply of ChilAgentUpdate from {0}: {1}", uri, ex.Message);
344 // ignore, really 345 // ignore, really
345 } 346 }
346 finally 347 finally
@@ -371,7 +372,7 @@ namespace OpenSim.Services.Connectors.Simulation
371 webResponse = (HttpWebResponse)request.GetResponse(); 372 webResponse = (HttpWebResponse)request.GetResponse();
372 if (webResponse == null) 373 if (webResponse == null)
373 { 374 {
374 m_log.Info("[REMOTE SIMULATION CONNECTOR]: Null reply on agent get "); 375 m_log.Debug("[REMOTE SIMULATION CONNECTOR]: Null reply on agent get ");
375 } 376 }
376 377
377 sr = new StreamReader(webResponse.GetResponseStream()); 378 sr = new StreamReader(webResponse.GetResponseStream());
@@ -381,7 +382,7 @@ namespace OpenSim.Services.Connectors.Simulation
381 } 382 }
382 catch (WebException ex) 383 catch (WebException ex)
383 { 384 {
384 m_log.InfoFormat("[REMOTE SIMULATION CONNECTOR]: exception on reply of agent get {0}", ex.Message); 385 m_log.WarnFormat("[REMOTE SIMULATION CONNECTOR]: exception on reply of agent get {0}", ex.Message);
385 // ignore, really 386 // ignore, really
386 return false; 387 return false;
387 } 388 }
@@ -420,7 +421,7 @@ namespace OpenSim.Services.Connectors.Simulation
420 WebResponse webResponse = request.GetResponse(); 421 WebResponse webResponse = request.GetResponse();
421 if (webResponse == null) 422 if (webResponse == null)
422 { 423 {
423 m_log.Info("[REMOTE SIMULATION CONNECTOR]: Null reply on ReleaseAgent"); 424 m_log.Debug("[REMOTE SIMULATION CONNECTOR]: Null reply on ReleaseAgent");
424 } 425 }
425 426
426 sr = new StreamReader(webResponse.GetResponseStream()); 427 sr = new StreamReader(webResponse.GetResponseStream());
@@ -432,7 +433,7 @@ namespace OpenSim.Services.Connectors.Simulation
432 } 433 }
433 catch (WebException ex) 434 catch (WebException ex)
434 { 435 {
435 m_log.InfoFormat("[REMOTE SIMULATION CONNECTOR]: exception on reply of ReleaseAgent {0}", ex.Message); 436 m_log.WarnFormat("[REMOTE SIMULATION CONNECTOR]: exception on reply of ReleaseAgent {0}", ex.Message);
436 return false; 437 return false;
437 } 438 }
438 finally 439 finally
@@ -448,7 +449,6 @@ namespace OpenSim.Services.Connectors.Simulation
448 { 449 {
449 string uri = destination.ServerURI + AgentPath() + id + "/" + destination.RegionID.ToString() + "/"; 450 string uri = destination.ServerURI + AgentPath() + id + "/" + destination.RegionID.ToString() + "/";
450 451
451
452 WebRequest request = WebRequest.Create(uri); 452 WebRequest request = WebRequest.Create(uri);
453 request.Method = "DELETE"; 453 request.Method = "DELETE";
454 request.Timeout = 10000; 454 request.Timeout = 10000;
@@ -459,7 +459,7 @@ namespace OpenSim.Services.Connectors.Simulation
459 WebResponse webResponse = request.GetResponse(); 459 WebResponse webResponse = request.GetResponse();
460 if (webResponse == null) 460 if (webResponse == null)
461 { 461 {
462 m_log.Info("[REMOTE SIMULATION CONNECTOR]: Null reply on agent delete "); 462 m_log.Debug("[REMOTE SIMULATION CONNECTOR]: Null reply on agent delete ");
463 } 463 }
464 464
465 sr = new StreamReader(webResponse.GetResponseStream()); 465 sr = new StreamReader(webResponse.GetResponseStream());
@@ -471,7 +471,7 @@ namespace OpenSim.Services.Connectors.Simulation
471 } 471 }
472 catch (WebException ex) 472 catch (WebException ex)
473 { 473 {
474 m_log.InfoFormat("[REMOTE SIMULATION CONNECTOR]: exception on reply of agent delete from {0}: {1}", destination.RegionName, ex.Message); 474 m_log.WarnFormat("[REMOTE SIMULATION CONNECTOR]: exception on reply of agent delete from {0}: {1}", destination.RegionName, ex.Message);
475 return false; 475 return false;
476 } 476 }
477 finally 477 finally
@@ -536,11 +536,11 @@ namespace OpenSim.Services.Connectors.Simulation
536 ObjectCreateRequest.ContentLength = buffer.Length; //Count bytes to send 536 ObjectCreateRequest.ContentLength = buffer.Length; //Count bytes to send
537 os = ObjectCreateRequest.GetRequestStream(); 537 os = ObjectCreateRequest.GetRequestStream();
538 os.Write(buffer, 0, strBuffer.Length); //Send it 538 os.Write(buffer, 0, strBuffer.Length); //Send it
539 m_log.InfoFormat("[REMOTE SIMULATION CONNECTOR]: Posted CreateObject request to remote sim {0}", uri); 539 m_log.DebugFormat("[REMOTE SIMULATION CONNECTOR]: Posted CreateObject request to remote sim {0}", uri);
540 } 540 }
541 catch (WebException ex) 541 catch (WebException ex)
542 { 542 {
543 m_log.InfoFormat("[REMOTE SIMULATION CONNECTOR]: Bad send on CreateObject {0}", ex.Message); 543 m_log.WarnFormat("[REMOTE SIMULATION CONNECTOR]: Bad send on CreateObject {0}", ex.Message);
544 return false; 544 return false;
545 } 545 }
546 finally 546 finally
@@ -558,7 +558,7 @@ namespace OpenSim.Services.Connectors.Simulation
558 WebResponse webResponse = ObjectCreateRequest.GetResponse(); 558 WebResponse webResponse = ObjectCreateRequest.GetResponse();
559 if (webResponse == null) 559 if (webResponse == null)
560 { 560 {
561 m_log.Info("[REMOTE SIMULATION CONNECTOR]: Null reply on CreateObject post"); 561 m_log.Warn("[REMOTE SIMULATION CONNECTOR]: Null reply on CreateObject post");
562 return false; 562 return false;
563 } 563 }
564 564
@@ -570,7 +570,7 @@ namespace OpenSim.Services.Connectors.Simulation
570 } 570 }
571 catch (WebException ex) 571 catch (WebException ex)
572 { 572 {
573 m_log.InfoFormat("[REMOTE SIMULATION CONNECTOR]: exception on reply of CreateObject {0}", ex.Message); 573 m_log.WarnFormat("[REMOTE SIMULATION CONNECTOR]: exception on reply of CreateObject {0}", ex.Message);
574 return false; 574 return false;
575 } 575 }
576 finally 576 finally
diff --git a/OpenSim/Services/Interfaces/IAvatarService.cs b/OpenSim/Services/Interfaces/IAvatarService.cs
index eaa6534..186871a 100644
--- a/OpenSim/Services/Interfaces/IAvatarService.cs
+++ b/OpenSim/Services/Interfaces/IAvatarService.cs
@@ -149,33 +149,33 @@ namespace OpenSim.Services.Interfaces
149 Data["Serial"] = appearance.Serial.ToString(); 149 Data["Serial"] = appearance.Serial.ToString();
150 // Wearables 150 // Wearables
151 Data["AvatarHeight"] = appearance.AvatarHeight.ToString(); 151 Data["AvatarHeight"] = appearance.AvatarHeight.ToString();
152 Data["BodyItem"] = appearance.BodyItem.ToString(); 152 Data["BodyItem"] = appearance.Wearables[AvatarWearable.BODY][0].ItemID.ToString();
153 Data["EyesItem"] = appearance.EyesItem.ToString(); 153 Data["EyesItem"] = appearance.Wearables[AvatarWearable.EYES][0].ItemID.ToString();
154 Data["GlovesItem"] = appearance.GlovesItem.ToString(); 154 Data["GlovesItem"] = appearance.Wearables[AvatarWearable.GLOVES][0].ItemID.ToString();
155 Data["HairItem"] = appearance.HairItem.ToString(); 155 Data["HairItem"] = appearance.Wearables[AvatarWearable.HAIR][0].ItemID.ToString();
156 Data["JacketItem"] = appearance.JacketItem.ToString(); 156 Data["JacketItem"] = appearance.Wearables[AvatarWearable.JACKET][0].ItemID.ToString();
157 Data["PantsItem"] = appearance.PantsItem.ToString(); 157 Data["PantsItem"] = appearance.Wearables[AvatarWearable.PANTS][0].ItemID.ToString();
158 Data["ShirtItem"] = appearance.ShirtItem.ToString(); 158 Data["ShirtItem"] = appearance.Wearables[AvatarWearable.SHIRT][0].ItemID.ToString();
159 Data["ShoesItem"] = appearance.ShoesItem.ToString(); 159 Data["ShoesItem"] = appearance.Wearables[AvatarWearable.SHOES][0].ItemID.ToString();
160 Data["SkinItem"] = appearance.SkinItem.ToString(); 160 Data["SkinItem"] = appearance.Wearables[AvatarWearable.SKIN][0].ItemID.ToString();
161 Data["SkirtItem"] = appearance.SkirtItem.ToString(); 161 Data["SkirtItem"] = appearance.Wearables[AvatarWearable.SKIRT][0].ItemID.ToString();
162 Data["SocksItem"] = appearance.SocksItem.ToString(); 162 Data["SocksItem"] = appearance.Wearables[AvatarWearable.SOCKS][0].ItemID.ToString();
163 Data["UnderPantsItem"] = appearance.UnderPantsItem.ToString(); 163 Data["UnderPantsItem"] = appearance.Wearables[AvatarWearable.UNDERPANTS][0].ItemID.ToString();
164 Data["UnderShirtItem"] = appearance.UnderShirtItem.ToString(); 164 Data["UnderShirtItem"] = appearance.Wearables[AvatarWearable.UNDERSHIRT][0].ItemID.ToString();
165 165
166 Data["BodyAsset"] = appearance.BodyAsset.ToString(); 166 Data["BodyAsset"] = appearance.Wearables[AvatarWearable.BODY][0].AssetID.ToString();
167 Data["EyesAsset"] = appearance.EyesAsset.ToString(); 167 Data["EyesAsset"] = appearance.Wearables[AvatarWearable.EYES][0].AssetID.ToString();
168 Data["GlovesAsset"] = appearance.GlovesAsset.ToString(); 168 Data["GlovesAsset"] = appearance.Wearables[AvatarWearable.GLOVES][0].AssetID.ToString();
169 Data["HairAsset"] = appearance.HairAsset.ToString(); 169 Data["HairAsset"] = appearance.Wearables[AvatarWearable.HAIR][0].AssetID.ToString();
170 Data["JacketAsset"] = appearance.JacketAsset.ToString(); 170 Data["JacketAsset"] = appearance.Wearables[AvatarWearable.JACKET][0].AssetID.ToString();
171 Data["PantsAsset"] = appearance.PantsAsset.ToString(); 171 Data["PantsAsset"] = appearance.Wearables[AvatarWearable.PANTS][0].AssetID.ToString();
172 Data["ShirtAsset"] = appearance.ShirtAsset.ToString(); 172 Data["ShirtAsset"] = appearance.Wearables[AvatarWearable.SHIRT][0].AssetID.ToString();
173 Data["ShoesAsset"] = appearance.ShoesAsset.ToString(); 173 Data["ShoesAsset"] = appearance.Wearables[AvatarWearable.SHOES][0].AssetID.ToString();
174 Data["SkinAsset"] = appearance.SkinAsset.ToString(); 174 Data["SkinAsset"] = appearance.Wearables[AvatarWearable.SKIN][0].AssetID.ToString();
175 Data["SkirtAsset"] = appearance.SkirtAsset.ToString(); 175 Data["SkirtAsset"] = appearance.Wearables[AvatarWearable.SKIRT][0].AssetID.ToString();
176 Data["SocksAsset"] = appearance.SocksAsset.ToString(); 176 Data["SocksAsset"] = appearance.Wearables[AvatarWearable.SOCKS][0].AssetID.ToString();
177 Data["UnderPantsAsset"] = appearance.UnderPantsAsset.ToString(); 177 Data["UnderPantsAsset"] = appearance.Wearables[AvatarWearable.UNDERPANTS][0].AssetID.ToString();
178 Data["UnderShirtAsset"] = appearance.UnderShirtAsset.ToString(); 178 Data["UnderShirtAsset"] = appearance.Wearables[AvatarWearable.UNDERSHIRT][0].AssetID.ToString();
179 179
180 // Attachments 180 // Attachments
181 List<AvatarAttachment> attachments = appearance.GetAttachments(); 181 List<AvatarAttachment> attachments = appearance.GetAttachments();
@@ -190,36 +190,75 @@ namespace OpenSim.Services.Interfaces
190 AvatarAppearance appearance = new AvatarAppearance(owner); 190 AvatarAppearance appearance = new AvatarAppearance(owner);
191 try 191 try
192 { 192 {
193 appearance.Serial = Int32.Parse(Data["Serial"]); 193 if (Data.ContainsKey("Serial"))
194 appearance.Serial = Int32.Parse(Data["Serial"]);
194 195
195 // Wearables 196 // Wearables
196 appearance.BodyItem = UUID.Parse(Data["BodyItem"]); 197 if (Data.ContainsKey("BodyItem"))
197 appearance.EyesItem = UUID.Parse(Data["EyesItem"]); 198 appearance.Wearables[AvatarWearable.BODY].Wear(
198 appearance.GlovesItem = UUID.Parse(Data["GlovesItem"]); 199 UUID.Parse(Data["BodyItem"]),
199 appearance.HairItem = UUID.Parse(Data["HairItem"]); 200 UUID.Parse(Data["BodyAsset"]));
200 appearance.JacketItem = UUID.Parse(Data["JacketItem"]); 201
201 appearance.PantsItem = UUID.Parse(Data["PantsItem"]); 202 if (Data.ContainsKey("SkinItem"))
202 appearance.ShirtItem = UUID.Parse(Data["ShirtItem"]); 203 appearance.Wearables[AvatarWearable.SKIN].Wear(
203 appearance.ShoesItem = UUID.Parse(Data["ShoesItem"]); 204 UUID.Parse(Data["SkinItem"]),
204 appearance.SkinItem = UUID.Parse(Data["SkinItem"]); 205 UUID.Parse(Data["SkinAsset"]));
205 appearance.SkirtItem = UUID.Parse(Data["SkirtItem"]); 206
206 appearance.SocksItem = UUID.Parse(Data["SocksItem"]); 207 if (Data.ContainsKey("HairItem"))
207 appearance.UnderPantsItem = UUID.Parse(Data["UnderPantsItem"]); 208 appearance.Wearables[AvatarWearable.HAIR].Wear(
208 appearance.UnderShirtItem = UUID.Parse(Data["UnderShirtItem"]); 209 UUID.Parse(Data["HairItem"]),
209 210 UUID.Parse(Data["HairAsset"]));
210 appearance.BodyAsset = UUID.Parse(Data["BodyAsset"]); 211
211 appearance.EyesAsset = UUID.Parse(Data["EyesAsset"]); 212 if (Data.ContainsKey("EyesItem"))
212 appearance.GlovesAsset = UUID.Parse(Data["GlovesAsset"]); 213 appearance.Wearables[AvatarWearable.EYES].Wear(
213 appearance.HairAsset = UUID.Parse(Data["HairAsset"]); 214 UUID.Parse(Data["EyesItem"]),
214 appearance.JacketAsset = UUID.Parse(Data["JacketAsset"]); 215 UUID.Parse(Data["EyesAsset"]));
215 appearance.PantsAsset = UUID.Parse(Data["PantsAsset"]); 216
216 appearance.ShirtAsset = UUID.Parse(Data["ShirtAsset"]); 217 if (Data.ContainsKey("ShirtItem"))
217 appearance.ShoesAsset = UUID.Parse(Data["ShoesAsset"]); 218 appearance.Wearables[AvatarWearable.SHIRT].Wear(
218 appearance.SkinAsset = UUID.Parse(Data["SkinAsset"]); 219 UUID.Parse(Data["ShirtItem"]),
219 appearance.SkirtAsset = UUID.Parse(Data["SkirtAsset"]); 220 UUID.Parse(Data["ShirtAsset"]));
220 appearance.SocksAsset = UUID.Parse(Data["SocksAsset"]); 221
221 appearance.UnderPantsAsset = UUID.Parse(Data["UnderPantsAsset"]); 222 if (Data.ContainsKey("PantsItem"))
222 appearance.UnderShirtAsset = UUID.Parse(Data["UnderShirtAsset"]); 223 appearance.Wearables[AvatarWearable.PANTS].Wear(
224 UUID.Parse(Data["PantsItem"]),
225 UUID.Parse(Data["PantsAsset"]));
226
227 if (Data.ContainsKey("ShoesItem"))
228 appearance.Wearables[AvatarWearable.SHOES].Wear(
229 UUID.Parse(Data["ShoesItem"]),
230 UUID.Parse(Data["ShoesAsset"]));
231
232 if (Data.ContainsKey("SocksItem"))
233 appearance.Wearables[AvatarWearable.SOCKS].Wear(
234 UUID.Parse(Data["SocksItem"]),
235 UUID.Parse(Data["SocksAsset"]));
236
237 if (Data.ContainsKey("JacketItem"))
238 appearance.Wearables[AvatarWearable.JACKET].Wear(
239 UUID.Parse(Data["JacketItem"]),
240 UUID.Parse(Data["JacketAsset"]));
241
242 if (Data.ContainsKey("GlovesItem"))
243 appearance.Wearables[AvatarWearable.GLOVES].Wear(
244 UUID.Parse(Data["GlovesItem"]),
245 UUID.Parse(Data["GlovesAsset"]));
246
247 if (Data.ContainsKey("UnderShirtItem"))
248 appearance.Wearables[AvatarWearable.UNDERSHIRT].Wear(
249 UUID.Parse(Data["UnderShirtItem"]),
250 UUID.Parse(Data["UnderShirtAsset"]));
251
252 if (Data.ContainsKey("UnderPantsItem"))
253 appearance.Wearables[AvatarWearable.UNDERPANTS].Wear(
254 UUID.Parse(Data["UnderPantsItem"]),
255 UUID.Parse(Data["UnderPantsAsset"]));
256
257 if (Data.ContainsKey("SkirtItem"))
258 appearance.Wearables[AvatarWearable.SKIRT].Wear(
259 UUID.Parse(Data["SkirtItem"]),
260 UUID.Parse(Data["SkirtAsset"]));
261
223 262
224 // Attachments 263 // Attachments
225 Dictionary<string, string> attchs = new Dictionary<string, string>(); 264 Dictionary<string, string> attchs = new Dictionary<string, string>();