First support 1.21.130
This commit is contained in:
40
legacyver/legacypacket/interact.go
Normal file
40
legacyver/legacypacket/interact.go
Normal file
@@ -0,0 +1,40 @@
|
||||
package legacypacket
|
||||
|
||||
import (
|
||||
"github.com/akmalfairuz/legacy-version/legacyver/proto"
|
||||
"github.com/go-gl/mathgl/mgl32"
|
||||
"github.com/sandertv/gophertunnel/minecraft/protocol"
|
||||
"github.com/sandertv/gophertunnel/minecraft/protocol/packet"
|
||||
)
|
||||
|
||||
// Interact is sent by the client when it interacts with another entity in some way. It used to be used for
|
||||
// normal entity and block interaction, but this is no longer the case now.
|
||||
type Interact struct {
|
||||
// Action type is the ID of the action that was executed by the player. It is one of the constants that
|
||||
// may be found above.
|
||||
ActionType byte
|
||||
// TargetEntityRuntimeID is the runtime ID of the entity that the player interacted with. This is empty
|
||||
// for the InteractActionOpenInventory action type.
|
||||
TargetEntityRuntimeID uint64
|
||||
// Position associated with the ActionType above. For the InteractActionMouseOverEntity, this is the
|
||||
// position relative to the entity moused over over which the player hovered with its mouse/touch. For the
|
||||
// InteractActionLeaveVehicle, this is the position that the player spawns at after leaving the vehicle.
|
||||
Position protocol.Optional[mgl32.Vec3]
|
||||
}
|
||||
|
||||
// ID ...
|
||||
func (*Interact) ID() uint32 {
|
||||
return packet.IDInteract
|
||||
}
|
||||
|
||||
func (pk *Interact) Marshal(io protocol.IO) {
|
||||
io.Uint8(&pk.ActionType)
|
||||
io.Varuint64(&pk.TargetEntityRuntimeID)
|
||||
if proto.IsProtoGTE(io, proto.ID898) {
|
||||
protocol.OptionalFunc(io, &pk.Position, io.Vec3)
|
||||
} else {
|
||||
pos, _ := pk.Position.Value()
|
||||
io.Vec3(&pos)
|
||||
pk.Position = protocol.Option(pos)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user