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:

Detobel36

Créateur de plugins (PhoenixRebirth)
Support
17 Août 2012
10 531
24
2 247
347
28
Bruxelles - Belgique
www.phoenix-rebirth.fr
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
 

Sala

Aventurier
27 Février 2021
23
0
3
18
1617694595111.png
 
Dernière édition:

Detobel36

Créateur de plugins (PhoenixRebirth)
Support
17 Août 2012
10 531
24
2 247
347
28
Bruxelles - Belgique
www.phoenix-rebirth.fr
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
 

Sala

Aventurier
27 Février 2021
23
0
3
18
Ok mrc je vais test.

C'est bon ça marche mrc !
 
Dernière édition par un modérateur:

EdgarPi

Correcteur
Staff
Correcteur
9 Février 2014
179
13
25
135
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