Interface Plugin

All Superinterfaces:
CommandExecutor, TabCompleter, TabExecutor
All Known Implementing Classes:
JavaPlugin, PluginBase

public interface Plugin
extends TabExecutor
Represents a Plugin

The use of PluginBase is recommended for actual Implementation

  • Method Details

    • getDataFolder

      java.io.File getDataFolder()
      Returns the folder that the plugin data's files are located in. The folder may not yet exist.
      Returns:
      The folder
    • getDescription

      PluginDescriptionFile getDescription()
      Returns the plugin.yaml file containing the details for this plugin
      Returns:
      Contents of the plugin.yaml file
    • getConfig

      FileConfiguration getConfig()
      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
    • getResource

      java.io.InputStream getResource​(java.lang.String filename)
      Gets an embedded resource in this plugin
      Parameters:
      filename - Filename of the resource
      Returns:
      File if found, otherwise null
    • saveConfig

      void saveConfig()
      Saves the FileConfiguration retrievable by getConfig().
    • saveDefaultConfig

      void saveDefaultConfig()
      Saves the raw contents of the default config.yml file to the location retrievable by 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

      void saveResource​(java.lang.String resourcePath, boolean replace)
      Saves the raw contents of any resource embedded with a plugin's .jar file assuming it can be found using 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.
      Throws:
      java.lang.IllegalArgumentException - if the resource path is null, empty, or points to a nonexistent resource.
    • reloadConfig

      void reloadConfig()
      Discards any data in getConfig() and reloads from disk.
    • getPluginLoader

      PluginLoader getPluginLoader()
      Gets the associated PluginLoader responsible for this plugin
      Returns:
      PluginLoader that controls this plugin
    • getServer

      Server getServer()
      Returns the Server instance currently running this plugin
      Returns:
      Server running this plugin
    • isEnabled

      boolean isEnabled()
      Returns a value indicating whether or not this plugin is currently enabled
      Returns:
      true if this plugin is enabled, otherwise false
    • onDisable

      void onDisable()
      Called when this plugin is disabled
    • onLoad

      void onLoad()
      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.

    • onEnable

      void onEnable()
      Called when this plugin is enabled
    • isNaggable

      boolean isNaggable()
      Simple boolean if we can still nag to the logs about things
      Returns:
      boolean whether we can nag
    • setNaggable

      void setNaggable​(boolean canNag)
      Set naggable state
      Parameters:
      canNag - is this plugin still naggable?
    • getDatabase

      com.avaje.ebean.EbeanServer getDatabase()
      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
    • getDefaultWorldGenerator

      ChunkGenerator getDefaultWorldGenerator​(java.lang.String worldName, java.lang.String id)
      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
    • getLogger

      java.util.logging.Logger getLogger()
      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
    • getName

      java.lang.String getName()
      Returns the name of the plugin.

      This should return the bare name of the plugin and should be used for comparison.

      Returns:
      name of the plugin