有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java Bukkit插件:如何使用命令停止计时器

所以基本上我有

timer.scheduleAtFixedRate(new TimerTask() {
    public void run() {
    }
}

当玩家发送命令“play”时运行,当玩家发送命令“cancel”时,我想停止并重置计时器。我该怎么做


共 (2) 个答案

  1. # 1 楼答案

    通过使用Bukkit的调度器API,它会更好

    首先,启动服务器:

    BukkitTask task = Bukkit.getScheduler().runTaskTimer(myPlugin, () -> {
       // do something
    }, 20, 20);
    

    然后,使用任务变量,您可以取消它:

    task.cancel();
    

    最后,下一次,您将能够创建一个新的计时器来替换任务变量

  2. # 2 楼答案

    您可以创建一个静态Timer对象,并在cancel命令类中取消它

    /play(播放命令)

    public static Timer timer = null;
    
    
    timer.scheduleAtFixedRate(new TimerTask() {
       public void run() {
          //Run your Timer code
       }
    }
    

    /cancel(取消命令)

    PlayCommand.timer.cancel();