我有以下代碼爲什麼不是「<= 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.
}
}