Class ExtensionLoader

java.lang.Object
net.joseplay.allianceutils.api.extensions.ExtensionLoader

public class ExtensionLoader extends Object
Responsible for dynamically loading, unloading, and managing Alliance extensions from JAR files.

This class handles classloading, lifecycle invocation, resource parsing (extension.yml), and cleanup operations.

  • Field Details

    • folder

      public final File folder
      Directory where extension JARs are stored.
  • Constructor Details

    • ExtensionLoader

      public ExtensionLoader(Allianceutils mainPlugin)
  • Method Details

    • loadExtensions

      public void loadExtensions()
      Loads all extensions found in the extensions directory.
    • getExtensionContainer

      public ExtensionContainer getExtensionContainer(File jar)
      Parses an extension JAR and creates its container without enabling it.
      Parameters:
      jar - extension file
      Returns:
      ExtensionContainer or null if invalid
    • loadExtension

      public void loadExtension(File jar)
    • loadExtension

      public void loadExtension(File jar, Consumer<ExtensionContainer> action)
      Loads and enables an extension from a JAR file.
    • loadExtension

      public void loadExtension(ExtensionContainer container, Consumer<ExtensionContainer> action)
    • disableExtensions

      public void disableExtensions()
      Disables and unloads all extensions.
    • reloadExtension

      public void reloadExtension(String name)
    • reloadExtension

      public void reloadExtension(String name, Consumer<ExtensionContainer> action)
      Reloads a specific extension by name.
    • unloadExtension

      public void unloadExtension(String name)
    • unloadExtension

      public void unloadExtension(String name, Consumer<ExtensionContainer> action)
    • unloadExtension

      public void unloadExtension(ExtensionContainer container, Consumer<ExtensionContainer> action)
    • unloadExtension

      public void unloadExtension(ExtensionContainer container, Consumer<ExtensionContainer> action, boolean onDisabled)
    • loadExtensionByName

      public void loadExtensionByName(String name)
    • loadExtensionByName

      public void loadExtensionByName(String name, Consumer<ExtensionContainer> action)
    • getActiveExtensions

      public List<String> getActiveExtensions()
      Returns the list of currently active extensions.
    • getActiveExtensionsAsSingleLine

      public net.md_5.bungee.api.chat.TextComponent getActiveExtensionsAsSingleLine()
      Builds a formatted TextComponent listing active extensions with hoverable metadata.
    • getRegistry

      public ExtensionRegistry getRegistry()