TITLE
uwho
;
ufinger
;
urooms
;
unick
;
da.who.muf -
universal "who" program
SYNOPSIS
- Command line:
uwho
- list online users
uwho
player - list player's
connections
uwho -format
- change display format
uwho -sort
- change sort order
uwho -cull
- change list culling options
uwho -header
- change list header
uwho -footer
- change list footer
- Properties:
_uwho/
action/header
- (set on player or trigger) List header lines as typed into
action
-header
. Default
is "fields line".
_uwho/
action/footer
- (set on player or trigger) List footer lines as typed into
action
-header
. Default
is "line count".
_uwho/
action/format
- (set on player or trigger) Format as typed into action
-format
. Default
is "hflag name login idle space nojump room:-1".
_uwho/
action/indent
- (set on player or trigger) Indentation for wrapped lines. Default
is "30". Changed automatically when
action
-format
is run.
_uwho/
action/sort
- (set on player or trigger) Format as typed into action
-sort
. Default is
"room idle".
_uwho/
action/cull
- (set on player or trigger) Culling options as typed into
action
-cull
. Default
is the empty string.
sex
- (set on player) Player's sex.
_species
- (set on player) Player's species.
_volunteer
- (set on player) Player's volunteer speciality.
_private
- (set on player or room) Set to "yes" if a player cannot be located.
(shown as "<Location Private>" in room
format field).
_doing
- (set on player) Player's "doing" string (shown with doing format field).
_nojump
- (set on room) Set to "yes" if a room cannot be jumped to
(shown with nojump format field).
_pinfo.OOC.Name
- (set on player) Player's "pinfo" out-of-character name (shown with rlname format field).
_pinfo.OOC.Email
- (set on player) Player's "pinfo" out-of-character email address (shown
with email format field).
_TermWidth
- (set on player) Player's screen width in characters; determines
length of rows of hyphens in the "line" header
and footer.
DESCRIPTION
da.who.muf (#5196
) is a customisable
connection-listing program. More than one global action is linked
linked to the program; each has different default format but is
otherwise the same. This document will refer to them all as
uwho
; substitute whichever action name you like for this.
da.who.muf displays information about each connection
currently found on the Muck. It first removes certain connections if
asked to do so, sorts the remaining connections based on
some criterion, then displays certain information (in a customisable
way) to the screen.
You can alter the sorting behaviour with the command uwho
-sort
. You can alter the display format with the command
uwho -format
. You can alter the list culling options with
uwho -cull
. To change the header or footer to the list,
type uwho -header
or uwho -footer
.
On global actions (those in room
#0
), the settings are stored on your player, otherwise
they are stored on the action itself. This allows you to use a global
action's defaults, yet alter them for your own personal taste.
List culling
If you wish, you can make uwho
suppress displaying of
certain connections. You might want to do this if you want to list a
player who is connected several times by only showing its least idle
connection, for instance.
There are few culling options available presently. The syntax has been
designed so that they are extensible in a future version of
da.who.muf.
These are the currently recognised culling options:
room=here
- Only include players in the room with you (cull those in other
rooms).
name!=nickname
- Only include players who have set a nickname used in the
"%n" pronoun substitution.
!private
- Only include players who are not set private (cull those set private
or in private rooms).
!hflag
- Only include players who are not set HAVEN.
!nojump
- Only include players who can be jumped to.
cflag
- Only include players who are designated Hosts (have their CHOWN_OK
flag set).
vflag
- Only include players who have declared themselves Volunteers (have a
non-blank
_Volunteer
property).
leastidle
- Only include a player's least idle connection if they are connected
more than once. This option is useful in
conjunction with the concount display field.
eachroom
- Only include one player (at random) from each room, and cull all
private players. This option implies !private.
This option is useful in conjunction with a display
format such as "room roomowner roomcount with".
To combine the effects of more than one of the above options, separate
the words with spaces. Culling is done from first to last in the list
you give; this usually makes no difference, but it can if you use
"eachroom" after another word.
Words other than those above are ignored.
Sorting
Connections are sorted according to one or more fields before they are
displayed. This allows you to group together all players in the same
room, or to have players who connected most recently near the top of the
list. You can sort on more than one field, so that connections which
compare equal on one field (say, room) can have the tie
broken by comparing on another field (say, idle time).
Separate each field with a space when you type it in. If you want to
reverse the sense of the sort, precede the word with a single hyphen
(-
).
These are the valid fields for sorting:
name
- Player name, in ascending case-insensitive order.
nickname
- Player's nickname as set for "%n" pronoun
substitution, in ascending case-insensitive order.
room
- The room a player is in, in ascending case-insensitive order. All
private players (as indicated by the
_private
property)
appear at the end.
hflag
- Place all HAVEN players after all non-HAVEN players.
cflag
- Place all Hosts at the top of the list.
vflag
- Place all Volunteers at the top of the list.
volunteer
- A player's Volunteer speciality, in ascending case-insensitive
order.
nojump
- Place all players who cannot be jumped to after all
other players.
idle
- Connection idle time, in ascending order (least idle near top).
login
- Connection time, in ascending chronological order (oldest
connections near top).
onfor
- Time a connection has been in use, in ascending chronological order
(most recent connections near top). Clearly this is the opposite of
login
.
doing
- Player's "doing" string, in ascending case-insensitive
order.
status
- Player's access level, in order PLAYER, BUILDER, MUCKER, WIZARD.
concount
- Number of times a player is connected, in ascending numerical order.
roomcount
- Number of visible (non-private) players in the same room with a
player, in ascending numerical order.
roomowner
- Owner of the room a player is in, in ascending case-insensitive
order. For private players this information cannot be determined, and
such players are listed after all others, as with room.
sex
- The value of a player's
sex
property, in ascending
case-insensitive order.
species
- The value of a player's
_species
property, in ascending
case-insensitive order.
rlname
- Player's out-of-character real name, as given in their
pinfo
-ooc
information.
email
- Player's out-of-character email address, as given in their
pinfo
-ooc
information.
Any other words are ignored for sorting.
Header and footer
You can customise which information is printed before and after the
list. Each of the words below causes a line to be printed in the header
or footer. While some of the lines are more suited to headers than footers,
or vice versa, they are all available for both. To print more than one
line, type each word in the order you'd like them to appear in,
separated by spaces.
The allowed words are:
fields
- The headers for each field in the list.
line
- A horizontal line of hyphens to the width of your terminal.
count
- A summary of the number of connections on the Muck.
All other words are ignored.
Display format
You can specify which of the following fields are to be displayed for
each connection. You do this by giving uwho -format
one or
more of the following words, separated by spaces. All other words in
your format are copied as-is into every line. You may want to place
line-drawing characters in your format to give a table appearance to
your list, for instance. White space is ignored. If you want to put a
space in your format, use the space word.
Each of these fields has a default width. If the width is positive,
then the string will be padded with spaces to the right to make it that
width, or truncated to that width if it is longer. If the width is
negative, then the string will be padded with spaces to the left, to
right-align the field (note that you should probably put a
space field between adjacent negative- and positive-width
fields so that they don't run together). If the width is -1, then the
field is not justified at all. This is really only useful for the last
field in a format line.
You can alter the default width of a field by appending a colon
(:
) and the width you'd like it to be, such as
"name:12". You can use positive, negative or the
special -1 width. If you use a width of zero the default will be used
instead.
These are the words used to give information fields in the display
format:
space
(width 1)
- A space. You can join lots of spaces by specifying a new width.
name
(width 16)
- Player name.
nickname
(width 30)
- Player nickname, used in pronoun substitution at
"%n".
room
(width 40)
- The room a player is in, or "<Location
Private>" if the player is set private. Rooms set ABODE
or LINK_OK or owned by you have their dbref and flags shown. For
Wizards not set QUELL running this program, all rooms dbrefs are shown and
privacy is ignored.
roomneat
(width 40)
- The room a player is in, or "<Location
Private>" if the player is set private.
No rooms have their dbref and flags shown.
login
(width 6)
- The local time that a connection was started; the time a player
logged in to the Muck. This uses your short time format as you set with
date -format
.
idle
(width -5)
- Idle time, in seconds, minutes or hours, or blank if zero.
onfor
(width 6)
- Time that a connection has been in progress, in hours and minutes.
Historically this field has been left-justified but probably should be
right-justified.
nojump
(width 1)
- Equal to the string "+" if the room a player
is in has the
_nojump
property set to
"yes", or the player has its JUMP_OK flag
cleared and the room the player is in has the JUMP_OK flag cleared. Otherwise blank. (This field was
previously called iflag
for historical reasons; that name
still works but is discouraged.)
hflag
(width 1)
- Equal to the string "*" if a player is set
HAVEN. Otherwise blank.
cflag
(width 1)
- Equal to the string "@" if a player is a Host
(has the CHOWN_OK flag set). Otherwise blank.
vflag
(width 1)
- Equal to the string "^" if a player is a
Volunteer (has a non-blank
_Volunteer
property). Otherwise
blank.
volunteer
(width 40)
- A player's
_Volunteer
property string, describing the
volunteer's specialities.
status
(width 8)
- The string
"Player",
"Builder",
"Mucker" or
"Wizard", showing the most powerful player-access
bit the player has.
doing
(width 40)
- The player's "doing" string, as set by
@doing
.
sex
(width 7)
- The player's
sex
property.
species
(width 7)
- The player's
_species
property.
concount
(width 1)
- The number of active connections a player has on the Muck. If equal
to 1, the field is blanked for legibility. This field is recommended
for use with the leastidle culling option.
roomcount
(width -2)
- The number of players in the room that a player is in. If the
player is private, the field is blanked. Private and sleeping players in the same
room are not counted. This field is recommended for use with the
eachroom culling option.
roomowner
(width 16)
- The owner of a room the player is in. Private players have this
field blanked. This field is recommended for use with the
eachroom culling option.
with
(width 40)
- A space-separated list of non-private awake characters in the same
room as a player, in order from longest in the room to most recently
arrived. The list does not undergo any culling. This field is recommended for use with the
eachroom culling option.
rlname
(width 40)
- The player's out-of-character real name, as set by
pinfo
-ooc
.
email
(width 40)
- The player's out-of-character email address, as set by
pinfo
-ooc
.
BUGS
Sorting on multiple fields can be slow, especially if many of them must
be compared all the time before finding a difference between connections
(as would happen with hflag, nojump or
status where most players will have the same value). Don't
go overboard on sorting.
AUTHOR
Deborah Pickett (<Ariel> on FDCMuck).