Interface Core

All Superinterfaces:
Loadable
All Known Implementing Classes:
Base

public interface Core extends Loadable
Represents the core of a plugin, providing access to various class loaders.

The Core interface extends Loadable, meaning it can be loaded into the system as a plugin entry point. Implementations of this interface typically serve as the foundation of a plugin, offering methods to retrieve loaders for different types of plugin components.

Since plugins may not provide all types of components, these methods return null by default. Plugin developers should override only the methods relevant to their plugin.

See Also:
  • Method Details

    • getWallStates

      default WallStatesPluginLoader getWallStates()
      Returns the loader responsible for managing wall states in the plugin.

      If the plugin does not provide custom wall states, this method returns null.

      Returns:
      an instance of WallStatesPluginLoader or null if not implemented
    • getExecutables

      default ExecutablesPluginLoader getExecutables()
      Returns the loader responsible for managing executable components in the plugin.

      If the plugin does not provide executable components, this method returns null.

      Returns:
      an instance of ExecutablesPluginLoader or null if not implemented
    • getLabyrinthPanels

      default LabyrinthPanelsPluginLoader getLabyrinthPanels()
      Returns the loader responsible for managing labyrinth panel components in the plugin.

      If the plugin does not provide labyrinth panels, this method returns null.

      Returns:
      an instance of LabyrinthPanelsPluginLoader or null if not implemented
    • getName

      @NotNull default @NotNull String getName()
      Returns the name of the plugin.

      The plugin name can be automatically extracted from the ModId annotation using PluginsLoader.getPluginName(Core).

      Returns:
      the plugin name as a String