Add DowngradeLevelChunkPacket
This commit is contained in:
11
go.mod
11
go.mod
@@ -1,11 +1,9 @@
|
|||||||
module github.com/akmalfairuz/legacy-version
|
module github.com/akmalfairuz/legacy-version
|
||||||
|
|
||||||
go 1.24
|
go 1.24.0
|
||||||
|
|
||||||
toolchain go1.24.0
|
|
||||||
|
|
||||||
require (
|
require (
|
||||||
github.com/df-mc/dragonfly v0.10.5
|
github.com/df-mc/dragonfly v0.10.6-0.20250817203556-60bcf6b7432b
|
||||||
github.com/df-mc/worldupgrader v1.0.19
|
github.com/df-mc/worldupgrader v1.0.19
|
||||||
github.com/go-gl/mathgl v1.2.0
|
github.com/go-gl/mathgl v1.2.0
|
||||||
github.com/google/uuid v1.6.0
|
github.com/google/uuid v1.6.0
|
||||||
@@ -14,13 +12,14 @@ require (
|
|||||||
github.com/samber/lo v1.49.1
|
github.com/samber/lo v1.49.1
|
||||||
github.com/sandertv/gophertunnel v1.49.0
|
github.com/sandertv/gophertunnel v1.49.0
|
||||||
github.com/segmentio/fasthash v1.0.3
|
github.com/segmentio/fasthash v1.0.3
|
||||||
golang.org/x/exp v0.0.0-20250718183923-645b1fa84792
|
golang.org/x/exp v0.0.0-20250819193227-8b4c13bb791b
|
||||||
golang.org/x/image v0.25.0
|
golang.org/x/image v0.25.0
|
||||||
golang.org/x/oauth2 v0.30.0
|
golang.org/x/oauth2 v0.30.0
|
||||||
)
|
)
|
||||||
|
|
||||||
require (
|
require (
|
||||||
github.com/brentp/intintmap v0.0.0-20190211203843-30dc0ade9af9 // indirect
|
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/df-mc/goleveldb v1.1.9 // indirect
|
||||||
github.com/go-jose/go-jose/v4 v4.1.2 // indirect
|
github.com/go-jose/go-jose/v4 v4.1.2 // indirect
|
||||||
github.com/golang/snappy v1.0.0 // indirect
|
github.com/golang/snappy v1.0.0 // indirect
|
||||||
@@ -28,7 +27,7 @@ require (
|
|||||||
github.com/muhammadmuzzammil1998/jsonc v1.0.0 // indirect
|
github.com/muhammadmuzzammil1998/jsonc v1.0.0 // indirect
|
||||||
github.com/sandertv/go-raknet v1.14.3-0.20250305181847-6af3e95113d6 // indirect
|
github.com/sandertv/go-raknet v1.14.3-0.20250305181847-6af3e95113d6 // indirect
|
||||||
golang.org/x/crypto v0.41.0 // indirect
|
golang.org/x/crypto v0.41.0 // indirect
|
||||||
golang.org/x/mod v0.26.0 // indirect
|
golang.org/x/mod v0.27.0 // indirect
|
||||||
golang.org/x/net v0.43.0 // indirect
|
golang.org/x/net v0.43.0 // indirect
|
||||||
golang.org/x/text v0.28.0 // indirect
|
golang.org/x/text v0.28.0 // indirect
|
||||||
)
|
)
|
||||||
|
|||||||
6
go.sum
6
go.sum
@@ -14,6 +14,8 @@ github.com/df-mc/dragonfly v0.10.3 h1:t0mxRvjjgG8uBevqqzejJVL2M6obi6RYePMTPDlXo7
|
|||||||
github.com/df-mc/dragonfly v0.10.3/go.mod h1:pO7nuyRKV50ZVZzB7AhTMU/0p4cvk1/yCu43vFqAzcI=
|
github.com/df-mc/dragonfly v0.10.3/go.mod h1:pO7nuyRKV50ZVZzB7AhTMU/0p4cvk1/yCu43vFqAzcI=
|
||||||
github.com/df-mc/dragonfly v0.10.5 h1:vn3Mwh7vWPDtIdss4QEOP8vSZGHRAjyLvrOEM5mEUI0=
|
github.com/df-mc/dragonfly v0.10.5 h1:vn3Mwh7vWPDtIdss4QEOP8vSZGHRAjyLvrOEM5mEUI0=
|
||||||
github.com/df-mc/dragonfly v0.10.5/go.mod h1:/KjoqvIe5+ZxuFUPSRey9UzQS3GkTgAyTH0jTYFMs/g=
|
github.com/df-mc/dragonfly v0.10.5/go.mod h1:/KjoqvIe5+ZxuFUPSRey9UzQS3GkTgAyTH0jTYFMs/g=
|
||||||
|
github.com/df-mc/dragonfly v0.10.6-0.20250817203556-60bcf6b7432b h1:i3nfD4EFsuIZJfod6W9/lovMw8rzwCjGHRVKOBu1nXo=
|
||||||
|
github.com/df-mc/dragonfly v0.10.6-0.20250817203556-60bcf6b7432b/go.mod h1:1B3NiEGWj0S9U4QlsL58HPvnmgPlaFCm/pCVWdnrMH0=
|
||||||
github.com/df-mc/goleveldb v1.1.9 h1:ihdosZyy5jkQKrxucTQmN90jq/2lUwQnJZjIYIC/9YU=
|
github.com/df-mc/goleveldb v1.1.9 h1:ihdosZyy5jkQKrxucTQmN90jq/2lUwQnJZjIYIC/9YU=
|
||||||
github.com/df-mc/goleveldb v1.1.9/go.mod h1:+NHCup03Sci5q84APIA21z3iPZCuk6m6ABtg4nANCSk=
|
github.com/df-mc/goleveldb v1.1.9/go.mod h1:+NHCup03Sci5q84APIA21z3iPZCuk6m6ABtg4nANCSk=
|
||||||
github.com/df-mc/worldupgrader v1.0.18 h1:Q34X9ID/hGuDyj9oiq+dpyjOaJdNxhVmVUepf/EPYDA=
|
github.com/df-mc/worldupgrader v1.0.18 h1:Q34X9ID/hGuDyj9oiq+dpyjOaJdNxhVmVUepf/EPYDA=
|
||||||
@@ -96,6 +98,8 @@ golang.org/x/exp v0.0.0-20250305212735-054e65f0b394 h1:nDVHiLt8aIbd/VzvPWN6kSOPE
|
|||||||
golang.org/x/exp v0.0.0-20250305212735-054e65f0b394/go.mod h1:sIifuuw/Yco/y6yb6+bDNfyeQ/MdPUy/hKEMYQV17cM=
|
golang.org/x/exp v0.0.0-20250305212735-054e65f0b394/go.mod h1:sIifuuw/Yco/y6yb6+bDNfyeQ/MdPUy/hKEMYQV17cM=
|
||||||
golang.org/x/exp v0.0.0-20250718183923-645b1fa84792 h1:R9PFI6EUdfVKgwKjZef7QIwGcBKu86OEFpJ9nUEP2l4=
|
golang.org/x/exp v0.0.0-20250718183923-645b1fa84792 h1:R9PFI6EUdfVKgwKjZef7QIwGcBKu86OEFpJ9nUEP2l4=
|
||||||
golang.org/x/exp v0.0.0-20250718183923-645b1fa84792/go.mod h1:A+z0yzpGtvnG90cToK5n2tu8UJVP2XUATh+r+sfOOOc=
|
golang.org/x/exp v0.0.0-20250718183923-645b1fa84792/go.mod h1:A+z0yzpGtvnG90cToK5n2tu8UJVP2XUATh+r+sfOOOc=
|
||||||
|
golang.org/x/exp v0.0.0-20250819193227-8b4c13bb791b h1:DXr+pvt3nC887026GRP39Ej11UATqWDmWuS99x26cD0=
|
||||||
|
golang.org/x/exp v0.0.0-20250819193227-8b4c13bb791b/go.mod h1:4QTo5u+SEIbbKW1RacMZq1YEfOBqeXa19JeshGi+zc4=
|
||||||
golang.org/x/image v0.21.0 h1:c5qV36ajHpdj4Qi0GnE0jUc/yuo33OLFaa0d+crTD5s=
|
golang.org/x/image v0.21.0 h1:c5qV36ajHpdj4Qi0GnE0jUc/yuo33OLFaa0d+crTD5s=
|
||||||
golang.org/x/image v0.21.0/go.mod h1:vUbsLavqK/W303ZroQQVKQ+Af3Yl6Uz1Ppu5J/cLz78=
|
golang.org/x/image v0.21.0/go.mod h1:vUbsLavqK/W303ZroQQVKQ+Af3Yl6Uz1Ppu5J/cLz78=
|
||||||
golang.org/x/image v0.25.0 h1:Y6uW6rH1y5y/LK1J8BPWZtr6yZ7hrsy6hFrXjgsc2fQ=
|
golang.org/x/image v0.25.0 h1:Y6uW6rH1y5y/LK1J8BPWZtr6yZ7hrsy6hFrXjgsc2fQ=
|
||||||
@@ -108,6 +112,8 @@ golang.org/x/mod v0.25.0 h1:n7a+ZbQKQA/Ysbyb0/6IbB1H/X41mKgbhfv7AfG/44w=
|
|||||||
golang.org/x/mod v0.25.0/go.mod h1:IXM97Txy2VM4PJ3gI61r1YEk/gAj6zAHN3AdZt6S9Ww=
|
golang.org/x/mod v0.25.0/go.mod h1:IXM97Txy2VM4PJ3gI61r1YEk/gAj6zAHN3AdZt6S9Ww=
|
||||||
golang.org/x/mod v0.26.0 h1:EGMPT//Ezu+ylkCijjPc+f4Aih7sZvaAr+O3EHBxvZg=
|
golang.org/x/mod v0.26.0 h1:EGMPT//Ezu+ylkCijjPc+f4Aih7sZvaAr+O3EHBxvZg=
|
||||||
golang.org/x/mod v0.26.0/go.mod h1:/j6NAhSk8iQ723BGAUyoAcn7SlD7s15Dp9Nd/SfeaFQ=
|
golang.org/x/mod v0.26.0/go.mod h1:/j6NAhSk8iQ723BGAUyoAcn7SlD7s15Dp9Nd/SfeaFQ=
|
||||||
|
golang.org/x/mod v0.27.0 h1:kb+q2PyFnEADO2IEF935ehFUXlWiNjJWtRNgBLSfbxQ=
|
||||||
|
golang.org/x/mod v0.27.0/go.mod h1:rWI627Fq0DEoudcK+MBkNkCe0EetEaDSwJJkCcjpazc=
|
||||||
golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||||
golang.org/x/net v0.38.0 h1:vRMAPTMaeGqVhG5QyLJHqNDwecKTomGeqbnfZyKlBI8=
|
golang.org/x/net v0.38.0 h1:vRMAPTMaeGqVhG5QyLJHqNDwecKTomGeqbnfZyKlBI8=
|
||||||
golang.org/x/net v0.38.0/go.mod h1:ivrbrMbzFq5J41QOQh0siUuly180yBYtLp+CKbEaFx8=
|
golang.org/x/net v0.38.0/go.mod h1:ivrbrMbzFq5J41QOQh0siUuly180yBYtLp+CKbEaFx8=
|
||||||
|
|||||||
@@ -1,7 +1,20 @@
|
|||||||
package legacyver
|
package legacyver
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"fmt"
|
||||||
|
"sync"
|
||||||
|
|
||||||
|
"github.com/akmalfairuz/legacy-version/internal/chunk"
|
||||||
|
"github.com/akmalfairuz/legacy-version/mapping"
|
||||||
"github.com/sandertv/gophertunnel/minecraft"
|
"github.com/sandertv/gophertunnel/minecraft"
|
||||||
|
"github.com/sandertv/gophertunnel/minecraft/protocol/packet"
|
||||||
|
)
|
||||||
|
|
||||||
|
var (
|
||||||
|
EnableChunkTranslation = true
|
||||||
|
|
||||||
|
blockTranslatorsMu sync.RWMutex
|
||||||
|
blockTranslators map[int32]BlockTranslator
|
||||||
)
|
)
|
||||||
|
|
||||||
// All returns a slice of all legacy protocol versions that are supported. dragonflyMapping
|
// All returns a slice of all legacy protocol versions that are supported. dragonflyMapping
|
||||||
@@ -24,3 +37,37 @@ func All(dragonflyMapping bool) []minecraft.Protocol {
|
|||||||
New649(dragonflyMapping),
|
New649(dragonflyMapping),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// lookupOrCreateBlockTranslator looks up a block translator for the given protocol version.
|
||||||
|
func lookupOrCreateBlockTranslator(protocolVersion, blockVersion int32, blockStateData []byte) BlockTranslator {
|
||||||
|
blockTranslatorsMu.RLock()
|
||||||
|
if translator, ok := blockTranslators[protocolVersion]; ok {
|
||||||
|
blockTranslatorsMu.RUnlock()
|
||||||
|
return translator
|
||||||
|
}
|
||||||
|
blockTranslatorsMu.RUnlock()
|
||||||
|
|
||||||
|
blockTranslatorsMu.Lock()
|
||||||
|
defer blockTranslatorsMu.Unlock()
|
||||||
|
|
||||||
|
if translator, ok := blockTranslators[protocolVersion]; ok {
|
||||||
|
return translator
|
||||||
|
}
|
||||||
|
|
||||||
|
blockMapping := mapping.NewBlockMapping(blockStateData)
|
||||||
|
ret := NewBlockTranslator(blockMapping, blockMappingLatest, chunk.NewNetworkPersistentEncoding(blockMapping, blockVersion), chunk.NewBlockPaletteEncoding(blockMapping, blockVersion), false)
|
||||||
|
blockTranslators[protocolVersion] = ret
|
||||||
|
return ret
|
||||||
|
}
|
||||||
|
|
||||||
|
// DowngradeLevelChunkPacket downgrades the given level chunk packet to the specified protocol version.
|
||||||
|
func DowngradeLevelChunkPacket(protocolVersion int32, pk *packet.LevelChunk) error {
|
||||||
|
blockTranslatorsMu.RLock()
|
||||||
|
translator, ok := blockTranslators[protocolVersion]
|
||||||
|
blockTranslatorsMu.RUnlock()
|
||||||
|
if !ok {
|
||||||
|
return fmt.Errorf("no block translator found for protocol version %d", protocolVersion)
|
||||||
|
}
|
||||||
|
|
||||||
|
return translator.DowngradeLevelChunk(pk)
|
||||||
|
}
|
||||||
|
|||||||
@@ -4,7 +4,6 @@ import (
|
|||||||
"bytes"
|
"bytes"
|
||||||
_ "embed"
|
_ "embed"
|
||||||
|
|
||||||
"github.com/akmalfairuz/legacy-version/internal"
|
|
||||||
"github.com/akmalfairuz/legacy-version/internal/chunk"
|
"github.com/akmalfairuz/legacy-version/internal/chunk"
|
||||||
"github.com/akmalfairuz/legacy-version/mapping"
|
"github.com/akmalfairuz/legacy-version/mapping"
|
||||||
"github.com/df-mc/dragonfly/server/block/cube"
|
"github.com/df-mc/dragonfly/server/block/cube"
|
||||||
@@ -31,6 +30,10 @@ type BlockTranslator interface {
|
|||||||
DowngradeBlockPackets([]packet.Packet, *minecraft.Conn) (result []packet.Packet)
|
DowngradeBlockPackets([]packet.Packet, *minecraft.Conn) (result []packet.Packet)
|
||||||
// UpgradeBlockPackets upgrades the input block packets to the latest block packets.
|
// UpgradeBlockPackets upgrades the input block packets to the latest block packets.
|
||||||
UpgradeBlockPackets([]packet.Packet, *minecraft.Conn) (result []packet.Packet)
|
UpgradeBlockPackets([]packet.Packet, *minecraft.Conn) (result []packet.Packet)
|
||||||
|
// DowngradeLevelChunk downgrades the given LevelChunk packet to a legacy format.
|
||||||
|
DowngradeLevelChunk(*packet.LevelChunk) error
|
||||||
|
// BlockMapping returns the block mapping used by this translator.
|
||||||
|
BlockMapping() mapping.Block
|
||||||
}
|
}
|
||||||
|
|
||||||
type DefaultBlockTranslator struct {
|
type DefaultBlockTranslator struct {
|
||||||
@@ -45,18 +48,18 @@ func NewBlockTranslator(mapping mapping.Block, latestMapping mapping.Block, pse
|
|||||||
return &DefaultBlockTranslator{mapping: mapping, latest: latestMapping, pse: pse, pe: pe, oldFormat: oldFormat}
|
return &DefaultBlockTranslator{mapping: mapping, latest: latestMapping, pse: pse, pe: pe, oldFormat: oldFormat}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (t *DefaultBlockTranslator) downgradeLevelChunkPacket(pk *packet.LevelChunk) error {
|
func (t *DefaultBlockTranslator) BlockMapping() mapping.Block {
|
||||||
|
return t.mapping
|
||||||
|
}
|
||||||
|
|
||||||
|
func (t *DefaultBlockTranslator) DowngradeLevelChunk(pk *packet.LevelChunk) error {
|
||||||
count := int(pk.SubChunkCount)
|
count := int(pk.SubChunkCount)
|
||||||
if count == protocol.SubChunkRequestModeLimitless || count == protocol.SubChunkRequestModeLimited {
|
if count == protocol.SubChunkRequestModeLimitless || count == protocol.SubChunkRequestModeLimited {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
buf := bytes.NewBuffer(pk.RawPayload)
|
buf := bytes.NewBuffer(pk.RawPayload)
|
||||||
writeBuf := internal.BufferPool.Get().(*bytes.Buffer)
|
writeBuf := bytes.NewBuffer(nil)
|
||||||
defer func() {
|
|
||||||
writeBuf.Reset()
|
|
||||||
internal.BufferPool.Put(writeBuf)
|
|
||||||
}()
|
|
||||||
if !pk.CacheEnabled {
|
if !pk.CacheEnabled {
|
||||||
c, err := chunk.NetworkDecode(t.latest.Air(), buf, count, false, world.Overworld.Range(), LatestNetworkPersistentEncoding, LatestBlockPaletteEncoding)
|
c, err := chunk.NetworkDecode(t.latest.Air(), buf, count, false, world.Overworld.Range(), LatestNetworkPersistentEncoding, LatestBlockPaletteEncoding)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -76,12 +79,12 @@ func (t *DefaultBlockTranslator) downgradeLevelChunkPacket(pk *packet.LevelChunk
|
|||||||
countBorder, err := buf.ReadByte()
|
countBorder, err := buf.ReadByte()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
pk.RawPayload = append(writeBuf.Bytes(), safeBytes...)
|
pk.RawPayload = append(writeBuf.Bytes(), safeBytes...)
|
||||||
return nil
|
return err
|
||||||
}
|
}
|
||||||
borderBytes := make([]byte, countBorder)
|
borderBytes := make([]byte, countBorder)
|
||||||
if _, err = buf.Read(borderBytes); err != nil {
|
if _, err = buf.Read(borderBytes); err != nil {
|
||||||
pk.RawPayload = append(writeBuf.Bytes(), safeBytes...)
|
pk.RawPayload = append(writeBuf.Bytes(), safeBytes...)
|
||||||
return nil
|
return err
|
||||||
}
|
}
|
||||||
writeBuf.WriteByte(countBorder)
|
writeBuf.WriteByte(countBorder)
|
||||||
writeBuf.Write(borderBytes)
|
writeBuf.Write(borderBytes)
|
||||||
@@ -107,8 +110,17 @@ func (t *DefaultBlockTranslator) DowngradeBlockPackets(pks []packet.Packet, conn
|
|||||||
for _, pk := range pks {
|
for _, pk := range pks {
|
||||||
switch pk := pk.(type) {
|
switch pk := pk.(type) {
|
||||||
case *packet.LevelChunk:
|
case *packet.LevelChunk:
|
||||||
_ = t.downgradeLevelChunkPacket(pk)
|
if !EnableChunkTranslation {
|
||||||
|
break
|
||||||
|
}
|
||||||
|
if err := t.DowngradeLevelChunk(pk); err != nil {
|
||||||
|
//fmt.Println(err)
|
||||||
|
break
|
||||||
|
}
|
||||||
case *packet.SubChunk:
|
case *packet.SubChunk:
|
||||||
|
if !EnableChunkTranslation {
|
||||||
|
break
|
||||||
|
}
|
||||||
r := world.Overworld.Range()
|
r := world.Overworld.Range()
|
||||||
if t.oldFormat {
|
if t.oldFormat {
|
||||||
r = cube.Range{0, 255}
|
r = cube.Range{0, 255}
|
||||||
@@ -147,25 +159,27 @@ func (t *DefaultBlockTranslator) DowngradeBlockPackets(pks []packet.Packet, conn
|
|||||||
pk.SubChunkEntries[i] = entry
|
pk.SubChunkEntries[i] = entry
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
case *packet.ClientCacheMissResponse:
|
//case *packet.ClientCacheMissResponse:
|
||||||
r := world.Overworld.Range()
|
// if EnableChunkTranslation {
|
||||||
if t.oldFormat {
|
// r := world.Overworld.Range()
|
||||||
r = cube.Range{0, 255}
|
// if t.oldFormat {
|
||||||
}
|
// r = cube.Range{0, 255}
|
||||||
|
// }
|
||||||
for i, blob := range pk.Blobs {
|
//
|
||||||
buf := bytes.NewBuffer(blob.Payload)
|
// for i, blob := range pk.Blobs {
|
||||||
ind := byte(0)
|
// buf := bytes.NewBuffer(blob.Payload)
|
||||||
subChunk, err := chunk.DecodeSubChunk(t.latest.Air(), r, buf, &ind, chunk.NetworkEncoding, LatestNetworkPersistentEncoding, LatestBlockPaletteEncoding)
|
// ind := byte(0)
|
||||||
if err != nil {
|
// subChunk, err := chunk.DecodeSubChunk(t.latest.Air(), r, buf, &ind, chunk.NetworkEncoding, LatestNetworkPersistentEncoding, LatestBlockPaletteEncoding)
|
||||||
// Has a possibility to be a biome, ignore then
|
// if err != nil {
|
||||||
continue
|
// // Has a possibility to be a biome, ignore then
|
||||||
}
|
// continue
|
||||||
t.DowngradeSubChunk(subChunk)
|
// }
|
||||||
|
// t.DowngradeSubChunk(subChunk)
|
||||||
blob.Payload = append(chunk.EncodeSubChunk(subChunk, chunk.NetworkEncoding, t.pe, chunk.SubChunkVersion9, r, int(ind)), buf.Bytes()...)
|
//
|
||||||
pk.Blobs[i] = blob
|
// blob.Payload = append(chunk.EncodeSubChunk(subChunk, chunk.NetworkEncoding, t.pe, chunk.SubChunkVersion9, r, int(ind)), buf.Bytes()...)
|
||||||
}
|
// pk.Blobs[i] = blob
|
||||||
|
// }
|
||||||
|
// }
|
||||||
case *packet.UpdateSubChunkBlocks:
|
case *packet.UpdateSubChunkBlocks:
|
||||||
for i, block := range pk.Blocks {
|
for i, block := range pk.Blocks {
|
||||||
block.BlockRuntimeID = t.DowngradeBlockRuntimeID(block.BlockRuntimeID)
|
block.BlockRuntimeID = t.DowngradeBlockRuntimeID(block.BlockRuntimeID)
|
||||||
|
|||||||
@@ -3,7 +3,6 @@ package legacyver
|
|||||||
import (
|
import (
|
||||||
_ "embed"
|
_ "embed"
|
||||||
|
|
||||||
"github.com/akmalfairuz/legacy-version/internal/chunk"
|
|
||||||
"github.com/akmalfairuz/legacy-version/legacyver/proto"
|
"github.com/akmalfairuz/legacy-version/legacyver/proto"
|
||||||
"github.com/akmalfairuz/legacy-version/mapping"
|
"github.com/akmalfairuz/legacy-version/mapping"
|
||||||
)
|
)
|
||||||
@@ -25,12 +24,11 @@ var (
|
|||||||
// New649 ...
|
// New649 ...
|
||||||
func New649(dragonflyMapping bool) *Protocol {
|
func New649(dragonflyMapping bool) *Protocol {
|
||||||
itemMapping := mapping.NewItemMapping(requiredItemList649, ItemVersion649)
|
itemMapping := mapping.NewItemMapping(requiredItemList649, ItemVersion649)
|
||||||
blockMapping := mapping.NewBlockMapping(blockStateData649)
|
blockTranslator := lookupOrCreateBlockTranslator(649, BlockVersion649, blockStateData649)
|
||||||
|
|
||||||
return &Protocol{
|
return &Protocol{
|
||||||
ver: "1.20.60",
|
ver: "1.20.60",
|
||||||
id: proto.ID649,
|
id: proto.ID649,
|
||||||
blockTranslator: NewBlockTranslator(blockMapping, blockMappingLatest, chunk.NewNetworkPersistentEncoding(blockMapping, BlockVersion649), chunk.NewBlockPaletteEncoding(blockMapping, BlockVersion649), false),
|
blockTranslator: blockTranslator,
|
||||||
itemTranslator: NewItemTranslator(itemMapping, itemMappingLatest(dragonflyMapping), blockMapping, blockMappingLatest),
|
itemTranslator: NewItemTranslator(itemMapping, itemMappingLatest(dragonflyMapping), blockTranslator.BlockMapping(), blockMappingLatest),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,7 +3,6 @@ package legacyver
|
|||||||
import (
|
import (
|
||||||
_ "embed"
|
_ "embed"
|
||||||
|
|
||||||
"github.com/akmalfairuz/legacy-version/internal/chunk"
|
|
||||||
"github.com/akmalfairuz/legacy-version/legacyver/proto"
|
"github.com/akmalfairuz/legacy-version/legacyver/proto"
|
||||||
"github.com/akmalfairuz/legacy-version/mapping"
|
"github.com/akmalfairuz/legacy-version/mapping"
|
||||||
)
|
)
|
||||||
@@ -25,12 +24,11 @@ var (
|
|||||||
// New662 ...
|
// New662 ...
|
||||||
func New662(dragonflyMapping bool) *Protocol {
|
func New662(dragonflyMapping bool) *Protocol {
|
||||||
itemMapping := mapping.NewItemMapping(requiredItemList662, ItemVersion662)
|
itemMapping := mapping.NewItemMapping(requiredItemList662, ItemVersion662)
|
||||||
blockMapping := mapping.NewBlockMapping(blockStateData662)
|
blockTranslator := lookupOrCreateBlockTranslator(662, BlockVersion662, blockStateData662)
|
||||||
|
|
||||||
return &Protocol{
|
return &Protocol{
|
||||||
ver: "1.20.70",
|
ver: "1.20.70",
|
||||||
id: proto.ID662,
|
id: proto.ID662,
|
||||||
blockTranslator: NewBlockTranslator(blockMapping, blockMappingLatest, chunk.NewNetworkPersistentEncoding(blockMapping, BlockVersion662), chunk.NewBlockPaletteEncoding(blockMapping, BlockVersion662), false),
|
blockTranslator: blockTranslator,
|
||||||
itemTranslator: NewItemTranslator(itemMapping, itemMappingLatest(dragonflyMapping), blockMapping, blockMappingLatest),
|
itemTranslator: NewItemTranslator(itemMapping, itemMappingLatest(dragonflyMapping), blockTranslator.BlockMapping(), blockMappingLatest),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,7 +3,6 @@ package legacyver
|
|||||||
import (
|
import (
|
||||||
_ "embed"
|
_ "embed"
|
||||||
|
|
||||||
"github.com/akmalfairuz/legacy-version/internal/chunk"
|
|
||||||
"github.com/akmalfairuz/legacy-version/legacyver/proto"
|
"github.com/akmalfairuz/legacy-version/legacyver/proto"
|
||||||
"github.com/akmalfairuz/legacy-version/mapping"
|
"github.com/akmalfairuz/legacy-version/mapping"
|
||||||
)
|
)
|
||||||
@@ -25,12 +24,11 @@ var (
|
|||||||
// New671 ...
|
// New671 ...
|
||||||
func New671(dragonflyMapping bool) *Protocol {
|
func New671(dragonflyMapping bool) *Protocol {
|
||||||
itemMapping := mapping.NewItemMapping(requiredItemList671, ItemVersion671)
|
itemMapping := mapping.NewItemMapping(requiredItemList671, ItemVersion671)
|
||||||
blockMapping := mapping.NewBlockMapping(blockStateData671)
|
blockTranslator := lookupOrCreateBlockTranslator(671, BlockVersion671, blockStateData671)
|
||||||
|
|
||||||
return &Protocol{
|
return &Protocol{
|
||||||
ver: "1.20.80",
|
ver: "1.20.80",
|
||||||
id: proto.ID671,
|
id: proto.ID671,
|
||||||
blockTranslator: NewBlockTranslator(blockMapping, blockMappingLatest, chunk.NewNetworkPersistentEncoding(blockMapping, BlockVersion671), chunk.NewBlockPaletteEncoding(blockMapping, BlockVersion671), false),
|
blockTranslator: blockTranslator,
|
||||||
itemTranslator: NewItemTranslator(itemMapping, itemMappingLatest(dragonflyMapping), blockMapping, blockMappingLatest),
|
itemTranslator: NewItemTranslator(itemMapping, itemMappingLatest(dragonflyMapping), blockTranslator.BlockMapping(), blockMappingLatest),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,7 +3,6 @@ package legacyver
|
|||||||
import (
|
import (
|
||||||
_ "embed"
|
_ "embed"
|
||||||
|
|
||||||
"github.com/akmalfairuz/legacy-version/internal/chunk"
|
|
||||||
"github.com/akmalfairuz/legacy-version/legacyver/proto"
|
"github.com/akmalfairuz/legacy-version/legacyver/proto"
|
||||||
"github.com/akmalfairuz/legacy-version/mapping"
|
"github.com/akmalfairuz/legacy-version/mapping"
|
||||||
)
|
)
|
||||||
@@ -18,12 +17,11 @@ const (
|
|||||||
// New685 uses same data as 686
|
// New685 uses same data as 686
|
||||||
func New685(dragonflyMapping bool) *Protocol {
|
func New685(dragonflyMapping bool) *Protocol {
|
||||||
itemMapping := mapping.NewItemMapping(requiredItemList686, ItemVersion685)
|
itemMapping := mapping.NewItemMapping(requiredItemList686, ItemVersion685)
|
||||||
blockMapping := mapping.NewBlockMapping(blockStateData686)
|
blockTranslator := lookupOrCreateBlockTranslator(685, BlockVersion685, blockStateData686)
|
||||||
|
|
||||||
return &Protocol{
|
return &Protocol{
|
||||||
ver: "1.21.0",
|
ver: "1.21.0",
|
||||||
id: proto.ID685,
|
id: proto.ID685,
|
||||||
blockTranslator: NewBlockTranslator(blockMapping, blockMappingLatest, chunk.NewNetworkPersistentEncoding(blockMapping, BlockVersion685), chunk.NewBlockPaletteEncoding(blockMapping, BlockVersion685), false),
|
blockTranslator: blockTranslator,
|
||||||
itemTranslator: NewItemTranslator(itemMapping, itemMappingLatest(dragonflyMapping), blockMapping, blockMappingLatest),
|
itemTranslator: NewItemTranslator(itemMapping, itemMappingLatest(dragonflyMapping), blockTranslator.BlockMapping(), blockMappingLatest),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,7 +3,6 @@ package legacyver
|
|||||||
import (
|
import (
|
||||||
_ "embed"
|
_ "embed"
|
||||||
|
|
||||||
"github.com/akmalfairuz/legacy-version/internal/chunk"
|
|
||||||
"github.com/akmalfairuz/legacy-version/legacyver/proto"
|
"github.com/akmalfairuz/legacy-version/legacyver/proto"
|
||||||
"github.com/akmalfairuz/legacy-version/mapping"
|
"github.com/akmalfairuz/legacy-version/mapping"
|
||||||
)
|
)
|
||||||
@@ -24,12 +23,11 @@ var (
|
|||||||
|
|
||||||
func New686(dragonflyMapping bool) *Protocol {
|
func New686(dragonflyMapping bool) *Protocol {
|
||||||
itemMapping := mapping.NewItemMapping(requiredItemList686, ItemVersion686)
|
itemMapping := mapping.NewItemMapping(requiredItemList686, ItemVersion686)
|
||||||
blockMapping := mapping.NewBlockMapping(blockStateData686)
|
blockTranslator := lookupOrCreateBlockTranslator(686, BlockVersion686, blockStateData686)
|
||||||
|
|
||||||
return &Protocol{
|
return &Protocol{
|
||||||
ver: "1.21.2",
|
ver: "1.21.2",
|
||||||
id: proto.ID686,
|
id: proto.ID686,
|
||||||
blockTranslator: NewBlockTranslator(blockMapping, blockMappingLatest, chunk.NewNetworkPersistentEncoding(blockMapping, BlockVersion686), chunk.NewBlockPaletteEncoding(blockMapping, BlockVersion686), false),
|
blockTranslator: blockTranslator,
|
||||||
itemTranslator: NewItemTranslator(itemMapping, itemMappingLatest(dragonflyMapping), blockMapping, blockMappingLatest),
|
itemTranslator: NewItemTranslator(itemMapping, itemMappingLatest(dragonflyMapping), blockTranslator.BlockMapping(), blockMappingLatest),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,7 +3,6 @@ package legacyver
|
|||||||
import (
|
import (
|
||||||
_ "embed"
|
_ "embed"
|
||||||
|
|
||||||
"github.com/akmalfairuz/legacy-version/internal/chunk"
|
|
||||||
"github.com/akmalfairuz/legacy-version/legacyver/proto"
|
"github.com/akmalfairuz/legacy-version/legacyver/proto"
|
||||||
"github.com/akmalfairuz/legacy-version/mapping"
|
"github.com/akmalfairuz/legacy-version/mapping"
|
||||||
)
|
)
|
||||||
@@ -24,12 +23,11 @@ var (
|
|||||||
|
|
||||||
func New712(dragonflyMapping bool) *Protocol {
|
func New712(dragonflyMapping bool) *Protocol {
|
||||||
itemMapping := mapping.NewItemMapping(requiredItemList712, ItemVersion712)
|
itemMapping := mapping.NewItemMapping(requiredItemList712, ItemVersion712)
|
||||||
blockMapping := mapping.NewBlockMapping(blockStateData712)
|
blockTranslator := lookupOrCreateBlockTranslator(712, BlockVersion712, blockStateData712)
|
||||||
|
|
||||||
return &Protocol{
|
return &Protocol{
|
||||||
ver: "1.21.20",
|
ver: "1.21.20",
|
||||||
id: proto.ID712,
|
id: proto.ID712,
|
||||||
blockTranslator: NewBlockTranslator(blockMapping, blockMappingLatest, chunk.NewNetworkPersistentEncoding(blockMapping, BlockVersion712), chunk.NewBlockPaletteEncoding(blockMapping, BlockVersion712), false),
|
blockTranslator: blockTranslator,
|
||||||
itemTranslator: NewItemTranslator(itemMapping, itemMappingLatest(dragonflyMapping), blockMapping, blockMappingLatest),
|
itemTranslator: NewItemTranslator(itemMapping, itemMappingLatest(dragonflyMapping), blockTranslator.BlockMapping(), blockMappingLatest),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,7 +3,6 @@ package legacyver
|
|||||||
import (
|
import (
|
||||||
_ "embed"
|
_ "embed"
|
||||||
|
|
||||||
"github.com/akmalfairuz/legacy-version/internal/chunk"
|
|
||||||
"github.com/akmalfairuz/legacy-version/legacyver/proto"
|
"github.com/akmalfairuz/legacy-version/legacyver/proto"
|
||||||
"github.com/akmalfairuz/legacy-version/mapping"
|
"github.com/akmalfairuz/legacy-version/mapping"
|
||||||
)
|
)
|
||||||
@@ -24,12 +23,11 @@ var (
|
|||||||
|
|
||||||
func New729(dragonflyMapping bool) *Protocol {
|
func New729(dragonflyMapping bool) *Protocol {
|
||||||
itemMapping := mapping.NewItemMapping(requiredItemList729, ItemVersion729)
|
itemMapping := mapping.NewItemMapping(requiredItemList729, ItemVersion729)
|
||||||
blockMapping := mapping.NewBlockMapping(blockStateData729)
|
blockTranslator := lookupOrCreateBlockTranslator(729, BlockVersion729, blockStateData729)
|
||||||
|
|
||||||
return &Protocol{
|
return &Protocol{
|
||||||
ver: "1.21.30",
|
ver: "1.21.30",
|
||||||
id: proto.ID729,
|
id: proto.ID729,
|
||||||
blockTranslator: NewBlockTranslator(blockMapping, blockMappingLatest, chunk.NewNetworkPersistentEncoding(blockMapping, BlockVersion729), chunk.NewBlockPaletteEncoding(blockMapping, BlockVersion729), false),
|
blockTranslator: blockTranslator,
|
||||||
itemTranslator: NewItemTranslator(itemMapping, itemMappingLatest(dragonflyMapping), blockMapping, blockMappingLatest),
|
itemTranslator: NewItemTranslator(itemMapping, itemMappingLatest(dragonflyMapping), blockTranslator.BlockMapping(), blockMappingLatest),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,7 +3,6 @@ package legacyver
|
|||||||
import (
|
import (
|
||||||
_ "embed"
|
_ "embed"
|
||||||
|
|
||||||
"github.com/akmalfairuz/legacy-version/internal/chunk"
|
|
||||||
"github.com/akmalfairuz/legacy-version/legacyver/proto"
|
"github.com/akmalfairuz/legacy-version/legacyver/proto"
|
||||||
"github.com/akmalfairuz/legacy-version/mapping"
|
"github.com/akmalfairuz/legacy-version/mapping"
|
||||||
)
|
)
|
||||||
@@ -24,12 +23,11 @@ var (
|
|||||||
|
|
||||||
func New748(dragonflyMapping bool) *Protocol {
|
func New748(dragonflyMapping bool) *Protocol {
|
||||||
itemMapping := mapping.NewItemMapping(requiredItemList748, ItemVersion748)
|
itemMapping := mapping.NewItemMapping(requiredItemList748, ItemVersion748)
|
||||||
blockMapping := mapping.NewBlockMapping(blockStateData748)
|
blockTranslator := lookupOrCreateBlockTranslator(748, BlockVersion748, blockStateData748)
|
||||||
|
|
||||||
return &Protocol{
|
return &Protocol{
|
||||||
ver: "1.21.40",
|
ver: "1.21.40",
|
||||||
id: proto.ID748,
|
id: proto.ID748,
|
||||||
blockTranslator: NewBlockTranslator(blockMapping, blockMappingLatest, chunk.NewNetworkPersistentEncoding(blockMapping, BlockVersion748), chunk.NewBlockPaletteEncoding(blockMapping, BlockVersion748), false),
|
blockTranslator: blockTranslator,
|
||||||
itemTranslator: NewItemTranslator(itemMapping, itemMappingLatest(dragonflyMapping), blockMapping, blockMappingLatest),
|
itemTranslator: NewItemTranslator(itemMapping, itemMappingLatest(dragonflyMapping), blockTranslator.BlockMapping(), blockMappingLatest),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,7 +3,6 @@ package legacyver
|
|||||||
import (
|
import (
|
||||||
_ "embed"
|
_ "embed"
|
||||||
|
|
||||||
"github.com/akmalfairuz/legacy-version/internal/chunk"
|
|
||||||
"github.com/akmalfairuz/legacy-version/legacyver/proto"
|
"github.com/akmalfairuz/legacy-version/legacyver/proto"
|
||||||
"github.com/akmalfairuz/legacy-version/mapping"
|
"github.com/akmalfairuz/legacy-version/mapping"
|
||||||
)
|
)
|
||||||
@@ -24,11 +23,11 @@ var (
|
|||||||
|
|
||||||
func New766(dragonflyMapping bool) *Protocol {
|
func New766(dragonflyMapping bool) *Protocol {
|
||||||
itemMapping := mapping.NewItemMapping(requiredItemList766, ItemVersion766)
|
itemMapping := mapping.NewItemMapping(requiredItemList766, ItemVersion766)
|
||||||
blockMapping := mapping.NewBlockMapping(blockStateData766)
|
blockTranslator := lookupOrCreateBlockTranslator(766, BlockVersion766, blockStateData766)
|
||||||
return &Protocol{
|
return &Protocol{
|
||||||
ver: "1.21.50",
|
ver: "1.21.50",
|
||||||
id: proto.ID766,
|
id: proto.ID766,
|
||||||
blockTranslator: NewBlockTranslator(blockMapping, blockMappingLatest, chunk.NewNetworkPersistentEncoding(blockMapping, BlockVersion766), chunk.NewBlockPaletteEncoding(blockMapping, BlockVersion766), false),
|
blockTranslator: blockTranslator,
|
||||||
itemTranslator: NewItemTranslator(itemMapping, itemMappingLatest(dragonflyMapping), blockMapping, blockMappingLatest),
|
itemTranslator: NewItemTranslator(itemMapping, itemMappingLatest(dragonflyMapping), blockTranslator.BlockMapping(), blockMappingLatest),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,7 +3,6 @@ package legacyver
|
|||||||
import (
|
import (
|
||||||
_ "embed"
|
_ "embed"
|
||||||
|
|
||||||
"github.com/akmalfairuz/legacy-version/internal/chunk"
|
|
||||||
"github.com/akmalfairuz/legacy-version/legacyver/proto"
|
"github.com/akmalfairuz/legacy-version/legacyver/proto"
|
||||||
"github.com/akmalfairuz/legacy-version/mapping"
|
"github.com/akmalfairuz/legacy-version/mapping"
|
||||||
)
|
)
|
||||||
@@ -24,12 +23,11 @@ var (
|
|||||||
|
|
||||||
func New776(dragonflyMapping bool) *Protocol {
|
func New776(dragonflyMapping bool) *Protocol {
|
||||||
itemMapping := mapping.NewItemMapping(requiredItemList776, ItemVersion776)
|
itemMapping := mapping.NewItemMapping(requiredItemList776, ItemVersion776)
|
||||||
blockMapping := mapping.NewBlockMapping(blockStateData776)
|
blockTranslator := lookupOrCreateBlockTranslator(776, BlockVersion776, blockStateData776)
|
||||||
|
|
||||||
return &Protocol{
|
return &Protocol{
|
||||||
ver: "1.21.60",
|
ver: "1.21.60",
|
||||||
id: proto.ID776,
|
id: proto.ID776,
|
||||||
blockTranslator: NewBlockTranslator(blockMapping, blockMappingLatest, chunk.NewNetworkPersistentEncoding(blockMapping, BlockVersion776), chunk.NewBlockPaletteEncoding(blockMapping, BlockVersion776), false),
|
blockTranslator: blockTranslator,
|
||||||
itemTranslator: NewItemTranslator(itemMapping, itemMappingLatest(dragonflyMapping), blockMapping, blockMappingLatest),
|
itemTranslator: NewItemTranslator(itemMapping, itemMappingLatest(dragonflyMapping), blockTranslator.BlockMapping(), blockMappingLatest),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,7 +3,6 @@ package legacyver
|
|||||||
import (
|
import (
|
||||||
_ "embed"
|
_ "embed"
|
||||||
|
|
||||||
"github.com/akmalfairuz/legacy-version/internal/chunk"
|
|
||||||
"github.com/akmalfairuz/legacy-version/legacyver/proto"
|
"github.com/akmalfairuz/legacy-version/legacyver/proto"
|
||||||
"github.com/akmalfairuz/legacy-version/mapping"
|
"github.com/akmalfairuz/legacy-version/mapping"
|
||||||
)
|
)
|
||||||
@@ -23,12 +22,12 @@ var (
|
|||||||
)
|
)
|
||||||
|
|
||||||
func New786(dragonflyMapping bool) *Protocol {
|
func New786(dragonflyMapping bool) *Protocol {
|
||||||
itemMapping786 := mapping.NewItemMapping(requiredItemList786, ItemVersion786)
|
itemMapping := mapping.NewItemMapping(requiredItemList786, ItemVersion786)
|
||||||
blockMapping786 := mapping.NewBlockMapping(blockStateData786)
|
blockTranslator := lookupOrCreateBlockTranslator(786, BlockVersion786, blockStateData786)
|
||||||
return &Protocol{
|
return &Protocol{
|
||||||
ver: "1.21.70",
|
ver: "1.21.70",
|
||||||
id: proto.ID786,
|
id: proto.ID786,
|
||||||
blockTranslator: NewBlockTranslator(blockMapping786, blockMappingLatest, chunk.NewNetworkPersistentEncoding(blockMapping786, BlockVersion786), chunk.NewBlockPaletteEncoding(blockMapping786, BlockVersion786), false),
|
blockTranslator: blockTranslator,
|
||||||
itemTranslator: NewItemTranslator(itemMapping786, itemMappingLatest(dragonflyMapping), blockMapping786, blockMappingLatest),
|
itemTranslator: NewItemTranslator(itemMapping, itemMappingLatest(dragonflyMapping), blockTranslator.BlockMapping(), blockMappingLatest),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,7 +3,6 @@ package legacyver
|
|||||||
import (
|
import (
|
||||||
_ "embed"
|
_ "embed"
|
||||||
|
|
||||||
"github.com/akmalfairuz/legacy-version/internal/chunk"
|
|
||||||
"github.com/akmalfairuz/legacy-version/legacyver/proto"
|
"github.com/akmalfairuz/legacy-version/legacyver/proto"
|
||||||
"github.com/akmalfairuz/legacy-version/mapping"
|
"github.com/akmalfairuz/legacy-version/mapping"
|
||||||
)
|
)
|
||||||
@@ -24,11 +23,11 @@ var (
|
|||||||
|
|
||||||
func New800(dragonflyMapping bool) *Protocol {
|
func New800(dragonflyMapping bool) *Protocol {
|
||||||
itemMapping := mapping.NewItemMapping(requiredItemList800, ItemVersion800)
|
itemMapping := mapping.NewItemMapping(requiredItemList800, ItemVersion800)
|
||||||
blockMapping := mapping.NewBlockMapping(blockStateData800)
|
blockTranslator := lookupOrCreateBlockTranslator(800, BlockVersion800, blockStateData800)
|
||||||
return &Protocol{
|
return &Protocol{
|
||||||
ver: "1.21.80",
|
ver: "1.21.80",
|
||||||
id: proto.ID800,
|
id: proto.ID800,
|
||||||
blockTranslator: NewBlockTranslator(blockMapping, blockMappingLatest, chunk.NewNetworkPersistentEncoding(blockMapping, BlockVersion800), chunk.NewBlockPaletteEncoding(blockMapping, BlockVersion800), false),
|
blockTranslator: blockTranslator,
|
||||||
itemTranslator: NewItemTranslator(itemMapping, itemMappingLatest(dragonflyMapping), blockMapping, blockMappingLatest),
|
itemTranslator: NewItemTranslator(itemMapping, itemMappingLatest(dragonflyMapping), blockTranslator.BlockMapping(), blockMappingLatest),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,7 +3,6 @@ package legacyver
|
|||||||
import (
|
import (
|
||||||
_ "embed"
|
_ "embed"
|
||||||
|
|
||||||
"github.com/akmalfairuz/legacy-version/internal/chunk"
|
|
||||||
"github.com/akmalfairuz/legacy-version/legacyver/proto"
|
"github.com/akmalfairuz/legacy-version/legacyver/proto"
|
||||||
"github.com/akmalfairuz/legacy-version/mapping"
|
"github.com/akmalfairuz/legacy-version/mapping"
|
||||||
)
|
)
|
||||||
@@ -24,11 +23,11 @@ var (
|
|||||||
|
|
||||||
func New818(dragonflyMapping bool) *Protocol {
|
func New818(dragonflyMapping bool) *Protocol {
|
||||||
itemMapping := mapping.NewItemMapping(requiredItemList818, ItemVersion818)
|
itemMapping := mapping.NewItemMapping(requiredItemList818, ItemVersion818)
|
||||||
blockMapping := mapping.NewBlockMapping(blockStateData818)
|
blockTranslator := lookupOrCreateBlockTranslator(818, BlockVersion818, blockStateData818)
|
||||||
return &Protocol{
|
return &Protocol{
|
||||||
ver: "1.21.90",
|
ver: "1.21.90",
|
||||||
id: proto.ID818,
|
id: proto.ID818,
|
||||||
blockTranslator: NewBlockTranslator(blockMapping, blockMappingLatest, chunk.NewNetworkPersistentEncoding(blockMapping, BlockVersion818), chunk.NewBlockPaletteEncoding(blockMapping, BlockVersion818), false),
|
blockTranslator: blockTranslator,
|
||||||
itemTranslator: NewItemTranslator(itemMapping, itemMappingLatest(dragonflyMapping), blockMapping, blockMappingLatest),
|
itemTranslator: NewItemTranslator(itemMapping, itemMappingLatest(dragonflyMapping), blockTranslator.BlockMapping(), blockMappingLatest),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,7 +3,6 @@ package legacyver
|
|||||||
import (
|
import (
|
||||||
_ "embed"
|
_ "embed"
|
||||||
|
|
||||||
"github.com/akmalfairuz/legacy-version/internal/chunk"
|
|
||||||
"github.com/akmalfairuz/legacy-version/legacyver/proto"
|
"github.com/akmalfairuz/legacy-version/legacyver/proto"
|
||||||
"github.com/akmalfairuz/legacy-version/mapping"
|
"github.com/akmalfairuz/legacy-version/mapping"
|
||||||
)
|
)
|
||||||
@@ -24,11 +23,11 @@ var (
|
|||||||
|
|
||||||
func New819(dragonflyMapping bool) *Protocol {
|
func New819(dragonflyMapping bool) *Protocol {
|
||||||
itemMapping := mapping.NewItemMapping(requiredItemList819, ItemVersion819)
|
itemMapping := mapping.NewItemMapping(requiredItemList819, ItemVersion819)
|
||||||
blockMapping := mapping.NewBlockMapping(blockStateData819)
|
blockTranslator := lookupOrCreateBlockTranslator(819, BlockVersion819, blockStateData819)
|
||||||
return &Protocol{
|
return &Protocol{
|
||||||
ver: "1.21.90",
|
ver: "1.21.90",
|
||||||
id: proto.ID819,
|
id: proto.ID819,
|
||||||
blockTranslator: NewBlockTranslator(blockMapping, blockMappingLatest, chunk.NewNetworkPersistentEncoding(blockMapping, BlockVersion819), chunk.NewBlockPaletteEncoding(blockMapping, BlockVersion819), false),
|
blockTranslator: blockTranslator,
|
||||||
itemTranslator: NewItemTranslator(itemMapping, itemMappingLatest(dragonflyMapping), blockMapping, blockMappingLatest),
|
itemTranslator: NewItemTranslator(itemMapping, itemMappingLatest(dragonflyMapping), blockTranslator.BlockMapping(), blockMappingLatest),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user