serverbound_packets.clj

Bowmap · bowmap.git · Tickets

Branches > main > 18e16a1 > files / src / net / bowmap / server / protocol / serverbound_packets.clj

(ns net.bowmap.server.protocol.serverbound-packets
  (:require
   [net.bowmap.server.protocol.readers :refer :all]
   [net.bowmap.server.protocol.types :as t]
   [net.bowmap.server.protocol.phase :as phase]))

(def serverbound-packets
  "Map of connection phases to pairs of [serverbound-packet-id reader]"
  {::phase/handshaking
   [::handshaking [:protocol ->varint
                   :address ->string
                   :port ->short
                   ::phase/phase (->enum ->varint {1 ::phase/status 2 ::phase/login 3 ::phase/transfer})]]
   ::phase/status
   [::status-request []
    ::ping-request [::t/timestamp ->long]]
   ::phase/login
   [::login-start []
    ::encryption-response []
    ::login-plugin-response []
    ::login-acknowledged []
    ::cookie-response []]
   ::phase/config
   [::client-information []
    ::cookie-response []
    ::plugin-message []
    ::finish-config []
    ::keep-alive []
    ::pong []
    ::resource-pack-response []
    ::known-packs []
    ::custom-click-action []
    ::accept-code-of-conduct []]
   ::phase/play
   [::confirm-teleportation []
    ::attack []
    ::query-block-entity-tag []
    ::bundle-item-selected []
    ::change-difficulty []
    ::change-game-mode []
    ::acknowledge-message []
    ::chat-command []
    ::signed-chat-command []
    ::chat-message []
    ::player-session []
    ::chunk-batch-received []
    ::client-status []
    ::client-tick-end []
    ::client-information []
    ::command-suggestions-request []
    ::acknowledge-configuration []
    ::click-container-button []
    ::click-container []
    ::close-container []
    ::change-container-slot-state []
    ::cookie-response []
    ::plugin-message []
    ::debug-subscription-request []
    ::edit-book []
    ::query-entity-tag []
    ::interact []
    ::jigsaw-generate []
    ::keep-alive []
    ::lock-difficulty []
    ::set-player-position []
    ::set-player-position-and-rotation []
    ::set-player-rotation []
    ::set-player-movement-flags []
    ::move-vehicle []
    ::paddle-boat []
    ::pick-item-from-block []
    ::pick-item-from-entity []
    ::ping-request []
    ::place-recipe []
    ::player-abilities []
    ::player-action []
    ::player-command []
    ::player-input []
    ::player-loaded []
    ::pong []
    ::change-recipe-book-settings []
    ::set-seen-recipe []
    ::rename-item []
    ::resource-pack-response []
    ::seen-advancements []
    ::select-trade []
    ::set-beacon-effect []
    ::select-hotbar-slot []
    ::program-command-block []
    ::program-command-block-minecart []
    ::set-creative-mode-slot []
    ::set-game-rules []
    ::program-jigsaw-block []
    ::program-structure-block []
    ::set-test-block []
    ::update-sign []
    ::spectator-action []
    ::swing-arm []
    ::teleport-to-entity []
    ::test-instance-block-action []
    ::use-item-on []
    ::use-item []
    ::custom-click-action []]})