diff options
Diffstat (limited to 'OpenSim/Region/Modules')
-rw-r--r-- | OpenSim/Region/Modules/AvatarFactory/AvatarFactoryModule.cs | 69 |
1 files changed, 41 insertions, 28 deletions
diff --git a/OpenSim/Region/Modules/AvatarFactory/AvatarFactoryModule.cs b/OpenSim/Region/Modules/AvatarFactory/AvatarFactoryModule.cs index bac2252..f5e0ca2 100644 --- a/OpenSim/Region/Modules/AvatarFactory/AvatarFactoryModule.cs +++ b/OpenSim/Region/Modules/AvatarFactory/AvatarFactoryModule.cs | |||
@@ -27,8 +27,11 @@ | |||
27 | 27 | ||
28 | using System; | 28 | using System; |
29 | using System.Collections.Generic; | 29 | using System.Collections.Generic; |
30 | using System.Reflection; | ||
31 | |||
30 | using System.Threading; | 32 | using System.Threading; |
31 | using libsecondlife; | 33 | using libsecondlife; |
34 | using log4net; | ||
32 | using Nini.Config; | 35 | using Nini.Config; |
33 | using OpenSim.Data.Base; | 36 | using OpenSim.Data.Base; |
34 | using OpenSim.Data.MapperFactory; | 37 | using OpenSim.Data.MapperFactory; |
@@ -41,6 +44,7 @@ namespace OpenSim.Region.Modules.AvatarFactory | |||
41 | { | 44 | { |
42 | public class AvatarFactoryModule : IAvatarFactory, IRegionModule | 45 | public class AvatarFactoryModule : IAvatarFactory, IRegionModule |
43 | { | 46 | { |
47 | private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); | ||
44 | private Scene m_scene = null; | 48 | private Scene m_scene = null; |
45 | private readonly Dictionary<LLUUID, AvatarAppearance> m_avatarsAppearance = new Dictionary<LLUUID, AvatarAppearance>(); | 49 | private readonly Dictionary<LLUUID, AvatarAppearance> m_avatarsAppearance = new Dictionary<LLUUID, AvatarAppearance>(); |
46 | 50 | ||
@@ -215,31 +219,31 @@ namespace OpenSim.Region.Modules.AvatarFactory | |||
215 | m_scene = scene; | 219 | m_scene = scene; |
216 | } | 220 | } |
217 | 221 | ||
218 | if (!m_configured) | 222 | // if (!m_configured) |
219 | { | 223 | // { |
220 | m_configured = true; | 224 | // m_configured = true; |
221 | try | 225 | // try |
222 | { | 226 | // { |
223 | m_enablePersist = source.Configs["Startup"].GetBoolean("appearance_persist", false); | 227 | // m_enablePersist = source.Configs["Startup"].GetBoolean("appearance_persist", false); |
224 | } | 228 | // } |
225 | catch (Exception) | 229 | // catch (Exception) |
226 | { | 230 | // { |
227 | } | 231 | // } |
228 | if (m_enablePersist) | 232 | // if (m_enablePersist) |
229 | { | 233 | // { |
230 | m_connectionString = source.Configs["Startup"].GetString("appearance_connection_string", ""); | 234 | // m_connectionString = source.Configs["Startup"].GetString("appearance_connection_string", ""); |
231 | 235 | ||
232 | string mapperTypeStr = source.Configs["Startup"].GetString("appearance_database", "MySQL"); | 236 | // string mapperTypeStr = source.Configs["Startup"].GetString("appearance_database", "MySQL"); |
233 | 237 | ||
234 | DataMapperFactory.MAPPER_TYPE mapperType = | 238 | // DataMapperFactory.MAPPER_TYPE mapperType = |
235 | (DataMapperFactory.MAPPER_TYPE) | 239 | // (DataMapperFactory.MAPPER_TYPE) |
236 | Enum.Parse(typeof (DataMapperFactory.MAPPER_TYPE), mapperTypeStr); | 240 | // Enum.Parse(typeof (DataMapperFactory.MAPPER_TYPE), mapperTypeStr); |
237 | 241 | ||
238 | m_databaseMapper = DataMapperFactory.GetDataBaseMapper(mapperType, m_connectionString); | 242 | // m_databaseMapper = DataMapperFactory.GetDataBaseMapper(mapperType, m_connectionString); |
239 | 243 | ||
240 | m_appearanceMapper = new AppearanceTableMapper(m_databaseMapper, "AvatarAppearance"); | 244 | // m_appearanceMapper = new AppearanceTableMapper(m_databaseMapper, "AvatarAppearance"); |
241 | } | 245 | // } |
242 | } | 246 | // } |
243 | } | 247 | } |
244 | 248 | ||
245 | public void PostInitialise() | 249 | public void PostInitialise() |
@@ -273,13 +277,14 @@ namespace OpenSim.Region.Modules.AvatarFactory | |||
273 | public void AvatarIsWearing(Object sender, AvatarWearingArgs e) | 277 | public void AvatarIsWearing(Object sender, AvatarWearingArgs e) |
274 | { | 278 | { |
275 | IClientAPI clientView = (IClientAPI)sender; | 279 | IClientAPI clientView = (IClientAPI)sender; |
280 | ScenePresence avatar = m_scene.GetScenePresence(clientView.AgentId); | ||
276 | CachedUserInfo profile = m_scene.CommsManager.UserProfileCacheService.GetUserDetails(clientView.AgentId); | 281 | CachedUserInfo profile = m_scene.CommsManager.UserProfileCacheService.GetUserDetails(clientView.AgentId); |
277 | AvatarAppearance avatAppearance = m_scene.CommsManager.UserService.GetUserAppearance(clientView.AgentId); | 282 | AvatarAppearance avatAppearance = avatar.Appearance; |
283 | m_log.Info("Calling Avatar is Wearing"); | ||
278 | if (profile != null) | 284 | if (profile != null) |
279 | { | 285 | { |
280 | if (profile.RootFolder != null) | 286 | if (profile.RootFolder != null) |
281 | { | 287 | { |
282 | |||
283 | foreach (AvatarWearingArgs.Wearable wear in e.NowWearing) | 288 | foreach (AvatarWearingArgs.Wearable wear in e.NowWearing) |
284 | { | 289 | { |
285 | if (wear.Type < 13) | 290 | if (wear.Type < 13) |
@@ -292,7 +297,7 @@ namespace OpenSim.Region.Modules.AvatarFactory | |||
292 | else | 297 | else |
293 | { | 298 | { |
294 | LLUUID assetId; | 299 | LLUUID assetId; |
295 | 300 | ||
296 | InventoryItemBase baseItem = profile.RootFolder.FindItem(wear.ItemID); | 301 | InventoryItemBase baseItem = profile.RootFolder.FindItem(wear.ItemID); |
297 | 302 | ||
298 | if (baseItem != null) | 303 | if (baseItem != null) |
@@ -301,10 +306,18 @@ namespace OpenSim.Region.Modules.AvatarFactory | |||
301 | avatAppearance.Wearables[wear.Type].AssetID = assetId; | 306 | avatAppearance.Wearables[wear.Type].AssetID = assetId; |
302 | avatAppearance.Wearables[wear.Type].ItemID = wear.ItemID; | 307 | avatAppearance.Wearables[wear.Type].ItemID = wear.ItemID; |
303 | } | 308 | } |
309 | else | ||
310 | { | ||
311 | m_log.ErrorFormat("[APPEARANCE] Can't find inventory item {0}, not wearing", wear.ItemID); | ||
312 | } | ||
304 | } | 313 | } |
305 | } | 314 | } |
306 | } | 315 | } |
307 | m_scene.CommsManager.UserService.UpdateUserAppearance(clientView.AgentId, avatAppearance); | 316 | m_scene.CommsManager.UserService.UpdateUserAppearance(clientView.AgentId, avatAppearance); |
317 | } | ||
318 | else | ||
319 | { | ||
320 | m_log.Error("Root Profile is null, we can't set the appearance"); | ||
308 | } | 321 | } |
309 | } | 322 | } |
310 | } | 323 | } |