Créer une commande multiple

Sala

Aventurier
27 Février 2021
23
0
3
18
Bonjour,
Je reviens encore une fois xd, juste pour savoir comment on fait pour faire une commande multiple genre :
/choix bonjour : Qui renverrais dans le chat du joueur "Slt test" par exemple
et si on faisait
/choix aurevoir : Cela enverrais dans le chat du joueur "Test Au revoir" par exemple.
Ca à l'air simple mais j'ai essayé avec plusieurs choses et je n'y arrive pas...
Merci de votre aide.
 
Dernière édition:
Salut,

On parle de "faire" avec du code Java ?
Peux tu nous montrer ce que tu as déjà fait (histoire de pas te sortir une solution de nulle part que tu ne va pas comprendre mais plutôt de partir de ton travail) ?


Cordialement,
Detobel36
 
1617694595111.png
 
Dernière édition:
Salut,

Et bien tu es bien parti.
Voila ce que moi j'aurais écrit: https://pastebin.com/0Pbevr3F
Java:
@Override
public boolean on_Command(CommandSender sender, Command cmd, String msg, String[] args) {
  
    if(sender instanceof Player) {
        final Player player = (Player) sender;
        if(cmd.getName().equalsIgnoreCase("choix")) {
            if(args.length == 1) {

                switch(args[0].toLowerCase()) {
                    case "bonjour":
                        player.sendMessage("Slt test");
                        break;

                    case "aurevoir":
                        player.sendMessage("Test au revoir");
                        break;

                    default:
                        player.sendMessage("Paramètre '" + args[0] + "' inconnu.");
                        break;
                }
            } else {
                player.sendMessage("Mauvais format: /choix <parametre>");
            }
        }
    } else {
        sender.sendMessage("Cette commande est réservée aux joueurs");
    }

}
(Il n'est pas possible d'écrire "onQqch" sur le forum, d'où le "on_Command" que tu dois renommer).

Si ça ne marche pas, dit moi où ça plante (je n'ai pas testé mon code).


Cordialement,
Detobel36
 
Ok mrc je vais test.

C'est bon ça marche mrc !
 
Dernière édition par un modérateur:
Salut !
Désolé de déterrer le post....

Je pense que ton code ne fonctionnait pas car String est un Objet. Chaque fois que tu crées une String, c'est une nouvelle instance. Or, tu vérifies si l'instance de la String "bonjour" est égal à l'instance de la String donnée par la commande. En aucun cas ce sera la même instance ! Le mieux est d'utilisé la méthode Object#equals(Object) pour les comparer.

Dans le cas du switch-case, l'utilisation de la méthode est implicite c'est pour cela qu'il n'y a pas de problème.

En espérant avoir aidé,
EdgarPi
 
  • J'aime
Reactions: Detobel36