39 lines
925 B
Go
39 lines
925 B
Go
package commands
|
|
|
|
import (
|
|
"encoding/binary"
|
|
"fmt"
|
|
"math"
|
|
)
|
|
|
|
type ServerAuthAccept struct {
|
|
PosX uint32
|
|
PosY uint32
|
|
PosZ uint32
|
|
Seed uint64
|
|
SendInterval float32
|
|
}
|
|
|
|
func (p *ServerAuthAccept) GetCommandId() uint16 {
|
|
return ServerCommandAuthAccept
|
|
}
|
|
|
|
func (p *ServerAuthAccept) MarshalPacket() ([]byte, error) {
|
|
return nil, nil
|
|
}
|
|
|
|
func (p *ServerAuthAccept) UnmarshalPacket(payload []byte) error {
|
|
p.PosX = binary.BigEndian.Uint32(payload[0:])
|
|
p.PosY = binary.BigEndian.Uint32(payload[4:])
|
|
p.PosZ = binary.BigEndian.Uint32(payload[8:])
|
|
p.Seed = binary.BigEndian.Uint64(payload[12:])
|
|
bits := binary.BigEndian.Uint32(payload[20:])
|
|
p.SendInterval = math.Float32frombits(bits)
|
|
return nil
|
|
}
|
|
|
|
func (p *ServerAuthAccept) String() string {
|
|
return fmt.Sprintf("{ServerAuthAccept PosX=%d, PosY=%d, PosZ=%d, Seed=%d, SendInterval=%f}",
|
|
p.PosX, p.PosY, p.PosZ, p.Seed, p.SendInterval)
|
|
}
|