Инвентарь

Изменение инвентарей игроков и контейнеров через server-owned inventory services.

В этом разделе

Другие страницы раздела:

Инвентарь игрока

PlayerHandle.Inventory() возвращает inventory handle. Его операции проходят через серверную валидацию и синхронизацию клиента.

inventory.go
inv := playerHandle.Inventory()_, err := inv.Give(item.New("diamond_sword").	Enchant(item.Sharpness(5)).	NameTag("Arena Blade").	Lore("Bound to the arena").	Stack())_, err = inv.Move(0, 1, 1)_, err = inv.Swap(1, 2)err = inv.SetHeldSlot(1)err = inv.Resync()

Контейнеры блоков

Для block inventories используйте world container handles. Открытые сессии помечаются dirty и пересинхронизируются после изменения содержимого.

containers.go
_, err := ctx.RegisterBlock(content.DefineBlock("practice:crate").	Container(27).	Drop(item.New("practice:crate").Stack()).	Spec())container := worldHandle.ContainerAt(pos, 27)_, err := container.Give(item.New("diamond").Count(8).Stack())err = container.OpenFor(playerHandle.ID())err = container.Resync()