在不停止服务器的情况下执行操作之前等待一段时间
Wait a time before do action without stop server
我正在为 minecraft 服务器开发一个 bedwars 插件,一切正常,但在开始时我想要一个 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()
或类似的东西,因为如你所说,它会停止完整的服务器(并且它可以使玩家超时)
要制作计时器,请使用:
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
}
我正在为 minecraft 服务器开发一个 bedwars 插件,一切正常,但在开始时我想要一个 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()
或类似的东西,因为如你所说,它会停止完整的服务器(并且它可以使玩家超时)
要制作计时器,请使用:
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
}