public abstract class JavaPlugin extends PluginBase
Modifier | Constructor and Description |
---|---|
|
JavaPlugin() |
protected |
JavaPlugin(JavaPluginLoader loader,
PluginDescriptionFile description,
File dataFolder,
File file) |
protected |
JavaPlugin(PluginLoader loader,
Server server,
PluginDescriptionFile description,
File dataFolder,
File file)
Deprecated.
This method is intended for unit testing purposes when the
other constructor cannot be used.
Its existence may be temporary. |
Modifier and Type | Method and Description |
---|---|
protected ClassLoader |
getClassLoader()
Returns the ClassLoader which holds this plugin
|
PluginCommand |
getCommand(String name)
Gets the command with the given name, specific to this plugin.
|
FileConfiguration |
getConfig()
Gets a
FileConfiguration for this plugin, read through
"config.yml" |
com.avaje.ebean.EbeanServer |
getDatabase()
Gets the
EbeanServer tied to this plugin. |
List<Class<?>> |
getDatabaseClasses()
Provides a list of all classes that should be persisted in the database
|
File |
getDataFolder()
Returns the folder that the plugin data's files are located in.
|
ChunkGenerator |
getDefaultWorldGenerator(String worldName,
String id)
Gets a
ChunkGenerator for use in a default world, as specified
in the server configuration |
PluginDescriptionFile |
getDescription()
Returns the plugin.yaml file containing the details for this plugin
|
protected File |
getFile()
Returns the file which contains this plugin
|
Logger |
getLogger()
Returns the plugin logger associated with this server's logger.
|
static <T extends JavaPlugin> |
getPlugin(Class<T> clazz)
This method provides fast access to the plugin that has
provided the given plugin class, which is
usually the plugin that implemented it. |
PluginLoader |
getPluginLoader()
Gets the associated PluginLoader responsible for this plugin
|
static JavaPlugin |
getProvidingPlugin(Class<?> clazz)
This method provides fast access to the plugin that has provided the
given class.
|
InputStream |
getResource(String filename)
Gets an embedded resource in this plugin
|
Server |
getServer()
Returns the Server instance currently running this plugin
|
protected Reader |
getTextResource(String file)
Provides a reader for a text file located inside the jar.
|
protected void |
initialize(PluginLoader loader,
Server server,
PluginDescriptionFile description,
File dataFolder,
File file,
ClassLoader classLoader)
Deprecated.
This method is legacy and will be removed - it must be
replaced by the specially provided constructor(s).
|
protected void |
installDDL() |
boolean |
isEnabled()
Returns a value indicating whether or not this plugin is currently
enabled
|
boolean |
isInitialized()
Deprecated.
This method cannot return false, as
JavaPlugin is now initialized in the constructor. |
boolean |
isNaggable()
Simple boolean if we can still nag to the logs about things
|
boolean |
onCommand(CommandSender sender,
Command command,
String label,
String[] args)
Executes the given command, returning its success
|
void |
onDisable()
Called when this plugin is disabled
|
void |
onEnable()
Called when this plugin is enabled
|
void |
onLoad()
Called after a plugin is loaded but before it has been enabled.
|
List<String> |
onTabComplete(CommandSender sender,
Command command,
String alias,
String[] args)
Requests a list of possible completions for a command argument.
|
void |
reloadConfig()
Discards any data in
Plugin.getConfig() and reloads from disk. |
protected void |
removeDDL() |
void |
saveConfig()
Saves the
FileConfiguration retrievable by Plugin.getConfig() . |
void |
saveDefaultConfig()
Saves the raw contents of the default config.yml file to the location
retrievable by
Plugin.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 using
Plugin.getResource(String) . |
protected void |
setEnabled(boolean enabled)
Sets the enabled state of this plugin
|
void |
setNaggable(boolean canNag)
Set naggable state
|
String |
toString() |
equals, getName, hashCode
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
onTabComplete
public JavaPlugin()
@Deprecated protected JavaPlugin(PluginLoader loader, Server server, PluginDescriptionFile description, File dataFolder, File file)
Its existence may be temporary.
loader
- the plugin loaderserver
- the server instancedescription
- the plugin's descriptiondataFolder
- the plugin's data folderfile
- the location of the pluginprotected JavaPlugin(JavaPluginLoader loader, PluginDescriptionFile description, File dataFolder, File file)
public final File getDataFolder()
public final PluginLoader getPluginLoader()
public final Server getServer()
public final boolean isEnabled()
protected File getFile()
public final PluginDescriptionFile getDescription()
public FileConfiguration getConfig()
Plugin
FileConfiguration
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.
protected final Reader getTextResource(String file)
PluginAwareness.Flags#UTF8
, or if not
defined, uses UTF8 if FileConfiguration.UTF8_OVERRIDE
is
specified, or system default otherwise.file
- the filename of the resource to loadgetResource(String)
returns nullIllegalArgumentException
- if file is nullClassLoader.getResourceAsStream(String)
public void reloadConfig()
Plugin
Plugin.getConfig()
and reloads from disk.public void saveConfig()
Plugin
FileConfiguration
retrievable by Plugin.getConfig()
.public void saveDefaultConfig()
Plugin
Plugin.getConfig()
. If there is no default config.yml
embedded in the plugin, an empty config.yml file is saved. This should
fail silently if the config.yml already exists.public void saveResource(String resourcePath, boolean replace)
Plugin
Plugin.getResource(String)
.
The resource is saved into the plugin's data folder using the same hierarchy as the .jar file (subdirectories are preserved).
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.public InputStream getResource(String filename)
Plugin
filename
- Filename of the resourceprotected final ClassLoader getClassLoader()
protected final void setEnabled(boolean enabled)
enabled
- true if enabled, otherwise false@Deprecated protected final void initialize(PluginLoader loader, Server server, PluginDescriptionFile description, File dataFolder, File file, ClassLoader classLoader)
loader
- the plugin loaderserver
- the server instancedescription
- the plugin's descriptiondataFolder
- the plugin's data folderfile
- the location of the pluginclassLoader
- the class loaderpublic List<Class<?>> getDatabaseClasses()
@Deprecated public final boolean isInitialized()
JavaPlugin
is now initialized in the constructor.public boolean onCommand(CommandSender sender, Command command, String label, String[] args)
sender
- Source of the commandcommand
- Command which was executedlabel
- Alias of the command which was usedargs
- Passed command argumentspublic List<String> onTabComplete(CommandSender sender, Command command, String alias, String[] args)
sender
- Source of the commandcommand
- Command which was executedalias
- The alias usedargs
- The arguments passed to the command, including final
partial argument to be completed and command labelpublic PluginCommand getCommand(String name)
PluginDescriptionFile
to exist at runtime.name
- name or alias of the commandpublic void onLoad()
Plugin
When mulitple plugins are loaded, the onLoad() for all plugins is called before any onEnable() is called.
public void onDisable()
Plugin
public void onEnable()
Plugin
public ChunkGenerator getDefaultWorldGenerator(String worldName, String id)
Plugin
ChunkGenerator
for use in a default world, as specified
in the server configurationworldName
- Name of the world that this will be applied toid
- Unique ID, if any, that was specified to indicate which
generator was requestedpublic final boolean isNaggable()
Plugin
public final void setNaggable(boolean canNag)
Plugin
canNag
- is this plugin still naggable?public com.avaje.ebean.EbeanServer getDatabase()
Plugin
EbeanServer
tied to this plugin. This will only be
available if enabled in the PluginDescriptionFile.isDatabaseEnabled()
For more information on the use of Avaje Ebeans ORM, see Avaje Ebeans Documentation
For an example using Ebeans ORM, see Bukkit's Homebukkit Plugin
protected void installDDL()
protected void removeDDL()
public final Logger getLogger()
Plugin
public static <T extends JavaPlugin> T getPlugin(Class<T> clazz)
provided
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.
T
- a class that extends JavaPluginclazz
- the class desiredIllegalArgumentException
- if clazz is nullIllegalArgumentException
- if clazz does not extend JavaPlugin
IllegalStateException
- if clazz was not provided by a plugin,
for example, if called with
JavaPlugin.getPlugin(JavaPlugin.class)
IllegalStateException
- if called from the static initializer for
given JavaPluginClassCastException
- if plugin that provided the class does not
extend the classpublic static JavaPlugin getProvidingPlugin(Class<?> clazz)
clazz
- a class belonging to a pluginIllegalArgumentException
- if the class is not provided by a
JavaPluginIllegalArgumentException
- if class is nullIllegalStateException
- if called from the static initializer for
given JavaPluginCopyright © 2022. All rights reserved.