+(defmethod handle-exit ((m init-mode) message)
+ (declare (ignorable message))
+ (quit (connection m)))
+
+(defmethod handle-exit ((m play-mode) message)
+ (declare (ignorable message))
+ (quit (connection m)))
+
+(defmethod handle-data ((m play-mode) message)
+ (let* ((c (connection m))
+ (log (logging-stream c)))
+ (format log "handle-data ~a~%" message)
+ (empire-web:data (session c) message)))
+
+(defmethod handle-simple-message ((m play-mode) message)
+ (let* ((c (connection m))
+ (log (logging-stream c)))
+ (format log "handle-simple-message ~a~%" message)
+ (empire-web:data (session c) message)))
+
+(defmethod handle-prompt ((m play-mode) message)
+ (let* ((c (connection m))
+ (log (logging-stream c)))
+ (with-input-from-string (s message)
+ (let* ((minutes (read s)) ;;FIXME DANGEROUS
+ (btus (read s)))
+ (format log "[~a:~a]: ~%" minutes btus)
+ (empire-web:prompt (session c) minutes btus)))))
+
+(defparameter *line-type-dispatch*
+ (list `(,+C_DATA+ . handle-data)
+ `(,+C_INIT+ . handle-init)
+ `(,+C_EXIT+ . handle-exit)
+ `(,+C_FLUSH+ . handle-simple-message)
+ `(,+C_BADCMD+ . handle-simple-message)
+ `(,+C_FLASH+ . handle-simple-message)
+ `(,+C_PROMPT+ . handle-prompt)))