Add 1.21.2 & 1.21.0 support

This commit is contained in:
AkmalFairuz
2025-01-01 13:40:15 +07:00
parent 123f125d4e
commit f6548dd6a7
29 changed files with 7641 additions and 7 deletions

View File

@@ -0,0 +1,44 @@
package legacypacket
import (
"github.com/akmalfairuz/legacy-version/legacyver/proto"
"github.com/sandertv/gophertunnel/minecraft/protocol"
"github.com/sandertv/gophertunnel/minecraft/protocol/packet"
)
// MobArmourEquipment is sent by the server to the client to update the armour an entity is wearing. It is
// sent for both players and other entities, such as zombies.
type MobArmourEquipment struct {
// EntityRuntimeID is the runtime ID of the entity. The runtime ID is unique for each world session, and
// entities are generally identified in packets using this runtime ID.
EntityRuntimeID uint64
// Helmet is the equipped helmet of the entity. Items that are not wearable on the head will not be
// rendered by the client. Unlike in Java Edition, blocks cannot be worn.
Helmet protocol.ItemInstance
// Chestplate is the chestplate of the entity. Items that are not wearable as chestplate will not be
// rendered.
Chestplate protocol.ItemInstance
// Leggings is the item worn as leggings by the entity. Items not wearable as leggings will not be
// rendered client-side.
Leggings protocol.ItemInstance
// Boots is the item worn as boots by the entity. Items not wearable as boots will not be rendered.
Boots protocol.ItemInstance
// Body is the item worn on the body of the entity. Items not wearable on the body will not be rendered.
Body protocol.ItemInstance
}
// ID ...
func (*MobArmourEquipment) ID() uint32 {
return packet.IDMobArmourEquipment
}
func (pk *MobArmourEquipment) Marshal(io protocol.IO) {
io.Varuint64(&pk.EntityRuntimeID)
io.ItemInstance(&pk.Helmet)
io.ItemInstance(&pk.Chestplate)
io.ItemInstance(&pk.Leggings)
io.ItemInstance(&pk.Boots)
if proto.IsProtoGTE(io, proto.ID712) {
io.ItemInstance(&pk.Body)
}
}