Class JavaPlugin
- All Implemented Interfaces:
LifecycleEventOwner
,CommandExecutor
,TabCompleter
,TabExecutor
,Plugin
Plugin
.-
Constructor Summary
ConstructorsModifierConstructorDescriptionprotected
JavaPlugin
(JavaPluginLoader loader, PluginDescriptionFile description, File dataFolder, File file) Deprecated, for removal: This API element is subject to removal in a future version. -
Method Summary
Modifier and TypeMethodDescriptionprotected final ClassLoader
Returns the ClassLoader which holds this plugingetCommand
(String name) Gets the command with the given name, specific to this plugin.Gets aFileConfiguration
for this plugin, read through "config.yml"final File
Returns the folder that the plugin data files are located in.getDefaultBiomeProvider
(String worldName, @Nullable String id) Gets aBiomeProvider
for use in a default world, as specified in the server configurationgetDefaultWorldGenerator
(String worldName, @Nullable String id) Gets aChunkGenerator
for use in a default world, as specified in the server configurationfinal PluginDescriptionFile
Deprecated.No longer applicable to all types of pluginsprotected File
getFile()
Returns the file which contains this pluginfinal LifecycleEventManager
<Plugin> Get the lifecycle event manager for registering handlers for lifecycle events allowed on thePlugin
.Returns the plugin logger associated with this server's logger.static <T extends JavaPlugin>
TThis method provides fast access to the plugin that hasprovided
the given plugin class, which is usually the plugin that implemented it.final PluginLoader
Deprecated, for removal: This API element is subject to removal in a future version.Plugin loading now occurs at a point which makes it impossible to expose this behavior.final PluginMeta
Gets the plugin meta for this plugin.static JavaPlugin
getProvidingPlugin
(Class<?> clazz) This method provides fast access to the plugin that has provided the given class.getResource
(String filename) Gets an embedded resource in this pluginfinal Server
Returns the Server instance currently running this plugingetTextResource
(String file) Provides a reader for a text file located inside the jar.final void
init
(PluginLoader loader, Server server, PluginDescriptionFile description, File dataFolder, File file, ClassLoader classLoader) final void
init
(Server server, PluginDescriptionFile description, File dataFolder, File file, ClassLoader classLoader, @Nullable PluginMeta configuration, Logger logger) final boolean
Returns a value indicating whether this plugin is currently enabledfinal boolean
Simple boolean if we can still nag to the logs about thingsboolean
onCommand
(CommandSender sender, Command command, String label, String[] args) Executes the given command, returning its success.void
Called when this plugin is disabledvoid
onEnable()
Called when this plugin is enabledvoid
onLoad()
Called after a plugin is loaded but before it has been enabled.onTabComplete
(CommandSender sender, Command command, String alias, String[] args) Requests a list of possible completions for a command argument.void
registerCommand
(String label, BasicCommand basicCommand) Registers a command for this plugin.void
registerCommand
(String label, @Nullable String description, BasicCommand basicCommand) Registers a command for this plugin.void
registerCommand
(String label, @Nullable String description, Collection<String> aliases, BasicCommand basicCommand) Registers a command for this plugin.void
registerCommand
(String label, Collection<String> aliases, BasicCommand basicCommand) Registers a command for this plugin.void
Discards any data inPlugin.getConfig()
and reloads from disk.void
Saves theFileConfiguration
retrievable byPlugin.getConfig()
.void
Saves the raw contents of the default config.yml file to the location retrievable byPlugin.getConfig()
.void
saveResource
(String resourcePath, boolean replace) Saves the raw contents of any resource embedded with a plugin's .jar file assuming it can be found usingPlugin.getResource(String)
.final void
setEnabled
(boolean enabled) Sets the enabled state of this pluginfinal void
setNaggable
(boolean canNag) Set naggable statetoString()
Methods inherited from class org.bukkit.plugin.PluginBase
equals, getName, hashCode
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
Methods inherited from interface org.bukkit.plugin.Plugin
getComponentLogger, getDataPath, getLog4JLogger, getSLF4JLogger
-
Constructor Details
-
JavaPlugin
public JavaPlugin() -
JavaPlugin
@Deprecated(forRemoval=true) protected JavaPlugin(JavaPluginLoader loader, PluginDescriptionFile description, File dataFolder, File file) Deprecated, for removal: This API element is subject to removal in a future version.
-
-
Method Details
-
getDataFolder
Returns the folder that the plugin data files are located in. The folder may not yet exist.- Returns:
- The folder.
-
getPluginLoader
Deprecated, for removal: This API element is subject to removal in a future version.Plugin loading now occurs at a point which makes it impossible to expose this behavior. This instance will only throw unsupported operation exceptions.Gets the associated PluginLoader responsible for this plugin- Returns:
- PluginLoader that controls this plugin
-
getServer
Returns the Server instance currently running this plugin- Returns:
- Server running this plugin
-
isEnabled
public final boolean isEnabled()Returns a value indicating whether this plugin is currently enabled- Returns:
- true if this plugin is enabled, otherwise false
-
getFile
Returns the file which contains this plugin- Returns:
- File containing this plugin
-
getDescription
Deprecated.No longer applicable to all types of pluginsReturns the plugin.yml file containing the details for this plugin- Returns:
- Contents of the plugin.yml file
- See Also:
-
getPluginMeta
Description copied from interface:Plugin
Gets the plugin meta for this plugin.- Returns:
- configuration
-
getConfig
Description copied from interface:Plugin
Gets aFileConfiguration
for this plugin, read through "config.yml"If there is a default config.yml embedded in this plugin, it will be provided as a default for this Configuration.
- Returns:
- Plugin configuration
-
getTextResource
Provides a reader for a text file located inside the jar.The returned reader will read text with the UTF-8 charset.
- Parameters:
file
- the filename of the resource to load- Returns:
- null if
getResource(String)
returns null - Throws:
IllegalArgumentException
- if file is null- See Also:
-
reloadConfig
public void reloadConfig()Description copied from interface:Plugin
Discards any data inPlugin.getConfig()
and reloads from disk. -
saveConfig
public void saveConfig()Description copied from interface:Plugin
Saves theFileConfiguration
retrievable byPlugin.getConfig()
. -
saveDefaultConfig
public void saveDefaultConfig()Description copied from interface:Plugin
Saves the raw contents of the default config.yml file to the location retrievable byPlugin.getConfig()
.This should fail silently if the config.yml already exists.
-
saveResource
Description copied from interface:Plugin
Saves the raw contents of any resource embedded with a plugin's .jar file assuming it can be found usingPlugin.getResource(String)
.The resource is saved into the plugin's data folder using the same hierarchy as the .jar file (subdirectories are preserved).
- Parameters:
resourcePath
- the embedded resource path to look for within the plugin's .jar file. (No preceding slash).replace
- if true, the embedded resource will overwrite the contents of an existing file.
-
getResource
Description copied from interface:Plugin
Gets an embedded resource in this plugin- Parameters:
filename
- Filename of the resource- Returns:
- File if found, otherwise null
-
getClassLoader
Returns the ClassLoader which holds this plugin- Returns:
- ClassLoader holding this plugin
-
setEnabled
Sets the enabled state of this plugin- Parameters:
enabled
- true if enabled, otherwise false
-
init
public final void init(PluginLoader loader, Server server, PluginDescriptionFile description, File dataFolder, File file, ClassLoader classLoader) -
init
public final void init(Server server, PluginDescriptionFile description, File dataFolder, File file, ClassLoader classLoader, @Nullable PluginMeta configuration, Logger logger) -
onCommand
Executes the given command, returning its success.
If false is returned, then the "usage" plugin.yml entry for this command (if defined) will be sent to the player.- Parameters:
sender
- Source of the commandcommand
- Command which was executedlabel
- Alias of the command which was usedargs
- Passed command arguments- Returns:
- true if a valid command, otherwise false
-
onTabComplete
public @Nullable List<String> onTabComplete(CommandSender sender, Command command, String alias, String[] args) Requests a list of possible completions for a command argument.- Parameters:
sender
- Source of the command. For players tab-completing a command inside of a command block, this will be the player, not the command block.command
- Command which was executedalias
- Alias of the command which was usedargs
- The arguments passed to the command, including final partial argument to be completed- Returns:
- A List of possible completions for the final argument, or null to default to the command executor
-
getCommand
Gets the command with the given name, specific to this plugin. Commands need to be registered in thePluginDescriptionFile
to exist at runtime.- Parameters:
name
- name or alias of the command- Returns:
- the plugin command if found, otherwise null
- Throws:
UnsupportedOperationException
- if this plugin is a paper plugin and the method is called inonEnable()
- See Also:
-
registerCommand
Registers a command for this plugin. Only valid to be called insideonEnable()
.Commands have certain overriding behavior:
- Aliases will not override already existing commands (excluding namespaced ones)
- Aliases are not Brigadier redirects, they just copy the command to a different label
- The main command/namespaced label will override already existing commands
- Parameters:
label
- the label of the to-be-registered commandbasicCommand
- the basic command instance to register- See Also:
-
registerCommand
@Experimental public void registerCommand(String label, @Nullable String description, BasicCommand basicCommand) Registers a command for this plugin. Only valid to be called insideonEnable()
.Commands have certain overriding behavior:
- Aliases will not override already existing commands (excluding namespaced ones)
- Aliases are not Brigadier redirects, they just copy the command to a different label
- The main command/namespaced label will override already existing commands
- Parameters:
label
- the label of the to-be-registered commanddescription
- the help description for the root literal nodebasicCommand
- the basic command instance to register- See Also:
-
registerCommand
@Experimental public void registerCommand(String label, Collection<String> aliases, BasicCommand basicCommand) Registers a command for this plugin. Only valid to be called insideonEnable()
.Commands have certain overriding behavior:
- Aliases will not override already existing commands (excluding namespaced ones)
- Aliases are not Brigadier redirects, they just copy the command to a different label
- The main command/namespaced label will override already existing commands
- Parameters:
label
- the label of the to-be-registered commandaliases
- a collection of aliases to register the basic command under.basicCommand
- the basic command instance to register- See Also:
-
registerCommand
@Experimental public void registerCommand(String label, @Nullable String description, Collection<String> aliases, BasicCommand basicCommand) Registers a command for this plugin. Only valid to be called insideonEnable()
.Commands have certain overriding behavior:
- Aliases will not override already existing commands (excluding namespaced ones)
- Aliases are not Brigadier redirects, they just copy the command to a different label
- The main command/namespaced label will override already existing commands
- Parameters:
label
- the label of the to-be-registered commanddescription
- the help description for the root literal nodealiases
- a collection of aliases to register the basic command under.basicCommand
- the basic command instance to register- See Also:
-
onLoad
public void onLoad()Description copied from interface:Plugin
Called after a plugin is loaded but before it has been enabled.When multiple plugins are loaded, the onLoad() for all plugins is called before any onEnable() is called.
-
onDisable
public void onDisable()Description copied from interface:Plugin
Called when this plugin is disabled -
onEnable
public void onEnable()Description copied from interface:Plugin
Called when this plugin is enabled -
getDefaultWorldGenerator
Description copied from interface:Plugin
Gets aChunkGenerator
for use in a default world, as specified in the server configuration- Parameters:
worldName
- Name of the world that this will be applied toid
- Unique ID, if any, that was specified to indicate which generator was requested- Returns:
- ChunkGenerator for use in the default world generation
-
getDefaultBiomeProvider
Description copied from interface:Plugin
Gets aBiomeProvider
for use in a default world, as specified in the server configuration- Parameters:
worldName
- Name of the world that this will be applied toid
- Unique ID, if any, that was specified to indicate which biome provider was requested- Returns:
- BiomeProvider for use in the default world generation
-
isNaggable
public final boolean isNaggable()Description copied from interface:Plugin
Simple boolean if we can still nag to the logs about things- Returns:
- boolean whether we can nag
-
setNaggable
public final void setNaggable(boolean canNag) Description copied from interface:Plugin
Set naggable state- Parameters:
canNag
- is this plugin still naggable?
-
getLogger
Description copied from interface:Plugin
Returns the plugin logger associated with this server's logger. The returned logger automatically tags all log messages with the plugin's name.- Returns:
- Logger associated with this plugin
-
toString
-
getPlugin
This method provides fast access to the plugin that hasprovided
the given plugin class, which is usually the plugin that implemented it.An exception to this would be if plugin's jar that contained the class does not extend the class, where the intended plugin would have resided in a different jar / classloader.
- Type Parameters:
T
- a class that extends JavaPlugin- Parameters:
clazz
- the class desired- Returns:
- the plugin that provides and implements said class
- Throws:
IllegalArgumentException
- if clazz is nullIllegalArgumentException
- if clazz does not extendJavaPlugin
IllegalStateException
- if clazz was not provided by a plugin, for example, if called withJavaPlugin.getPlugin(JavaPlugin.class)
IllegalStateException
- if called from the static initializer for given JavaPluginClassCastException
- if plugin that provided the class does not extend the class
-
getProvidingPlugin
This method provides fast access to the plugin that has provided the given class.- Parameters:
clazz
- a class belonging to a plugin- Returns:
- the plugin that provided the class
- Throws:
IllegalArgumentException
- if the class is not provided by a JavaPluginIllegalArgumentException
- if class is nullIllegalStateException
- if called from the static initializer for given JavaPlugin
-
getLifecycleManager
Description copied from interface:Plugin
Get the lifecycle event manager for registering handlers for lifecycle events allowed on thePlugin
.- Returns:
- the lifecycle event manager
-