handle.clj

Bowmap · bowmap.git · Tickets

Branches > main > e990856 > files / src / net / bowmap / server / game / handle.clj

(ns net.bowmap.server.game.handle
  (:require
   [net.bowmap.server.protocol.clientbound-packets :as clientbound]
   [net.bowmap.server.protocol.component :as component]
   [net.bowmap.server.protocol.packet :as packet]
   [net.bowmap.server.protocol.schema :as p]
   [net.bowmap.server.protocol.serverbound-packets :as serverbound]))

(defmulti handle-packet
  "Handles a packet from a player, returning [player' [packets*]?]."
  (fn [player packet]
    (::packet/id packet)))

(defmethod handle-packet :default [player _] [player])

(defmethod handle-packet ::serverbound/status-request [player _]
  [player
   [{::packet/id ::clientbound/status-response
     ::p/version-name "26.2"
     ::p/protocol 776
     ::p/motd {::component/text "Bowmap!"
               ::component/color "#9f9f9f"}
     ::p/online-player-count 0
     ::p/max-player-count 1000}]])