Java操作每5秒重复一次

Java操作每5秒重复一次,java,bukkit,Java,Bukkit,好的,普通的java程序员也可以帮忙,但这是一个minecraft插件,我希望它每5秒做一次动作,从插件启动时开始 public void onEnable(){ getLogger().info("TBC Enabled"); //~~ the statement from here till the next note is what I want to happen every 5 seconds

好的,普通的java程序员也可以帮忙,但这是一个minecraft插件,我希望它每5秒做一次动作,从插件启动时开始

public void onEnable(){
            getLogger().info("TBC Enabled");
            
            //~~ the statement from here till the next note is what I want to happen every 5 seconds
            
            for (Player player : Bukkit.getOnlinePlayers()) {
                player.sendMessage("N/A");
            }
            
            //~~ end of statement I want to repeat every 5 seconds
            
            }
这段代码就是它在插件启动时所做的


编辑:我甚至忘记了这个插件是什么:///p>你可以做所谓的安排重复任务,这个例子来自Bukkit论坛

Bukkit.getScheduler().scheduleRepeatingTask(this, new Runnable() {
    @Override
    public void run() {
        // The statement you want to run every 5 seconds.
    }
}, 0L, 100L); // 20 ticks = 1 second

只需在run中用您想要运行的语句编辑注释,它就可以正常工作。

这可以通过基本ExecutorService完成。您可以创建一个ScheduledExecutorService,它是ExecutorService的一个实现,然后计划一个runnable,它每5秒执行一次

ScheduledExecutorService=Executors.newSingleThreadScheduledExecutor();
service.scheduleAtFixedRate(()->{
//在这里做点什么
},0,5,时间单位为秒);

我这样做了,我在第18行(Bukkit.getScheduler().scheduleSyncRepeatingTask(plugin,new Runnable(){)得到了一个“plugin cannot be null”(插件,new Runnable())更新了代码,将您的代码替换为我的更新版本。请记住,此代码与服务器时钟不同步。是的,这是非常正确的。这绝对值得指出。