Go to the first, previous, next, last section, table of contents.


Class User

Class User instances are intended to represent one real-life human each, in general, and to be the fundamental unit of accounting in the system. Muq tracks the number of bytes used on a per-User basis, imposes quotas of various sorts on a per-User basis, and so forth.

Class User is not intended to be the unit of "presence" in a virtual world, because Muq is not intended to be that tightly specialized to mudding, because a single user may reasonably wish to have multiple points of presence in the virtual world, because it may be desirable to have points of presence not directly controlled by any user --- robots and such -- and because in general it seems good separation of concerns. Thus, virtual presence is handled by separate avatar objects.

Class User adds the following properties to those of Class Plain:

$S.breakDisable:   Value of @$s.breakDisable at login.
$S.breakEnable:    Value of @$s.breakEnable at login.
$S.breakOnSignal: Value of @$s.breakOnSignal at login.
$S.byte-quota:      Max bytes of db the user may have.
$S.bytes-owned:     Bytes of db user currently uses.
$S.dbrefConvertErrors:	Count maintained by ints3ToDbref.
$S.debugger:        Default @$s.debugger at login.
$S.defaultPackage: Value for "current package" at login.
$S.doing:          Text field for human @doing display.
$S.doBreak:        Default @$s.break at login.
$S.doNotDisturb:   t/nil field for human @who display.
$S.doSignal:       Default @$s.doSignal at login.
$S.email:          "me@my.com" or such.
$S.group            Currently undefined, intended for shared ownership.
$S.haltQueue:      Job queue for halted jobs.
$S.homepage:       "http://my.com/me" or such.
$S.lib:             List of known packages for user.
$S.loginHints:     NIL, else object with string-valued hint properties.
$S.objectQuota:    Max number of objects user may possess.
$S.objectsOwned:   Current number of objects owned.
$S.pauseQueue:     Job queue for paused jobs.
$S.pgpKeyprint:    PGP Key fingerprint.
$S.psQueue:        Job queue for all active jobs owned by user.
$S.runQueue0:     Job queue for running high-priority jobs.
$S.runQueue1:     Job queue for running normal-priority jobs.
$S.runQueue2:     Job queue for running low-priority jobs.
$S.shell:	    Default shell at login.
$S.telnetDaemon:   Default telnet handler at login, usually telnet:start.
$S.textEditor:	    User's preferred text editor.
$S.timeSlice:	    Incremented monotonically by scheduler.
$A.encryptedPassphrase As in unix: One-way encrypted passphrase as a string.
.www		    Support for user homepage on the WWWeb.
$S.gagged           NIL, else object listing Guests/Users gagged by this user.
$S.rank             Integer rank used for conflict resolution.
$S.nickName         Max 16 chars of text nickname.
$S.longName         Diffie_Hellman public key.	
$S.trueName         Diffie_Hellman private key.	
$S.hashName         61-bit (i.e., positive fixnum) hash of longName.
$S.sharedSecrets    Shared Diffie_Hellman secrets indexed by hashName.
$S.lastLongName     Last value of longName.
$S.lastTrueName     Last value of trueName.
$S.lastHashName     Last value of hashName.
$S.lastSharedSecrets Last value of sharedSecrets.
$S.originalNickName nickName value on home server.
$S.dateOfLastNameChange Last time longName/trueName/hashname were rotated.
$S.packetPreprocessor    Future support for compression and/or encryption.
$S.packetPostprocessor   Future support for decompression and/or decryption.
$S.firstUsedByMuqnet     Future administration support.
$S.lastUsedByMuqnet      Future administration support.
$S.timesUsedByMuqnet     Future administration support. 
$S.ip0              These give last known IP address of this
$S.ip1              user.  Mainly useful for guest (remote) users,
$S.ip2              but for simplicity we
$S.ip3              use identical records for
$S.port             local and guest users.
$S.ioStream         Last known I/O stream on which user was communicating.
$S.userServer0  Muqserver which should known user's current location.
$S.userServer1  Muqserver which should known user's current location.
$S.userServer2  Muqserver which should known user's current location.
$S.userServer3  Muqserver which should known user's current location.
$S.userServer4  Muqserver which should known user's current location.
$S.userVersion  Incremented each time location changes.
$S.userServer1NeedsUpdating NIL or date of last update attempt.
$S.userServer2NeedsUpdating NIL or date of last update attempt.
$S.userServer3NeedsUpdating NIL or date of last update attempt.
$S.userServer4NeedsUpdating NIL or date of last update attempt.
$S.hasUnknownUserServer Non-NIL iff one of userServer[0-4] not in .folkBy.hashName.
$S.dateAtWhichWeLastQueriedLocationServers  To help avoid thrashing them.


Go to the first, previous, next, last section, table of contents.