Files
go-mc/bot/basic/keepalive.go
蒟蒻 0958972953
Some checks failed
CodeQL / Analyze (go) (push) Has been cancelled
Go / Test (1.22) (push) Has been cancelled
Go / Test (^1.22) (push) Has been cancelled
1.21.8 data
2025-08-22 06:17:33 +08:00

35 lines
669 B
Go

package basic
import (
"time"
"github.com/Tnze/go-mc/data/packetid"
pk "github.com/Tnze/go-mc/net/packet"
)
const keepAliveDuration = time.Second * 20
func (p *Player) resetKeepAliveDeadline() {
newDeadline := time.Now().Add(keepAliveDuration)
p.c.Conn.Socket.SetDeadline(newDeadline)
}
func (p *Player) handleKeepAlivePacket(packet pk.Packet) error {
var KeepAliveID pk.Long
if err := packet.Scan(&KeepAliveID); err != nil {
return Error{err}
}
p.resetKeepAliveDeadline()
// Response
err := p.c.Conn.WritePacket(pk.Packet{
ID: int32(packetid.ServerboundKeepAlive),
Data: packet.Data,
})
if err != nil {
return Error{err}
}
return nil
}