mirror of
https://github.com/ldmud/ldmud
synced 2026-08-12 14:26:05 -04:00
This is a second review pass on concepts; while it includes some formatting edits, this review was much more closely focused on the text itself and consists mostly of typo/grammar edits.
224 lines
9 KiB
Text
224 lines
9 KiB
Text
CONCEPT
|
|
intermud
|
|
|
|
DESCRIPTION
|
|
There are several intermud protocols which define how (players on)
|
|
different muds can communicate with each other. The protocols are
|
|
in general not muddriver or mudlib dependant, though the number of
|
|
implementations is limited.
|
|
|
|
This text is about the rather old widely spread 'Zebedee Intermud',
|
|
which is also called 'Intermud 2' although it differs quite a lot
|
|
from the real Intermud 2 protocol.
|
|
|
|
Full information on the newer Intermud 3 could be found on the
|
|
web at http://www.imaginary.com/protocols/intermud3.html so there
|
|
is no discussion here - the following is just about Zebedee Intermud
|
|
(aka Intermud 2).
|
|
|
|
Zebedee Intermud communication is handled by the /secure/inetd
|
|
object, originally written by Nostradamus for Zebedee with some
|
|
extensions that are discussed in inetd(C). How the data is
|
|
actually sent across the network is described in intermud.basic(C).
|
|
|
|
SERVICES
|
|
Note that the fields "NAME" and "UDP_PORT" should be present in
|
|
every message. Very common are the fields "ID" (used whenever an
|
|
reply is expected) and "SND" (the sender: he should receive the
|
|
reply). These fields will not be mentioned in the list below.
|
|
|
|
Request types are listed on the leftmost row (e.g. "REQ=channel"),
|
|
associated header are listed indented.
|
|
|
|
"channel"
|
|
The channel-request is used for sending a message on any
|
|
channel. The "CMD" field is optional and may be omitted for
|
|
normal messages. Note that you should not send an history or
|
|
list request to _all_ known muds!
|
|
|
|
"CHANNEL"
|
|
The channel on which a message is send (the standard
|
|
channels are "intermud", "intercode", "interadm", "d-chat",
|
|
"d-code" and "d-adm"; on the d-channels German is spoken)
|
|
|
|
"DATA"
|
|
The message to be send (not used with history/list request)
|
|
|
|
"CMD"
|
|
The body of this header may be:
|
|
"" for normal intermud messages,
|
|
"emote" if the message is an emote/gemote,
|
|
"history" for an history request: the last 20 lines of
|
|
this channel will be shown.
|
|
"list" to list all remote users listening to this channel
|
|
|
|
"EMOTE" (optional)
|
|
The body is 1 if the message is an emote.
|
|
The body is 2 if the message is a gemote.
|
|
|
|
"finger"
|
|
Retreive information about a player or creator on a remote mud.
|
|
|
|
"DATA"
|
|
The player of whom information is requested
|
|
|
|
"locate"
|
|
Check whether a certain player is logged on at a remote mud.
|
|
This request is usually send to all known muds at the same time.
|
|
|
|
"user"
|
|
Name of the person who requests the information.
|
|
This is used by the sending mud only and has to be included
|
|
in the reply.
|
|
|
|
"vbs"
|
|
The verbose option has only two pre-defined values:
|
|
1 Even report when the result was negative
|
|
2 Don't do timeouts, but keep waiting
|
|
This is used by the sending mud only and has to be included
|
|
in the reply.
|
|
|
|
"fnd"
|
|
The found option is only used in the reply and it's value
|
|
is either 1 (success) or 0 (failure). The absence of a
|
|
found parameter indicates failure as well.
|
|
|
|
"DATA"
|
|
The player to find.
|
|
|
|
"man"
|
|
Retreive a manual page from a remote mud. Many muds don't
|
|
support this feature...
|
|
|
|
"DATA"
|
|
The name of the requested manual page
|
|
|
|
"mail"
|
|
An extension to the standard protocol, by Alvin@Sushi. This is
|
|
used to send mails from one mud to another.
|
|
|
|
"udpm_status"
|
|
This field should only be used in the reply and indicates
|
|
how mail is handled. Currently there are four pre-defined
|
|
values for the status field:
|
|
0 time out
|
|
1 delivered ok
|
|
2 unknown player
|
|
3 in spool (will be delivered later)
|
|
|
|
"udpm_writer"
|
|
Name of the person who wrote this mail
|
|
|
|
"udpm_spool_name"
|
|
Should be returned as sent, this value is used to remove
|
|
the mail from the spool directory after it has been
|
|
delivered (or refused)
|
|
|
|
"udpm_subject"
|
|
Subject of the mail message
|
|
|
|
"DATA"
|
|
The body of the mail (the actual message)
|
|
|
|
"ping"
|
|
A ping request has only the standard fields, the reply is
|
|
usually a short string like " is alive."
|
|
|
|
"query"
|
|
Get standard information about another mud. This is the only
|
|
command of which the reply may not include a load of rubbish,
|
|
but should only hold the requested information, so that it can
|
|
be parsed by the server.
|
|
|
|
"DATA"
|
|
The following queries are pretty much standard:
|
|
"commands" List all commands that are supported by the inetd
|
|
"email" The email-address of the mud administrator(s)
|
|
"hosts" A listing of all hosts in a special format [t.b.d.]
|
|
"inetd" The version number of the inetd used
|
|
"list" The list of all items which can be queried
|
|
"info" A short human-readable string with practically
|
|
"query" information
|
|
"mud_port" The portnumber that players connect to on login
|
|
"time" The local time for this mud
|
|
"users" A list of the people that are active in this mud
|
|
"version" The version of the mud-driver (and library)
|
|
"www" The URL of the mud's web page (e.g.
|
|
http://mud.stack.nl/)
|
|
|
|
"reply"
|
|
This request method is used for _all_ replies.
|
|
|
|
"DATA"
|
|
A human-readable string, containing the reply to a given query
|
|
|
|
"RCPNT"
|
|
The same name as in the "SND" field or the query; Usually
|
|
this is the name of the player who initiated the query
|
|
|
|
"QUERY"
|
|
This field is only used in a response to a "query" request
|
|
and should be equal to the "DATA" field of that request
|
|
|
|
"vbs"
|
|
This field is only used in a response to a "locate" request
|
|
and should be equal to the "vbs" field of that request
|
|
|
|
"user"
|
|
This field is only used in a response to a "locate" request
|
|
and should be equal to the "user" field of that request
|
|
|
|
"fnd"
|
|
This field is only used in a response to a "locate" request
|
|
and should be 1 if the player was located and 0 otherwise
|
|
|
|
"tell"
|
|
Say something to a player on another mud.
|
|
|
|
"RCPNT"
|
|
Name of the player to whom you are talking
|
|
|
|
"DATA"
|
|
Whatever you wish to say to this person
|
|
|
|
Optional emote-tos are handles are also handled as tells, so
|
|
muds without emote-to support display them as reasonable readable
|
|
tell message.
|
|
|
|
"RCPNT"
|
|
Name of the player to whom you are talking
|
|
|
|
"METHOD"
|
|
The body of this header may be:
|
|
"emote" if the message is an emote
|
|
"gemote" if the message is a genitiv emote
|
|
|
|
"DATA"
|
|
The text to be emoted prepended with "*" and appended
|
|
with "* ". If you display the emote you have to cut the
|
|
stars off. Muds that do not process emote-tos display the
|
|
emote as tell message with the stars as indication of
|
|
the message's emote meaning.
|
|
|
|
"who"
|
|
List the people that are active on a remote mud. The anwer
|
|
usually contains some active information about the players,
|
|
like titles, levels or age.
|
|
|
|
"DATA"
|
|
Not supported by many muds. Introduced August 1997.
|
|
Additional switch(es) (blanc separated) that change the
|
|
appearence of the resulting list. The switches normally
|
|
resemble the switches used inside of that mud for the 'who'
|
|
command. Typical values include:
|
|
"short" "s" "-short" "-s" "kurz":
|
|
Return a concise listing.
|
|
"alpha" "a" "alphabetisch" "-alpha" "-a"
|
|
Sort the players alphabetically.
|
|
|
|
AUTHOR
|
|
Information taken from Outerspaces documentation to be found
|
|
on http://mud.stack.nl/intermud/
|
|
|
|
SEE ALSO
|
|
inetd(C), intermud.basic(C), imp(C)
|