Bukkit 命令执行器

直接在主类中添加命令执行器

public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
    if (command.getName().equalsIgnoreCase("指令")) {
        //你的代码
    }
}

当“/指令”指令被输入时,执行“你的代码”中的代码

  • “equalsIgnoreCase”:忽略指令的大小写
  • “指令”:指令的完整表达式,例如“/home”指令,在这里就填“home”

还需要在OnEnable()中插入下列代码,以注册该命令:

Bukkit.getPluginCommand("指令").setExecutor(this);
  • “指令”:指令的完整表达式,例如“/home”指令,在这里就填“home”

使用单独的一个类来添加命令执行器

public class CommandHandler implements CommandExecutor {
    @Override
    public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
        if (command.getName().equalsIgnoreCase("指令")) {
            //你的代码
        }
    }
}

当“/指令”指令被输入时,执行“你的代码”中的代码

  • “equalsIgnoreCase”:忽略指令的大小写
  • “指令”:指令的完整表达式,例如“/home”指令,在这里就填“home”

还需要在主类的OnEnable()中插入下列代码,以注册该命令:

Bukkit.getPluginCommand("指令").setExecutor(new 命令执行器所在的类名());
  • “指令”:指令的完整表达式,例如“/home”指令,在这里就填“home”

向plugin.yml中添加该指令

无论是直接在主类中添加命令执行器,还是使用单独的一个类来添加命令执行器,都需要进行本操作。否则会在插件加载时出现报错并导致插件无法使用。

commands:
  指令:
    description: 指令介绍
    usage: 指令用法
    aliases: [指令的其它形式或缩写,指令的其它形式或缩写,...]
    permission: 使用该指令需拥有的权限节点
    permission-message: 没有权限使用该指令的提示语
  • “指令”:指令的完整表达式,例如“/home”指令,在这里就填“home”。务必使用英文!

判断指令发送者是否是玩家

if (!(sender instanceof Player)) {
    //你的代码
}
  • “你的代码”:如果指令发送者不是玩家,则执行“你的代码”中的内容
©️2020 CSDN 皮肤主题: 护眼 设计师:闪电赇 返回首页