在满足命令时禁用插件

时间:2015-08-03 17:59:19

标签: java bukkit

我正在使用Bukkit插件,我想禁用该插件,如果配置file = false ...

配置:

DeathmessagesListenerDisable: false

主档案:

public static void start() {
    Bukkit.getPluginManager().registerEvents(new DeathmessagesListener(), r.getUC());
    //Set deathmessages
    if (r.getCnfg().getBoolean("Chat.DeathmessagesListenerDisable") == false) {
        //stuff
        return;
    } //rest off code

2 个答案:

答案 0 :(得分:2)

如果要停用插件,可以拨打

Bukkit.getPluginManager().disablePlugin(plugin);

plugin是你插件的实例。所以,如果这是在你的主类,你会使用

Bukkit.getPluginManager().disablePlugin(this);

所以你需要做的就是检查onEnable()方法中的配置值是否为false,如果

则禁用插件
public class MyMainClass extends JavaPlugin{

    @Override
    public void onEnable(){
        //check if the config contains the value before checking if it's false
        //remove just the below contains() check to disable the plugin if
        //the config doesn't contain a value for "Chat.DeathmessagesListenerDisable" 
        if(this.getConfig().contains("Chat.DeathmessagesListenerDisable")){

            //this could be replaced with any other check(s) that should be
            //done to see if the plugin should be disabled or not
            if(!this.getConfig().getBoolean("Chat.DeathmessagesListenerDisable")){
                //disable the plugin
                Bukkit.getPluginManager().disablePlugin(this);
                return;
            }
        }
        //normal onEnable() stuff
    }

    //your code
}

另外,仅从UX的角度出发,我建议将Chat.DeathmessagesListenerDisable的名称更改为Chat.DeathmessagesListenerEnabled,因为有些人可能认为必须将值设置为true才能禁用该插件。

答案 1 :(得分:0)

不确定您使用start()方法做什么,或者何时/如何调用它,但执行此操作的一般方法是在onEnable()

中添加类似的内容
@Override
public void onEnable(){
    if (r.getCnfg().getBoolean("Chat.DeathmessagesListenerDisable") == false) {
        Bukkit.getPluginManager().disablePlugin(this);
        return;
    } 
}