Bukkit / Spigot。当我输入命令时,它只返回命令

时间:2019-12-24 18:54:40

标签: java bukkit

当我在游戏中使用/ heal命令时,它在游戏聊天中返回/ heal。我完全不明白为什么会这样。 这是我的代码(全部在一个类中):

public boolean onCommand(CommandSender sender, Command cmd, String label, Strings [] args) {

    Player player = (Player) sender;

    if (cmd.getName().equalsIgnoreCase("heal")) {
        if (sender.hasPermission("city.heal")) {
            player.setHealth(20);
            player.setFoodLevel(20);
            sender.sendMessage("§fYou have been §bhealed §fand §bsated§f.");
            return true;
        }

        if (!sender.hasPermission("city.heal")) {
            sender.sendMessage("§cNo permission.");
            return true;
        }
    }
    return true;
}

这是我的plugin.yml:

main: me.rarfiles.code.Code
name: Test
author: rarfiles
version: 1.0

commands:
  heal:
    usage: /<command>

2 个答案:

答案 0 :(得分:0)

确保在onEnable方法中注册CommandExecutor。 通过执行getCommand("heal").setExecutor(Instance of CommandExecutor);

您还需要通过执行以下操作来确保检查发件人是否是玩家 if(sender instanceof Player)

答案 1 :(得分:0)

请确保您导入的是 org.bukkit.Command ,而不是 com.mojang.brigadier.Command

希望这对您有帮助