我正在创建一个简单的插件Minecraft,它在其中切换命令并为目标玩家获取唯一的 UUID。然而,该public boolean onCommand方法声明它从未使用过。主类(Freeze.java) @Overridepublic 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 {@EventHandlerpublic 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不起作用,因为“方法不会覆盖超类中的方法”。
2 回答
当年话下
TA贡献1890条经验 获得超9个赞
你忘了注册你的命令。必须这样做,以便 bukkitonCommand
在执行命令时知道要调用哪个对象的方法。为此,请使用command.setExecutor(CommandExecutor)
javaplugin.getCommand("freeze").setExecutor(yourCommandExecutor);
慕的地6264312
TA贡献1817条经验 获得超6个赞
您的 IDE 告诉您从未使用过您的方法,因为它没有覆盖其中的onCommand
方法JavaPlugin
(这就是您收到错误“方法没有覆盖其超类中的方法”的原因)。
这可能有几个原因。请检查
您的主要课程正在扩展
JavaPlugin
课程org.bukkit.plugin.java
您导入了正确的
Command
类。您需要导入org.bukkit.command.Command
而不是org.bukkit.material.Command
添加回答
举报
0/150
提交
取消