From 5086f9bfc8c018044bf81417930bd6f9d66c1ed0 Mon Sep 17 00:00:00 2001 From: ethaniccc Date: Fri, 29 Aug 2025 16:40:08 -0400 Subject: [PATCH] downgrade blob hashes in ClientCacheMissResponse and SubChunk packets --- go.mod | 1 + go.sum | 2 ++ legacyver/block_translator.go | 4 ++++ 3 files changed, 7 insertions(+) diff --git a/go.mod b/go.mod index aa581c3..750f5b4 100644 --- a/go.mod +++ b/go.mod @@ -21,6 +21,7 @@ require ( require ( github.com/brentp/intintmap v0.0.0-20190211203843-30dc0ade9af9 // indirect + github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/df-mc/goleveldb v1.1.9 // indirect github.com/go-jose/go-jose/v4 v4.1.0 // indirect github.com/golang/snappy v1.0.0 // indirect diff --git a/go.sum b/go.sum index 3d74e36..ef7206b 100644 --- a/go.sum +++ b/go.sum @@ -1,5 +1,7 @@ github.com/brentp/intintmap v0.0.0-20190211203843-30dc0ade9af9 h1:/G0ghZwrhou0Wq21qc1vXXMm/t/aKWkALWwITptKbE0= github.com/brentp/intintmap v0.0.0-20190211203843-30dc0ade9af9/go.mod h1:TOk10ahXejq9wkEaym3KPRNeuR/h5Jx+s8QRWIa2oTM= +github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= +github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/cooldogedev/gophertunnel v0.0.0-20250806215416-758d5047d822 h1:cW4FrZUxjdJBoSD3Fpw7Z86LQJHtTK7o9lIgGXuaZ3Q= github.com/cooldogedev/gophertunnel v0.0.0-20250806215416-758d5047d822/go.mod h1:lmRarAmn25V/+QeiUbUDXeA26bEaNlX1wGEM/rj39ew= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= diff --git a/legacyver/block_translator.go b/legacyver/block_translator.go index d983c67..1fc3efe 100644 --- a/legacyver/block_translator.go +++ b/legacyver/block_translator.go @@ -3,8 +3,10 @@ package legacyver import ( "bytes" _ "embed" + "github.com/akmalfairuz/legacy-version/internal/chunk" "github.com/akmalfairuz/legacy-version/mapping" + "github.com/cespare/xxhash/v2" "github.com/df-mc/dragonfly/server/block/cube" "github.com/df-mc/dragonfly/server/world" "github.com/sandertv/gophertunnel/minecraft" @@ -135,6 +137,7 @@ func (t *DefaultBlockTranslator) DowngradeBlockPackets(pks []packet.Packet, conn } entry.RawPayload = append(writeBuf.Bytes(), buf.Bytes()...) + entry.BlobHash = xxhash.Sum64(entry.RawPayload) pk.SubChunkEntries[i] = entry } } @@ -155,6 +158,7 @@ func (t *DefaultBlockTranslator) DowngradeBlockPackets(pks []packet.Packet, conn t.DowngradeSubChunk(subChunk) blob.Payload = append(chunk.EncodeSubChunk(subChunk, chunk.NetworkEncoding, t.pe, chunk.SubChunkVersion9, r, int(ind)), buf.Bytes()...) + blob.Hash = xxhash.Sum64(blob.Payload) pk.Blobs[i] = blob } case *packet.UpdateSubChunkBlocks: