Interface Plugin.Builder

  • Enclosing interface:
    Plugin

    public static interface Plugin.Builder
    Plugin instance Builder
    • Method Detail

      • getPluginManager

        PluginManager getPluginManager()
        Gets the plugin manager associated with this Plugin builder.
        Returns:
        PluginManager instance.
      • getArtifact

        Artifact getArtifact()
        Gets the artifact associated with this Plugin builder.
        Returns:
        Artifact instance.
      • getDependency

        Plugin getDependency​(ManifestIdentifier identifier)
        Signals dependency on another Plugin. Note that, this does not load a Plugin instance. This only obtains an already-recognized dependent Plugin object.
        Parameters:
        identifier - Manifest identifier.
        Returns:
        Plugin instance.
      • addListener

        Plugin.Builder addListener​(EventListener listener)
        Registers an event listener to this Plugin.
        Parameters:
        listener - event listener to bind.
        Returns:
        Builder instance.
      • getProperty

        PluginProperty getProperty​(java.lang.String name)
        Gets a plugin property.
        Parameters:
        name - property name.
        Returns:
        property instance.
      • requirePlugin

        Plugin requirePlugin​(ManifestIdentifier identifier)
                      throws PluginLoadException
        Require that the specified identifier plugin is included, and enabled.
        Parameters:
        identifier - ManifestIdentifier of a plugin to require.
        Returns:
        Plugin instance of the required plugin. Plugin.isEnabled() should return true.
        Throws:
        PluginLoadException
      • onDepend

        Plugin.Builder onDepend​(java.util.function.Consumer<Plugin> pluginConsumer)
        Adds an event listener that is fired when a plugin depends on this plugin.
        Parameters:
        pluginConsumer - Plugin consumer to fire when a dependency is loaded.
        Returns:
        Builder instance.
      • addCommand

        Plugin.Builder addCommand​(java.lang.String label,
                                  java.util.function.Function<Plugin.Future,​CommandExecutor> function)
        Registers a command to this Plugin.
        Parameters:
        label - global label to assign command to.
        function - CommandExecutor constructor function to bind this label to when a registration is created.
        Returns:
        Builder instance.
      • addCommand

        default Plugin.Builder addCommand​(java.lang.String label,
                                          CommandExecutor executor)
        Registers a command to this Plugin.
        Parameters:
        label - global label to assign command to.
        executor - CommandExecutor to bind this label to.
        Returns:
        Builder instance.
      • addCommand

        default Plugin.Builder addCommand​(java.util.Collection<java.lang.String> labels,
                                          CommandExecutor executor)
        Registers a command to this Plugin.
        Parameters:
        labels - labels to assign this command to.
        executor - CommandExecutor to bind this label to.
        Returns:
        Builder instance.
      • addCommand

        default Plugin.Builder addCommand​(java.util.Collection<java.lang.String> labels,
                                          java.util.function.Function<Plugin.Future,​CommandExecutor> function)
        Registers a command to this Plugin.
        Parameters:
        labels - labels to assign this command to.
        function - CommandExecutor constructor function to bind this label to when a registration is created.
        Returns:
        Builder instance.
      • addPlatform

        Plugin.Builder addPlatform​(java.util.function.Consumer<Platform.Builder> consumer)
        Builds a platform for this Plugin instance.
        Parameters:
        consumer - Platform building consumer.
        Returns:
        Builder instance.
      • setInstance

        <T extends PluginReferencePlugin.Builder setInstance​(java.lang.Class<T> instanceClass,
                                                               java.util.function.Function<Plugin,​T> function)
        Binds the specified class to an instance, which is a simple method of communicating functionality to dependent plugins from another plugin. Instances are defined when a plugin is successfully enabled and has configured other features, such as Platforms.
        Type Parameters:
        T - User-chosen type to bind the instance to.
        Parameters:
        instanceClass - class to bind the reference to.
        function - instantiation function; called upon Plugin initialization.
        Returns:
        Builder instance.
      • onEnable

        Plugin.Builder onEnable​(Plugin.PluginFunction function)
        Calls the specified function when the Plugin is enabled.
        Parameters:
        function - Function to call.
        Returns:
        Builder instance.
      • onDisable

        Plugin.Builder onDisable​(Plugin.PluginFunction function)
        Calls the specified function when the Plugin is enabled.
        Parameters:
        function - Function to call.
        Returns:
        Builder instance.
      • addDatabase

        Database addDatabase​(java.lang.String name,
                             java.util.function.Consumer<Database.ModelConstructor> consumer)
        Constructs a Database immediately.
        Parameters:
        name - Database name.
        consumer - Function used to construct the database parameters.
        Returns:
        Database instance.
      • getElevation

        ElevationDispatcher getElevation()
        Gets the elevation dispatcher instance, if one is provided.
        Returns:
        ElevationDispatcher instance.
      • requireElevation

        default ElevationDispatcher requireElevation()
        Gets the elevation dispatcher instance, if one is provided.
        Returns:
        ElevationDispatcher instance.