Plugin Problème de vérification du monde du joueur

Monsieur Yaourt

Massacreur de zombies
2 Septembre 2014
69
5
111
30
Bonsoir,

En gros dans une config je peux lister des mondes, si le joueur est dans un des mondes dans la config alors je fais un return, sinon le code continue.
J'ai donc fait une ArrayList pour stocker les worlds

Code:
        ArrayList<String> ww = new ArrayList<String>(cg.getConfig().getStringList("cooldown_blacklist_world"));

Puis, via une boucle for, je vérifie le monde du joueur

Code:
        for (String wwlist : ww) {
            if (p.getWorld().toString().equalsIgnoreCase(wwlist)){
                return;
            }
            System.out.println("Affichage liste des mondes configs : "+ wwlist +" affichage monde du joueur " + p.getWorld());
        }


Cependant ça ne fonctionne pas, vous pouvez voir un sysout plus bas que j'ai utilisé pour voir ce que la console aller afficher, résultat :
Affichage liste des mondes configs : world affichage monde du joueur CraftWorld{name=world}

Le monde que j'ai définit dans la config est bien "world" et le monde dans lequel le joueur se trouve est bien "world", mais le plugin agit comme si la condition if (p.getWorld().toString().equalsIgnoreCase(wwlist)) n'était pas remplit
 

Detobel36

Créateur de plugins (PhoenixRebirth)
Support
17 Août 2012
10 358
21
2 222
347
25
Bruxelles - Belgique
www.phoenix-rebirth.fr
Salut,

toString() est une méthode à utilisé pour débug...
Quand tu développes, n'hésites pas à regarder la javadoc (normalement tu peux directement avoir les infos dans ton IDE). Pour la class "world", la doc est ici: https://hub.spigotmc.org/javadocs/spigot/org/bukkit/World.html
Dans cette doc, tu peux voir la methode getName()

Donc ton code doit être écrit de la manière suivant:
Java:
        for (final String wwlist : ww) {
            if (p.getWorld().getName().equalsIgnoreCase(wwlist)){
                return;
            }
            Bukkit.getLogger().info("Affichage liste des mondes configs : "+ wwlist +" affichage monde du joueur " + p.getWorld().getName());
        }


Cordialement,
Dteobel36
 
  • J'aime
Reactions: Monsieur Yaourt

Monsieur Yaourt

Massacreur de zombies
2 Septembre 2014
69
5
111
30
Salut,

toString() est une méthode à utilisé pour débug...
Quand tu développes, n'hésites pas à regarder la javadoc (normalement tu peux directement avoir les infos dans ton IDE). Pour la class "world", la doc est ici: https://hub.spigotmc.org/javadocs/spigot/org/bukkit/World.html
Dans cette doc, tu peux voir la methode getName()

Donc ton code doit être écrit de la manière suivant:
Java:
        for (final String wwlist : ww) {
            if (p.getWorld().getName().equalsIgnoreCase(wwlist)){
                return;
            }
            Bukkit.getLogger().info("Affichage liste des mondes configs : "+ wwlist +" affichage monde du joueur " + p.getWorld().getName());
        }


Cordialement,
Dteobel36
Oui tu as raison je suis resté trop longtemps bloqué alors que la réponse était sur la doc, merci pour l'aide.