[Opensim-dev] RFC: Moving default inventory creation from InventoryService to UserAccountService for viewer 2 initial appearance code

Diva Canto diva at metaverseink.com
Sat Jan 29 02:01:18 UTC 2011


-1 on blurring the line on what each service does.
+1 on what Melanie says.

FYI, Wifi creates default avatars. This is done by an external, 
optional, configurable service (Wifi, during registration), and not by 
changing the base services. Take a look / grab the code.

On 1/28/2011 5:54 PM, Melanie wrote:
> Please don't ignore the case where no default appearance is desired.
> Also, the UserAccount service should not directly access the
> inventory database. That would severely break the
> compartmentalization ROBUST is built on.
>
> The correct way is to have the inventory created by the inventory
> module, as it is now.
>
> The inventory module has no business populating that, and neither
> does the account service. This should be done by an external
> service, since it is only done on account creation.
>
> A meta service, like the LLLoginService, which takes the interfaces
> of both the inventory and avatar services and creates the inventory
> AND appearance and stores it in both would be the correct solution
> to this problem. It would be wrong (and get a -1) to shoehorn this
> into the existing services.
>
> ROBUST services are designed the Unix way. Do one thing, and do it
> well. The inventory service is not meant to access appearance, the
> user account service is not meant to access inventory, and so on.
>
> Such a meta service can then be loaded by the user server, a
> standalone or a web service like Wifi. And, obviously, it's
> configurable, so people who don't want to have a default appearance
> created, because they for instance have already working PHP code
> that would be messed up by preexisting data could just not configure
> it and see no change to current behavior.
>
> Melanie
>
> Justin Clark-Casey wrote:
>> Hi there,
>>
>> Today, I had an opportunity to do some more work on setting up default clothing/body parts for viewer 2 (this is in the
>> "viewer-2-initial-appearance" git branch).
>>
>> I've come to the realization (obvious in retrospect) that giving these items the default item IDs that the viewer wants
>> in the absence of any other appearance data is not going to work.  This is for the simple reason that item IDs are
>> primary keys and cannot be shared between avatars.
>>
>> Therefore, I will need to use a random item ID and use this to set up a default appearance at the same time as the
>> inventory items are created (currently, the appearance is only generated when the avatar first logs in).
>>
>> The user account service co-ordinates user account creation.  It seems that the sensible thing is to move default
>> inventory creation from the inventory service into the user account service.  Folder and item creation would take place
>> through existing add calls.
>>
>> The IInventoryService.CreateUserInventory() method would still be called but would only set up the very bare minimum
>> structure.  In the SL case, this is just the user's root "My Inventory" folder.
>>
>> The copy/pasted code for setting up estate managers in Scene.SetModuleInterfaces() also has to move.  The sensible thing
>> seems to be to expose a IUserAccountService.CreateUserAccount() call which is only available to standalones (as is
>> effectively currently the case).
>>
>> Commit 50254bf3 on this branch contains a rough version of this change.  The code to set up a default appearance with
>> random item IDs for default clothing/body parts has not yet been done.
>>
>> Comments?
>>
> _______________________________________________
> Opensim-dev mailing list
> Opensim-dev at lists.berlios.de
> https://lists.berlios.de/mailman/listinfo/opensim-dev
>




More information about the Opensim-dev mailing list