diff options
Diffstat (limited to 'OpenSim/Grid/UserServer/UserLoginService.cs')
-rw-r--r-- | OpenSim/Grid/UserServer/UserLoginService.cs | 34 |
1 files changed, 32 insertions, 2 deletions
diff --git a/OpenSim/Grid/UserServer/UserLoginService.cs b/OpenSim/Grid/UserServer/UserLoginService.cs index 8ab9af1..573e546 100644 --- a/OpenSim/Grid/UserServer/UserLoginService.cs +++ b/OpenSim/Grid/UserServer/UserLoginService.cs | |||
@@ -131,6 +131,9 @@ namespace OpenSim.Grid.UserServer | |||
131 | /// <param name="startLocationRequest">The requested start location</param> | 131 | /// <param name="startLocationRequest">The requested start location</param> |
132 | public override bool CustomiseResponse(LoginResponse response, UserProfileData theUser, string startLocationRequest) | 132 | public override bool CustomiseResponse(LoginResponse response, UserProfileData theUser, string startLocationRequest) |
133 | { | 133 | { |
134 | // add active gestures to login-response | ||
135 | AddActiveGestures(response, theUser); | ||
136 | |||
134 | // HomeLocation | 137 | // HomeLocation |
135 | RegionProfileData homeInfo = null; | 138 | RegionProfileData homeInfo = null; |
136 | // use the homeRegionID if it is stored already. If not, use the regionHandle as before | 139 | // use the homeRegionID if it is stored already. If not, use the regionHandle as before |
@@ -243,10 +246,37 @@ namespace OpenSim.Grid.UserServer | |||
243 | // theUser.HomeLookAt.X, theUser.HomeLookAt.Y, theUser.HomeLookAt.Z); | 246 | // theUser.HomeLookAt.X, theUser.HomeLookAt.Y, theUser.HomeLookAt.Z); |
244 | theUser.CurrentAgent.Position = new Vector3(128,128,0); | 247 | theUser.CurrentAgent.Position = new Vector3(128,128,0); |
245 | response.StartLocation = "safe"; | 248 | response.StartLocation = "safe"; |
246 | 249 | ||
247 | return PrepareLoginToRegion(regionInfo, theUser, response); | 250 | return PrepareLoginToRegion(regionInfo, theUser, response); |
248 | } | 251 | } |
249 | 252 | ||
253 | /// <summary> | ||
254 | /// Add active gestures of the user to the login response. | ||
255 | /// </summary> | ||
256 | /// <param name="response"> | ||
257 | /// A <see cref="LoginResponse"/> | ||
258 | /// </param> | ||
259 | /// <param name="theUser"> | ||
260 | /// A <see cref="UserProfileData"/> | ||
261 | /// </param> | ||
262 | private void AddActiveGestures(LoginResponse response, UserProfileData theUser) | ||
263 | { | ||
264 | List<InventoryItemBase> gestures = m_inventoryService.GetActiveGestures(theUser.ID); | ||
265 | m_log.DebugFormat("[LOGIN]: AddActiveGestures, found {0}", gestures == null ? 0 : gestures.Count); | ||
266 | ArrayList list = new ArrayList(); | ||
267 | if (gestures != null) | ||
268 | { | ||
269 | foreach (InventoryItemBase gesture in gestures) | ||
270 | { | ||
271 | Hashtable item = new Hashtable(); | ||
272 | item["item_id"] = gesture.ID.ToString(); | ||
273 | item["asset_id"] = gesture.AssetID.ToString(); | ||
274 | list.Add(item); | ||
275 | } | ||
276 | } | ||
277 | response.ActiveGestures = list; | ||
278 | } | ||
279 | |||
250 | /// <summary> | 280 | /// <summary> |
251 | /// Prepare a login to the given region. This involves both telling the region to expect a connection | 281 | /// Prepare a login to the given region. This involves both telling the region to expect a connection |
252 | /// and appropriately customising the response to the user. | 282 | /// and appropriately customising the response to the user. |