Class RubricGui

java.lang.Object
com.oliveryasuna.mc.rubric.neoforge.gui.RubricGui

public final class RubricGui extends Object
  • Method Details

    • registerScreen

      public static void registerScreen(com.oliveryasuna.mc.rubric.core.ConfigManager<?> manager)
      Registers a manager, defaulting its ModMenu mod ID to manager.getSchema().id(). Equivalent to registerScreen(manager.getSchema().id(), manager).
    • registerScreen

      public static void registerScreen(String modId, com.oliveryasuna.mc.rubric.core.ConfigManager<?> manager)
      Registers a manager explicitly under modId. The mod ID groups multiple managers under one ModMenu entry: if a single mod owns more than one config, register each here with the same modId and the ModMenu integration will show a chooser sub-screen instead of dropping all but one.
    • unregisterScreen

      public static void unregisterScreen(com.oliveryasuna.mc.rubric.core.ConfigManager<?> manager)
    • unregisterScreen

      public static void unregisterScreen(String schemaId)
    • getScreen

      public static Optional<com.oliveryasuna.mc.rubric.core.ConfigManager<?>> getScreen(String schemaId)
    • registeredScreens

      public static Collection<com.oliveryasuna.mc.rubric.core.ConfigManager<?>> registeredScreens()
    • modIdOf

      public static String modIdOf(com.oliveryasuna.mc.rubric.core.ConfigManager<?> manager)
      Returns:
      The mod ID under which manager is registered, or the schema id if it was registered with the no-modId overload.
    • screensByModId

      public static Map<String,List<com.oliveryasuna.mc.rubric.core.ConfigManager<?>>> screensByModId()
      Groups every registered manager by its ModMenu mod ID. Insertion-ordered within each bucket so chooser entries stay stable across game restarts.
    • openFor

      public static net.minecraft.client.gui.screens.Screen openFor(net.minecraft.client.Minecraft client, net.minecraft.client.gui.screens.Screen parent, com.oliveryasuna.mc.rubric.core.ConfigManager<?> manager)
      Opens the GUI for manager, falling back to a NoFrontendScreen placeholder when no ScreenProvider is registered (e.g., YACL absent). Never returns null or throws — callers can wire this straight into ModMenu / Catalogue screen factories without guarding.

      Selection order: the configured preferred frontend (see setPreferredFrontend(com.oliveryasuna.mc.rubric.loader.config.Frontend)) first; on AUTO or when the pinned frontend isn't installed, fall through AUTO_PRIORITY (YACL, then CLOTH); finally, any other registered provider in registration order.

    • setPreferredFrontend

      public static void setPreferredFrontend(com.oliveryasuna.mc.rubric.loader.config.Frontend preferred)
      Updates the frontend preference consulted by openFor(net.minecraft.client.Minecraft, net.minecraft.client.gui.screens.Screen, com.oliveryasuna.mc.rubric.core.ConfigManager<?>). Called by the Rubric bootstrap after loading RubricConfig.gui.preferredFrontend, and again on every change event for that path.
    • getPreferredFrontend

      public static com.oliveryasuna.mc.rubric.loader.config.Frontend getPreferredFrontend()
    • registerProvider

      public static void registerProvider(ScreenProvider provider)
    • hasProvider

      public static boolean hasProvider()
      Returns:
      true when at least one ScreenProvider (YACL, Cloth Config, etc.) has been registered. Callers that build menu entries should guard on this — opening a config when no provider exists throws from openFor(net.minecraft.client.Minecraft, net.minecraft.client.gui.screens.Screen, com.oliveryasuna.mc.rubric.core.ConfigManager<?>).
    • registerSyncService

      public static void registerSyncService(com.oliveryasuna.mc.rubric.core.ConfigManager<?> manager, com.oliveryasuna.mc.rubric.sync.SyncService syncService)
    • getSyncService

      public static Optional<com.oliveryasuna.mc.rubric.sync.SyncService> getSyncService(com.oliveryasuna.mc.rubric.core.ConfigManager<?> manager)
    • getSyncService

      public static Optional<com.oliveryasuna.mc.rubric.sync.SyncService> getSyncService(String id)