Class JSPluginLoader

java.lang.Object
cn.nukkit.plugin.JSPluginLoader
All Implemented Interfaces:
PluginLoader

@PowerNukkitXOnly @Since("1.6.0.0-PNX") public class JSPluginLoader extends Object implements PluginLoader
  • Field Details

    • server

      public final Server server
  • Constructor Details

    • JSPluginLoader

      public JSPluginLoader(Server server)
  • Method Details

    • loadPlugin

      public Plugin loadPlugin(String filename) throws Exception
      Description copied from interface: PluginLoader
      通过文件名字的字符串,来加载和初始化一个插件。
      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.

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

      public Plugin loadPlugin(File file) throws Exception
      Description copied from interface: PluginLoader
      通过插件的 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.

      Specified by:
      loadPlugin in interface PluginLoader
      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.
      See Also:
    • getPluginDescription

      public PluginDescription getPluginDescription(String filename)
      Description copied from interface: PluginLoader
      通过插件文件名的字符串,来获得描述这个插件的 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.

      Specified by:
      getPluginDescription in interface PluginLoader
      Parameters:
      filename - 这个插件的文件名字。
      A string of its file name.
      Returns:
      描述这个插件的 PluginDescription对象。
      A PluginDescription object describes the plugin.
      See Also:
    • getPluginDescription

      public PluginDescription getPluginDescription(File file)
      Description copied from interface: PluginLoader
      通过插件的 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.

      Specified by:
      getPluginDescription in interface PluginLoader
      Parameters:
      file - 这个插件的文件的 File对象。
      A File object for this plugin.
      Returns:
      描述这个插件的 PluginDescription对象。
      A PluginDescription object describes the plugin.
      See Also:
    • getPluginFilters

      public Pattern[] getPluginFilters()
      Description copied from interface: PluginLoader
      返回这个插件加载器支持的文件类型。
      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$")};
            }
       
      Specified by:
      getPluginFilters in interface PluginLoader
      Returns:
      表达这个插件加载器支持的文件类型的正则表达式数组。
      An array of regular expressions, that describes what kind of file this plugin loader supports.
    • enablePlugin

      public void enablePlugin(Plugin plugin)
      Description copied from interface: PluginLoader
      启用一个插件。
      Enables a plugin.
      Specified by:
      enablePlugin in interface PluginLoader
      Parameters:
      plugin - 要被启用的插件。
      The plugin to enable.
      See Also:
    • disablePlugin

      public void disablePlugin(Plugin plugin)
      Description copied from interface: PluginLoader
      停用一个插件。
      Disables a plugin.
      Specified by:
      disablePlugin in interface PluginLoader
      Parameters:
      plugin - 要被停用的插件。
      The plugin to disable.
      See Also: