08c3a6c
Branches > main > 08c3a6c > files / src / net
Add serverbound and clientbound packets
Commit: 08c3a6c6d90ca5522a1d827d18363ea6202e3893
Parent: 5b6ff3c
3 changed files:
src/net/bowmap/network/clientbound_packets.clj view file
@@ -0,0 +1,181 @@+(ns net.bowmap.network.clientbound-packets+ (:require+ [net.bowmap.network.phase :as phase]))++(defn ? [_] (throw (Exception. "Error while encoding packet: no packet definition for that packet id")))++(def clientbound-packets+ "Map of connection phases to pairs of [clientbound-packet-id writer]"+ {::phase/status+ [::status-response ?+ ::pong-response ?]+ ::phase/login+ [::disconnect ?+ ::encryption-request ?+ ::login-success ?+ ::set-compression ?+ ::login-plugin-request ?+ ::cookie-request ?]+ ::phase/config+ [::cookie-request ?+ ::plugin-message ?+ ::disconnect ?+ ::finish-config ?+ ::keep-alive ?+ ::ping ?+ ::reset-chat ?+ ::registry-data ?+ ::remove-resource-pack ?+ ::add-resource-pack ?+ ::store-cookie ?+ ::transfer ?+ ::feature-flags ?+ ::update-tags ?+ ::known-packs ?+ ::custom-report-details ?+ ::server-links ?+ ::clear-dialog ?+ ::show-dialog ?+ ::code-of-conduct ?]+ ::phase/play+ [::bundle-delimiter ?+ ::spawn-entity ?+ ::entity-animation ?+ ::award-statistics ?+ ::acknowledge-block-change ?+ ::set-block-destroy-stage ?+ ::block-entity-data ?+ ::block-action ?+ ::block-update ?+ ::boss-bar ?+ ::change-difficulty ?+ ::chunk-batch-finished ?+ ::chunk-batch-start ?+ ::chunk-biomes ?+ ::clear-titles ?+ ::command-suggestions-response ?+ ::commands ?+ ::close-container ?+ ::set-container-content ?+ ::set-container-property ?+ ::set-container-slot ?+ ::cookie-request ?+ ::set-cooldown ?+ ::chat-suggestions ?+ ::plugin-message ?+ ::damage-event ?+ ::debug-block-value ?+ ::debug-chunk-value ?+ ::debug-entity-value ?+ ::debug-event ?+ ::debug-sample ?+ ::delete-message ?+ ::disconnect ?+ ::disguised-chat-message ?+ ::entity-event ?+ ::teleport-entity ?+ ::explosion ?+ ::unload-chunk ?+ ::game-event ?+ ::game-rule-values ?+ ::game-test-highlight-position ?+ ::open-horse-screen ?+ ::hurt-animation ?+ ::initialize-world-border ?+ ::keep-alive ?+ ::chunk-data-and-update-light ?+ ::world-event ?+ ::particle ?+ ::update-light ?+ ::login ?+ ::low-disk-space-warning ?+ ::map-data ?+ ::merchant-offers ?+ ::update-entity-position ?+ ::update-entity-position-and-rotation ?+ ::move-minecart-along-track ?+ ::update-entity-rotation ?+ ::move-vehicle ?+ ::open-book ?src/net/bowmap/network/phase.clj view file
@@ -0,0 +1,5 @@+(ns net.bowmap.network.phase+ "The phase of connection, also known as a connection state or protocol state in Minecraft."+ (:require [clojure.spec.alpha :as s]))++(s/def ::phase #{::handshaking ::status ::login ::config ::play})src/net/bowmap/network/serverbound_packets.clj view file
@@ -0,0 +1,98 @@+(ns net.bowmap.network.serverbound-packets+ (:require+ [net.bowmap.network.phase :as phase]))++(def serverbound-packets+ "Map of connection phases to pairs of [serverbound-packet-id reader]"+ {::phase/handshaking+ [::handshaking []]+ ::phase/status+ [::status-request []+ ::ping-request []]+ ::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 []]})