gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 16:44:36 25 4
gpt4 key购买 nike

我正在为 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com