SunNET installation hints
First go to http://www.twyst.org/rupert/sunnet/form.html and fill out the form.
It will install Sunnet.
You will need need to make the $sunnet_pc player class part of the player class hierarchy. They recommend placing it between Generic Builder and Generic Programmer. In my case, I placed it lower in the hierarchy.
There are a few things that you need to be careful about. Make sure you change the parents of $sunnet_pc before you change anything to have $sunnet_pc to be its parent. A friend of mine did things the other way around and really messed up his MOO.
Here is how I would approach it:
First, see what the hierarchy is: Type @parents me: You should see something like:
Wizard(#2) generic wizard(#57) generic programmer(#58) generic builder(#4) Local Player Class(#159) Frand's player class(#89) Generic Mail Receiving Player(#40) generic player(#6) Root Class(#1)
Choose where you want the Sunnet player class to reside. Let’s assume you want the player class to be between generic programmer(#58) and generic builder(#4). First, change the sunnet player class to have a parent of generic builder(#4) with
@chparent $sunnet_pc to #4
then
@chparent #58 to $sunnet_pc
The player class should now be in your tree.
Next, add two features, the $sunnet_fo and the $sunnet_admin_fo:
@addfeature $sunnet_fo
and
@addfeature $sunnet_admin_fo
Now, you can start configuring sunnet:
Try
@set-node-name <nodename>
where <nodename> is what you want your SunNET to be know as. Personally, I strongly recommend setting it to the MOO_name
e.g.
;$network.MOO_Name
The next thing to do is initialize the variables: You should first initialize Sunnet:
:$sunnet:init_for_core()
The next step is to set up the protocols that are supported. The base set can be done with:
;$sunnet_protocols:init_for_core()
The next step is to create a connection to another MOO. You need to find a wizard at another MOO and work with them to establish a connection.
One MOO needs to have an inbound connection and the other should have an outbound connection. My recommendation is that the MOO that is going to be up more often should have the incoming connection, and the less reliable MOO should have the outgoing connection. (My personal opinion, others might have a different opinion).
On the MOO that will have the incoming connection, the wizard should type
@create-connection IN <nodename> <password>
where the <nodename> is the <nodename> used above for the MOO that will have the outgoing connection. The wizard can use whatever he wants for a password.
He should then tell the wizard of the other MOO the password. The wizard of the other MOO would then type
@create-connection OUT <nodename> <site address> <port number> <password>
Where <nodename> is the <nodename> of the incoming MOO, the site address and port number are the address of the incoming MOO, and the password is the password that the wizard from the other MOO has provided..
At this point, you should be able to start sunnet with
@start_sunnet
If everything works properly, you should see a user connect with the name
SunNET_<nodename>
Where <nodename> is the nodename of the other MOO.
The next thing to do is start testing SunNET. First, check the verbs on the SunNET player class:
@verbs $sunnet_pc
The first verb that I would recommend using is @mwho It shows you the status of SunNET, which machines are connected how much traffic has been transmitted etc.
Other good commands are:
ping <nodename>
This give you information about how long it takes for a packet to get to a remote node.
@node <nodename>
This displays a lot of information about a remote node.
@rwho <user>@<nodename>
You may omit <user> to see everyone at a node. If you omit all parameters, it will try to contact all the nodes.
rpage <user>@<nodename> message
This how to send messages to a player on a different node. It is also a good way to test out a new connection. page the wizard on the other MOO.
It is worth noting that each of these commands should really be tried going both directions. Sometimes, if something hasn’t been set up right a command will work one direction, but not the other.
There are also some nice commands to copy objects between MOOs. Take a look at @rcopy, @rcopy-o, @rverbs and @rprops
This is sufficient for the initial setup of SunNET.
Part II
One of the things that is really nice on SunNET is using channels. SunNET supports different channel implementations.
I would recommend copying #216, #217, and #218 from Rupert using @rcopy-o
@rcopy #216@rupert
make it a feature
make sure you run :init_for_core() on this.
@rcopy #217@rupert
make it a root object.
Then corify it
@corify <newobj> as channel
@copy #218@rupert
and make it a $channel
(More to come …. )
Part III
Understanding protocols etc.