Class JavaPlugin

    • Method Detail

      • getDataFolder

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

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

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

        @NotNull
        protected File getFile()
        Returns the file which contains this plugin
        Returns:
        File containing this plugin
      • getDescription

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

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

        public void reloadConfig()
        Description copied from interface: Plugin
        Discards any data in Plugin.getConfig() and reloads from disk.
      • 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().

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

      • saveResource

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

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

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

        public boolean onCommand​(@NotNull
                                 CommandSender sender,
                                 @NotNull
                                 Command command,
                                 @NotNull
                                 String label,
                                 @NotNull
                                 String[] args)
        Executes the given command, returning its success.
        If false is returned, then the "usage" plugin.yml entry for this command (if defined) will be sent to the player.
        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

        @Nullable
        public List<String> onTabComplete​(@NotNull
                                          CommandSender sender,
                                          @NotNull
                                          Command command,
                                          @NotNull
                                          String alias,
                                          @NotNull
                                          String[] args)
        Requests a list of possible completions for a command argument.
        Parameters:
        sender - Source of the command. For players tab-completing a command inside of a command block, this will be the player, not the command block.
        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

        @Nullable
        public PluginCommand getCommand​(@NotNull
                                        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 multiple 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

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

        @NotNull
        public 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
      • getPlugin

        @NotNull
        public static <T extends JavaPlugin> T getPlugin​(@NotNull
                                                         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.

        Type Parameters:
        T - a class that extends JavaPlugin
        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

        @NotNull
        public static JavaPlugin getProvidingPlugin​(@NotNull
                                                    Class<?> clazz)
        This method provides fast access to the plugin that has provided the given class.
        Parameters:
        clazz - a class belonging to a plugin
        Returns:
        the plugin that provided the 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