Plugin Comment partager une variable entre plusieurs class

Achoc

Mineur des cavernes
21 Avril 2020
61
0
31
24
Je suis entrain de créer un plugin, j'aimerai lock l'inventaire des joueurs grâce à une commande dans une class pour les commandes j'ai créé la commande qui modifie une variable boolean et il faudrait que je puisse récupéré la valeur de la variable depuis une autre class.
 
Solution
@EventHandler
private void lockinventorymethod(boolean lockinventory2, InventoryClickEvent event) {
if(lockinventory = true) {
Player player = (Player) event.getWhoClicked();
event.getResult();
event.setResult(Result.DENY);
player.updateInventory();
}

}
@EventHandler requiert une fonction publique à un seul paramètre — l'évènement ; tu as une fonction privée à deux paramètres — un booléen lockinventory2 et ton évènement, donc concrètement ta fonction ne sera jamais appelée.
De plus pour comparer deux valeurs il faut utiliser l'opérateur d'égalité == et non l'opérateur d'affectation =, là tu définis la variable lockinventory à true.
Ensuite le compilateur ne peut même pas deviner où est ta...
Bonjour !

Tu as pas mal de choix.
Soit tu créés un objet qui te permet de gérer tout ça. (Recommandé, et plus jolie sachant que JAVA est un langage de programation orienté objet)
Soit tu rends ta classe principale visible à tous et tu récupères une variable de cette instance. (Déconseillé tout de même mais c'est toi qui voit)
Après avec un peu d'imagination tu peux faire autrement !
 
J'ai créé la variable static mais comment je l'intègre au code d'une autre class
java:

@EventHandler
private void lockinventorymethod(boolean lockinventory2, InventoryClickEvent event) {
if(lockinventory = true) {
Player player = (Player) event.getWhoClicked();
event.getResult();
event.setResult(Result.DENY);
player.updateInventory();
}

}
 
J'ai créé la variable static mais comment je l'intègre au code d'une autre class
java:

@EventHandler
private void lockinventorymethod(boolean lockinventory2, InventoryClickEvent event) {
if(lockinventory = true) {
Player player = (Player) event.getWhoClicked();
event.getResult();
event.setResult(Result.DENY);
player.updateInventory();
}

}
Il nous faudrait le code complet parce que là je ne comprend rien ...
 
Dernière édition:
@EventHandler
private void lockinventorymethod(boolean lockinventory2, InventoryClickEvent event) {
if(lockinventory = true) {
Player player = (Player) event.getWhoClicked();
event.getResult();
event.setResult(Result.DENY);
player.updateInventory();
}

}
@EventHandler requiert une fonction publique à un seul paramètre — l'évènement ; tu as une fonction privée à deux paramètres — un booléen lockinventory2 et ton évènement, donc concrètement ta fonction ne sera jamais appelée.
De plus pour comparer deux valeurs il faut utiliser l'opérateur d'égalité == et non l'opérateur d'affectation =, là tu définis la variable lockinventory à true.
Ensuite le compilateur ne peut même pas deviner où est ta variable donc ton code ne compile même pas pour moi.
Après pour continuer event.getResult(); est équivalent à écrire 1;, aucun effet.
Idem pour player.updateInventory();, cela ne sert à rien dans ce cas-là.

J'ai créé la variable static mais comment je l'intègre au code d'une autre class
En lisant mon message initial, ou encore en cliquant sur le lien bleu que j'ai aussi envoyé.
 
Solution