Add 1.21.30
This commit is contained in:
47
legacyver/legacypacket/inventory_slot.go
Normal file
47
legacyver/legacypacket/inventory_slot.go
Normal file
@@ -0,0 +1,47 @@
|
||||
package legacypacket
|
||||
|
||||
import (
|
||||
"github.com/akmalfairuz/legacy-version/legacyver/proto"
|
||||
"github.com/sandertv/gophertunnel/minecraft/protocol"
|
||||
"github.com/sandertv/gophertunnel/minecraft/protocol/packet"
|
||||
)
|
||||
|
||||
// InventorySlot is sent by the server to update a single slot in one of the inventory windows that the client
|
||||
// currently has opened. Usually this is the main inventory, but it may also be the off hand or, for example,
|
||||
// a chest inventory.
|
||||
type InventorySlot struct {
|
||||
// WindowID is the ID of the window that the packet modifies. It must point to one of the windows that the
|
||||
// client currently has opened.
|
||||
WindowID uint32
|
||||
// Slot is the index of the slot that the packet modifies. The new item will be set to the slot at this
|
||||
// index.
|
||||
Slot uint32
|
||||
// Container is the protocol.FullContainerName that describes the container that the content is for.
|
||||
Container protocol.FullContainerName
|
||||
// DynamicContainerSize ...
|
||||
DynamicContainerSize uint32
|
||||
// StorageItem is the item that is acting as the storage container for the inventory. If the inventory is
|
||||
// not a dynamic container then this field should be left empty. When set, only the item type is used by
|
||||
// the client and none of the other stack info.
|
||||
StorageItem protocol.ItemInstance
|
||||
// NewItem is the item to be put in the slot at Slot. It will overwrite any item that may currently
|
||||
// be present in that slot.
|
||||
NewItem protocol.ItemInstance
|
||||
}
|
||||
|
||||
// ID ...
|
||||
func (*InventorySlot) ID() uint32 {
|
||||
return packet.IDInventorySlot
|
||||
}
|
||||
|
||||
func (pk *InventorySlot) Marshal(io protocol.IO) {
|
||||
io.Varuint32(&pk.WindowID)
|
||||
io.Varuint32(&pk.Slot)
|
||||
protocol.Single(io, &pk.Container)
|
||||
if proto.IsProtoGTE(io, proto.ID748) {
|
||||
io.ItemInstance(&pk.StorageItem)
|
||||
} else {
|
||||
io.Varuint32(&pk.DynamicContainerSize)
|
||||
}
|
||||
io.ItemInstance(&pk.NewItem)
|
||||
}
|
||||
Reference in New Issue
Block a user