7568602
Branches > facts > 7568602 > files / src / net / bowmap / protocol / packet
Rename responses to effects
Commit: 75686029e80b4bf9540b58a0c064ba4b61e1e988
Parent: dc46b55
5 changed files:
src/net/bowmap/protocol/server.clj view file
@@ -7,7 +7,7 @@ [net.bowmap.protocol.packet.serverbound :refer [decode-packet!]] [net.bowmap.protocol.state :as state] [net.bowmap.server.logic :as logic]- [net.bowmap.stormbow.responses :refer [execute-responses!]]+ [net.bowmap.stormbow.effect-execution :refer [execute-effects!]] [net.bowmap.transport.connection :as connection] [net.bowmap.transport.server :as mc])) @@ -27,7 +27,7 @@ (doseq [pk packets] (put! clientbound-packets pk)) (doseq [fact facts]- (execute-responses! (map #(assoc % ::client/client client) (logic/handle-fact fact))))+ (execute-effects! (map #(assoc % ::client/client client) (logic/handle-fact fact)))) (recur client)))) clientbound-packets ([packet] (if (some? packet)src/net/bowmap/server/logic.clj view file
@@ -3,14 +3,14 @@ [net.bowmap.server.player :as player] [net.bowmap.server.server :as server] [net.bowmap.stormbow.fact :as fact]- [net.bowmap.stormbow.response :as response]))+ [net.bowmap.stormbow.effect :as e])) (defmulti handler (fn [fact] (::fact/id fact))) (defmethod handler ::fact/server-list-requested [_]- [{::response/id ::response/send-server-list+ [{::e/id ::e/send-server-list :server-list-response {:version {:name "26.2" :protocol 776} :players {:online (count @server/players)@@ -30,7 +30,7 @@ (commute server/players dissoc uuid) []) -; Returns a seq of responses+; Returns a seq of effects ; And document that this is not called synchronously (hence the transactions as well) (defn handle-fact [fact] ; TODO I think this is fine because it has to be run within a transaction anyway?src/net/bowmap/stormbow/effect.clj view file
@@ -0,0 +1,6 @@+(ns net.bowmap.stormbow.effect+ (:require+ [clojure.spec.alpha :as s]))++(s/def ::effect (s/keys :opt [::id]))+(s/def ::id qualified-keyword?)src/net/bowmap/stormbow/effect_execution.clj src/net/bowmap/stormbow/responses.clj view file
@@ -1,21 +1,21 @@-(ns net.bowmap.stormbow.responses+(ns net.bowmap.stormbow.effect-execution (:require [clojure.core.async :refer [put!]] [net.bowmap.protocol.client :as client] [net.bowmap.protocol.packet :as pk] [net.bowmap.protocol.packet.clientbound :as clientbound]- [net.bowmap.stormbow.response :as response]))+ [net.bowmap.stormbow.effect :as effect])) -(defmulti execute-response!- (fn [response]- (::response/id response)))+(defmulti execute-effect!+ (fn [effect]+ (::effect/id effect))) -(defmethod execute-response! ::response/send-server-list [response]- (let [{:keys! [::client/client server-list-response]} response+(defmethod execute-effect! ::effect/send-server-list [effect]+ (let [{:keys! [::client/client server-list-response]} effect {::client/keys! [clientbound-packets]} client packet {::pk/id ::clientbound/status-response :response server-list-response}] (put! clientbound-packets packet))) -(defn execute-responses! [responses]- (run! execute-response! responses))+(defn execute-effects! [effects]+ (run! execute-effect! effects))src/net/bowmap/stormbow/response.clj view file
@@ -1,8 +0,0 @@-(ns net.bowmap.stormbow.response- (:require- [clojure.spec.alpha :as s]))--; TODO could call an effect, I do like that name--(s/def ::response (s/keys :opt [::id]))-(s/def ::id qualified-keyword?)