add configuration support for /server packet

This commit is contained in:
Tnze
2023-11-19 11:25:17 +08:00
parent a5e6acea73
commit 54ffcb2bad
12 changed files with 72 additions and 2668 deletions

39
server/configuration.go Normal file
View File

@ -0,0 +1,39 @@
package server
import (
"github.com/Tnze/go-mc/chat"
"github.com/Tnze/go-mc/data/packetid"
"github.com/Tnze/go-mc/net"
pk "github.com/Tnze/go-mc/net/packet"
"github.com/Tnze/go-mc/registry"
)
type ConfigHandler interface {
AcceptConfig(conn *net.Conn) error
}
type Configurations struct {
Registries registry.NetworkCodec
}
func (c *Configurations) AcceptConfig(conn *net.Conn) error {
err := conn.WritePacket(pk.Marshal(
packetid.ClientboundConfigRegistryData,
pk.NBT(c.Registries),
))
if err != nil {
return err
}
err = conn.WritePacket(pk.Marshal(
packetid.ClientboundConfigFinishConfiguration,
))
return err
}
type ConfigFailErr struct {
reason chat.Message
}
func (c ConfigFailErr) Error() string {
return "config error: " + c.reason.ClearString()
}