3d55f36
Branches > main > 3d55f36 > files
Send known packs with core datapack
Commit: 3d55f36218c5137c8d90ab4f17033311c708f60c
Parent: 32cb01c
5 changed files:
src/net/bowmap/server/game/handle.clj view file
@@ -7,6 +7,7 @@ [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.registry :as registry] [net.bowmap.server.protocol.schema :as p] [net.bowmap.server.protocol.serverbound-packets :as serverbound])) @@ -42,3 +43,7 @@ ::p/username username ::p/game-profile-properties []} ::p/session-uuid connection-uuid}])++(defmethod handle-packet ::serverbound/login-acknowledged [_ _]+ [{::packet/id ::clientbound/known-packs+ ::p/known-packs [registry/core-data-pack]}])src/net/bowmap/server/protocol/clientbound_packets.clj view file
@@ -32,7 +32,8 @@ ::transfer nil ::feature-flags nil ::update-tags nil- ::known-packs nil+ ::known-packs [::p/known-packs (list> [::p/identifier split-identifier>+ ::p/pack-version string>])] ::custom-report-details nil ::server-links nil ::clear-dialog nilsrc/net/bowmap/server/protocol/registry.clj view file
@@ -0,0 +1,8 @@+(ns net.bowmap.server.protocol.registry+ (:require+ [net.bowmap.server.protocol.schema :as p]))++(def core-data-pack+ "The minecraft:core datapack, known by the vanilla client."+ {::p/identifier :minecraft/core+ ::p/pack-version "26.2"})src/net/bowmap/server/protocol/serverbound_packets.clj view file
@@ -19,7 +19,7 @@ ::p/uuid uuid<] ::encryption-response nil ::login-plugin-response nil- ::login-acknowledged nil+ ::login-acknowledged [] ::cookie-response nil] ::phase/config [::client-information nilsrc/net/bowmap/server/protocol/writers.clj view file
@@ -6,7 +6,8 @@ [clojure.data.json :as json] [clojure.spec.alpha :as s] [net.bowmap.server.protocol.buffer :as buffer]- [net.bowmap.server.protocol.schema :as p])+ [net.bowmap.server.protocol.schema :as p]+ [net.bowmap.server.protocol.types :as types]) (:import [java.nio.charset StandardCharsets] [java.util UUID]))@@ -129,6 +130,14 @@ ([buf s] (bytes> buf (String/.getBytes s StandardCharsets/UTF_8)))) +(defn split-identifier>+ "Writes an identifier as 2 strings: the namespace and the name."+ [buf identifier]+ (let [{:keys! [namespace name]} (types/identifier-segments identifier)]+ (-> buf+ (string> namespace)+ (string> name))))+ (def json> "Turns 'x' into JSON and writes it as a string." (apply> json/write-str string>))