             (= packet-type :keepalive) (read-packet-keepalive conn)
             (= packet-type :handshake) (read-packet-handshake conn)
             (= packet-type :login) (read-packet-login conn)
+            (= packet-type :chat) (read-packet-chat conn)
+            (= packet-type :timeupdate) (read-packet-timeupdate conn)
             :else (str "UNKNOWN PACKET TYPE: " packet-id)
             ))
         (println "\n\n\n")))



; Reading Data ---------------------------------------------------------------------
(defn red-byte [conn]
   (let [b (.readByte (:in @conn))]
     b))

(defn red-int [conn]
   (let [i (.readInt (:in @conn))]
     i))

(defn red-long [conn]
   (let [i (.readLong (:in @conn))]
     i))

(defn red-string16 [conn]
  (let [str-len (.readShort (:in @conn))
        s (apply str (repeatedly str-len #(.readChar (:in @conn))))]
    s))

    (write-packet conn :handshake {:username "timmy"})

    ; Get handshake
    (let [packet-id (-read-byte conn)]
      (read-packet conn packet-id))

    ; Send login
    (write-packet conn :login {:version 13 :username "timmy"})

    ; Get login
    (let [packet-id (-read-byte conn)]
      (read-packet conn packet-id)))

(defn conn-handler [conn]
