b76d0fe

Branches > client-handling-rewrite > b76d0fe > files / src / net / bowmap / packet / server.clj

Always handle packets as a vector

Grahp, 2026-02-28

Commit: b76d0fea287ab4c6cacaa3878979bbf81cada0b7
Parent: 9180d22

2 changed files:

src/net/bowmap/core.clj modified (view file)

@@ -24,12 +24,8 @@         (let [pk (sp/decode-packet! buf (::state/state client))               {:keys [::state/state response]} (handle/handle-packet pk client)               client (cond-> client state (assoc ::state/state state))]-          (when response-            ;; TODO yeah :p-            (if (vector? response)-              (doseq [pk response]-                (s/put! stream (encode-packet pk (::state/state client))))-              (s/put! stream (encode-packet response (::state/state client)))))+          (doseq [pk response]+            (s/put! stream (encode-packet pk (::state/state client))))           (ByteBuf/.discardReadBytes buf)           (recur client))         client))))

src/net/bowmap/packet_handling.clj modified (view file)

@@ -17,28 +17,28 @@   {::state/state (:intent pk)})  (defmethod handle-packet ::sp/status-request [pk client]-  {:response {::pk/id ::cp/status-response-              :response {:version {:name "1.21.11"-                                   :protocol 774}-                         :players {:max 1000-                                   :online 0}-                         :description {:text "Bowmap!"}-                         :enforcesSecureChat false}}})+  {:response [{::pk/id ::cp/status-response+               :response {:version {:name "1.21.11"+                                    :protocol 774}+                          :players {:max 1000+                                    :online 0}+                          :description {:text "Bowmap!"}+                          :enforcesSecureChat false}}]})  (defmethod handle-packet ::sp/ping-request [pk client]-  {:response {::pk/id ::cp/pong-response-              :timestamp (:timestamp pk)}})+  {:response [{::pk/id ::cp/pong-response+               :timestamp (:timestamp pk)}]})  (defmethod handle-packet ::sp/login-start [pk client]-  {:response {::pk/id ::cp/login-success-              :uuid (:uuid pk)-              :username (:username pk)-              :properties []}})+  {:response [{::pk/id ::cp/login-success+               :uuid (:uuid pk)+               :username (:username pk)+               :properties []}]})  (defmethod handle-packet ::sp/login-acknowledged [pk client]   {::state/state ::state/config-   :response {::pk/id ::cp/known-packs-              :known-packs [{:namespace "minecraft" :id "core" :version "1.12.11"}]}})+   :response [{::pk/id ::cp/known-packs+               :known-packs [{:namespace "minecraft" :id "core" :version "1.12.11"}]}]})  (defmethod handle-packet ::sp/known-packs [pk client]   {:response (conj (vec registry/registry-packets)