Package io.manebot.plugin
Interface Plugin.Builder
-
- Enclosing interface:
- Plugin
public static interface Plugin.BuilderPlugin instance Builder
-
-
Method Summary
Modifier and Type Method Description default Plugin.BuilderaddCommand(java.lang.String label, CommandExecutor executor)Registers a command to this Plugin.Plugin.BuilderaddCommand(java.lang.String label, java.util.function.Function<Plugin.Future,CommandExecutor> function)Registers a command to this Plugin.default Plugin.BuilderaddCommand(java.util.Collection<java.lang.String> labels, CommandExecutor executor)Registers a command to this Plugin.default Plugin.BuilderaddCommand(java.util.Collection<java.lang.String> labels, java.util.function.Function<Plugin.Future,CommandExecutor> function)Registers a command to this Plugin.DatabaseaddDatabase(java.lang.String name, java.util.function.Consumer<Database.ModelConstructor> consumer)Constructs a Database immediately.Plugin.BuilderaddListener(EventListener listener)Registers an event listener to this Plugin.Plugin.BuilderaddPlatform(java.util.function.Consumer<Platform.Builder> consumer)Builds a platform for this Plugin instance.ArtifactgetArtifact()Gets the artifact associated with this Plugin builder.PlugingetDependency(ManifestIdentifier identifier)Signals dependency on another Plugin.ElevationDispatchergetElevation()Gets the elevation dispatcher instance, if one is provided.PlugingetPlugin(ManifestIdentifier identifier)Gets the specified plugin.PluginManagergetPluginManager()Gets the plugin manager associated with this Plugin builder.PluginPropertygetProperty(java.lang.String name)Gets a plugin property.Plugin.BuilderonDepend(java.util.function.Consumer<Plugin> pluginConsumer)Adds an event listener that is fired when a plugin depends on this plugin.Plugin.BuilderonDisable(Plugin.PluginFunction function)Calls the specified function when the Plugin is enabled.Plugin.BuilderonEnable(Plugin.PluginFunction function)Calls the specified function when the Plugin is enabled.default ElevationDispatcherrequireElevation()Gets the elevation dispatcher instance, if one is provided.PluginrequirePlugin(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.BuildersetType(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.
-
-