Résolu Soucis d'exactitude avec Calendar
-
Plop les gens,
Aujourd’hui j’écris ici concernant un event TickWorld qui serait appelée à une heure précise de la journée, ici afin de faire spawn un bloc à une coordonnée random parmi plusieurs possibles.
Mon soucis se trouve au niveau des millisecondes qui sont… compliquées à gérer car le println ne rend jamais les mêmes valeurs à un nombre de ticks identiques.
Ce qui fait que je ne peux mettre sa valeur en condition, ce qui fait que la méthode est appelée 20 fois, donc mon random est saccagé.Voici le code, peut-être que ma mise en condition n’est pas bonne, mais ça fonctionne jusqu’à certaines limites dont nous parlons justement:
@SubscribeEvent public void tileFourgonSpawnEvent(TickEvent.WorldTickEvent event) { Calendar calendar = Calendar.getInstance(); Random rand = new Random(); System.out.println(calendar.getTime()); System.out.println(calendar.get(Calendar.MILLISECOND)); if(calendar.get(Calendar.HOUR_OF_DAY) == 12 && calendar.get(Calendar.MINUTE) == 4 && calendar.get(Calendar.SECOND) == 50) { int randInt = rand.nextInt(3); System.out.println(randInt); if(randInt == 0) { Block block = event.world.getBlock(-430, 5, 360); if(block == Blocks.air) { event.world.setBlock(-430, 8, 360, Blocks.obsidian); } } if(randInt == 1) { Block block = event.world.getBlock(-430, 5, 360); if(block == Blocks.air) { event.world.setBlock(-430, 9, 360, Blocks.obsidian); } } if(randInt == 2) { Block block = event.world.getBlock(-430, 5, 360); if(block == Blocks.air) { event.world.setBlock(-430, 10, 360, Blocks.obsidian); } } } }
-
Tu pourrais faire ça :
private boolean done = false; @SubscribeEvent public void tileFourgonSpawnEvent(TickEvent.WorldTickEvent event) { Calendar calendar = Calendar.getInstance(); Random rand = new Random(); System.out.println(calendar.getTime()); System.out.println(calendar.get(Calendar.MILLISECOND)); if(calendar.get(Calendar.HOUR_OF_DAY) == 12 && !done) { done = true; int randInt = rand.nextInt(3); System.out.println(randInt); if(randInt == 0) { Block block = event.world.getBlock(-430, 5, 360); if(block == Blocks.air) { event.world.setBlock(-430, 8, 360, Blocks.obsidian); } } if(randInt == 1) { Block block = event.world.getBlock(-430, 5, 360); if(block == Blocks.air) { event.world.setBlock(-430, 9, 360, Blocks.obsidian); } } if(randInt == 2) { Block block = event.world.getBlock(-430, 5, 360); if(block == Blocks.air) { event.world.setBlock(-430, 10, 360, Blocks.obsidian); } } } else { done = false; } }
Cependant, si ton serveur redémarre entre 12h et 13h, tu aura deux fois la génération (après tu peux toujours enregistrer cette valeur quelque part).
-
Mmmh nope le code passe false/true/false/true/… pendant 20ticks, c’pas trop ça
Edit:Et d’après ton code ça devrait faire ça pendant une heure ^^’ car le calendar renvoie 12 pendant une heure. Et non pas une seule fois
-
Mince, j’ai loupé, désolé :
private boolean done = false; @SubscribeEvent public void tileFourgonSpawnEvent(TickEvent.WorldTickEvent event) { Calendar calendar = Calendar.getInstance(); Random rand = new Random(); System.out.println(calendar.getTime()); System.out.println(calendar.get(Calendar.MILLISECOND)); if(calendar.get(Calendar.HOUR_OF_DAY) == 12) { if(!done) { done = true; int randInt = rand.nextInt(3); System.out.println(randInt); if(randInt == 0) { Block block = event.world.getBlock(-430, 5, 360); if(block == Blocks.air) { event.world.setBlock(-430, 8, 360, Blocks.obsidian); } } if(randInt == 1) { Block block = event.world.getBlock(-430, 5, 360); if(block == Blocks.air) { event.world.setBlock(-430, 9, 360, Blocks.obsidian); } } if(randInt == 2) { Block block = event.world.getBlock(-430, 5, 360); if(block == Blocks.air) { event.world.setBlock(-430, 10, 360, Blocks.obsidian); } } } } else { done = false; } }
Bon j’ai pas formaté le code mais bon
-
D’accord mais ça n’enlève en rien le fait que la fonction est appelée au moins 20fois si je fais à la seconde près (si je mets en condition les secondes).
Ce code:
public class ServerEvents { private boolean done = false; @SubscribeEvent public void tileFourgonSpawnEvent(TickEvent.WorldTickEvent event) { Calendar calendar = Calendar.getInstance(); Random rand = new Random(); System.out.println(calendar.getTime()); System.out.println(done); if(calendar.get(Calendar.HOUR_OF_DAY) == 14 && calendar.get(Calendar.MINUTE) == 17 && calendar.get(Calendar.SECOND) == 10) { if(!done) { done = true; int randInt = rand.nextInt(3); if(randInt == 0) { Block block = event.world.getBlock(-430, 5, 360); if(block == Blocks.air) { event.world.setBlock(-430, 8, 360, Blocks.obsidian); } } if(randInt == 1) { Block block = event.world.getBlock(-430, 5, 360); if(block == Blocks.air) { event.world.setBlock(-430, 9, 360, Blocks.obsidian); } } if(randInt == 2) { Block block = event.world.getBlock(-430, 5, 360); if(block == Blocks.air) { event.world.setBlock(-430, 10, 360, Blocks.obsidian); } } } } else { done = false; } } }
Donne ça:
[14:17:09] [Server thread/INFO] [STDOUT]: [fr.powergame.modpg2.common.ServerEvents:tileFourgonSpawnEvent:21]: Tue Nov 15 14:17:09 CET 2016 false [14:17:10] [Server thread/INFO] [STDOUT]: [fr.powergame.modpg2.common.ServerEvents:tileFourgonSpawnEvent:21]: Tue Nov 15 14:17:10 CET 2016 false [14:17:10] [Server thread/INFO] [STDOUT]: [fr.powergame.modpg2.common.ServerEvents:tileFourgonSpawnEvent:21]: Tue Nov 15 14:17:10 CET 2016 true [14:17:10] [Server thread/INFO] [STDOUT]: [fr.powergame.modpg2.common.ServerEvents:tileFourgonSpawnEvent:21]: Tue Nov 15 14:17:10 CET 2016 true [14:17:10] [Server thread/INFO] [STDOUT]: [fr.powergame.modpg2.common.ServerEvents:tileFourgonSpawnEvent:21]: Tue Nov 15 14:17:10 CET 2016 true [14:17:10] [Server thread/INFO] [STDOUT]: [fr.powergame.modpg2.common.ServerEvents:tileFourgonSpawnEvent:21]: Tue Nov 15 14:17:10 CET 2016 true [14:17:10] [Server thread/INFO] [STDOUT]: [fr.powergame.modpg2.common.ServerEvents:tileFourgonSpawnEvent:21]: Tue Nov 15 14:17:10 CET 2016 true [14:17:10] [Server thread/INFO] [STDOUT]: [fr.powergame.modpg2.common.ServerEvents:tileFourgonSpawnEvent:21]: Tue Nov 15 14:17:10 CET 2016 true [14:17:10] [Server thread/INFO] [STDOUT]: [fr.powergame.modpg2.common.ServerEvents:tileFourgonSpawnEvent:21]: Tue Nov 15 14:17:10 CET 2016 true [14:17:10] [Server thread/INFO] [STDOUT]: [fr.powergame.modpg2.common.ServerEvents:tileFourgonSpawnEvent:21]: Tue Nov 15 14:17:10 CET 2016 true [14:17:10] [Server thread/INFO] [STDOUT]: [fr.powergame.modpg2.common.ServerEvents:tileFourgonSpawnEvent:21]: Tue Nov 15 14:17:10 CET 2016 true [14:17:10] [Server thread/INFO] [STDOUT]: [fr.powergame.modpg2.common.ServerEvents:tileFourgonSpawnEvent:21]: Tue Nov 15 14:17:10 CET 2016 true [14:17:10] [Server thread/INFO] [STDOUT]: [fr.powergame.modpg2.common.ServerEvents:tileFourgonSpawnEvent:21]: Tue Nov 15 14:17:10 CET 2016 true [14:17:10] [Server thread/INFO] [STDOUT]: [fr.powergame.modpg2.common.ServerEvents:tileFourgonSpawnEvent:21]: Tue Nov 15 14:17:10 CET 2016 true [14:17:10] [Server thread/INFO] [STDOUT]: [fr.powergame.modpg2.common.ServerEvents:tileFourgonSpawnEvent:21]: Tue Nov 15 14:17:10 CET 2016 true [14:17:10] [Server thread/INFO] [STDOUT]: [fr.powergame.modpg2.common.ServerEvents:tileFourgonSpawnEvent:21]: Tue Nov 15 14:17:10 CET 2016 true [14:17:10] [Server thread/INFO] [STDOUT]: [fr.powergame.modpg2.common.ServerEvents:tileFourgonSpawnEvent:21]: Tue Nov 15 14:17:10 CET 2016 true [14:17:10] [Server thread/INFO] [STDOUT]: [fr.powergame.modpg2.common.ServerEvents:tileFourgonSpawnEvent:21]: Tue Nov 15 14:17:10 CET 2016 true [14:17:10] [Server thread/INFO] [STDOUT]: [fr.powergame.modpg2.common.ServerEvents:tileFourgonSpawnEvent:21]: Tue Nov 15 14:17:10 CET 2016 true [14:17:10] [Server thread/INFO] [STDOUT]: [fr.powergame.modpg2.common.ServerEvents:tileFourgonSpawnEvent:21]: Tue Nov 15 14:17:10 CET 2016 true [14:17:10] [Server thread/INFO] [STDOUT]: [fr.powergame.modpg2.common.ServerEvents:tileFourgonSpawnEvent:21]: Tue Nov 15 14:17:10 CET 2016 true [14:17:10] [Server thread/INFO] [STDOUT]: [fr.powergame.modpg2.common.ServerEvents:tileFourgonSpawnEvent:21]: Tue Nov 15 14:17:10 CET 2016 true [14:17:10] [Server thread/INFO] [STDOUT]: [fr.powergame.modpg2.common.ServerEvents:tileFourgonSpawnEvent:21]: Tue Nov 15 14:17:10 CET 2016 true [14:17:10] [Server thread/INFO] [STDOUT]: [fr.powergame.modpg2.common.ServerEvents:tileFourgonSpawnEvent:21]: Tue Nov 15 14:17:10 CET 2016 true [14:17:10] [Server thread/INFO] [STDOUT]: [fr.powergame.modpg2.common.ServerEvents:tileFourgonSpawnEvent:21]: Tue Nov 15 14:17:10 CET 2016 true [14:17:10] [Server thread/INFO] [STDOUT]: [fr.powergame.modpg2.common.ServerEvents:tileFourgonSpawnEvent:21]: Tue Nov 15 14:17:10 CET 2016 true [14:17:10] [Server thread/INFO] [STDOUT]: [fr.powergame.modpg2.common.ServerEvents:tileFourgonSpawnEvent:21]: Tue Nov 15 14:17:10 CET 2016 true [14:17:10] [Server thread/INFO] [STDOUT]: [fr.powergame.modpg2.common.ServerEvents:tileFourgonSpawnEvent:21]: Tue Nov 15 14:17:10 CET 2016 true [14:17:10] [Server thread/INFO] [STDOUT]: [fr.powergame.modpg2.common.ServerEvents:tileFourgonSpawnEvent:21]: Tue Nov 15 14:17:10 CET 2016 true [14:17:10] [Server thread/INFO] [STDOUT]: [fr.powergame.modpg2.common.ServerEvents:tileFourgonSpawnEvent:21]: Tue Nov 15 14:17:10 CET 2016 true [14:17:10] [Server thread/INFO] [STDOUT]: [fr.powergame.modpg2.common.ServerEvents:tileFourgonSpawnEvent:21]: Tue Nov 15 14:17:10 CET 2016 true [14:17:10] [Server thread/INFO] [STDOUT]: [fr.powergame.modpg2.common.ServerEvents:tileFourgonSpawnEvent:21]: Tue Nov 15 14:17:10 CET 2016 true [14:17:10] [Server thread/INFO] [STDOUT]: [fr.powergame.modpg2.common.ServerEvents:tileFourgonSpawnEvent:21]: Tue Nov 15 14:17:10 CET 2016 true [14:17:10] [Server thread/INFO] [STDOUT]: [fr.powergame.modpg2.common.ServerEvents:tileFourgonSpawnEvent:21]: Tue Nov 15 14:17:10 CET 2016 true [14:17:10] [Server thread/INFO] [STDOUT]: [fr.powergame.modpg2.common.ServerEvents:tileFourgonSpawnEvent:21]: Tue Nov 15 14:17:10 CET 2016 true [14:17:10] [Server thread/INFO] [STDOUT]: [fr.powergame.modpg2.common.ServerEvents:tileFourgonSpawnEvent:21]: Tue Nov 15 14:17:10 CET 2016 true [14:17:10] [Server thread/INFO] [STDOUT]: [fr.powergame.modpg2.common.ServerEvents:tileFourgonSpawnEvent:21]: Tue Nov 15 14:17:10 CET 2016 true [14:17:10] [Server thread/INFO] [STDOUT]: [fr.powergame.modpg2.common.ServerEvents:tileFourgonSpawnEvent:21]: Tue Nov 15 14:17:10 CET 2016 true [14:17:10] [Server thread/INFO] [STDOUT]: [fr.powergame.modpg2.common.ServerEvents:tileFourgonSpawnEvent:21]: Tue Nov 15 14:17:10 CET 2016 true [14:17:10] [Server thread/INFO] [STDOUT]: [fr.powergame.modpg2.common.ServerEvents:tileFourgonSpawnEvent:21]: Tue Nov 15 14:17:10 CET 2016 true [14:17:10] [Server thread/INFO] [STDOUT]: [fr.powergame.modpg2.common.ServerEvents:tileFourgonSpawnEvent:21]: Tue Nov 15 14:17:10 CET 2016 true [14:17:10] [Server thread/INFO] [STDOUT]: [fr.powergame.modpg2.common.ServerEvents:tileFourgonSpawnEvent:21]: Tue Nov 15 14:17:10 CET 2016 true [14:17:10] [Server thread/INFO] [STDOUT]: [fr.powergame.modpg2.common.ServerEvents:tileFourgonSpawnEvent:21]: Tue Nov 15 14:17:10 CET 2016 true [14:17:10] [Server thread/INFO] [STDOUT]: [fr.powergame.modpg2.common.ServerEvents:tileFourgonSpawnEvent:21]: Tue Nov 15 14:17:10 CET 2016 true [14:17:10] [Server thread/INFO] [STDOUT]: [fr.powergame.modpg2.common.ServerEvents:tileFourgonSpawnEvent:21]: Tue Nov 15 14:17:10 CET 2016 true [14:17:10] [Server thread/INFO] [STDOUT]: [fr.powergame.modpg2.common.ServerEvents:tileFourgonSpawnEvent:21]: Tue Nov 15 14:17:10 CET 2016 true [14:17:10] [Server thread/INFO] [STDOUT]: [fr.powergame.modpg2.common.ServerEvents:tileFourgonSpawnEvent:21]: Tue Nov 15 14:17:10 CET 2016 true [14:17:10] [Server thread/INFO] [STDOUT]: [fr.powergame.modpg2.common.ServerEvents:tileFourgonSpawnEvent:21]: Tue Nov 15 14:17:10 CET 2016 true [14:17:10] [Server thread/INFO] [STDOUT]: [fr.powergame.modpg2.common.ServerEvents:tileFourgonSpawnEvent:21]: Tue Nov 15 14:17:10 CET 2016 true [14:17:10] [Server thread/INFO] [STDOUT]: [fr.powergame.modpg2.common.ServerEvents:tileFourgonSpawnEvent:21]: Tue Nov 15 14:17:10 CET 2016 true [14:17:10] [Server thread/INFO] [STDOUT]: [fr.powergame.modpg2.common.ServerEvents:tileFourgonSpawnEvent:21]: Tue Nov 15 14:17:10 CET 2016 true [14:17:10] [Server thread/INFO] [STDOUT]: [fr.powergame.modpg2.common.ServerEvents:tileFourgonSpawnEvent:21]: Tue Nov 15 14:17:10 CET 2016 true [14:17:10] [Server thread/INFO] [STDOUT]: [fr.powergame.modpg2.common.ServerEvents:tileFourgonSpawnEvent:21]: Tue Nov 15 14:17:10 CET 2016 true [14:17:10] [Server thread/INFO] [STDOUT]: [fr.powergame.modpg2.common.ServerEvents:tileFourgonSpawnEvent:21]: Tue Nov 15 14:17:10 CET 2016 true [14:17:10] [Server thread/INFO] [STDOUT]: [fr.powergame.modpg2.common.ServerEvents:tileFourgonSpawnEvent:21]: Tue Nov 15 14:17:10 CET 2016 true [14:17:10] [Server thread/INFO] [STDOUT]: [fr.powergame.modpg2.common.ServerEvents:tileFourgonSpawnEvent:21]: Tue Nov 15 14:17:10 CET 2016 true [14:17:10] [Server thread/INFO] [STDOUT]: [fr.powergame.modpg2.common.ServerEvents:tileFourgonSpawnEvent:21]: Tue Nov 15 14:17:10 CET 2016 true [14:17:10] [Server thread/INFO] [STDOUT]: [fr.powergame.modpg2.common.ServerEvents:tileFourgonSpawnEvent:21]: Tue Nov 15 14:17:10 CET 2016 true [14:17:10] [Server thread/INFO] [STDOUT]: [fr.powergame.modpg2.common.ServerEvents:tileFourgonSpawnEvent:21]: Tue Nov 15 14:17:10 CET 2016 true [14:17:10] [Server thread/INFO] [STDOUT]: [fr.powergame.modpg2.common.ServerEvents:tileFourgonSpawnEvent:21]: Tue Nov 15 14:17:10 CET 2016 true [14:17:10] [Server thread/INFO] [STDOUT]: [fr.powergame.modpg2.common.ServerEvents:tileFourgonSpawnEvent:21]: Tue Nov 15 14:17:10 CET 2016 true [14:17:10] [Server thread/INFO] [STDOUT]: [fr.powergame.modpg2.common.ServerEvents:tileFourgonSpawnEvent:21]: Tue Nov 15 14:17:10 CET 2016 true [14:17:10] [Server thread/INFO] [STDOUT]: [fr.powergame.modpg2.common.ServerEvents:tileFourgonSpawnEvent:21]: Tue Nov 15 14:17:10 CET 2016 true [14:17:10] [Server thread/INFO] [STDOUT]: [fr.powergame.modpg2.common.ServerEvents:tileFourgonSpawnEvent:21]: Tue Nov 15 14:17:10 CET 2016 true [14:17:10] [Server thread/INFO] [STDOUT]: [fr.powergame.modpg2.common.ServerEvents:tileFourgonSpawnEvent:21]: Tue Nov 15 14:17:10 CET 2016 true [14:17:10] [Server thread/INFO] [STDOUT]: [fr.powergame.modpg2.common.ServerEvents:tileFourgonSpawnEvent:21]: Tue Nov 15 14:17:10 CET 2016 true [14:17:10] [Server thread/INFO] [STDOUT]: [fr.powergame.modpg2.common.ServerEvents:tileFourgonSpawnEvent:21]: Tue Nov 15 14:17:10 CET 2016 true [14:17:10] [Server thread/INFO] [STDOUT]: [fr.powergame.modpg2.common.ServerEvents:tileFourgonSpawnEvent:21]: Tue Nov 15 14:17:10 CET 2016 true [14:17:10] [Server thread/INFO] [STDOUT]: [fr.powergame.modpg2.common.ServerEvents:tileFourgonSpawnEvent:21]: Tue Nov 15 14:17:10 CET 2016 true [14:17:10] [Server thread/INFO] [STDOUT]: [fr.powergame.modpg2.common.ServerEvents:tileFourgonSpawnEvent:21]: Tue Nov 15 14:17:10 CET 2016 true [14:17:10] [Server thread/INFO] [STDOUT]: [fr.powergame.modpg2.common.ServerEvents:tileFourgonSpawnEvent:21]: Tue Nov 15 14:17:10 CET 2016 true [14:17:10] [Server thread/INFO] [STDOUT]: [fr.powergame.modpg2.common.ServerEvents:tileFourgonSpawnEvent:21]: Tue Nov 15 14:17:10 CET 2016 true [14:17:10] [Server thread/INFO] [STDOUT]: [fr.powergame.modpg2.common.ServerEvents:tileFourgonSpawnEvent:21]: Tue Nov 15 14:17:10 CET 2016 true [14:17:10] [Server thread/INFO] [STDOUT]: [fr.powergame.modpg2.common.ServerEvents:tileFourgonSpawnEvent:21]: Tue Nov 15 14:17:10 CET 2016 true [14:17:10] [Server thread/INFO] [STDOUT]: [fr.powergame.modpg2.common.ServerEvents:tileFourgonSpawnEvent:21]: Tue Nov 15 14:17:10 CET 2016 true [14:17:10] [Server thread/INFO] [STDOUT]: [fr.powergame.modpg2.common.ServerEvents:tileFourgonSpawnEvent:21]: Tue Nov 15 14:17:10 CET 2016 true [14:17:10] [Server thread/INFO] [STDOUT]: [fr.powergame.modpg2.common.ServerEvents:tileFourgonSpawnEvent:21]: Tue Nov 15 14:17:10 CET 2016 true [14:17:10] [Server thread/INFO] [STDOUT]: [fr.powergame.modpg2.common.ServerEvents:tileFourgonSpawnEvent:21]: Tue Nov 15 14:17:10 CET 2016 true [14:17:10] [Server thread/INFO] [STDOUT]: [fr.powergame.modpg2.common.ServerEvents:tileFourgonSpawnEvent:21]: Tue Nov 15 14:17:10 CET 2016 true [14:17:10] [Server thread/INFO] [STDOUT]: [fr.powergame.modpg2.common.ServerEvents:tileFourgonSpawnEvent:21]: Tue Nov 15 14:17:10 CET 2016 true [14:17:10] [Server thread/INFO] [STDOUT]: [fr.powergame.modpg2.common.ServerEvents:tileFourgonSpawnEvent:21]: Tue Nov 15 14:17:10 CET 2016 true [14:17:10] [Server thread/INFO] [STDOUT]: [fr.powergame.modpg2.common.ServerEvents:tileFourgonSpawnEvent:21]: Tue Nov 15 14:17:10 CET 2016 true [14:17:10] [Server thread/INFO] [STDOUT]: [fr.powergame.modpg2.common.ServerEvents:tileFourgonSpawnEvent:21]: Tue Nov 15 14:17:10 CET 2016 true [14:17:10] [Server thread/INFO] [STDOUT]: [fr.powergame.modpg2.common.ServerEvents:tileFourgonSpawnEvent:21]: Tue Nov 15 14:17:10 CET 2016 true [14:17:10] [Server thread/INFO] [STDOUT]: [fr.powergame.modpg2.common.ServerEvents:tileFourgonSpawnEvent:21]: Tue Nov 15 14:17:10 CET 2016 true [14:17:10] [Server thread/INFO] [STDOUT]: [fr.powergame.modpg2.common.ServerEvents:tileFourgonSpawnEvent:21]: Tue Nov 15 14:17:10 CET 2016 true [14:17:10] [Server thread/INFO] [STDOUT]: [fr.powergame.modpg2.common.ServerEvents:tileFourgonSpawnEvent:21]: Tue Nov 15 14:17:10 CET 2016 true [14:17:10] [Server thread/INFO] [STDOUT]: [fr.powergame.modpg2.common.ServerEvents:tileFourgonSpawnEvent:21]: Tue Nov 15 14:17:10 CET 2016 true [14:17:10] [Server thread/INFO] [STDOUT]: [fr.powergame.modpg2.common.ServerEvents:tileFourgonSpawnEvent:21]: Tue Nov 15 14:17:10 CET 2016 true [14:17:10] [Server thread/INFO] [STDOUT]: [fr.powergame.modpg2.common.ServerEvents:tileFourgonSpawnEvent:21]: Tue Nov 15 14:17:10 CET 2016 true [14:17:10] [Server thread/INFO] [STDOUT]: [fr.powergame.modpg2.common.ServerEvents:tileFourgonSpawnEvent:21]: Tue Nov 15 14:17:10 CET 2016 true [14:17:10] [Server thread/INFO] [STDOUT]: [fr.powergame.modpg2.common.ServerEvents:tileFourgonSpawnEvent:21]: Tue Nov 15 14:17:10 CET 2016 true [14:17:10] [Server thread/INFO] [STDOUT]: [fr.powergame.modpg2.common.ServerEvents:tileFourgonSpawnEvent:21]: Tue Nov 15 14:17:10 CET 2016 true [14:17:10] [Server thread/INFO] [STDOUT]: [fr.powergame.modpg2.common.ServerEvents:tileFourgonSpawnEvent:21]: Tue Nov 15 14:17:10 CET 2016 true [14:17:10] [Server thread/INFO] [STDOUT]: [fr.powergame.modpg2.common.ServerEvents:tileFourgonSpawnEvent:21]: Tue Nov 15 14:17:10 CET 2016 true [14:17:10] [Server thread/INFO] [STDOUT]: [fr.powergame.modpg2.common.ServerEvents:tileFourgonSpawnEvent:21]: Tue Nov 15 14:17:10 CET 2016 true [14:17:10] [Server thread/INFO] [STDOUT]: [fr.powergame.modpg2.common.ServerEvents:tileFourgonSpawnEvent:21]: Tue Nov 15 14:17:10 CET 2016 true [14:17:10] [Server thread/INFO] [STDOUT]: [fr.powergame.modpg2.common.ServerEvents:tileFourgonSpawnEvent:21]: Tue Nov 15 14:17:10 CET 2016 true [14:17:10] [Server thread/INFO] [STDOUT]: [fr.powergame.modpg2.common.ServerEvents:tileFourgonSpawnEvent:21]: Tue Nov 15 14:17:10 CET 2016 true [14:17:10] [Server thread/INFO] [STDOUT]: [fr.powergame.modpg2.common.ServerEvents:tileFourgonSpawnEvent:21]: Tue Nov 15 14:17:10 CET 2016 true [14:17:10] [Server thread/INFO] [STDOUT]: [fr.powergame.modpg2.common.ServerEvents:tileFourgonSpawnEvent:21]: Tue Nov 15 14:17:10 CET 2016 true [14:17:10] [Server thread/INFO] [STDOUT]: [fr.powergame.modpg2.common.ServerEvents:tileFourgonSpawnEvent:21]: Tue Nov 15 14:17:10 CET 2016 true [14:17:10] [Server thread/INFO] [STDOUT]: [fr.powergame.modpg2.common.ServerEvents:tileFourgonSpawnEvent:21]: Tue Nov 15 14:17:10 CET 2016 true [14:17:10] [Server thread/INFO] [STDOUT]: [fr.powergame.modpg2.common.ServerEvents:tileFourgonSpawnEvent:21]: Tue Nov 15 14:17:10 CET 2016 true [14:17:10] [Server thread/INFO] [STDOUT]: [fr.powergame.modpg2.common.ServerEvents:tileFourgonSpawnEvent:21]: Tue Nov 15 14:17:10 CET 2016 true [14:17:10] [Server thread/INFO] [STDOUT]: [fr.powergame.modpg2.common.ServerEvents:tileFourgonSpawnEvent:21]: Tue Nov 15 14:17:10 CET 2016 true [14:17:10] [Server thread/INFO] [STDOUT]: [fr.powergame.modpg2.common.ServerEvents:tileFourgonSpawnEvent:21]: Tue Nov 15 14:17:10 CET 2016 true [14:17:10] [Server thread/INFO] [STDOUT]: [fr.powergame.modpg2.common.ServerEvents:tileFourgonSpawnEvent:21]: Tue Nov 15 14:17:10 CET 2016 true [14:17:10] [Server thread/INFO] [STDOUT]: [fr.powergame.modpg2.common.ServerEvents:tileFourgonSpawnEvent:21]: Tue Nov 15 14:17:10 CET 2016 true [14:17:10] [Server thread/INFO] [STDOUT]: [fr.powergame.modpg2.common.ServerEvents:tileFourgonSpawnEvent:21]: Tue Nov 15 14:17:10 CET 2016 true [14:17:10] [Server thread/INFO] [STDOUT]: [fr.powergame.modpg2.common.ServerEvents:tileFourgonSpawnEvent:21]: Tue Nov 15 14:17:10 CET 2016 true [14:17:10] [Server thread/INFO] [STDOUT]: [fr.powergame.modpg2.common.ServerEvents:tileFourgonSpawnEvent:21]: Tue Nov 15 14:17:10 CET 2016 true [14:17:10] [Server thread/INFO] [STDOUT]: [fr.powergame.modpg2.common.ServerEvents:tileFourgonSpawnEvent:21]: Tue Nov 15 14:17:10 CET 2016 true [14:17:10] [Server thread/INFO] [STDOUT]: [fr.powergame.modpg2.common.ServerEvents:tileFourgonSpawnEvent:21]: Tue Nov 15 14:17:10 CET 2016 true [14:17:10] [Server thread/INFO] [STDOUT]: [fr.powergame.modpg2.common.ServerEvents:tileFourgonSpawnEvent:21]: Tue Nov 15 14:17:10 CET 2016 true [14:17:10] [Server thread/INFO] [STDOUT]: [fr.powergame.modpg2.common.ServerEvents:tileFourgonSpawnEvent:21]: Tue Nov 15 14:17:10 CET 2016 true [14:17:10] [Server thread/INFO] [STDOUT]: [fr.powergame.modpg2.common.ServerEvents:tileFourgonSpawnEvent:21]: Tue Nov 15 14:17:10 CET 2016 true [14:17:10] [Server thread/INFO] [STDOUT]: [fr.powergame.modpg2.common.ServerEvents:tileFourgonSpawnEvent:21]: Tue Nov 15 14:17:10 CET 2016 true [14:17:10] [Server thread/INFO] [STDOUT]: [fr.powergame.modpg2.common.ServerEvents:tileFourgonSpawnEvent:21]: Tue Nov 15 14:17:10 CET 2016 true [14:17:10] [Server thread/INFO] [STDOUT]: [fr.powergame.modpg2.common.ServerEvents:tileFourgonSpawnEvent:21]: Tue Nov 15 14:17:10 CET 2016 true [14:17:10] [Server thread/INFO] [STDOUT]: [fr.powergame.modpg2.common.ServerEvents:tileFourgonSpawnEvent:21]: Tue Nov 15 14:17:10 CET 2016 true [14:17:11] [Server thread/INFO] [STDOUT]: [fr.powergame.modpg2.common.ServerEvents:tileFourgonSpawnEvent:21]: Tue Nov 15 14:17:11 CET 2016 true [14:17:11] [Server thread/INFO] [STDOUT]: [fr.powergame.modpg2.common.ServerEvents:tileFourgonSpawnEvent:21]: Tue Nov 15 14:17:11 CET 2016 false
Avec un tel nombre d’appels…
-
Bien sûr que la fonction est appelée 20 fois par seconde …
-
Ce qui m’empêche de faire un random, ça me cantonne à une horaire/une position
-
@‘Toutoune1008’:
Plop les gens,
Aujourd’hui j’écris ici concernant un event TickWorld qui serait appelée à une heure précise de la journée, ici afin de faire spawn un bloc à une coordonnée random parmi plusieurs possibles.
Ton heure est prédéfinie, je me trompe ?
-
Oui genre à 19h30 pile un bloc apparait à l’une des X coordonnées possibles, disons X = 8 pour l’exemple.
Mais si la méthode est appelée 20fois, le random est lancé 20fois et donc le bloc a trèèèèèès peu de chance de ne spawn qu’à un seul des points prévus ^^’
-
/** Sert à savoir si l'action a déjà été faite */ private boolean done = false; @SubscribeEvent public void tileFourgonSpawnEvent(TickEvent.WorldTickEvent event) { Calendar calendar = Calendar.getInstance(); if(calendar.get(Calendar.HOUR_OF_DAY) == 14 && calendar.get(Calendar.MINUTE) == 17 && calendar.get(Calendar.SECOND) == 10) { if(!done) //Si et seulement si l'action n'a pas encore été faite { done = true; //On va faire l'action donc on dit qu'elle a étét faite Random rand = new Random(); //On crée le nombre aléatoire //C'est ton code je ne vais pas te l'expliquer int randInt = rand.nextInt(3); if(randInt == 0) { Block block = event.world.getBlock(-430, 5, 360); if(block == Blocks.air) { event.world.setBlock(-430, 8, 360, Blocks.obsidian); } } if(randInt == 1) { Block block = event.world.getBlock(-430, 5, 360); if(block == Blocks.air) { event.world.setBlock(-430, 9, 360, Blocks.obsidian); } } if(randInt == 2) { Block block = event.world.getBlock(-430, 5, 360); if(block == Blocks.air) { event.world.setBlock(-430, 10, 360, Blocks.obsidian); } } //Quand on est ici on a done qui vaut true donc sur les 19 prochain ticks, l'action ne va pas se réaliser } } else { //Et là c'est quand on a dépassé la date, la prochaine fois que la date sera bonne on fera l'action done = false; } }
-
Merci de m’avoir aidé pour ce léger soucis de compréhension.