logic.clj
Branches > main > 73c8e36 > files / src / net / bowmap / server / logic.clj
(ns net.bowmap.server.logic
(:require
[net.bowmap.network.client :as client]
[net.bowmap.server.server :as server]
[net.bowmap.stormbow.fact :as fact]
[net.bowmap.stormbow.response :as response]))
(defmulti handler
(fn [fact]
(::fact/id fact)))
; TODO see the comment on responses.clj
; But this is also being called within a transaction and assuming that so I'm not sure
(defmethod handler ::fact/server-list-requested [fact]
(let [{:keys! [::client/client]} fact]
[{::response/id ::response/send-server-list
::client/client client
:server-list-response {:version {:name "26.2"
:protocol 776}
:players {:online (count @server/players)
:max server/max-player-count}
; Is this a text component? Could make that interface
:description {:text "Bowmap!"}
:enforcesSecureChat false}}]))
; Returns a seq of responses
(defn handle-fact [fact]
(handler fact))