diff options
author | Teravus Ovares | 2008-04-17 05:07:14 +0000 |
---|---|---|
committer | Teravus Ovares | 2008-04-17 05:07:14 +0000 |
commit | 244bfcde5b86180981e99ac9e88eb394f20bcd09 (patch) | |
tree | a163db049045c03e475779ce082a3cdfe74aea20 /OpenSim/Grid | |
parent | moved the Thread.Sleep(500), to the correct side of the ar.AsyncWaitHandle.... (diff) | |
download | opensim-SC-244bfcde5b86180981e99ac9e88eb394f20bcd09.zip opensim-SC-244bfcde5b86180981e99ac9e88eb394f20bcd09.tar.gz opensim-SC-244bfcde5b86180981e99ac9e88eb394f20bcd09.tar.bz2 opensim-SC-244bfcde5b86180981e99ac9e88eb394f20bcd09.tar.xz |
* Implements 'Set Home to Here'
* Implements 'Teleport Home'
* User Server has to be updated for it to save your home in grid mode
* home position accuracy is in int because the grid comms ExpectUser method tries to convert to Uint and crashes if it gets a float. Added a convert to decimal in ExpectUser but to avoid a breaking change with old revisions, kept the save value in int for now. Eventually it needs to be a float, but lets release another incremental version before doing that.
Diffstat (limited to 'OpenSim/Grid')
-rw-r--r-- | OpenSim/Grid/UserServer/UserManager.cs | 87 |
1 files changed, 87 insertions, 0 deletions
diff --git a/OpenSim/Grid/UserServer/UserManager.cs b/OpenSim/Grid/UserServer/UserManager.cs index cf3f8d8..2a53d7b 100644 --- a/OpenSim/Grid/UserServer/UserManager.cs +++ b/OpenSim/Grid/UserServer/UserManager.cs | |||
@@ -363,6 +363,93 @@ namespace OpenSim.Grid.UserServer | |||
363 | if (requestData.Contains("ProfileURL")) | 363 | if (requestData.Contains("ProfileURL")) |
364 | { | 364 | { |
365 | } | 365 | } |
366 | if (requestData.Contains("home_region")) | ||
367 | { | ||
368 | try | ||
369 | { | ||
370 | userProfile.HomeRegion = Convert.ToUInt64((string)requestData["home_region"]); | ||
371 | } | ||
372 | catch (ArgumentException) | ||
373 | { | ||
374 | m_log.Error("[PROFILE]:Failed to set home region, Invalid Argument"); | ||
375 | } | ||
376 | catch (FormatException) | ||
377 | { | ||
378 | m_log.Error("[PROFILE]:Failed to set home region, Invalid Format"); | ||
379 | } | ||
380 | catch (OverflowException) | ||
381 | { | ||
382 | m_log.Error("[PROFILE]:Failed to set home region, Value was too large"); | ||
383 | } | ||
384 | |||
385 | } | ||
386 | if (requestData.Contains("home_pos_x")) | ||
387 | { | ||
388 | try | ||
389 | { | ||
390 | userProfile.HomeLocationX = (float)Convert.ToDecimal((string)requestData["home_pos_x"]); | ||
391 | } | ||
392 | catch (System.InvalidCastException) | ||
393 | { | ||
394 | m_log.Error("[PROFILE]:Failed to set home postion x"); | ||
395 | } | ||
396 | |||
397 | } | ||
398 | if (requestData.Contains("home_pos_y")) | ||
399 | { | ||
400 | try | ||
401 | { | ||
402 | userProfile.HomeLocationY = (float)Convert.ToDecimal((string)requestData["home_pos_y"]); | ||
403 | } | ||
404 | catch (System.InvalidCastException) | ||
405 | { | ||
406 | m_log.Error("[PROFILE]:Failed to set home postion y"); | ||
407 | } | ||
408 | } | ||
409 | if (requestData.Contains("home_pos_z")) | ||
410 | { | ||
411 | try | ||
412 | { | ||
413 | userProfile.HomeLocationZ = (float)Convert.ToDecimal((string)requestData["home_pos_z"]); | ||
414 | } | ||
415 | catch (System.InvalidCastException) | ||
416 | { | ||
417 | m_log.Error("[PROFILE]:Failed to set home postion z"); | ||
418 | } | ||
419 | } | ||
420 | if (requestData.Contains("home_look_x")) | ||
421 | { | ||
422 | try | ||
423 | { | ||
424 | userProfile.HomeLookAtX = (float)Convert.ToDecimal((string)requestData["home_look_x"]); | ||
425 | } | ||
426 | catch (System.InvalidCastException) | ||
427 | { | ||
428 | m_log.Error("[PROFILE]:Failed to set home lookat x"); | ||
429 | } | ||
430 | } | ||
431 | if (requestData.Contains("home_look_y")) | ||
432 | { | ||
433 | try | ||
434 | { | ||
435 | userProfile.HomeLookAtY = (float)Convert.ToDecimal((string)requestData["home_look_y"]); | ||
436 | } | ||
437 | catch (System.InvalidCastException) | ||
438 | { | ||
439 | m_log.Error("[PROFILE]:Failed to set home lookat y"); | ||
440 | } | ||
441 | } | ||
442 | if (requestData.Contains("home_look_z")) | ||
443 | { | ||
444 | try | ||
445 | { | ||
446 | userProfile.HomeLookAtZ = (float)Convert.ToDecimal((string)requestData["home_look_z"]); | ||
447 | } | ||
448 | catch (System.InvalidCastException) | ||
449 | { | ||
450 | m_log.Error("[PROFILE]:Failed to set home lookat z"); | ||
451 | } | ||
452 | } | ||
366 | // call plugin! | 453 | // call plugin! |
367 | bool ret = UpdateUserProfileProperties(userProfile); | 454 | bool ret = UpdateUserProfileProperties(userProfile); |
368 | responseData["returnString"] = ret.ToString(); | 455 | responseData["returnString"] = ret.ToString(); |