满足命令时禁用插件

Disabling plugin when command is met

我正在开发 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

不确定你用你的 start() 方法做了什么或 when/how 它被调用了,但一般的做法是把这样的东西放在你的 onEnable()

@Override
public void onEnable(){
    if (r.getCnfg().getBoolean("Chat.DeathmessagesListenerDisable") == false) {
        Bukkit.getPluginManager().disablePlugin(this);
        return;
    } 
}

如果你想禁用你的插件,你可以调用

Bukkit.getPluginManager().disablePlugin(plugin);

其中 plugin 是您的插件实例。所以,如果这是在您的主 class 中,您将使用

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
}

此外,仅从用户体验的角度来看,我建议将 Chat.DeathmessagesListenerDisable 的名称更改为 Chat.DeathmessagesListenerEnabled,因为有些人可能认为他们必须将值设置为 true 才能禁用插件。