Bonjour,
Je me suis mit à développer un plugin qui donnerais des items quand un joueur change de monde avec 1 seconde de délais.
Sinon les items n'apparaissait pas dans la hotbar du joueur.
Un problème est apparu, SI pendant cette seconde un deuxième joueur change aussi de monde les items ne seront donné, seulement à un joueur (celui qui a changé de monde en dernier).
ps : mon serveur est est 1.14.4
voici mon code:
Je me suis mit à développer un plugin qui donnerais des items quand un joueur change de monde avec 1 seconde de délais.
Sinon les items n'apparaissait pas dans la hotbar du joueur.
Un problème est apparu, SI pendant cette seconde un deuxième joueur change aussi de monde les items ne seront donné, seulement à un joueur (celui qui a changé de monde en dernier).
ps : mon serveur est est 1.14.4
voici mon code:
Java:
float timerCount = 1.0F;
@EventHandler
public void onWorldSwitch(PlayerChangedWorldEvent event) {
Player player = event.getPlayer();
BukkitTask CountDownId;
ArrayList<Player> players = new ArrayList<Player>();
players.add(player);
timerCount = 1.0F;
CountDownId = Bukkit.getScheduler().runTask(plugin, new Runnable(){
public void run(){
if(timerCount == 1.0F) {
--timerCount;
}
else if(timerCount <= 0.0F) {
int i = 0;
player.sendMessage("Il est temps de te donner ton stuff");
while( i <= players.size()) {
player.sendMessage("while loop");
plugin.giveStuff(players.get(i));
players.clear();
}
stopCountdown();
timerCount = 5.0F;
}
}
});
player.sendMessage("world switch");
}
Java:
public void giveStuff(Player player) {
ItemStack compass = new ItemStack(Material.COMPASS);
ItemMeta compassM = compass.getItemMeta();
compassM.setDisplayName("§5Navigation");
compass.setItemMeta(compassM);
switch(player.getWorld().getName()) {
case "lobby" :
player.getInventory().setItem(0, compass);
player.sendMessage("lobby");
break;
case "pvp":
player.getInventory().setItem(0, compass);
player.sendMessage("pvp");
break;
default:
break;
}
}