mirror of
https://github.com/opensim/opensim.git
synced 2026-08-11 03:45:35 +08:00
Adding new fields and home location methid to presence. Adding cleanup
(deleting all but one presence record) on logout so that they don't pile up.
This commit is contained in:
@@ -90,6 +90,8 @@ namespace OpenSim.Server.Handlers.Presence
|
||||
return GetAgent(request);
|
||||
case "getagents":
|
||||
return GetAgents(request);
|
||||
case "sethome":
|
||||
return SetHome(request);
|
||||
}
|
||||
m_log.DebugFormat("[PRESENCE HANDLER]: unknown method request: {0}", method);
|
||||
}
|
||||
@@ -303,5 +305,32 @@ namespace OpenSim.Server.Handlers.Presence
|
||||
|
||||
return ms.ToArray();
|
||||
}
|
||||
|
||||
byte[] SetHome(Dictionary<string, object> request)
|
||||
{
|
||||
UUID region = UUID.Zero;
|
||||
Vector3 position = new Vector3(128, 128, 70);
|
||||
Vector3 look = Vector3.Zero;
|
||||
|
||||
if (!request.ContainsKey("SessionID") || !request.ContainsKey("RegionID"))
|
||||
return FailureResult();
|
||||
|
||||
string user = request["UserID"].ToString();
|
||||
|
||||
if (!UUID.TryParse(request["RegionID"].ToString(), out region))
|
||||
return FailureResult();
|
||||
|
||||
if (request.ContainsKey("position"))
|
||||
Vector3.TryParse(request["position"].ToString(), out position);
|
||||
|
||||
if (request.ContainsKey("lookAt"))
|
||||
Vector3.TryParse(request["lookAt"].ToString(), out look);
|
||||
|
||||
if (m_PresenceService.SetHomeLocation(user, region, position, look))
|
||||
return SuccessResult();
|
||||
|
||||
return FailureResult();
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user