CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourHigh-Tech
    • Actus High-Tech
    • Hardware
    • Smartphones
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • High-Tech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[Java/Bukkit] Faire une mini-pause dans mon plugin

20002707
20002707
Niveau 10
11 février 2016 à 19:40:35

Bonjour ! :hap:
J'étais en train de me faire un plugin qui reproduit la commande /butcher des plugins Essentials. C'est à dire que la commande tuera tout les mobs aux alentours.
Pour se faire, j'ai décidé de changer la difficulté du monde en Peaceful, et de la remettre à son état initial. J'ai donc essayé avec ce code :

if (cmd.getName().equalsIgnoreCase("butcher")) {
			Difficulty difficulty = Bukkit.getWorlds().get(0).getDifficulty();
			Bukkit.getWorlds().get(0).setDifficulty(Difficulty.PEACEFUL);
			Bukkit.getWorlds().get(0).setDifficulty(difficulty);
			sender.sendMessage(ChatColor.YELLOW + "Mobs killed!");
			return true;
		}

Bukkit.getWorlds().get(0) me place visiblement dans le monde 0 (Overworld), j'ai repris cette commande d'un code trouvé sur internet, parce que j'avais pas trop pigé comment faire.

Seulement voilà. J'enregistre la difficulté actuelle dans ma variable difficulty, et je change la difficulté en Peaceful, puis à celle du début. Seulement voilà, avec ce code, les mobs n'ont pas le temps d'être retirés. J'aimerais donc faire une pause d'un tick. Comment je peut faire de manière simple ?

TheRealMarco
TheRealMarco
Niveau 14
11 février 2016 à 21:05:34

http://wiki.bukkit.org/Scheduler_Programming#Scheduling_Work

BukkitTask task = new ExampleTask(this.plugin).runTaskLater(this.plugin, 20);

Je pense que ça ressemble à se que tu cherches.

20002707
20002707
Niveau 10
11 février 2016 à 22:22:24

Je vois pas trop comment ça marche. En fait j'veux juste marquer une pause d'un tick, puis continuer le programme. ça ça exécute une portion de code je crois.

20002707
20002707
Niveau 10
11 février 2016 à 22:33:55

C'est bon j'ai réussi à faire tout marcher ! :p
Pour les intéressés, voici le code :
if (cmd.getName().equalsIgnoreCase("butcher")) { Difficulty difficulty = Bukkit.getWorlds().get(0).getDifficulty(); Bukkit.getWorlds().get(0).setDifficulty(Difficulty.PEACEFUL); Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(this, new Runnable() { public void run() { Bukkit.getWorlds().get(0).setDifficulty(difficulty); sender.sendMessage(ChatColor.YELLOW + "Mobs killed!"); } }, (3)); return true; }

Message édité le 11 février 2016 à 22:36:52 par 20002707
Sous forums
  • Aide à l'achat Mac
  • Steam Deck
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Macintosh
  • Hardware
La vidéo du moment