Interface PluginLoader

All Known Implementing Classes:
JavaPluginLoader

public interface PluginLoader
Represents a plugin loader, which handles direct access to specific types of plugins
  • Method Details

    • loadPlugin

      Loads the plugin contained in the specified file
      Parameters:
      file - File to attempt to load
      Returns:
      Plugin that was contained in the specified file, or null if unsuccessful
      Throws:
      InvalidPluginException - Thrown when the specified file is not a plugin
      UnknownDependencyException - If a required dependency could not be found
    • getPluginDescription

      Loads a PluginDescriptionFile from the specified file
      Parameters:
      file - File to attempt to load from
      Returns:
      A new PluginDescriptionFile loaded from the plugin.yml in the specified file
      Throws:
      InvalidDescriptionException - If the plugin description file could not be created
    • getPluginFileFilters

      @NotNull @NotNull Pattern[] getPluginFileFilters()
      Returns a list of all filename filters expected by this PluginLoader
      Returns:
      The filters
    • createRegisteredListeners

      @NotNull @NotNull Map<Class<? extends Event>,​Set<RegisteredListener>> createRegisteredListeners(@NotNull @NotNull Listener listener, @NotNull @NotNull Plugin plugin)
      Creates and returns registered listeners for the event classes used in this listener
      Parameters:
      listener - The object that will handle the eventual call back
      plugin - The plugin to use when creating registered listeners
      Returns:
      The registered listeners.
    • enablePlugin

      void enablePlugin(@NotNull @NotNull Plugin plugin)
      Enables the specified plugin

      Attempting to enable a plugin that is already enabled will have no effect

      Parameters:
      plugin - Plugin to enable
    • disablePlugin

      void disablePlugin(@NotNull @NotNull Plugin plugin)
      Disables the specified plugin

      Attempting to disable a plugin that is not enabled will have no effect

      Parameters:
      plugin - Plugin to disable
    • disablePlugin

      default void disablePlugin(@NotNull @NotNull Plugin plugin, boolean closeClassloader)
      Disables the specified plugin

      Attempting to disable a plugin that is not enabled will have no effect

      Parameters:
      plugin - Plugin to disable
      closeClassloader - if the classloader for the Plugin should be closed