我正在为我的世界服务器工作的一个床战插件,一切都工作,但在开始时我想要一个5秒的计时器开始游戏,并在游戏中显示一个标题,我工作在这个代码:
TimeUnit.SECONDS.sleep(1);
sendtitle("4");
TimeUnit.SECONDS.sleep(1);
sendtitle("3");
TimeUnit.SECONDS.sleep(1);
sendtitle("2");
TimeUnit.SECONDS.sleep(1);
sendtitle("1");
TimeUnit.SECONDS.sleep(1);
sendtitle("SusyBaka");
但是我完全暂停了服务器,我试图使用多线程,但标题没有出现,有人能帮助我吗?
你不应该在spigot-server上使用Thread.sleep()
或类似的东西,因为就像你说的,它会停止FULL服务器(它可以使玩家超时)
创建定时器,使用如下命令:
public int count = 5;
public BukkitTask task;
public void method() {
task = Bukkit.getServer().getScheduler().runTaskTimer(MyPlugin.getInstance(), () -> {
if(count == 0) {
task.cancel();
sendtitle("SusyBaka");
} else {
count--;
sendtitle("Start in " + count + " seconds");
}
}, 20, 20); // 20 ticks = 1 second
}