Class MenuRegistry

java.lang.Object
dev.architectury.registry.menu.MenuRegistry

public final class MenuRegistry extends Object
A utility class to register MenuTypes and Screens for containers
  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Class
    Description
    static interface 
    MenuRegistry.ExtendedMenuTypeFactory<T extends net.minecraft.world.inventory.AbstractContainerMenu>
    Creates extended menus.
    static interface 
    MenuRegistry.ScreenFactory<H extends net.minecraft.world.inventory.AbstractContainerMenu,S extends net.minecraft.client.gui.screens.Screen & net.minecraft.client.gui.screens.inventory.MenuAccess<H>>
    Creates new screens.
    static interface 
    MenuRegistry.SimpleMenuTypeFactory<T extends net.minecraft.world.inventory.AbstractContainerMenu>
    Deprecated, for removal: This API element is subject to removal in a future version.
  • Method Summary

    Modifier and Type
    Method
    Description
    static <T extends net.minecraft.world.inventory.AbstractContainerMenu>
    net.minecraft.world.inventory.MenuType<T>
    Deprecated, for removal: This API element is subject to removal in a future version.
    Use the constructor directly.
    static <T extends net.minecraft.world.inventory.AbstractContainerMenu>
    net.minecraft.world.inventory.MenuType<T>
    Creates a extended MenuType.
    static void
    openExtendedMenu(net.minecraft.server.level.ServerPlayer player, ExtendedMenuProvider provider)
    Opens the menu.
    static void
    openExtendedMenu(net.minecraft.server.level.ServerPlayer player, net.minecraft.world.MenuProvider provider, Consumer<net.minecraft.network.FriendlyByteBuf> bufWriter)
    Opens the menu.
    static void
    openMenu(net.minecraft.server.level.ServerPlayer player, net.minecraft.world.MenuProvider provider)
    Opens the menu.
    static <H extends net.minecraft.world.inventory.AbstractContainerMenu, S extends net.minecraft.client.gui.screens.Screen & net.minecraft.client.gui.screens.inventory.MenuAccess<H>>
    void
    registerScreenFactory(net.minecraft.world.inventory.MenuType<? extends H> type, MenuRegistry.ScreenFactory<H,S> factory)
    Registers a Screen Factory on the client to display.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Method Details

    • openExtendedMenu

      public static void openExtendedMenu(net.minecraft.server.level.ServerPlayer player, net.minecraft.world.MenuProvider provider, Consumer<net.minecraft.network.FriendlyByteBuf> bufWriter)
      Opens the menu.
      Parameters:
      player - The player affected
      provider - The MenuProvider that provides the menu
      bufWriter - That writer that sends extra data for MenuType created with ofExtended(ExtendedMenuTypeFactory)
    • openExtendedMenu

      public static void openExtendedMenu(net.minecraft.server.level.ServerPlayer player, ExtendedMenuProvider provider)
      Opens the menu.
      Parameters:
      player - The player affected
      provider - The ExtendedMenuProvider that provides the menu
    • openMenu

      public static void openMenu(net.minecraft.server.level.ServerPlayer player, net.minecraft.world.MenuProvider provider)
      Opens the menu.
      Parameters:
      player - The player affected
      provider - The MenuProvider that provides the menu
    • of

      @Deprecated(forRemoval=true) public static <T extends net.minecraft.world.inventory.AbstractContainerMenu> net.minecraft.world.inventory.MenuType<T> of(MenuRegistry.SimpleMenuTypeFactory<T> factory)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Use the constructor directly.
      Creates a simple MenuType.
      Type Parameters:
      T - The type of AbstractContainerMenu that handles the logic for the MenuType
      Parameters:
      factory - A functional interface to create the MenuType from an id (Integer) and inventory
      Returns:
      The MenuType for your AbstractContainerMenu
    • ofExtended

      public static <T extends net.minecraft.world.inventory.AbstractContainerMenu> net.minecraft.world.inventory.MenuType<T> ofExtended(MenuRegistry.ExtendedMenuTypeFactory<T> factory)
      Creates a extended MenuType.
      Type Parameters:
      T - The type of AbstractContainerMenu that handles the logic for the MenuType
      Parameters:
      factory - A functional interface to create the MenuType from an id (Integer), Inventory, and FriendlyByteBuf
      Returns:
      The MenuType for your AbstractContainerMenu
    • registerScreenFactory

      @Environment(CLIENT) public static <H extends net.minecraft.world.inventory.AbstractContainerMenu, S extends net.minecraft.client.gui.screens.Screen & net.minecraft.client.gui.screens.inventory.MenuAccess<H>> void registerScreenFactory(net.minecraft.world.inventory.MenuType<? extends H> type, MenuRegistry.ScreenFactory<H,S> factory)
      Registers a Screen Factory on the client to display.
      Type Parameters:
      H - The type of AbstractContainerMenu for the screen
      S - The type for the Screen
      Parameters:
      type - The MenuType the screen visualizes
      factory - A functional interface that is used to create new Screens