Skip to content
Юрий edited this page Oct 14, 2018 · 4 revisions

Добро пожаловать на страницу документации библиотеки MinecraftTabInventory!

Быстрый старт

Чтобы добавить в ваш мод поддержку инвентарей со вкладками, вам нужно сделать несколько простых вещей:

  1. Наследуйте Container вашего инвентаря от класса TabContainer.
  2. Наследуйте GuiContainer вашего инвентаря от TabGuiContainer.
  3. В время init фазы загрузки вашего мода вызовите NetworkUtils#registerMessages()
  4. Во время инициализации объекта-контейнера на стороне клиента, добавьте ваш TabInventory к движку синхронизации, вызвав getSync().addSync(tabInventory). Пример

НЕ быстрый старт

Если по какой-либо причине вы не можете наследоваться от TabContainer и TabGuiContainer, то вы можете самостоятельно имплементить интерфейсы из класса SupportTabs:

TabInventory и Contaner

Реализуйте в вашем контейнере интерфейс SupportTabs.Container:

  • Метод SupportTabs.Container#getTabInventory(String) - необходим чтобы получать инвентарь по его имени. Это полезно если ваш контейнер работает с несколькими TabInventory
  • SupportTabs.Container#getTabInventories() - должен возвращать Map с объектами в формате "ИМЯ_ИНВЕНТАРЯ->TAB_INVENTORY". Имейте ввиду что ключ и имя инвентаря из значения должны совпадать.
  • SupportTabs.Container#getSync() - возвращает объект синхронизации вашего контейнера. Рекомендую вам создать приватное поле типа TabInventorySync и возвращать его. Обратите так же внимание что в конструктор TabInventorySync необходимо передавать контейнер который наследуется от Container (прямо или косвенно) и реализует SupportTabs.Container!

TabInventory и GuiContainer

Реализуйте в вашем гуи-контейнере интерфейс SupportTabs.Gui:

  • SupportTabs.Gui#getSynс() - должен возвращать объект синхронизации для контейнера который связан с вашим GuiContainer'ом. Вероятнее всего, вам достаточно будет такой реализации:
@Override
public TabInventorySync getSync() {
    return ((SupportTabs.Container) this.inventorySlots).getSync();
    // GuiContainer#inventorySlots - связанный контейнер
}