Files

24 lines
630 B
Go
Raw Permalink Normal View History

2026-07-09 08:33:57 +08:00
package session
import (
"github.com/df-mc/dragonfly/server/world"
"github.com/sandertv/gophertunnel/minecraft/protocol/packet"
)
// RequestAbilityHandler handles the RequestAbility packet.
type RequestAbilityHandler struct{}
// Handle ...
func (a RequestAbilityHandler) Handle(p packet.Packet, s *Session, _ *world.Tx, c Controllable) error {
pk := p.(*packet.RequestAbility)
if pk.Ability == packet.AbilityFlying {
if !c.GameMode().AllowsFlying() {
s.conf.Log.Debug("process packet: RequestAbility: flying flag enabled while unable to fly")
s.SendAbilities(c)
return nil
}
c.StartFlying()
}
return nil
}