update to 1.18.2 & fix bug in snbt encoding
This commit is contained in:
@ -1,17 +1,17 @@
|
||||
{
|
||||
piglin_safe: 0b,
|
||||
natural: 1b,
|
||||
ambient_light: 0.0f,
|
||||
infiniburn: "minecraft:infiniburn_overworld",
|
||||
respawn_anchor_works: 0b,
|
||||
has_skylight: 1b,
|
||||
bed_works: 1b,
|
||||
effects: "minecraft:overworld",
|
||||
has_raids: 1b,
|
||||
min_y: 0,
|
||||
height: 256,
|
||||
logical_height: 256,
|
||||
coordinate_scale: 1.0d,
|
||||
ultrawarm: 0b,
|
||||
has_ceiling: 0b
|
||||
piglin_safe:0B,
|
||||
natural:1B,
|
||||
ambient_light:0.0000000000F,
|
||||
infiniburn:"#minecraft:infiniburn_overworld",
|
||||
respawn_anchor_works:0B,
|
||||
has_skylight:1B,
|
||||
bed_works:1B,
|
||||
effects:"minecraft:overworld",
|
||||
has_raids:1B,
|
||||
logical_height:384,
|
||||
coordinate_scale:1.0000000000D,
|
||||
min_y:-64,
|
||||
has_ceiling:0B,
|
||||
ultrawarm:0B,
|
||||
height:384
|
||||
}
|
File diff suppressed because one or more lines are too long
@ -35,7 +35,7 @@ func NewGlobalChat() *GlobalChat {
|
||||
func (g *GlobalChat) Init(game *Game) {
|
||||
game.AddHandler(&PacketHandler{
|
||||
ID: packetid.ServerboundChat,
|
||||
F: func(player *Player, packet Packet757) error {
|
||||
F: func(player *Player, packet Packet758) error {
|
||||
var msg pk.String
|
||||
if err := pk.Packet(packet).Scan(&msg); err != nil {
|
||||
return err
|
||||
@ -59,14 +59,14 @@ func (g *GlobalChat) Run(ctx context.Context) {
|
||||
case <-ctx.Done():
|
||||
return
|
||||
case item := <-g.msg:
|
||||
g.broadcast(Packet757(pk.Marshal(
|
||||
g.broadcast(Packet758(pk.Marshal(
|
||||
packetid.ClientboundChat,
|
||||
item.toMessage(),
|
||||
pk.Byte(chatPosChat),
|
||||
pk.UUID(item.p.UUID),
|
||||
)))
|
||||
case p := <-g.join:
|
||||
g.broadcast(Packet757(pk.Marshal(
|
||||
g.broadcast(Packet758(pk.Marshal(
|
||||
packetid.ClientboundChat,
|
||||
chat.TranslateMsg("multiplayer.player.joined", chat.Text(p.Name)).SetColor(chat.Yellow),
|
||||
pk.Byte(chatPosSystem),
|
||||
@ -74,7 +74,7 @@ func (g *GlobalChat) Run(ctx context.Context) {
|
||||
)))
|
||||
g.players[p.UUID] = p
|
||||
case p := <-g.quit:
|
||||
g.broadcast(Packet757(pk.Marshal(
|
||||
g.broadcast(Packet758(pk.Marshal(
|
||||
packetid.ClientboundChat,
|
||||
chat.TranslateMsg("multiplayer.player.left", chat.Text(p.Name)).SetColor(chat.Yellow),
|
||||
pk.Byte(chatPosSystem),
|
||||
@ -85,7 +85,7 @@ func (g *GlobalChat) Run(ctx context.Context) {
|
||||
}
|
||||
}
|
||||
|
||||
func (g *GlobalChat) broadcast(packet Packet757) {
|
||||
func (g *GlobalChat) broadcast(packet Packet758) {
|
||||
for _, p := range g.players {
|
||||
p.WritePacket(packet)
|
||||
}
|
||||
|
@ -13,7 +13,7 @@ import (
|
||||
func (g *Graph) Init(game *server.Game) {
|
||||
game.AddHandler(&server.PacketHandler{
|
||||
ID: packetid.ServerboundChat,
|
||||
F: func(player *server.Player, packet server.Packet757) error {
|
||||
F: func(player *server.Player, packet server.Packet758) error {
|
||||
var msg pk.String
|
||||
if err := pk.Packet(packet).Scan(&msg); err != nil {
|
||||
return err
|
||||
@ -35,7 +35,7 @@ func (g *Graph) Run(ctx context.Context) {}
|
||||
|
||||
// AddPlayer implement server.Component for Graph
|
||||
func (g *Graph) AddPlayer(p *server.Player) {
|
||||
p.WritePacket(server.Packet757(pk.Marshal(
|
||||
p.WritePacket(server.Packet758(pk.Marshal(
|
||||
packetid.ClientboundCommands, g,
|
||||
)))
|
||||
}
|
||||
|
@ -50,10 +50,10 @@ func (s *SimpleDim) PlayerJoin(p *Player) {
|
||||
)
|
||||
column.Unlock()
|
||||
|
||||
p.WritePacket(Packet757(packet))
|
||||
p.WritePacket(Packet758(packet))
|
||||
}
|
||||
|
||||
p.WritePacket(Packet757(pk.Marshal(
|
||||
p.WritePacket(Packet758(pk.Marshal(
|
||||
packetid.ClientboundPlayerPosition,
|
||||
pk.Double(0), pk.Double(143), pk.Double(0),
|
||||
pk.Float(0), pk.Float(0),
|
||||
|
@ -42,7 +42,7 @@ type PacketHandler struct {
|
||||
F packetHandlerFunc
|
||||
}
|
||||
|
||||
type packetHandlerFunc func(player *Player, packet Packet757) error
|
||||
type packetHandlerFunc func(player *Player, packet Packet758) error
|
||||
|
||||
//go:embed DimensionCodec.snbt
|
||||
var dimensionCodecSNBT string
|
||||
@ -95,7 +95,9 @@ func (g *Game) AcceptPlayer(name string, id uuid.UUID, protocol int32, conn *net
|
||||
pk.Boolean(false), // Is hardcore
|
||||
pk.Byte(p.Gamemode), // Gamemode
|
||||
pk.Byte(-1), // Prev Gamemode
|
||||
pk.Array([]pk.Identifier{pk.Identifier(dimInfo.Name)}),
|
||||
pk.Array([]pk.Identifier{
|
||||
pk.Identifier(dimInfo.Name),
|
||||
}),
|
||||
pk.NBT(nbt.StringifiedMessage(dimensionCodecSNBT)),
|
||||
pk.NBT(nbt.StringifiedMessage(dimensionSNBT)),
|
||||
pk.Identifier(dimInfo.Name), // World Name
|
||||
@ -145,7 +147,7 @@ func (g *Game) AcceptPlayer(name string, id uuid.UUID, protocol int32, conn *net
|
||||
return
|
||||
}
|
||||
for _, ph := range g.handlers[packet.ID] {
|
||||
if err := ph.F(p, Packet757(packet)); err != nil {
|
||||
if err := ph.F(p, Packet758(packet)); err != nil {
|
||||
return
|
||||
}
|
||||
if err := p.GetErr(); err != nil {
|
||||
|
@ -60,7 +60,7 @@ func (k *KeepAlive) AddPlayerDelayUpdateHandler(f func(p *Player, delay time.Dur
|
||||
func (k *KeepAlive) Init(g *Game) {
|
||||
g.AddHandler(&PacketHandler{
|
||||
ID: packetid.ServerboundKeepAlive,
|
||||
F: func(player *Player, packet Packet757) error {
|
||||
F: func(player *Player, packet Packet758) error {
|
||||
var KeepAliveID pk.Long
|
||||
if err := pk.Packet(packet).Scan(&KeepAliveID); err != nil {
|
||||
return err
|
||||
@ -121,7 +121,7 @@ func (k *KeepAlive) pingPlayer(now time.Time) {
|
||||
if elem := k.pingList.Front(); elem != nil {
|
||||
p := k.pingList.Remove(elem).(keepAliveItem).player
|
||||
// Send Clientbound KeepAlive packet.
|
||||
p.WritePacket(Packet757(pk.Marshal(
|
||||
p.WritePacket(Packet758(pk.Marshal(
|
||||
packetid.ClientboundKeepAlive,
|
||||
pk.Long(k.keepAliveID),
|
||||
)))
|
||||
|
@ -22,12 +22,13 @@ type Player struct {
|
||||
errChan chan error
|
||||
}
|
||||
|
||||
// Packet757 is a packet in protocol 757.
|
||||
// Packet758 is a packet in protocol 757.
|
||||
// We are using type system to force programmers to update packets.
|
||||
type Packet758 pk.Packet
|
||||
type Packet757 pk.Packet
|
||||
|
||||
// WritePacket to player client. The type of parameter will update per version.
|
||||
func (p *Player) WritePacket(packet Packet757) {
|
||||
func (p *Player) WritePacket(packet Packet758) {
|
||||
p.packetQueue.Push(pk.Packet(packet))
|
||||
}
|
||||
|
||||
|
@ -42,7 +42,7 @@ func (p *PlayerList) AddPlayer(player *Player) {
|
||||
defer p.playersLock.Unlock()
|
||||
|
||||
if len(p.players) >= p.maxPlayer {
|
||||
player.WritePacket(Packet757(pk.Marshal(
|
||||
player.WritePacket(Packet758(pk.Marshal(
|
||||
packetid.ClientboundDisconnect,
|
||||
chat.TranslateMsg("multiplayer.disconnect.server_full"),
|
||||
)))
|
||||
|
@ -30,8 +30,8 @@ import (
|
||||
"github.com/Tnze/go-mc/net"
|
||||
)
|
||||
|
||||
const ProtocolName = "1.18.1"
|
||||
const ProtocolVersion = 757
|
||||
const ProtocolName = "1.18.2"
|
||||
const ProtocolVersion = 758
|
||||
|
||||
type Server struct {
|
||||
ListPingHandler
|
||||
|
Reference in New Issue
Block a user