Skip to content

Latest commit

 

History

History
76 lines (42 loc) · 2.4 KB

README.md

File metadata and controls

76 lines (42 loc) · 2.4 KB

Chapter 3

注意: 为了更好的展示 Plugin 接口的内容,本章示例代码使用 JKook API 0.48

相信经过前两章的学习,你已经对 JKook 框架有了初步的认识。

现在,让我们回过头来,再看看 Plugin 接口。

当然,也会顺带讲一点与其相关的类。

但是,在此之前,先编译一下示例代码,然后拿着工件去一个 JKook API 的实现跑一下!

注意观察控制台。

跑完之后请打开 code/src/main/java/snw/jkook/example/Main.java 文件,然后我们再详解。


开篇而来的是... getLogger() 方法,老朋友了,第 1 章 就讲过了。不多讲了。

第 1 处。老朋友了,saveDefaultConfig 方法我们已经在 第 2 章 里讲过。也不多讲了。

第 2 处。

Plugin#getDescription 方法返回的是此插件的描述信息对象(即 snw.jkook.plugin.PluginDescription 类的实例)。

其本质上是对 plugin.yml 的封装。


接下来讲点与 IO 有点关系的方法。

第 3 处。

Plugin#getFile 方法返回插件所在的文件对象。

比如你可以借此方法实现一次性插件???

这个想法很奇怪。我也不知道为什么我会想到这个。

public class Main extends BasePlugin {
    @Override
    public void onEnable() {
        getFile().deleteOnExit();
    }
}

第 4 处。

Plugin#getResource 方法尝试从插件所在的文件对象中获取一个指定的资源的输入流。

其本质是对 ClassLoader#getResource 方法的二次封装。

你可以通过此方法配合 IO 流实现从插件文件中读取数据,从而让一些数据不需要在代码中硬编码。

第 5 处。

Plugin#saveResource 方法是对 Plugin#getResource 方法的又一层包装。

此方法可以让你将插件文件中的数据文件"解压"到插件的数据文件夹。

第 6 处。

Plugin#getDataFolder 方法可以让你获得插件数据文件夹的文件对象。

在 KookBC 中,插件数据文件夹一般在 KookBC 所在的目录下的 plugins 目录中,以插件 plugin.ymlname 项的值命名。

若你的插件数据需要保存,则请保存在这个文件夹下。


其实还有少数几个方法未详解,但因为不常用,故不作详细讲解了,可以自行翻阅 Javadoc 。

  • 我也不能什么都讲,有一些东西需要自己探索。