Add generic event
This commit is contained in:
@ -3,16 +3,59 @@ package basic
|
||||
import (
|
||||
"github.com/Tnze/go-mc/data/packetid"
|
||||
pk "github.com/Tnze/go-mc/net/packet"
|
||||
"log"
|
||||
)
|
||||
|
||||
func (p Player) handleKeepAlivePacket(packet pk.Packet) error {
|
||||
var KeepAliveID pk.Long
|
||||
if err := packet.Scan(&KeepAliveID); err != nil {
|
||||
return err
|
||||
return Error{err}
|
||||
}
|
||||
// Response
|
||||
return p.c.Conn.WritePacket(pk.Marshal(
|
||||
packetid.KeepAliveServerbound,
|
||||
KeepAliveID,
|
||||
))
|
||||
err := p.c.Conn.WritePacket(pk.Packet{
|
||||
ID: packetid.KeepAliveServerbound,
|
||||
Data: packet.Data,
|
||||
})
|
||||
if err != nil {
|
||||
return Error{err}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (p *Player) handlePlayerPositionAndLook(packet pk.Packet) error {
|
||||
var (
|
||||
X, Y, Z pk.Double
|
||||
Yaw, Pitch pk.Float
|
||||
Flags pk.Byte
|
||||
TeleportID pk.VarInt
|
||||
)
|
||||
if err := packet.Scan(&X, &Y, &Z, &Yaw, &Pitch, &Flags, &TeleportID); err != nil {
|
||||
return Error{err}
|
||||
}
|
||||
|
||||
// Teleport Confirm
|
||||
err := p.c.Conn.WritePacket(pk.Marshal(
|
||||
packetid.TeleportConfirm,
|
||||
TeleportID,
|
||||
))
|
||||
if err != nil {
|
||||
return Error{err}
|
||||
}
|
||||
|
||||
if !p.isSpawn {
|
||||
// PlayerPositionAndRotation to confirm the spawn position
|
||||
err = p.c.Conn.WritePacket(pk.Marshal(
|
||||
packetid.PositionLook,
|
||||
X, Y-1.62, Z,
|
||||
Yaw, Pitch,
|
||||
pk.Boolean(true),
|
||||
))
|
||||
if err != nil {
|
||||
return Error{err}
|
||||
}
|
||||
p.isSpawn = true
|
||||
log.Print("Position confirmed")
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
Reference in New Issue
Block a user