Interface PluginLoader

All Known Implementing Classes:
JavaPluginLoader, JSPluginLoader

public interface PluginLoader
描述一个插件加载器的接口。
An interface to describe a plugin loader.
Since:
Nukkit 1.0 | Nukkit API 1.0.0
Author:
iNevet(code) @ Nukkit Project, 粉鞋大妈(javadoc) @ Nukkit Project
See Also:
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    停用一个插件。
    Disables a plugin.
    void
    启用一个插件。
    Enables a plugin.
    通过插件的 File对象,来获得描述这个插件的 PluginDescription对象。
    Gets a PluginDescription object describes the plugin by a File object describes the plugin file.
    通过插件文件名的字符串,来获得描述这个插件的 PluginDescription对象。
    Gets a PluginDescription object describes the plugin by its file name.
    返回这个插件加载器支持的文件类型。
    Returns the file types this plugin loader supports.
    通过插件的 File对象,来加载和初始化一个插件。
    Loads and initializes a plugin by a File object describes the file.
    loadPlugin(String filename)
    通过文件名字的字符串,来加载和初始化一个插件。
    Loads and initializes a plugin by its file name.
  • Method Details

    • loadPlugin

      Plugin loadPlugin(String filename) throws Exception
      通过文件名字的字符串,来加载和初始化一个插件。
      Loads and initializes a plugin by its file name.

      这个方法应该设置好插件的相关属性。比如,插件所在的服务器对象,插件的加载器对象,插件的描述对象,插件的数据文件夹。
      Properties for loaded plugin should be set in this method. Such as, the Server object for which this plugin is running in, the PluginLoader object for its loader, and the File object for its data folder.

      如果插件加载失败,这个方法应该返回null,或者抛出异常。
      If the plugin loader does not load this plugin successfully, a null should be returned, or an exception should be thrown.

      Parameters:
      filename - 这个插件的文件名字字符串。
      A string of its file name.
      Returns:
      加载完毕的插件的 Plugin对象。
      The loaded plugin as a Plugin object.
      Throws:
      Exception - 插件加载失败所抛出的异常。
      Thrown when an error occurred.
      Since:
      Nukkit 1.0 | Nukkit API 1.0.0
      See Also:
    • loadPlugin

      Plugin loadPlugin(File file) throws Exception
      通过插件的 File对象,来加载和初始化一个插件。
      Loads and initializes a plugin by a File object describes the file.

      这个方法应该设置好插件的相关属性。比如,插件所在的服务器对象,插件的加载器对象,插件的描述对象,插件的数据文件夹。
      Properties for loaded plugin should be set in this method. Such as, the Server object for which this plugin is running in, the PluginLoader object for its loader, and the File object for its data folder.

      如果插件加载失败,这个方法应该返回null,或者抛出异常。
      If the plugin loader does not load this plugin successfully, a null should be returned, or an exception should be thrown.

      Parameters:
      file - 这个插件的文件的 File对象。
      A File object for this plugin.
      Returns:
      加载完毕的插件的 Plugin对象。
      The loaded plugin as a Plugin object.
      Throws:
      Exception - 插件加载失败所抛出的异常。
      Thrown when an error occurred.
      Since:
      Nukkit 1.0 | Nukkit API 1.0.0
      See Also:
    • getPluginDescription

      PluginDescription getPluginDescription(String filename)
      通过插件文件名的字符串,来获得描述这个插件的 PluginDescription对象。
      Gets a PluginDescription object describes the plugin by its file name.

      如果插件的描述对象获取失败,这个方法应该返回null
      If the plugin loader does not get its description successfully, a null should be returned.

      Parameters:
      filename - 这个插件的文件名字。
      A string of its file name.
      Returns:
      描述这个插件的 PluginDescription对象。
      A PluginDescription object describes the plugin.
      Since:
      Nukkit 1.0 | Nukkit API 1.0.0
      See Also:
    • getPluginDescription

      PluginDescription getPluginDescription(File file)
      通过插件的 File对象,来获得描述这个插件的 PluginDescription对象。
      Gets a PluginDescription object describes the plugin by a File object describes the plugin file.

      如果插件的描述对象获取失败,这个方法应该返回null
      If the plugin loader does not get its description successfully, a null should be returned.

      Parameters:
      file - 这个插件的文件的 File对象。
      A File object for this plugin.
      Returns:
      描述这个插件的 PluginDescription对象。
      A PluginDescription object describes the plugin.
      Since:
      Nukkit 1.0 | Nukkit API 1.0.0
      See Also:
    • getPluginFilters

      Pattern[] getPluginFilters()
      返回这个插件加载器支持的文件类型。
      Returns the file types this plugin loader supports.

      在Nukkit读取所有插件时,插件管理器会查找所有已经安装的插件加载器,通过识别这个插件是否满足下面的条件, 来选择对应的插件加载器。
      When Nukkit is trying to load all its plugins, the plugin manager will look for all installed plugin loader, and choose the correct one by checking if this plugin matches the filters given below.

      举个例子,识别这个文件是否以jar为扩展名,它的正则表达式是:
      For example, to check if this file is has a "jar" extension, the regular expression should be:
      ^.+\\.jar$
      所以只读取jar扩展名的插件加载器,这个函数应该写成:
      So, for a jar-extension-only file plugin loader, this method should be:

                 @Override
            public Pattern[] getPluginFilters() {
                return new Pattern[]{Pattern.compile("^.+\\.jar$")};
            }
       
      Returns:
      表达这个插件加载器支持的文件类型的正则表达式数组。
      An array of regular expressions, that describes what kind of file this plugin loader supports.
      Since:
      Nukkit 1.0 | Nukkit API 1.0.0
    • enablePlugin

      void enablePlugin(Plugin plugin)
      启用一个插件。
      Enables a plugin.
      Parameters:
      plugin - 要被启用的插件。
      The plugin to enable.
      Since:
      Nukkit 1.0 | Nukkit API 1.0.0
      See Also:
    • disablePlugin

      void disablePlugin(Plugin plugin)
      停用一个插件。
      Disables a plugin.
      Parameters:
      plugin - 要被停用的插件。
      The plugin to disable.
      Since:
      Nukkit 1.0 | Nukkit API 1.0.0
      See Also: