These files contain the 'VMoo-userlist'-support for use 
with the JHcore MCP-implementation as it can be found at
http://www.awns.com/mcp/ .

Provided are the following files:
  README (This file)
  userlist.moo (userlist-support)
  wizme.moo (chown verbs to some wizard and set some props)
  lambdacore.moo (basic adaptions to Lambdacore)

The first thing to do is to dump the information provided
in userlist.moo . Throughout the process you will find a
couple of tokens which should be replaced:
  __PACKAGE__  -> The generic MCP-package
  __USERLIST__ -> The primary object for userlist-support
  __WIZARD__   -> Should be removed at first. The verbs can
                  be chowned afterwards using wizme.moo


After the userlist.moo has been dumped, the init_for_core-verb
on the newly created object should be executed. I have chosen
to corify the object as $userlist (@corify __USERLIST__ as
userlist), so from now on I will refer to this object as
$userlist.

After dumping the userlist object (userlist.moo) you should
use wizme.moo to chown the verbs that need wizperms to some
wizard.

The last file contains an example of what changes should at
least be made to the core using a Lambdacore with the JHCore
MCP-support.

------
Recommended changes to $userlist
------

-$userlist:is_away(<user>) is used to check whether a user is
 away or not.
-$userlist:is_cloaked(<user>) is used to check whether a user is
 cloaked or not. In most MOOs only wizards are allowed to cloak.

If your MOO doesn't support an away-mode or a cloak-mode you
needn't change anything. Otherwise you should adapt these verbs
to better match the needs of your MOO.

-$userlist:player_status(<user>) is used to determine what icon
 should be used with <user>. Because some MOOs have intermediate
 options between Newbie, Programmer an Wizard this verb may need
 to be adjusted.

-$userlist.iconurl gives a MOO the opportunity to use it's own icons
 which need to be accessible by the URL in this property.

------
Further changes to the core
------

-$userlist:update_playerstatus(<user>) is used to pass a change
 of status to VMoo. It should be called every time the status of
 a connected player is altered (for example when a player receives
 a programmer bit).
-$userlist:"cloak_on cloak_off"(<user>) should be called in the verb
 causing the cloak/decloak to send the appropriate messages to VMoo.
-$userlist:"away_on away_off"(<user>) should be called in the verbs
 handling the away-mode to send the appropriate messages to VMoo.

------
What else?
------

-$userlist:idlefunc() checks which players have been idle longer than
 the number of seconds set in $userlist.idle_limit . It should be
 called by the server at regular intervals, typically every 30 seconds
 or every minute on a laggy server. It is recommended to use a scheduler
 but if your MOO has none the same effect can achieved by executing
 ';;fork(0);while(1);$userlist:idlefunc();suspend(30);endwhile;endfork'
 which will call the verb every 30 seconds indefinitely.

-The command '@reset __USERLIST__' can be called if something goes wrong.
 (For example if players aren't removed from the list of icons because
 you forgot to alter $user_disconnected). $userlist will then clear the
 information on the connected users and send every VMoo-user a new list.


At your service,
Robbert de Haan (robbert@vmoo.com)

