org.bukkit.plugin.java
Class JavaPlugin

java.lang.Object
  extended by org.bukkit.plugin.PluginBase
      extended by org.bukkit.plugin.java.JavaPlugin
All Implemented Interfaces:
CommandExecutor, TabCompleter, TabExecutor, Plugin

public abstract class JavaPlugin
extends PluginBase

Represents a Java plugin


Constructor Summary
  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.

 
Method Summary
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>
T
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()
           
 
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
 

Constructor Detail

JavaPlugin

public JavaPlugin()

JavaPlugin

@Deprecated
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.


JavaPlugin

protected JavaPlugin(JavaPluginLoader loader,
                     PluginDescriptionFile description,
                     File dataFolder,
                     File file)
Method Detail

getDataFolder

public final File getDataFolder()
Returns the folder that the plugin data's files are located in. The folder may not yet exist.

Returns:
The folder.

getPluginLoader

public final PluginLoader getPluginLoader()
Gets the associated PluginLoader responsible for this plugin

Returns:
PluginLoader that controls this plugin

getServer

public final Server getServer()
Returns the Server instance currently running this plugin

Returns:
Server running this plugin

isEnabled

public final boolean isEnabled()
Returns a value indicating whether or not this plugin is currently enabled

Returns:
true if this plugin is enabled, otherwise false

getFile

protected File getFile()
Returns the file which contains this plugin

Returns:
File containing this plugin

getDescription

public final PluginDescriptionFile getDescription()
Returns the plugin.yaml file containing the details for this plugin

Returns:
Contents of the plugin.yaml file

getConfig

public FileConfiguration getConfig()
Description copied from interface: Plugin
Gets a 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.

Returns:
Plugin configuration

getTextResource

protected final Reader getTextResource(String file)
Provides a reader for a text file located inside the jar. The behavior of this method adheres to PluginAwareness.Flags#UTF8, or if not defined, uses UTF8 if FileConfiguration.UTF8_OVERRIDE is specified, or system default otherwise.

Parameters:
file - the filename of the resource to load
Returns:
null if getResource(String) returns null
Throws:
IllegalArgumentException - if file is null
See Also:
ClassLoader.getResourceAsStream(String)

reloadConfig

public void reloadConfig()
Description copied from interface: Plugin
Discards any data in Plugin.getConfig() and reloads from disk.


saveConfig

public void saveConfig()
Description copied from interface: Plugin
Saves the FileConfiguration retrievable by Plugin.getConfig().


saveDefaultConfig

public void saveDefaultConfig()
Description copied from interface: Plugin
Saves the raw contents of the default config.yml file to the location retrievable by 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.


saveResource

public void saveResource(String resourcePath,
                         boolean replace)
Description copied from interface: Plugin
Saves the raw contents of any resource embedded with a plugin's .jar file assuming it can be found using Plugin.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

public InputStream getResource(String filename)
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

protected final ClassLoader getClassLoader()
Returns the ClassLoader which holds this plugin

Returns:
ClassLoader holding this plugin

setEnabled

protected final void setEnabled(boolean enabled)
Sets the enabled state of this plugin

Parameters:
enabled - true if enabled, otherwise false

initialize

@Deprecated
protected final 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).


getDatabaseClasses

public List<Class<?>> getDatabaseClasses()
Provides a list of all classes that should be persisted in the database

Returns:
List of Classes that are Ebeans

isInitialized

@Deprecated
public final boolean isInitialized()
Deprecated. This method cannot return false, as JavaPlugin is now initialized in the constructor.

Gets the initialization status of this plugin

Returns:
true if this plugin is initialized, otherwise false

onCommand

public boolean onCommand(CommandSender sender,
                         Command command,
                         String label,
                         String[] args)
Executes the given command, returning its success

Parameters:
sender - Source of the command
command - Command which was executed
label - Alias of the command which was used
args - Passed command arguments
Returns:
true if a valid command, otherwise false

onTabComplete

public 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
command - Command which was executed
alias - The alias used
args - The arguments passed to the command, including final partial argument to be completed and command label
Returns:
A List of possible completions for the final argument, or null to default to the command executor

getCommand

public PluginCommand getCommand(String name)
Gets the command with the given name, specific to this plugin. Commands need to be registered in the PluginDescriptionFile to exist at runtime.

Parameters:
name - name or alias of the command
Returns:
the plugin command if found, otherwise null

onLoad

public void onLoad()
Description copied from interface: Plugin
Called after a plugin is loaded but before it has been enabled.

When mulitple 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

public ChunkGenerator getDefaultWorldGenerator(String worldName,
                                               String id)
Description copied from interface: Plugin
Gets a ChunkGenerator for use in a default world, as specified in the server configuration

Parameters:
worldName - Name of the world that this will be applied to
id - Unique ID, if any, that was specified to indicate which generator was requested
Returns:
ChunkGenerator 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?

getDatabase

public com.avaje.ebean.EbeanServer getDatabase()
Description copied from interface: Plugin
Gets the 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

Returns:
ebean server instance or null if not enabled

installDDL

protected void installDDL()

removeDDL

protected void removeDDL()

getLogger

public final Logger 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

public String toString()
Overrides:
toString in class Object

getPlugin

public static <T extends JavaPlugin> T 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.

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.

Parameters:
clazz - the class desired
Returns:
the plugin that provides and implements said class
Throws:
IllegalArgumentException - if clazz is null
IllegalArgumentException - 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 JavaPlugin
ClassCastException - if plugin that provided the class does not extend the class

getProvidingPlugin

public static JavaPlugin getProvidingPlugin(Class<?> clazz)
This method provides fast access to the plugin that has provided the given class.

Throws:
IllegalArgumentException - if the class is not provided by a JavaPlugin
IllegalArgumentException - if class is null
IllegalStateException - if called from the static initializer for given JavaPlugin


Copyright © 2014. All rights reserved.