Skip to content
MyoWiki Myotus · 1.21.1

API Overview

The Myotus public surface centers on:

  • MyotusAPI
  • IMyotusAPI
  • IModRegistrar
  • IConfigRegistrar
  • IModIntegrationManager
  • MyoConfigTab
  • MyoConfigTabContext
  • MyoConfigTabVisibility
  • MyoModCondition
  • ITerminalUpgradeCard
  • TerminalUpgradeHelper
  • TerminalUpgradeStorageKey
  • SafeClass

MyotusAPI exposes the static convenience entry points:

  • MyotusAPI.get()
  • MyotusAPI.isInitialized()
  • MyotusAPI.modRegistrar()
  • MyotusAPI.configRegistrar()
  • MyotusAPI.modIntegrationManager()

The fluent registration helpers live on the service interfaces instead:

  • IMyotusAPI.registerLoadableMod(...)
  • IMyotusAPI.registerConfigTab(...)
  • IModRegistrar.registerLoadableMod(...)
  • IConfigRegistrar.registerTerminalConfigTab(...)
  • IConfigRegistrar.registerTerminalConfigTabs(...)

Register an annotation marker against a mod ID, then query whether it is active at runtime.

Use the item-list annotation set plus @MyotusSubscriber to organize JEI, EMI, and REI registration code behind Myotus-managed loader checks. See Item List Integrations.

Register new tabs for the terminal settings UI with MyoConfigTab, and gate them per terminal host with MyoConfigTabVisibility.

Check whether a registered integration is currently loaded before touching version-specific behavior.

Gate NeoForge data or JSON output on active Myotus integrations with MyoModCondition. See Datagen Conditions.

Author Brigadier nodes with @MyoCommand, @MyoExecute, and @MyoArgument instead of hand-building the tree. See Command System.

On 1.21.1, Myotus adds both the ITerminalUpgradeCard hook and the menu/storage layer behind it. See Terminal Upgrade Cards and Upgrade Storage.

MyotusAPI.modRegistrar()
.registerLoadableMod(MyMarker.class, "examplemod", "[1.0.0,)");
if (MyotusAPI.modIntegrationManager().isLoaded("examplemod")) {
// Safe to run the optional integration branch.
}
  • The API surface is smaller and less fluent.
  • MyotusAPI.get() is the main stable entry point.
  • Registrar interfaces expose the core loadableMod() and terminalConfigTab() methods.
  • MyoConfigTab does not expose per-host visibility rules.
  • There is no MyoModCondition or terminal upgrade API in that line.
  • Adds static convenience methods directly on MyotusAPI
  • Adds fluent aliases on IMyotusAPI, IModRegistrar, and IConfigRegistrar
  • Keeps MyotusAPI.isInitialized() alongside the other static accessors
  • Adds MyoConfigTabContext, MyoConfigTabVisibility, and visibleWhen()
  • Adds MyoModCondition for data conditions
  • Adds ITerminalUpgradeCard, TerminalUpgradeHelper, and persistent upgrade-slot infrastructure

If you target both lines, code to the common behavior first, then branch only where 1.21.1 adds extra capabilities.