我有以下代码为什么不是“<= 1”按预期工作?
@EventHandler
public void onPlayerQuit(PlayerQuitEvent event){
Player player = event.getPlayer();
final Player[] playerlist = getServer().getOnlinePlayers();
if (playerlist.length <=1) { // if no players are online
getServer().getScheduler().scheduleSyncDelayedTask(this, new Runnable(){
// this is a scheduler.
public void run(){
if(playerlist.length <=1){
getServer().shutdown();
}
}
}, 6000L); // runs every 6000 ticks, which is every 300 seconds, which is every 5 minutes.
}
}
当一个玩家离开,它会检查哪些,看看他是最后一个,如果他的话,5分钟后,再次检查,如果仍然没有一个是它应该停止服务器。
在这条线的位置:
if (playerlist.length <=1) { // if no players are online
我必须有它作为< = 1或它不工作在所有的,但它也将停止服务器,如果我离开,并加入背部和即时通讯的唯一一个。当我在= 0时,它只是< 1它没有工作。
任何想法?
这里是我的更新代码(仍然不工作):
@EventHandler
public void onPlayerQuit(PlayerQuitEvent event){
Player player = event.getPlayer();
final Player[] playerlist = getServer().getOnlinePlayers();
if (playerlist.length <=1) { // if no players are online
getServer().getScheduler().scheduleSyncDelayedTask(this, new Runnable(){
// this is a scheduler.
public void run(){
final Player[] playerlist = getServer().getOnlinePlayers();
if(playerlist.length <=1){
getServer().shutdown();
}
}
}, 500L); // runs every 6000 ticks, which is every 300 seconds, which is every 5 minutes.
}
}