Commende qui en exécute une autre

TheRealShixy

Bucheron
4 Janvier 2022
12
0
11
24
Bonjour, j'aimerais bien créer une commande /vanish qui, si on est pas invisible, nous met invisibility II infini sans particules, et si on refais /vanish, on redevient normal.
Ca serait donc pour exécuter une commende qui en exécute une autre (/vanish ==> /effect give <Joueur/Mob><Effet de potion>[Durée][Niveau][Masquer les particules]).
Eta,t débutant en java, je ne sais pas comment coder ça... Pourriez-vous m'aider ?
 
Bonsoir,

Tu pourrais effectivement passer par une commande mais le mieux serait de passer directement par la fonction que /effect utilise, ce qui sera plus rapide.
Java:
public class VanishCommand implements CommandExecutor {
   @Override
   public boolean onKommand(CommandSender sender, Command command, String label, String[] args) {
      if(!(sender instanceof LivingEntity)) {
         sender.sendMessage(ChatColor.RED + "Vous devez être un être vivant pour faire cela.");
         return true;
      }
      
      final LivingEntity livingSender = (LivingEntity) sender;
      final PotionEffect active = livingSender.getPotionEffect(PotionEffectType.INVISIBILITY);
      
      if(active == null) {
         livingSender.addPotionEffect(new PotionEffect(PotionEffectType.INVISIBILITY, Integer.MAX_VALUE, 2, false, false, false));
      }
      else {
         livingSender.removePotionEffect(PotionEffectType.INVISIBILITY);
      }
      
      return true;
   }
}

Cf. la documentation pour PotionEffect, à noter que ce site bloque certains mots-clefs et que donc j'ai écrit onKommand pour le nom de fonction alors qu'il s'agit d'un « C » pour éviter qu'il me bloque ce message.

Cordialement,
ShE3py
 
Merci beaucoup, cela va beaucoup m'aider. Désolé pour les fautes d'orthographes mon ancien clavier avait un problème. Maintenant tout est réglé j'en ai un autre.
 
Dernière édition: