Plugin Résolu Code Java : player sender ne fonctionne pas

C'est simple...

Au début, tu fait
Code:
private MyGadgets main;

Et en gros là tu dit "j'ai un gadget qui s'appelle main", mais tu dit pas quel gadget.

Et après tu fait
Code:
main.give(blablacar.class, p);
Mais main == rien (null) vu qu'a aucun moment tu as fait main = truc.
Donc tu demande à un gadget qui n'existe pas de donner un truc. Boom, crash.

Donc il faut initialiser cette variable avant que l'event soit appeler.

P.S: Bon vraiment y'a un problème, ont peut pas faire de plugin sans savoir coder. C'est comme essayer de faire un graphique sans savoir ce que c'est, t'es mal barré...
Perso je te conseille le site d'Openclassroom qui est bien pour comprendre les bases mais qui n'explique que les classes (pour les interfaces, énumérations, classes abstractes et pleins d'autres chose faudrait regarder ailleurs sur le net, car c'est quand même vachement utile).
 
@ShE3py Merci pour OpenClassroom oui je dois aller voir c'est prévu xD J’acquiesce également ton PS. Sinon pour le problème, je regarderais dans la première class comment la variable est initialisé et j'enverrai ça dans la conversation. Je vous tiendrai courant, merci ShE3py

AlexFatta
 
Salut,

Au lieu de mettre return false; mets return true; à la fin de onCommand(...).
Cela ne réglera en rien son soucis...
Et balancer des trucs comme ça ne va pas l'aider. Vaudrait mieux expliquer :)

Un "return false" va dire à bukkit que la commande n'est pas marché et qu'il faut afficher l'aide. Contrairement au "return true" qui fait croire à bukkit que tout va bien et t'obliger à gérer le message d'aide toi même.

Concrètement les 2 sont bon. Tout dépend le comportement que l'on veut ;)


Cordialement,
Detobel36
 
  • J'aime
Reactions: Alex Fatta
Wohiohio !!

Le retour c'est maintenant ! Problème résolu :D Voici les modifications :

Donc dans la class MyGadgets (classe principale), j'ai fait ce que @Detobel36 à dis :
Code:
getCommand("gadgets").setExecutor(new MyCommandGadgetsExecutor(this));
Le this a été ajouté à la fin de la modif'.
Ensuite, dans le MyCommandGadgetsExecutor, j'ai ajouté ceci :
Code:
public MyCommandGadgetsExecutor(MyGadgets myGadgets) {this.main = myGadgets;}

Voilà voilà ! Cette fois ça marche niquel ! Merci à vous en tout cas ;) Et à la revoyure sur le forum ! :D

AlexFatta