40 lines
783 B
Go
40 lines
783 B
Go
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.Registries
|
|
}
|
|
|
|
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()
|
|
}
|