diff options
Diffstat (limited to '')
-rw-r--r-- | OpenSim/Framework/Communications/UserManagerBase.cs | 169 |
1 files changed, 75 insertions, 94 deletions
diff --git a/OpenSim/Framework/Communications/UserManagerBase.cs b/OpenSim/Framework/Communications/UserManagerBase.cs index 1b73152..f8e77df 100644 --- a/OpenSim/Framework/Communications/UserManagerBase.cs +++ b/OpenSim/Framework/Communications/UserManagerBase.cs | |||
@@ -47,42 +47,23 @@ namespace OpenSim.Framework.Communications | |||
47 | = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); | 47 | = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); |
48 | 48 | ||
49 | public UserConfig _config; | 49 | public UserConfig _config; |
50 | private Dictionary<string, IUserData> _plugins = new Dictionary<string, IUserData>(); | 50 | private List<IUserData> _plugins = new List<IUserData>(); |
51 | 51 | ||
52 | /// <summary> | 52 | /// <summary> |
53 | /// Adds a new user server plugin - user servers will be requested in the order they were loaded. | 53 | /// Adds a new user server plugin - user servers will be requested in the order they were loaded. |
54 | /// </summary> | 54 | /// </summary> |
55 | /// <param name="FileName">The filename to the user server plugin DLL</param> | 55 | /// <param name="provider">The filename to the user server plugin DLL</param> |
56 | public void AddPlugin(string FileName, string connect) | 56 | public void AddPlugin(string provider, string connect) |
57 | { | 57 | { |
58 | if (!String.IsNullOrEmpty(FileName)) | 58 | PluginLoader<IUserData> loader = |
59 | { | 59 | new PluginLoader<IUserData> (new UserDataInitialiser (connect)); |
60 | m_log.Info("[USERSTORAGE]: Attempting to load " + FileName); | 60 | |
61 | Assembly pluginAssembly = Assembly.LoadFrom(FileName); | 61 | // loader will try to load all providers (MySQL, MSSQL, etc) |
62 | 62 | // unless it is constrainted to the correct "Provider" entry in the addin.xml | |
63 | m_log.Info("[USERSTORAGE]: Found " + pluginAssembly.GetTypes().Length + " interfaces."); | 63 | loader.Add ("/OpenSim/UserData", new PluginProviderFilter (provider)); |
64 | foreach (Type pluginType in pluginAssembly.GetTypes()) | 64 | loader.Load(); |
65 | { | 65 | |
66 | if (!pluginType.IsAbstract) | 66 | _plugins = loader.Plugins; |
67 | { | ||
68 | Type typeInterface = pluginType.GetInterface("IUserData", true); | ||
69 | |||
70 | if (typeInterface != null) | ||
71 | { | ||
72 | IUserData plug = | ||
73 | (IUserData) Activator.CreateInstance(pluginAssembly.GetType(pluginType.ToString())); | ||
74 | AddPlugin(plug, connect); | ||
75 | } | ||
76 | } | ||
77 | } | ||
78 | } | ||
79 | } | ||
80 | |||
81 | public void AddPlugin(IUserData plug, string connect) | ||
82 | { | ||
83 | plug.Initialise(connect); | ||
84 | _plugins.Add(plug.Name, plug); | ||
85 | m_log.Info("[USERSTORAGE]: Added IUserData Interface"); | ||
86 | } | 67 | } |
87 | 68 | ||
88 | #region Get UserProfile | 69 | #region Get UserProfile |
@@ -90,9 +71,9 @@ namespace OpenSim.Framework.Communications | |||
90 | // see IUserService | 71 | // see IUserService |
91 | public UserProfileData GetUserProfile(string fname, string lname) | 72 | public UserProfileData GetUserProfile(string fname, string lname) |
92 | { | 73 | { |
93 | foreach (KeyValuePair<string, IUserData> plugin in _plugins) | 74 | foreach (IUserData plugin in _plugins) |
94 | { | 75 | { |
95 | UserProfileData profile = plugin.Value.GetUserByName(fname, lname); | 76 | UserProfileData profile = plugin.GetUserByName(fname, lname); |
96 | 77 | ||
97 | if (profile != null) | 78 | if (profile != null) |
98 | { | 79 | { |
@@ -105,9 +86,9 @@ namespace OpenSim.Framework.Communications | |||
105 | } | 86 | } |
106 | public UserAgentData GetAgentByUUID(LLUUID userId) | 87 | public UserAgentData GetAgentByUUID(LLUUID userId) |
107 | { | 88 | { |
108 | foreach (KeyValuePair<string, IUserData> plugin in _plugins) | 89 | foreach (IUserData plugin in _plugins) |
109 | { | 90 | { |
110 | UserAgentData agent = plugin.Value.GetAgentByUUID(userId); | 91 | UserAgentData agent = plugin.GetAgentByUUID(userId); |
111 | 92 | ||
112 | if (agent != null) | 93 | if (agent != null) |
113 | { | 94 | { |
@@ -120,9 +101,9 @@ namespace OpenSim.Framework.Communications | |||
120 | // see IUserService | 101 | // see IUserService |
121 | public UserProfileData GetUserProfile(LLUUID uuid) | 102 | public UserProfileData GetUserProfile(LLUUID uuid) |
122 | { | 103 | { |
123 | foreach (KeyValuePair<string, IUserData> plugin in _plugins) | 104 | foreach (IUserData plugin in _plugins) |
124 | { | 105 | { |
125 | UserProfileData profile = plugin.Value.GetUserByUUID(uuid); | 106 | UserProfileData profile = plugin.GetUserByUUID(uuid); |
126 | 107 | ||
127 | if (null != profile) | 108 | if (null != profile) |
128 | { | 109 | { |
@@ -137,15 +118,15 @@ namespace OpenSim.Framework.Communications | |||
137 | public List<AvatarPickerAvatar> GenerateAgentPickerRequestResponse(LLUUID queryID, string query) | 118 | public List<AvatarPickerAvatar> GenerateAgentPickerRequestResponse(LLUUID queryID, string query) |
138 | { | 119 | { |
139 | List<AvatarPickerAvatar> pickerlist = new List<AvatarPickerAvatar>(); | 120 | List<AvatarPickerAvatar> pickerlist = new List<AvatarPickerAvatar>(); |
140 | foreach (KeyValuePair<string, IUserData> plugin in _plugins) | 121 | foreach (IUserData plugin in _plugins) |
141 | { | 122 | { |
142 | try | 123 | try |
143 | { | 124 | { |
144 | pickerlist = plugin.Value.GeneratePickerResults(queryID, query); | 125 | pickerlist = plugin.GeneratePickerResults(queryID, query); |
145 | } | 126 | } |
146 | catch (Exception) | 127 | catch (Exception) |
147 | { | 128 | { |
148 | m_log.Info("[USERSTORAGE]: Unable to generate AgentPickerData via " + plugin.Key + "(" + query + ")"); | 129 | m_log.Info("[USERSTORAGE]: Unable to generate AgentPickerData via " + plugin.Name + "(" + query + ")"); |
149 | return new List<AvatarPickerAvatar>(); | 130 | return new List<AvatarPickerAvatar>(); |
150 | } | 131 | } |
151 | } | 132 | } |
@@ -159,17 +140,17 @@ namespace OpenSim.Framework.Communications | |||
159 | /// <returns></returns> | 140 | /// <returns></returns> |
160 | public bool UpdateUserProfile(UserProfileData data) | 141 | public bool UpdateUserProfile(UserProfileData data) |
161 | { | 142 | { |
162 | foreach (KeyValuePair<string, IUserData> plugin in _plugins) | 143 | foreach (IUserData plugin in _plugins) |
163 | { | 144 | { |
164 | try | 145 | try |
165 | { | 146 | { |
166 | plugin.Value.UpdateUserProfile(data); | 147 | plugin.UpdateUserProfile(data); |
167 | return true; | 148 | return true; |
168 | } | 149 | } |
169 | catch (Exception e) | 150 | catch (Exception e) |
170 | { | 151 | { |
171 | m_log.InfoFormat("[USERSTORAGE]: Unable to set user {0} {1} via {2}: {3}", data.FirstName, data.SurName, | 152 | m_log.InfoFormat("[USERSTORAGE]: Unable to set user {0} {1} via {2}: {3}", data.FirstName, data.SurName, |
172 | plugin.Key, e.ToString()); | 153 | plugin.Name, e.ToString()); |
173 | } | 154 | } |
174 | } | 155 | } |
175 | return false; | 156 | return false; |
@@ -186,15 +167,15 @@ namespace OpenSim.Framework.Communications | |||
186 | /// <returns>Agent profiles</returns> | 167 | /// <returns>Agent profiles</returns> |
187 | public UserAgentData GetUserAgent(LLUUID uuid) | 168 | public UserAgentData GetUserAgent(LLUUID uuid) |
188 | { | 169 | { |
189 | foreach (KeyValuePair<string, IUserData> plugin in _plugins) | 170 | foreach (IUserData plugin in _plugins) |
190 | { | 171 | { |
191 | try | 172 | try |
192 | { | 173 | { |
193 | return plugin.Value.GetAgentByUUID(uuid); | 174 | return plugin.GetAgentByUUID(uuid); |
194 | } | 175 | } |
195 | catch (Exception e) | 176 | catch (Exception e) |
196 | { | 177 | { |
197 | m_log.Info("[USERSTORAGE]: Unable to find user via " + plugin.Key + "(" + e.ToString() + ")"); | 178 | m_log.Info("[USERSTORAGE]: Unable to find user via " + plugin.Name + "(" + e.ToString() + ")"); |
198 | } | 179 | } |
199 | } | 180 | } |
200 | 181 | ||
@@ -208,15 +189,15 @@ namespace OpenSim.Framework.Communications | |||
208 | /// <returns>A user agent</returns> | 189 | /// <returns>A user agent</returns> |
209 | public UserAgentData GetUserAgent(string name) | 190 | public UserAgentData GetUserAgent(string name) |
210 | { | 191 | { |
211 | foreach (KeyValuePair<string, IUserData> plugin in _plugins) | 192 | foreach (IUserData plugin in _plugins) |
212 | { | 193 | { |
213 | try | 194 | try |
214 | { | 195 | { |
215 | return plugin.Value.GetAgentByName(name); | 196 | return plugin.GetAgentByName(name); |
216 | } | 197 | } |
217 | catch (Exception e) | 198 | catch (Exception e) |
218 | { | 199 | { |
219 | m_log.Info("[USERSTORAGE]: Unable to find user via " + plugin.Key + "(" + e.ToString() + ")"); | 200 | m_log.Info("[USERSTORAGE]: Unable to find user via " + plugin.Name + "(" + e.ToString() + ")"); |
220 | } | 201 | } |
221 | } | 202 | } |
222 | 203 | ||
@@ -231,15 +212,15 @@ namespace OpenSim.Framework.Communications | |||
231 | /// <returns>A user agent</returns> | 212 | /// <returns>A user agent</returns> |
232 | public UserAgentData GetUserAgent(string fname, string lname) | 213 | public UserAgentData GetUserAgent(string fname, string lname) |
233 | { | 214 | { |
234 | foreach (KeyValuePair<string, IUserData> plugin in _plugins) | 215 | foreach (IUserData plugin in _plugins) |
235 | { | 216 | { |
236 | try | 217 | try |
237 | { | 218 | { |
238 | return plugin.Value.GetAgentByName(fname, lname); | 219 | return plugin.GetAgentByName(fname, lname); |
239 | } | 220 | } |
240 | catch (Exception e) | 221 | catch (Exception e) |
241 | { | 222 | { |
242 | m_log.Info("[USERSTORAGE]: Unable to find user via " + plugin.Key + "(" + e.ToString() + ")"); | 223 | m_log.Info("[USERSTORAGE]: Unable to find user via " + plugin.Name + "(" + e.ToString() + ")"); |
243 | } | 224 | } |
244 | } | 225 | } |
245 | 226 | ||
@@ -248,15 +229,15 @@ namespace OpenSim.Framework.Communications | |||
248 | 229 | ||
249 | public void UpdateUserCurrentRegion(LLUUID avatarid, LLUUID regionuuid, ulong regionhandle) | 230 | public void UpdateUserCurrentRegion(LLUUID avatarid, LLUUID regionuuid, ulong regionhandle) |
250 | { | 231 | { |
251 | foreach (KeyValuePair<string, IUserData> plugin in _plugins) | 232 | foreach (IUserData plugin in _plugins) |
252 | { | 233 | { |
253 | try | 234 | try |
254 | { | 235 | { |
255 | plugin.Value.UpdateUserCurrentRegion(avatarid, regionuuid, regionhandle); | 236 | plugin.UpdateUserCurrentRegion(avatarid, regionuuid, regionhandle); |
256 | } | 237 | } |
257 | catch (Exception e) | 238 | catch (Exception e) |
258 | { | 239 | { |
259 | m_log.Info("[USERSTORAGE]: Unable to updateuser location via " + plugin.Key + "(" + e.ToString() + ")"); | 240 | m_log.Info("[USERSTORAGE]: Unable to updateuser location via " + plugin.Name + "(" + e.ToString() + ")"); |
260 | } | 241 | } |
261 | } | 242 | } |
262 | } | 243 | } |
@@ -268,15 +249,15 @@ namespace OpenSim.Framework.Communications | |||
268 | /// <returns>A List of FriendListItems that contains info about the user's friends</returns> | 249 | /// <returns>A List of FriendListItems that contains info about the user's friends</returns> |
269 | public List<FriendListItem> GetUserFriendList(LLUUID ownerID) | 250 | public List<FriendListItem> GetUserFriendList(LLUUID ownerID) |
270 | { | 251 | { |
271 | foreach (KeyValuePair<string, IUserData> plugin in _plugins) | 252 | foreach (IUserData plugin in _plugins) |
272 | { | 253 | { |
273 | try | 254 | try |
274 | { | 255 | { |
275 | return plugin.Value.GetUserFriendList(ownerID); | 256 | return plugin.GetUserFriendList(ownerID); |
276 | } | 257 | } |
277 | catch (Exception e) | 258 | catch (Exception e) |
278 | { | 259 | { |
279 | m_log.Info("[USERSTORAGE]: Unable to GetUserFriendList via " + plugin.Key + "(" + e.ToString() + ")"); | 260 | m_log.Info("[USERSTORAGE]: Unable to GetUserFriendList via " + plugin.Name + "(" + e.ToString() + ")"); |
280 | } | 261 | } |
281 | } | 262 | } |
282 | 263 | ||
@@ -285,60 +266,60 @@ namespace OpenSim.Framework.Communications | |||
285 | 266 | ||
286 | public void StoreWebLoginKey(LLUUID agentID, LLUUID webLoginKey) | 267 | public void StoreWebLoginKey(LLUUID agentID, LLUUID webLoginKey) |
287 | { | 268 | { |
288 | foreach (KeyValuePair<string, IUserData> plugin in _plugins) | 269 | foreach (IUserData plugin in _plugins) |
289 | { | 270 | { |
290 | try | 271 | try |
291 | { | 272 | { |
292 | plugin.Value.StoreWebLoginKey(agentID, webLoginKey); | 273 | plugin.StoreWebLoginKey(agentID, webLoginKey); |
293 | } | 274 | } |
294 | catch (Exception e) | 275 | catch (Exception e) |
295 | { | 276 | { |
296 | m_log.Info("[USERSTORAGE]: Unable to Store WebLoginKey via " + plugin.Key + "(" + e.ToString() + ")"); | 277 | m_log.Info("[USERSTORAGE]: Unable to Store WebLoginKey via " + plugin.Name + "(" + e.ToString() + ")"); |
297 | } | 278 | } |
298 | } | 279 | } |
299 | } | 280 | } |
300 | 281 | ||
301 | public void AddNewUserFriend(LLUUID friendlistowner, LLUUID friend, uint perms) | 282 | public void AddNewUserFriend(LLUUID friendlistowner, LLUUID friend, uint perms) |
302 | { | 283 | { |
303 | foreach (KeyValuePair<string, IUserData> plugin in _plugins) | 284 | foreach (IUserData plugin in _plugins) |
304 | { | 285 | { |
305 | try | 286 | try |
306 | { | 287 | { |
307 | plugin.Value.AddNewUserFriend(friendlistowner,friend,perms); | 288 | plugin.AddNewUserFriend(friendlistowner,friend,perms); |
308 | } | 289 | } |
309 | catch (Exception e) | 290 | catch (Exception e) |
310 | { | 291 | { |
311 | m_log.Info("[USERSTORAGE]: Unable to AddNewUserFriend via " + plugin.Key + "(" + e.ToString() + ")"); | 292 | m_log.Info("[USERSTORAGE]: Unable to AddNewUserFriend via " + plugin.Name + "(" + e.ToString() + ")"); |
312 | } | 293 | } |
313 | } | 294 | } |
314 | } | 295 | } |
315 | 296 | ||
316 | public void RemoveUserFriend(LLUUID friendlistowner, LLUUID friend) | 297 | public void RemoveUserFriend(LLUUID friendlistowner, LLUUID friend) |
317 | { | 298 | { |
318 | foreach (KeyValuePair<string, IUserData> plugin in _plugins) | 299 | foreach (IUserData plugin in _plugins) |
319 | { | 300 | { |
320 | try | 301 | try |
321 | { | 302 | { |
322 | plugin.Value.RemoveUserFriend(friendlistowner, friend); | 303 | plugin.RemoveUserFriend(friendlistowner, friend); |
323 | } | 304 | } |
324 | catch (Exception e) | 305 | catch (Exception e) |
325 | { | 306 | { |
326 | m_log.Info("[USERSTORAGE]: Unable to RemoveUserFriend via " + plugin.Key + "(" + e.ToString() + ")"); | 307 | m_log.Info("[USERSTORAGE]: Unable to RemoveUserFriend via " + plugin.Name + "(" + e.ToString() + ")"); |
327 | } | 308 | } |
328 | } | 309 | } |
329 | } | 310 | } |
330 | 311 | ||
331 | public void UpdateUserFriendPerms(LLUUID friendlistowner, LLUUID friend, uint perms) | 312 | public void UpdateUserFriendPerms(LLUUID friendlistowner, LLUUID friend, uint perms) |
332 | { | 313 | { |
333 | foreach (KeyValuePair<string, IUserData> plugin in _plugins) | 314 | foreach (IUserData plugin in _plugins) |
334 | { | 315 | { |
335 | try | 316 | try |
336 | { | 317 | { |
337 | plugin.Value.UpdateUserFriendPerms(friendlistowner, friend, perms); | 318 | plugin.UpdateUserFriendPerms(friendlistowner, friend, perms); |
338 | } | 319 | } |
339 | catch (Exception e) | 320 | catch (Exception e) |
340 | { | 321 | { |
341 | m_log.Info("[USERSTORAGE]: Unable to UpdateUserFriendPerms via " + plugin.Key + "(" + e.ToString() + ")"); | 322 | m_log.Info("[USERSTORAGE]: Unable to UpdateUserFriendPerms via " + plugin.Name + "(" + e.ToString() + ")"); |
342 | } | 323 | } |
343 | } | 324 | } |
344 | } | 325 | } |
@@ -564,15 +545,15 @@ namespace OpenSim.Framework.Communications | |||
564 | user.HomeRegionX = regX; | 545 | user.HomeRegionX = regX; |
565 | user.HomeRegionY = regY; | 546 | user.HomeRegionY = regY; |
566 | 547 | ||
567 | foreach (KeyValuePair<string, IUserData> plugin in _plugins) | 548 | foreach (IUserData plugin in _plugins) |
568 | { | 549 | { |
569 | try | 550 | try |
570 | { | 551 | { |
571 | plugin.Value.AddNewUserProfile(user); | 552 | plugin.AddNewUserProfile(user); |
572 | } | 553 | } |
573 | catch (Exception e) | 554 | catch (Exception e) |
574 | { | 555 | { |
575 | m_log.Info("[USERSTORAGE]: Unable to add user via " + plugin.Key + "(" + e.ToString() + ")"); | 556 | m_log.Info("[USERSTORAGE]: Unable to add user via " + plugin.Name + "(" + e.ToString() + ")"); |
576 | } | 557 | } |
577 | } | 558 | } |
578 | 559 | ||
@@ -586,16 +567,16 @@ namespace OpenSim.Framework.Communications | |||
586 | m_log.Info("[USERSTORAGE]: Failed to find User by UUID " + UserProfile.ID.ToString()); | 567 | m_log.Info("[USERSTORAGE]: Failed to find User by UUID " + UserProfile.ID.ToString()); |
587 | return false; | 568 | return false; |
588 | } | 569 | } |
589 | foreach (KeyValuePair<string, IUserData> plugin in _plugins) | 570 | foreach (IUserData plugin in _plugins) |
590 | { | 571 | { |
591 | try | 572 | try |
592 | { | 573 | { |
593 | plugin.Value.UpdateUserProfile(UserProfile); | 574 | plugin.UpdateUserProfile(UserProfile); |
594 | } | 575 | } |
595 | catch (Exception e) | 576 | catch (Exception e) |
596 | { | 577 | { |
597 | m_log.Info("[USERSTORAGE]: Unable to update user " + UserProfile.ID.ToString() | 578 | m_log.Info("[USERSTORAGE]: Unable to update user " + UserProfile.ID.ToString() |
598 | + " via " + plugin.Key + "(" + e.ToString() + ")"); | 579 | + " via " + plugin.Name + "(" + e.ToString() + ")"); |
599 | return false; | 580 | return false; |
600 | } | 581 | } |
601 | } | 582 | } |
@@ -612,16 +593,16 @@ namespace OpenSim.Framework.Communications | |||
612 | /// <param name="agentdata">The agent data to be added</param> | 593 | /// <param name="agentdata">The agent data to be added</param> |
613 | public bool AddUserAgent(UserAgentData agentdata) | 594 | public bool AddUserAgent(UserAgentData agentdata) |
614 | { | 595 | { |
615 | foreach (KeyValuePair<string, IUserData> plugin in _plugins) | 596 | foreach (IUserData plugin in _plugins) |
616 | { | 597 | { |
617 | try | 598 | try |
618 | { | 599 | { |
619 | plugin.Value.AddNewUserAgent(agentdata); | 600 | plugin.AddNewUserAgent(agentdata); |
620 | return true; | 601 | return true; |
621 | } | 602 | } |
622 | catch (Exception e) | 603 | catch (Exception e) |
623 | { | 604 | { |
624 | m_log.Info("[USERSTORAGE]: Unable to add agent via " + plugin.Key + "(" + e.ToString() + ")"); | 605 | m_log.Info("[USERSTORAGE]: Unable to add agent via " + plugin.Name + "(" + e.ToString() + ")"); |
625 | } | 606 | } |
626 | } | 607 | } |
627 | return false; | 608 | return false; |
@@ -631,15 +612,15 @@ namespace OpenSim.Framework.Communications | |||
631 | /// TODO: stubs for now to get us to a compiling state gently | 612 | /// TODO: stubs for now to get us to a compiling state gently |
632 | public AvatarAppearance GetUserAppearance(LLUUID user) | 613 | public AvatarAppearance GetUserAppearance(LLUUID user) |
633 | { | 614 | { |
634 | foreach (KeyValuePair<string, IUserData> plugin in _plugins) | 615 | foreach (IUserData plugin in _plugins) |
635 | { | 616 | { |
636 | try | 617 | try |
637 | { | 618 | { |
638 | return plugin.Value.GetUserAppearance(user); | 619 | return plugin.GetUserAppearance(user); |
639 | } | 620 | } |
640 | catch (Exception e) | 621 | catch (Exception e) |
641 | { | 622 | { |
642 | m_log.InfoFormat("[USERSTORAGE]: Unable to find user appearance {0} via {1} ({2})", user.ToString(), plugin.Key, e.ToString()); | 623 | m_log.InfoFormat("[USERSTORAGE]: Unable to find user appearance {0} via {1} ({2})", user.ToString(), plugin.Name, e.ToString()); |
643 | } | 624 | } |
644 | } | 625 | } |
645 | return null; | 626 | return null; |
@@ -647,60 +628,60 @@ namespace OpenSim.Framework.Communications | |||
647 | 628 | ||
648 | public void UpdateUserAppearance(LLUUID user, AvatarAppearance appearance) | 629 | public void UpdateUserAppearance(LLUUID user, AvatarAppearance appearance) |
649 | { | 630 | { |
650 | foreach (KeyValuePair<string, IUserData> plugin in _plugins) | 631 | foreach (IUserData plugin in _plugins) |
651 | { | 632 | { |
652 | try | 633 | try |
653 | { | 634 | { |
654 | plugin.Value.UpdateUserAppearance(user, appearance); | 635 | plugin.UpdateUserAppearance(user, appearance); |
655 | } | 636 | } |
656 | catch (Exception e) | 637 | catch (Exception e) |
657 | { | 638 | { |
658 | m_log.InfoFormat("[USERSTORAGE]: Unable to update user appearance {0} via {1} ({2})", user.ToString(), plugin.Key, e.ToString()); | 639 | m_log.InfoFormat("[USERSTORAGE]: Unable to update user appearance {0} via {1} ({2})", user.ToString(), plugin.Name, e.ToString()); |
659 | } | 640 | } |
660 | } | 641 | } |
661 | } | 642 | } |
662 | 643 | ||
663 | public void AddAttachment(LLUUID user, LLUUID item) | 644 | public void AddAttachment(LLUUID user, LLUUID item) |
664 | { | 645 | { |
665 | foreach (KeyValuePair<string, IUserData> plugin in _plugins) | 646 | foreach (IUserData plugin in _plugins) |
666 | { | 647 | { |
667 | try | 648 | try |
668 | { | 649 | { |
669 | plugin.Value.AddAttachment(user, item); | 650 | plugin.AddAttachment(user, item); |
670 | } | 651 | } |
671 | catch (Exception e) | 652 | catch (Exception e) |
672 | { | 653 | { |
673 | m_log.InfoFormat("[USERSTORAGE]: Unable to attach {3} => {0} via {1} ({2})", user.ToString(), plugin.Key, e.ToString(), item.ToString()); | 654 | m_log.InfoFormat("[USERSTORAGE]: Unable to attach {3} => {0} via {1} ({2})", user.ToString(), plugin.Name, e.ToString(), item.ToString()); |
674 | } | 655 | } |
675 | } | 656 | } |
676 | } | 657 | } |
677 | 658 | ||
678 | public void RemoveAttachment(LLUUID user, LLUUID item) | 659 | public void RemoveAttachment(LLUUID user, LLUUID item) |
679 | { | 660 | { |
680 | foreach (KeyValuePair<string, IUserData> plugin in _plugins) | 661 | foreach (IUserData plugin in _plugins) |
681 | { | 662 | { |
682 | try | 663 | try |
683 | { | 664 | { |
684 | plugin.Value.RemoveAttachment(user, item); | 665 | plugin.RemoveAttachment(user, item); |
685 | } | 666 | } |
686 | catch (Exception e) | 667 | catch (Exception e) |
687 | { | 668 | { |
688 | m_log.InfoFormat("[USERSTORAGE]: Unable to remove attachment {3} => {0} via {1} ({2})", user.ToString(), plugin.Key, e.ToString(), item.ToString()); | 669 | m_log.InfoFormat("[USERSTORAGE]: Unable to remove attachment {3} => {0} via {1} ({2})", user.ToString(), plugin.Name, e.ToString(), item.ToString()); |
689 | } | 670 | } |
690 | } | 671 | } |
691 | } | 672 | } |
692 | 673 | ||
693 | public List<LLUUID> GetAttachments(LLUUID user) | 674 | public List<LLUUID> GetAttachments(LLUUID user) |
694 | { | 675 | { |
695 | foreach (KeyValuePair<string, IUserData> plugin in _plugins) | 676 | foreach (IUserData plugin in _plugins) |
696 | { | 677 | { |
697 | try | 678 | try |
698 | { | 679 | { |
699 | return plugin.Value.GetAttachments(user); | 680 | return plugin.GetAttachments(user); |
700 | } | 681 | } |
701 | catch (Exception e) | 682 | catch (Exception e) |
702 | { | 683 | { |
703 | m_log.InfoFormat("[USERSTORAGE]: Unable to get attachments for {0} via {1} ({2})", user.ToString(), plugin.Key, e.ToString()); | 684 | m_log.InfoFormat("[USERSTORAGE]: Unable to get attachments for {0} via {1} ({2})", user.ToString(), plugin.Name, e.ToString()); |
704 | } | 685 | } |
705 | } | 686 | } |
706 | return new List<LLUUID>(); | 687 | return new List<LLUUID>(); |