Skip to content

Latest commit

 

History

History
115 lines (81 loc) · 3.07 KB

1-2_了解PluginBase.md

File metadata and controls

115 lines (81 loc) · 3.07 KB

第一章 第二节 了解PluginBase

参与编写者: smartcmd,MagicLu550

建议学习时间: 50分钟

学习要点: 了解PluginBase类中的各个方法,以及他们的作用

PluginBase,即插件主类,所有的nk插件的主类都必须继承于此类

里面包含很多方法,不过最常用的也就这3个:

onLoad()插件读取时调用
onEnable()插件开启时调用
onDisable()插件关闭时调用

一个例子:

public class PluginMain extends PluginBase{
    
    @Override
    public void onLoad(){
        //插件读取
    }
    
    @Override
    public void onEnable(){
        //插件启用
    }
    
    @Override
    public void onDisable(){
        //插件关闭
    }
}

一些技巧

很多的操作,例如注册Task,监听器,都需要插件主类对象 然而我们在开发中经常遇到这种情况:如果其他类需要插件主类对象,我们需要怎么实现呢? 这里提供了一种解决方法:

public class PluginMain extends PluginBase {

    private static PluginMain instance;

    @Override
    public void onLoad() {
        //插件读取
    }

    @Override
    public void onEnable() {
        instance = this;
    }

    @Override
    public void onDisable() {
        //插件关闭
    }

    public static PluginMain getInstance() {
        return instance;
    }
}

另外一个类:

public class Listener implements cn.nukkit.Listener{
    @EventHandler
    public void onPlayerJoin(PlayerJoinEvent event){
        PluginMain.getInstance().getLogger().info(event.getPlayer().getName());//用PluginMain的logger输出控制台信息
    }
}

PluginBase类的常用方法:

  1. isEnabled和isDisabled分别是查看插件是否执行过onEnable方法和isDisable方法,插件状态为isEnabled时,方可进行注册监听器等操作

  2. setEnabled()是强行执行onEnabled,调用它会执行一次onEnabled,无参数方法默认将isEnabled改为true

  3. getDataFolder() 获得插件的附属文件夹,文件路径为plugins/插件名称

  4. getDescription() 得到插件plugin.yml的相关信息

  5. getLogger() 得到日志对象,可以通过它进行日志输出的操作

  6. isInitialized() 返回这个插件是否已经初始化

  7. getCommand(String name) 获得插件的指定名称的指令对象 # 这个不太明确

  8. getConfig() 获得默认的配置文件对象

  9. getServer() 获得服务端对象

10.getName() 获得插件名称,在plugin.yml标记的

11.getFullName() 获得插件完整的名字,一个插件完整的名字由"名字+v+版本号"组成

12.getFile() 获得插件文件的对象

13.getPluginLoader() 获得插件加载器对象

14.init(...) 当插件开始被加载读取时,调用该方法初始化插件的基本内容

15.onCommand(...) 执行plugin.yml中定义的命令

16.getResource(...) 见1-5

17.saveConfig() saveDefaultConfig()保存默认配置文件

18.reloadConfig()重新加载配置文件,使得里面信息程序可以读取到

上一节 下一节