Package io.manebot.plugin
Interface Plugin.Builder
-
- Enclosing interface:
- Plugin
public static interface Plugin.Builder
Plugin instance Builder
-
-
Method Summary
Modifier and Type Method Description default Plugin.Builder
addCommand(java.lang.String label, CommandExecutor executor)
Registers a command to this Plugin.Plugin.Builder
addCommand(java.lang.String label, java.util.function.Function<Plugin.Future,CommandExecutor> function)
Registers a command to this Plugin.default Plugin.Builder
addCommand(java.util.Collection<java.lang.String> labels, CommandExecutor executor)
Registers a command to this Plugin.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.Database
addDatabase(java.lang.String name, java.util.function.Consumer<Database.ModelConstructor> consumer)
Constructs a Database immediately.Plugin.Builder
addListener(EventListener listener)
Registers an event listener to this Plugin.Plugin.Builder
addPlatform(java.util.function.Consumer<Platform.Builder> consumer)
Builds a platform for this Plugin instance.Artifact
getArtifact()
Gets the artifact associated with this Plugin builder.Plugin
getDependency(ManifestIdentifier identifier)
Signals dependency on another Plugin.ElevationDispatcher
getElevation()
Gets the elevation dispatcher instance, if one is provided.Plugin
getPlugin(ManifestIdentifier identifier)
Gets the specified plugin.PluginManager
getPluginManager()
Gets the plugin manager associated with this Plugin builder.PluginProperty
getProperty(java.lang.String name)
Gets a plugin property.Plugin.Builder
onDepend(java.util.function.Consumer<Plugin> pluginConsumer)
Adds an event listener that is fired when a plugin depends on this plugin.Plugin.Builder
onDisable(Plugin.PluginFunction function)
Calls the specified function when the Plugin is enabled.Plugin.Builder
onEnable(Plugin.PluginFunction function)
Calls the specified function when the Plugin is enabled.default ElevationDispatcher
requireElevation()
Gets the elevation dispatcher instance, if one is provided.Plugin
requirePlugin(ManifestIdentifier identifier)
Require that the specified identifier plugin is included, and enabled.<T extends PluginReference>
Plugin.BuildersetInstance(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.Plugin.Builder
setType(PluginType type)
Plugin type
-
-
-
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.
-
getPlugin
Plugin getPlugin(ManifestIdentifier identifier) throws PluginLoadException
Gets the specified plugin.- Parameters:
identifier
- ManifestIdentifier of a plugin to get.- Returns:
- Plugin instance of the required plugin. Plugin.isEnabled() may not return true.
- Throws:
PluginLoadException
-
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 PluginReference> Plugin.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.
-
setType
Plugin.Builder setType(PluginType type)
Plugin type- Parameters:
type
- type- Returns:
- Builder 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.
-
-