Package org.bukkit.plugin

# 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 Summary

Modifier and Type
Method
Description
`default net.kyori.adventure.text.logger.slf4j.ComponentLogger`
`getComponentLogger()`
`@NotNull FileConfiguration`
`getConfig()`
Gets a `FileConfiguration` for this plugin, read through "config.yml"
`@NotNull File`
`getDataFolder()`
Returns the folder that the plugin data's files are located in.
`@Nullable BiomeProvider`
`getDefaultBiomeProvider(@NotNull String worldName, @Nullable String id)`
Gets a `BiomeProvider` for use in a default world, as specified in the server configuration
`@Nullable ChunkGenerator`
`getDefaultWorldGenerator(@NotNull String worldName, @Nullable String id)`
Gets a `ChunkGenerator` for use in a default world, as specified in the server configuration
`@NotNull PluginDescriptionFile`
`getDescription()`
Returns the plugin.yaml file containing the details for this plugin
`default org.apache.logging.log4j.Logger`
`getLog4JLogger()`
Deprecated.
use `getSLF4JLogger()`
`@NotNull Logger`
`getLogger()`
Returns the plugin logger associated with this server's logger.
`@NotNull String`
`getName()`
Returns the name of the plugin.
`@NotNull PluginLoader`
`getPluginLoader()`
Gets the associated PluginLoader responsible for this plugin
`@Nullable InputStream`
`getResource(@NotNull String filename)`
Gets an embedded resource in this plugin
`@NotNull Server`
`getServer()`
Returns the Server instance currently running this plugin
`default org.slf4j.Logger`
`getSLF4JLogger()`
`boolean`
`isEnabled()`
Returns a value indicating whether or not this plugin is currently enabled
`boolean`
`isNaggable()`
Simple boolean if we can still nag to the logs about things
`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.
`void`
`reloadConfig()`
Discards any data in `getConfig()` and reloads from disk.
`void`
`saveConfig()`
Saves the `FileConfiguration` retrievable by `getConfig()`.
`void`
`saveDefaultConfig()`
Saves the raw contents of the default config.yml file to the location retrievable by `getConfig()`.
`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)`.
`void`
`setNaggable(boolean canNag)`
Set naggable state

### Methods inherited from interface org.bukkit.command.CommandExecutor

`onCommand`

### Methods inherited from interface org.bukkit.command.TabCompleter

`onTabComplete`

## Method Details

### getDataFolder

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

@NotNull @NotNull PluginDescriptionFile getDescription()
Returns the plugin.yaml file containing the details for this plugin

Returns:
  Contents of the plugin.yaml file

### getConfig

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

@Nullable @Nullable InputStream getResource(@NotNull @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 @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 @NotNull PluginLoader getPluginLoader()
Gets the associated PluginLoader responsible for this plugin

Returns:
  PluginLoader that controls this plugin

### getServer

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

### getDefaultBiomeProvider

@Nullable @Nullable BiomeProvider getDefaultBiomeProvider(@NotNull @NotNull String worldName, @Nullable @Nullable String id)
Gets a `BiomeProvider` 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 biome provider was requested
Returns:
  BiomeProvider for use in the default world generation

### getLogger

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

### getComponentLogger

@NotNull default net.kyori.adventure.text.logger.slf4j.ComponentLogger getComponentLogger()

### getSLF4JLogger

@NotNull default org.slf4j.Logger getSLF4JLogger()

### getLog4JLogger

@Deprecated @NotNull default org.apache.logging.log4j.Logger getLog4JLogger()
Deprecated.
use `getSLF4JLogger()`

### getName

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