CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • 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
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
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 13
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
  • Création de sites web
  • Internet
  • Macintosh
  • Création de Jeux
  • Linux
  • Programmation
  • Steam Deck
  • Hardware
La vidéo du moment