# HG changeset patch # User Steve Losh # Date 1308705512 14400 # Node ID ff65b7a331b22b431d1d3ece9c2a32087bdd68c2 # Parent 2ace53af7b31d9df589f5e920f8435c615c3fc71 Moar. diff -r 2ace53af7b31 -r ff65b7a331b2 src/clojurecraft/core.clj --- a/src/clojurecraft/core.clj Tue Jun 21 21:12:36 2011 -0400 +++ b/src/clojurecraft/core.clj Tue Jun 21 21:18:32 2011 -0400 @@ -16,6 +16,8 @@ 0x07 :useentity 0x08 :updatehealth 0x09 :respawn + 0x0A :player + 0x0B :playerposition }) (def packet-ids (apply assoc {} (mapcat reverse packet-types))) @@ -55,6 +57,11 @@ (doto (:out @conn) (.writeLong (int i)))) +(defn -write-double [conn i] + (println (str "-> DOUBLE: " i)) + (doto (:out @conn) + (.writeDouble (int i)))) + (defn -write-string16 [conn s] (-write-short conn (count s)) (println (str "-> STRING: " s)) @@ -94,6 +101,21 @@ (-write-bool conn world)) +(defn write-packet-player [conn {onground :onground}] + (-write-byte conn (:player packet-ids)) + + (-write-bool conn onground)) + +(defn write-packet-playerposition [conn {x :x y :y stance :stance z :z onground :onground}] + (-write-byte conn (:playerposition packet-ids)) + + (-write-double conn x) + (-write-double conn y) + (-write-double conn stance) + (-write-double conn z) + (-write-bool conn onground) + ) + ; Writing Wrappers ----------------------------------------------------------------- (defn flushc [conn] @@ -101,11 +123,13 @@ (defn write-packet [conn packet-type payload] (cond - (= packet-type :keepalive) (write-packet-handshake conn payload) - (= packet-type :handshake) (write-packet-handshake conn payload) - (= packet-type :login) (write-packet-login conn payload) - (= packet-type :chat) (write-packet-chat conn payload) - (= packet-type :respawn) (write-packet-respawn conn payload) + (= packet-type :keepalive) (write-packet-handshake conn payload) + (= packet-type :handshake) (write-packet-handshake conn payload) + (= packet-type :login) (write-packet-login conn payload) + (= packet-type :chat) (write-packet-chat conn payload) + (= packet-type :respawn) (write-packet-respawn conn payload) + (= packet-type :player) (write-packet-player conn payload) + (= packet-type :playerposition) (write-packet-playerposition conn payload) ) (flushc conn))