Plugin Résolu List null ?

Frithy

Bucheron
30 Septembre 2018
18
0
11
23
Bonjour,

J'ai un souci avec le code de mon plugin, après l'enregistrement d'un monde dans une liste mon plugin plante.

Je ne comprend pas car quand je fais la même chose pour la liste des admins et ça fonctionne.

Pourriez-vous m'aidez à comprendre ce qui ne va pas parce que je ne trouve pas.

Merci d'avance.



Mon code est trop long pour être affiché avez-vous une solution ? (Pour ceux qui on la fois j'ai mit mon code en join )

L'erreur en question :

1587416183981.png
 

Fichiers joints

  • message (14).txt
    22.8 KB · Affichages: 144
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,

Pourquoi te compliquer la vie ?
Genre:
Java:
for (World mondes : Bukkit.getServer().getWorlds()) {
        if (this.mondes.contains(mondes.getName())) {
            ....
        }
}

Alors que tu pourrais simplement avoir:
Java:
for (World monde : Bukkit.getServer().getWorlds()) {
        if (mondes.contains(monde.getName())) {
            ....
        }
}

L'erreur semble dire que "mondes" est vide (enfin "this.monde")


Cordialement,
Detobel36
 

Frithy

Bucheron
30 Septembre 2018
18
0
11
23
J'ai corrigé comme vous m'avez indiqué mais l'erreur est toujours présent.

La liste monde n'est pas vide car quand je fais :

1587425161487.png


Le résultat que j'obtiens est bien l'inventaire avec les items.

1587425257683.png


Mais c'est lorsque je cliques sur l'un d'eux, le programme s'execute jusqu'au bout puis plante.

Il plante que si l'on clique sur un "monde"
1587425359624.png



Je pense que ça doit venir d'une lecture de la liste mais je n'arrive pas à savoir d'où...
 
Dernière édition:

ShE3py

Enbogueuse
Support
26 Septembre 2015
4 133
162
462
247
21
Mìlhüsa
Bonsoir,

Je ne sais pas où tu bloques, mais si tu lis le stack trace de l'exception on voit bien que tu as une NullPointerException quand tu appelles Arrays#asList(T...) vers les lignes 330.

Java:
        //-------------------------------
        //Inventaire Monde List
        //-------------------------------

        Inventory invMondeList = Bukkit.createInventory(null, 27, "§3Chat Anonymous : MondeList");
        for (World mondes : Bukkit.getServer().getWorlds()) {
            if (this.mondes.contains(mondes.getName())) {
                if (mondes.getEnvironment().equals(World.Environment.NORMAL)) {
                    existMondeNormalM.setDisplayName(mondes.getName());
                    existMondeNormalM.setLore(Arrays.asList(null));
                    existMondeNormal.setItemMeta(existMondeNormalM);
                    invMondeList.setItem(index, existMondeNormal);

                } else if (mondes.getEnvironment().equals(World.Environment.NETHER)) {
                    existMondeNetherM.setDisplayName(mondes.getName());
                    existMondeNetherM.setLore(Arrays.asList(null));
                    existMondeNether.setItemMeta(existMondeNetherM);
                    invMondeList.setItem(index, existMondeNether);

                } else if (mondes.getEnvironment().equals(World.Environment.THE_END)) {
                    existMondeEndM.setDisplayName(mondes.getName());
                    existMondeEndM.setLore(Arrays.asList(null));
                    existMondeEnd.setItemMeta(existMondeEndM);
                    invMondeList.setItem(index, existMondeEnd);
                }

                index++;
            }
        }
        index = 0;

Les éléments de la liste ne doit pas être nul, si tu ne veux pas de lore met directement null au lieu de passer par l'instanciation d'une liste.
D'ailleurs, nomme soit tout en anglais soit tout en français, mais ne fais pas un mixe des deux.

Cordialement,
ShE3py.
 

Frithy

Bucheron
30 Septembre 2018
18
0
11
23
Ho merci, d'abord parce que maintenant je sais un peu plus lire les erreurs, je ne savais pas ou se trouvais la ligne de l'erreur dans tous ça.
Et parce que problème étaient les descriptions.

Merci encore.