[sldev] Client-side scripting is real

Dzonatas Sol dzonatas at gmail.com
Thu Dec 24 05:56:10 PST 2009


Carlo Wood wrote:
> On Wed, Dec 23, 2009 at 02:40:42PM -0800, Dzonatas Sol wrote:
>   
>> Yes, XML is being used in SNOW-375.
>>     
>
> This looks pretty cool, clean and maintainable.
>   

=)

> Is there some more detailed documentation on how to write
> a client for this, and what interface is already supported
> (a list of actual possible messages thus)?
>
> Ie, is it (already) possible to control my avatar through
> this interface with the current patch? Walking around, looking
> around, accepting teleports, teleporting, etc.
>
>   


I'll have to work on it to wikify API documentation. What I provided in 
the last message was the main step needed to enable all the API 
resources. There is step-by-step documentation here on how to compile 
the patch into Snowglobe, even if you don't use C#, Gtk, Communicator, 
etc: (the patch/API itself does not depend on those)

http://wiki.secondlife.com/wiki/User:Dzonatas_Sol/Communicator

The UI already present is in Snowglobe has not been disabled or 
prevented from being used normally. Being able to do what you been doing 
still works.

If the question is there a new API to do those, then some of those need 
to be programmed to expose that functionality to an API. This isn't hard 
to expand the API.

All messages from the viewer to the peer use the same procedure, and it 
looks like this:

  Snowglobe::Interface::Packet p( "Notecard", "Open" ) ;
  p["Item"]              = inv_item->getUUID() ;
  p["Title"]             = title ;
  p.send() ;


A quick search in the patch for "Packet" can reveal all those messages.

All RESTful messages going from the peer to the viewer have these nodes 
setup by Snowglobe::Interface::init(). Here is the current list as seen 
in llinterface.cpp as of 0.9.9:

 NodeControlGroup::build( r ) ;
 NodeAgentGroups::build( r ) ;
 NodeAvatarTrackerFriends::build( r ) ;
 NodeAvatarTrackerFriend::build( r ) ;
 NodeInterfaceConnect::build( r ) ;
 NodeGestureManagerItems::build( r ) ;
 NodeGestureManagerItem::build( r ) ;

These relate to the URI resources: /ControlGroup/...; /Agent/Groups; 
/AvatarTracker/Friends; etc. Each one may build a few related methods 
for GET, POST, and wildcards.

As of 0.9.9., there are a couple chat messages that still use the TCP 
socket rather than the RESTful method, but that is planned to be changed 
to be like the Nodes above.




More information about the SLDev mailing list