Инвентарь
Изменение инвентарей игроков и контейнеров через 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()