Plugin Résolu Code en Java foireux

Alex Fatta

Commandant de la Flotte et de la Horde
13 Août 2014
1 389
1
191
187
Woyoyo !

C'est moi et pour une fois je vous demande de l'aide ^^

Bon étant un assez bon développeur skript, il serait temps de se mettre au java. J'ai regardé pas mal de tutos et j'en aient fait beaucoup aussi. Cette fois, j'ai essayé de mettre en place quelque chose qui n'était pas dans les vidéos mais qui était en rapport avec ces dernières. Ce que je veux faire, c'est une commande /timer <temps en seconde> et à ce moment là, le joueur à sa barre d'XP qui se met à la valeur de l'argument 1 et qui descend petit à petit. Le problème, c'est pour attribuer la valeur de l'argument 1 à une variable (ici "ptimer"). Bon après je veux faire des effets style explosions sympathique à la fin du timer mais pour l'instant c'est ça qui me préoccupe. Je vous met le code et si 1 ou 2 développeurs sympatoche pourrait me dire comment organisé la syntaxe ça m'aiderait !

PHP:
    public boolean onCommand(CommandSender sender, Command command, String label, String[] args){
      
        Player p = (Player) sender;
        int ptimer = 0;
      
        if(label.equalsIgnoreCase("timer")){
            String Number = null;
            if(args.length != 1){
                p.sendMessage("§4Merci de rentrer une durée !");
                return false;
            }else if(args[0].equalsIgnoreCase(Number)){
                ptimer = args[0];
                p.sendMessage("§2Ton timer vient de commencer !");
                p.setLevel(ptimer);
                ptimer--;
            }
              
          
        }
      
        return false;
      
    }

Voilà !

Merci à tous ! :D

AlexFatta

PS : il me met une erreur au niveau du premier args[0] en partant du bas ;) ;)
 
Bonsoir !

Oui j'ai mis le PHP parce que le forum propose rien d'autre xD

Sinon, le premier args[0] en partant du bas (donc à la ligne ptimer = args[0];), il est surligné en rouge et quand j laisse la souris il me propose :
"Change type of "ptimer" to "Strings"
Change type of "args" to "int""

Voilà ! :D Et quand tu clique dessus bien sûr ça modifie soit la ligne "int ptimer = 0;" et ça remplace "int" par "Strings" (Donc premier cas que j'ai cité avant) ou sinon deuxième proposition de Eclipse, c'est de remplacer tous les "args" par des "int". Voilà tu sais tout ! :D

Ah oui sinon je pense que j'ai mal compris ta question mais dans le doute je le met quand même, à la ligne "ptimer = args[0];" dans la marge y'a une ampoule avec une croix rouge et quand je laisse la souris sur le bout du code qui est en rouge il me met "Type mismatch: cannot convert from String to int".
Cette fois j'ai fais le tour !

Merci à toi ! :D

AlexFatta
 
L'erreur semble tout à fait normale.
args est pointeur (enfin un tableau) de caractères (string), et ptimer un entier.
À la ligne qui pose problème, tu essayes de stocker une string dans un entier.
 
Tu peux éventuellement utiliser Integer.parseInt("42")

Pour convertir une chaîne de caractères en entier.

Ou l'inverse, String.valueOf(ton_entier)

Dans ton code, tente un

ptimer = Integer.parseInt(args[0]);
 
Il ne se passe rien. Je rentre /timer et il me met bien le message "merci de rentrer une durée" mais quand je met un chiffre il se passe rien :/

AlexFatta
 
Il ne se passe rien. Je rentre /timer et il me met bien le message "merci de rentrer une durée" mais quand je met un chiffre il se passe rien :/

AlexFatta

Déjà, tu n'as plus d'erreur à la compilation, c'est déjà bon signe.

Le problème c'est sûrement ton algorithme.
Je travaille pas sur des plugins/avec ces fonctions donc je pourrai pas t'en dire davantage.
Sauf si tu peux m'en dire davantage sur cette fonction "OneCommand".
 
C'est la seule façon que j'ai appris pour créer une commande xD Je sais pas si y a une autre moyen d'en créer :/ En effet il n'y a plus d'erreurs c'est déjà bien ^^ Après, est-ce que ce serait le fait d'avoir mis "Number" en guise d'args ? Honnêtement je sais pas non plus je débute en java et je commence à en avoir marre du skript ^^ J'ai essayé en mettant juste des guillemets ouverts puis fermés mais ça ne change rien c'était à prévoir aussi ^^ Voilà je bloque d'où ma présence ici x)

AlexFatta
 
C'est la seule façon que j'ai appris pour créer une commande xD Je sais pas si y a une autre moyen d'en créer :/ En effet il n'y a plus d'erreurs c'est déjà bien ^^ Après, est-ce que ce serait le fait d'avoir mis "Number" en guise d'args ? Honnêtement je sais pas non plus je débute en java et je commence à en avoir marre du skript ^^ J'ai essayé en mettant juste des guillemets ouverts puis fermés mais ça ne change rien c'était à prévoir aussi ^^ Voilà je bloque d'où ma présence ici x)

AlexFatta
Numbers? Ou ça ?