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

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

      Returns the plugin.yaml file containing the details for this plugin
      Returns:
      Contents of the plugin.yaml file
    • 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

      @Nullable InputStream getResource​(@NotNull 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().

      This should fail silently if the config.yml already exists.

    • saveResource

      void saveResource​(@NotNull 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:
      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

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

      @NotNull 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 multiple 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?
    • getDefaultWorldGenerator

      @Nullable ChunkGenerator getDefaultWorldGenerator​(@NotNull String worldName, @Nullable 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

      @NotNull 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

      @NotNull 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