Make prompt stand out some more
[eow] / empire.lisp
index 358d0010f5d8c5c1d1d715a60ebf89afd2c46ecb..5b58812bd257662c8afed7eb4199c597771e1070 100644 (file)
@@ -99,7 +99,7 @@
        (setf socket sock
              stream s
              connection-handler handler)))
-  (empire-log:info "empire:reconnect: ~a" c))
+  (empire-log:info "~a: reconnect" c))
 
 (defparameter +C_CMDOK+ "0")
 (defparameter +C_DATA+ "1")
 (defmethod set-new-mode ((m base-mode) new-mode)
   (let* ((c (connection m))
         (mode (make-mode c new-mode)))
+    (empire-log:info "~a: set-new-mode ~a -> ~a" c (connection-mode c) new-mode)
     (setf (connection-mode c) mode)))
 
 (defgeneric handle-data (base-mode message))
                  (reconnect c))))))
     message))
 
+(defparameter +special-command-char+ #\;)
+
+(defun special-command-p (line)
+  (char= +special-command-char+ (aref line 0)))
+
+(defmethod special-xup ((c connection))
+  t)
+
+(defmethod special-command ((c connection) line)
+  (cond ((string= line "xup") (special-xup c))
+       (t (empire-web:data (session c) "Unknown special command"))))
+
+(defmethod command ((c connection) line)
+  (cond ((special-command-p line) (special-command c (subseq line 1)))
+       (t (send-message c line))))
+
 (defgeneric play (connection))
 (defmethod play ((c connection))
   (with-slots (user password) c