9
name
"generic player"
/
password
"no-login"
/
destroy
(method ()
      (if (write-ok? caller)
	(begin (#0:remove-player) (pass))
	(raise E_PERM "cannot destroy this object")))
/
set-password
(method (newpass)
	(if (write-ok? caller)
	    (set password (crypt newpass))
	    (raise E_PERM "cannot destroy this object")))
/
password-cmd
(method (cmdline)
  (if (not (= player this))
     (player:tell "Only an player can change its own password.\n")
     (if (not (= (crypt (index 3 cmdline)) password))
	(tell "Syntax:  @password <oldpassword> <newpassword>\n")
        (begin (set-password (index 4 cmdline))
               (tell "Password changed\n")))))
/
quit
(method () (begin (disconnect)
	          (#0:remove-connection)
	          (location:announce (+ name " has disconnected.\n"))
		  (leave-edit)))
/
accept-connection
(method (from passwd)
	(and (= (crypt passwd) password) (not (= this from))))
/
describe-syntax
(method (ignored)
  (if (= player this)
     (tell "Syntax: @describe <object> as <description>\n")))
/
describe-cmd
(method (inline)
    (if (= PLAYER THIS)  
      (if (set DESCRIBE-ONTO (STD-MATCH (index 3 INLINE)))
        (begin
          (set DESCRIPTION-TXT (index 5 INLINE))
          (if (= DESCRIPTION-TXT EDITOR-ALIAS)  
            (begin
              (TELL-line ">> Editing description-txt")  
              (ENTER-EDIT
                 'DESCRIPTION-TXT
                 'DESCRIBE-METHOD
                 (explode "\n" (DESCRIBE-ONTO:GET-DESCRIPTION))))
            (DESCRIBE-METHOD (quote DESCRIPTION-TXT))))
        (TELL "I don't see that here\n"))
      (DESCRIBE-SYNTAX INLINE)))
/
describe-method
(method (SYM)
  (if (= player this)
    (ignore E_PERM 
      (if (DESCRIBE-ONTO:SET-DESCRIPTION (eval SYM))
        (TELL "Description changed\n")  
        (TELL "You cannot change that object\n")))))
/
paste-cmd
(method (inline)
  (if (= player this)
    (begin
      (tell-line ">> Editing a message to paste.")
      (enter-edit 'paste-txt
                  'paste-method
                  '()))))
/
paste-method
(method (sym)
  (if (= player this)
    (begin
      (location:announce (+ "-------- " name " pastes: ---------------\n"))
      (location:announce (+ (eval sym) "\n"))
      (location:announce "------------------------------------------\n"))))
/
/
'("@pass" (or "word" " ") WORD WORD)
password-cmd
'("@setpass" (or "word" " ") WORD WORD)
password-cmd
'("pass" (or "word" " ") WORD WORD)
password-cmd
'("@desc" (or "ribe" ""))
describe-syntax
'("@paste")
paste-cmd
'("@desc" (or "ribe" " ") (or (before "=") (before " as ") WORD) (or "=" "as" "") REST)
describe-cmd
/+++++++++ end of object #10 ... no lines after this ++++++++++