命令什么都不做

Command not doing anything

我正在尝试创建一个向发件人发送消息的命令,但它不起作用。

这是主要内容 class:

public void onEnabled() {
getLogger().info("Enabled!");
}

public boolean onCommand(Command cmd, CommandSender sender, String label, String[] args) {
    if (cmd.getName().equalsIgnoreCase("hi")) {
        sender.sendMessage("Hey there " + sender);
    }
    return false;
}

我不知道你的 plugin.yml 但如果它是正确的,那么如果你从以下位置更改它应该可以工作:

onCommand(Command cmd, CommandSender sender, String label, String[] args)

收件人:

onCommand(CommandSender sender, Command cmd, String label, String[] args)

顺序很重要,否则 Bukkit 会错误地调用您的 onCommand。

此外,要显示发件人姓名,您需要更改为:

sender.sendMessage("Hey there " + sender);

收件人:

sender.sendMessage("Hey there " + sender.getName());

onCommand() 方法应该 return 一个 boolean。您只需要 return truefalsetrue 表示该命令已执行某些操作,因此您应该 return 将其作为 if 语句的一部分。否则只是 return false。 以下应该有效:

public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
    if (cmd.getName().equalsIgnoreCase("hi")) {
        sender.sendMessage("Hey there " + sender.getName());
        return true;
    }
    return false;
}

如果这不起作用,请尝试发布您的 plugin.yml 和您遇到的错误,因为这可能会告诉我们更多信息。