c9b29ed
Branches > refactor/use-spec-1 > c9b29ed > files / src / net / bowmap / packet / client.clj
yeah
Commit: c9b29ede695f75db939ca58675d9850b6c6db4e5
Parent: bef72d9
2 changed files:
src/net/bowmap/packet/client.clj view file
@@ -220,7 +220,30 @@ :entries [:list [:table [:id :identifier :data [:optional :nbt]]]]] ::keep-alive [:id :long]- ::finish-config []}))+ ::finish-config []+ ::login [:entity-id :int+ :hardcore? :boolean+ :dimension-names [:list :identifier]+ :max-players :varint+ :view-distance :varint+ :simulation-distance :varint+ :reduced-debug-info? :boolean+ :enable-respawn-screen? :boolean+ :do-limited-crafting? :boolean+ :dimension-type-id :varint+ :dimension-name :identifier+ :hashed-seed :long+ ;; TODO :net.bowmap.gamemode ig?+ :gamemode [:enum :ubyte {0 :survival 1 :creative 2 :adventure 3 :spectator}]+ :previous-gamemode [:enum :byte {-1 :unknown 0 :survival 1 :creative 2 :adventure 3 :spectator}]+ :debug-world? :boolean+ :superflat-world? :boolean+ :has-death-location? :boolean+ :death-dimension-name [:context-optional :identifier]+ :death-location [:context-optional :position]+ :portal-cooldown :varint+ :sea-level :varint+ :enforce-secure-chat? :boolean]})) (defn numeric-id [state id] (packet-ids {::state/state state ::pk/id id}))@@ -232,8 +255,8 @@ (defn- encode-packet* [pk state] {:pre [(pk/packet? pk)]}- (let [id (assert! (numeric-id state (::pk/id pk)) {:pk pk :state state})- encoder (assert! (packet-encoder pk))+ (let [id (assert! (numeric-id state (::pk/id pk)) {:pk pk :state state} "No such packet with that id.")+ encoder (assert! (packet-encoder pk) {:pk pk :state state :id id} "No such encoder for that packet!") data-buf (-> (Unpooled/buffer) (write/write-varint! id) (encoder pk))]src/net/bowmap/packet/write.clj view file
@@ -176,6 +176,8 @@ ;; End NBT lol +(defn write-enum! [buf codec m x]+ (codec buf (m x))) (def writers "Map of type names to functions.@@ -191,9 +193,15 @@ :json write-json! :uuid write-uuid! :identifier write-string!+ :boolean write-boolean! :nbt write-nbt! + :enum (fn [t m]+ (fn [buf x] (write-enum! buf (writer t) m x)))++ :position (fn [t pos] (raise "YOU NEVER ACTUALLY IMPLEMENTED THE POSITION TYPE REMEMBER?"))+ ;; TODO These are kinda named backwards... :context-optional (fn [t] (let [codec (writer t)]