package legacypacket

import (
	"github.com/akmalfairuz/legacy-version/legacyver/proto"
	"github.com/sandertv/gophertunnel/minecraft/protocol"
	"github.com/sandertv/gophertunnel/minecraft/protocol/packet"
)

// ClientCheatAbility functions the same as UpdateAbilities. It is unclear why these two were separated.
//
// Deprecated: ClientCheatAbility is deprecated as of 1.20.10.
type ClientCheatAbility struct {
	// AbilityData represents various data about the abilities of a player, such as ability layers or permissions.
	AbilityData proto.AbilityData
}

// ID ...
func (*ClientCheatAbility) ID() uint32 {
	return packet.IDClientCheatAbility
}

func (pk *ClientCheatAbility) Marshal(io protocol.IO) {
	protocol.Single(io, &pk.AbilityData)
}
