java - 为什么 onCommand 从未在插件中使用

标签 java overriding toggle minecraft bukkit

我正在为 Minecraft 创建一个简单的插件,它可以切换命令并为目标玩家提供唯一的 UUID。然而,public boolean onCommand 方法声明它从未被使用过。

主类(Freeze.java)

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

    Player player = (Player) sender;
        if(!Freeze.toggleList.contains(player.getUniqueId())){
            player.sendMessage(ChatColor.GREEN + "sinut on jäädytetty tutkinnan ajaksi");
            Freeze.toggleList.add(player.getUniqueId());
        return true;
        } else if (Freeze.toggleList.contains(player.getUniqueId())){
            player.sendMessage(ChatColor.RED +"Et ole enään jäädytetty");
            Freeze.toggleList.remove(player.getUniqueId());
        return true;
        }
        return true;
    }
}

我有一个特定的类来说明该命令的作用

(Toggle.java)

public class Toggle implements Listener {
@EventHandler
public void onPlayerMove(PlayerMoveEvent evt) {
    Player player = evt.getPlayer();
    if (Freeze.toggleList.contains(player.getUniqueId())){
        Location back = new Location(evt.getFrom().getWorld(), evt.getFrom().getX(), evt.getFrom().getY(), evt.getFrom().getZ());
        evt.getPlayer().teleport(back);
    }
}

}

还在我的 plugin.yml 中,我有它的命令:

    commands:
  freeze:
    usage: /<command>
    description: Freezez player.

此外,@Override 不起作用,因为“方法不会覆盖父类(super class)中的方法”。

最佳答案

您忘记注册您的命令。必须这样做,以便 bukkit 知道在执行命令时要调用哪个对象的 onCommand 方法。为此,请使用 command.setExecutor(CommandExecutor)

javaplugin.getCommand("freeze").setExecutor(yourCommandExecutor);

关于java - 为什么 onCommand 从未在插件中使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54704821/

相关文章:

python - 如何短路 [] 以创建类似列表的对象而不是标准列表?有可能吗?

html - 关闭 HTML Canvas 的抗锯齿功能仍然无法实现吗?

javascript - jQuery 切换不适用于 next() 函数

jquery - 使用 jQuery 在悬停时交换 DIV 类

java - 刷新页面后我需要选择下一个网页元素吗?我能怎么做?

java - 无法覆盖 AsyncTask 类中的 onPostExecute() 方法或使其触发

c# - 为什么除了 Equals(Object) 还要实现 Equals(type)?

java - 如何使用嵌入式 jetty 在给定地址提供特定类路径资源?

Java getHours()、getMinutes() 和 getSeconds()

java - 带 ListView 的音频播放器