anchor.diff:     (%channel :initarg :channel :accessor channel)
      (%message :initarg :message :accessor message))
     (:documentation "Event for when the bot sends a message."))
  +
  +(defgeneric respond (event message &rest format-args)
  +  (:documentation "Respond to an event origin with the given message.")
  +  (:method ((event user-event) message &rest format-args)
  +    (let ((message (apply #'format NIL message format-args)))
  +      (v:debug (name (server event)) "Replying to ~a: ~a" event message)
  +      (irc:privmsg (nick event) message :server (server event))))
  +  
  +  (:method ((event channel-event) message &rest format-args)
  +    (let ((message (apply #'format NIL message format-args)))
  +      (v:debug (name (server event)) "Replying to ~a: ~a" event message)
  +      (irc:privmsg (channel event) message :server (server event)))))
  +
  +(defun make-event (event-name server prefix arguments)
  +  "Makes an event instance from the given parameters."
  +  (let ((class (gethash event-name *event-map*)))
  +    (if class
  +        (progn
  +          (v:debug (intern (format NIL "~a.EVENT.~a" (name server) event-name) :KEYWORD) "~a ~{~a~^ ~}" prefix arguments)
  +          (make-instance class :server server :prefix prefix :arguments arguments))
  +        (v:warn (name server) "Inexistent event: ~a ~a ~a" event-name prefix arguments))))
  
positive.code:     (unless (char= (aref channel 0) #\#)
        (setf channel (nick event)))))
  
  (defgeneric respond (event message &rest format-args)
    (:documentation "Respond to an event origin with the given message."))
  
  (defmethod respond ((event user-event) message &rest format-args)
    (let ((message (apply #'format NIL message format-args)))
      (v:debug (name (server event)) "Replying to ~a: ~a" event message)
      (irc:privmsg (nick event) message :server (server event))))
  
  (defmethod respond ((event channel-event) message &rest format-args)
    (let ((message (apply #'format NIL message format-args)))
      (v:debug (name (server event)) "Replying to ~a: ~a" event message)
      (irc:privmsg (channel event) message :server (server event))))
  
  (defclass command-event (channel-event)
    ((%command :initarg :command :accessor command)
     (%cmd-args :initarg :cmd-args :accessor cmd-args))
  
negative.code: 
  (in-package :org.tymoonnext.colleen)
  
  (defclass event ()
    ((%server :initarg :server :reader server)
     (%prefix :initarg :prefix :reader prefix)
     (%arguments :initarg :arguments :reader arguments))
    (:documentation "Base event class."))
  
  (defmacro arguments-bind ((&rest vars) expression &body body)
  