Ich bin gerade dabei, ein Minispiel-Plugin zu schreiben. Das Plugin soll warten, bis genug Spieler in der Lobby sind (bei mir zum testen nur zwei). Jedoch, wenn zwei oder mehr beitreten hängt sich der Scheduler (und damit auch der Countdown) bei 19 auf... Fehlermeldungen gibt es keine. Hier der Code:
package Methods;
import org.bukkit.Bukkit; import org.bukkit.entity.Player;
import main.TironGame;
public class Waiting { private TironGame plugin; public Waiting(TironGame plugin) { this.plugin = plugin; }
@SuppressWarnings("deprecation") public void waiting(){ if(this.plugin.stillwaiting = true){ this.plugin.waitid = Bukkit.getScheduler().scheduleAsyncRepeatingTask(this.plugin, new Runnable(){
@Override
public void run() {
if(Waiting.this.plugin.wait !=0){
Waiting.this.plugin.wait--;
//Kontrolle\\
System.out.println("WAITING:"+Waiting.this.plugin.wait);
for(Player all : Bukkit.getOnlinePlayers()){
if(Waiting.this.plugin.inlobby.contains(all)){
all.setLevel(0);
}
}
//Wenn Anzahl der Spieler gleich oder größer zwei ist
if(Waiting.this.plugin.inlobby.size() >= 2){
Waiting.this.plugin.stillwaiting = false; //Wartet nicht mehr auf Spieler
//GameStart
Waiting.this.plugin.wait = 20;
Bukkit.getScheduler().cancelTask(Waiting.this.plugin.waitid);
}
if(Waiting.this.plugin.inlobby.size() == 0){
Waiting.this.plugin.wait = 20;
Bukkit.getScheduler().cancelTask(Waiting.this.plugin.waitid);
}
if(Waiting.this.plugin.wait == 1){
for(Player all : Bukkit.getOnlinePlayers()){
if(Waiting.this.plugin.inlobby.contains(all)){
int inlobby = Waiting.this.plugin.inlobby.size();
all.sendMessage(Waiting.this.plugin.prefix + "§7Wartet auf weitere Spieler! §8[§6"+inlobby+"§8/§62§8]");
}
}
}
}else{
Waiting.this.plugin.wait = 20;
Waiting.this.waiting();
Bukkit.getScheduler().cancelTask(Waiting.this.plugin.waitid);
}
}
}, 0, 20);
}
}
}