1. Le forum de Minecraft-France va définitivement fermer ses portes. Celui-ci restera en lecture seule mais vous ne pourrez plus y apporter de nouveaux topics. Nous vous invitons à nous rejoindre sur le Discord de Minecraft-France qui permet de présenter vos projets, discuter avec la communauté etc.. Merci à tous d'avoir fait vivre ce forum de nombreuses années. Pour nous rejoindre sur Discord, Cliquez ici

[Plugins] "J'ai une erreur, je fais quoi ?"

Discussion dans 'Tutoriels' créé par Mr_SheepSheep, 12 Avr 2014.

  1. Mr_SheepSheep

    Mr_SheepSheep Mineur

    Inscrit:
    27 Juin 2013
    Messages:
    394
    Points:
    92
    Sexe:
    Homme
    J'ai une erreur. Que faire ?

    Je rédige ce tutoriel car beaucoup de gens qui débutent sous craftbukkit tombent sur des erreurs qu'ils ne comprennent pas, et par conséquent qu'ils ne peuvent pas résoudre.
    Disons qu'un joueur fais ses configs, et il /reload pour recharger son serveur. Mais dans ses logs, il remarque un énorme paragraphe qui pourrait ressembler à ça:

    Code (cpp):
    =============================== GM ERROR LOG ===============================
    = ERROR REPORT START - 2.0 (2.9.6) (Phoenix) =

    java.lang.IllegalArgumentException: The following file couldn't pass on Parser.
    plugins/GroupManager/worlds/world/groups.yml
    at org.anjocaido.groupmanager.dataholder.WorldDataHolder.loadGroups(WorldDataHolder.java:497)
    at org.anjocaido.groupmanager.dataholder.WorldDataHolder.loadGroups(WorldDataHolder.java:417)
    at org.anjocaido.groupmanager.dataholder.worlds.WorldsHolder.loadWorld(WorldsHolder.java:629)
    at org.anjocaido.groupmanager.dataholder.worlds.WorldsHolder.loadWorld(WorldsHolder.java:591)
    at org.anjocaido.groupmanager.dataholder.worlds.WorldsHolder.initialWorldLoading(WorldsHolder.java:88)
    at org.anjocaido.groupmanager.dataholder.worlds.WorldsHolder.initialLoad(WorldsHolder.java:78)
    at org.anjocaido.groupmanager.dataholder.worlds.WorldsHolder.resetWorldsHolder(WorldsHolder.java:70)
    at org.anjocaido.groupmanager.dataholder.worlds.WorldsHolder.<init>(WorldsHolder.java:59)
    at org.anjocaido.groupmanager.GroupManager.onEnable(GroupManager.java:163)
    at org.anjocaido.groupmanager.GroupManager.onEnable(GroupManager.java:87)
    at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:250)
    at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:350)
    at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:389)
    at org.bukkit.craftbukkit.v1_7_R1.CraftServer.loadPlugin(CraftServer.java:439)
    at org.bukkit.craftbukkit.v1_7_R1.CraftServer.enablePlugins(CraftServer.java:375)
    at org.bukkit.craftbukkit.v1_7_R1.CraftServer.reload(CraftServer.java:773)
    at org.bukkit.Bukkit.reload(Bukkit.java:279)
    at org.bukkit.command.defaults.ReloadCommand.execute(ReloadCommand.java:23)
    at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:175)
    at org.bukkit.craftbukkit.v1_7_R1.CraftServer.dispatchCommand(CraftServer.java:683)
    at net.minecraft.server.v1_7_R1.PlayerConnection.handleCommand(PlayerConnection.java:952)
    at net.minecraft.server.v1_7_R1.PlayerConnection.a(PlayerConnection.java:814)
    at net.minecraft.server.v1_7_R1.PacketPlayInChat.a(PacketPlayInChat.java:28)
    at net.minecraft.server.v1_7_R1.PacketPlayInChat.handle(PacketPlayInChat.java:47)
    at net.minecraft.server.v1_7_R1.NetworkManager.a(NetworkManager.java:146)
    at net.minecraft.server.v1_7_R1.ServerConnection.c(SourceFile:134)
    at net.minecraft.server.v1_7_R1.MinecraftServer.u(MinecraftServer.java:655)
    at net.minecraft.server.v1_7_R1.DedicatedServer.u(DedicatedServer.java:250)
    at net.minecraft.server.v1_7_R1.MinecraftServer.t(MinecraftServer.java:545)
    at net.minecraft.server.v1_7_R1.MinecraftServer.run(MinecraftServer.java:457)
    at net.minecraft.server.v1_7_R1.ThreadServerApplication.run(SourceFile:617)
    Caused by: while scanning an anchor
    in "<reader>", line 220, column 16:
    prefix: '
    &a[VIP]&f'
    ^
    expected alphabetic or numeric character, but found [(91)
    in "<reader>", line 220, column 18:
    prefix: '
    &a[VIP]&f'
    ^

    at org.yaml.snakeyaml.scanner.ScannerImpl.scanAnchor(ScannerImpl.java:1169)
    at org.yaml.snakeyaml.scanner.ScannerImpl.fetchAnchor(ScannerImpl.java:782)
    at org.yaml.snakeyaml.scanner.ScannerImpl.fetchMoreTokens(ScannerImpl.java:315)
    at org.yaml.snakeyaml.scanner.ScannerImpl.checkToken(ScannerImpl.java:179)
    at org.yaml.snakeyaml.parser.ParserImpl$ParseBlockMappingKey.produce(ParserImpl.java:563)
    at org.yaml.snakeyaml.parser.ParserImpl.peekEvent(ParserImpl.java:161)
    at org.yaml.snakeyaml.parser.ParserImpl.checkEvent(ParserImpl.java:146)
    at org.yaml.snakeyaml.composer.Composer.composeMappingNode(Composer.java:230)
    at org.yaml.snakeyaml.composer.Composer.composeNode(Composer.java:160)
    at org.yaml.snakeyaml.composer.Composer.composeMappingNode(Composer.java:237)
    at org.yaml.snakeyaml.composer.Composer.composeNode(Composer.java:160)
    at org.yaml.snakeyaml.composer.Composer.composeMappingNode(Composer.java:237)
    at org.yaml.snakeyaml.composer.Composer.composeNode(Composer.java:160)
    at org.yaml.snakeyaml.composer.Composer.composeMappingNode(Composer.java:237)
    at org.yaml.snakeyaml.composer.Composer.composeNode(Composer.java:160)
    at org.yaml.snakeyaml.composer.Composer.composeDocument(Composer.java:123)
    at org.yaml.snakeyaml.composer.Composer.getSingleNode(Composer.java:106)
    at org.yaml.snakeyaml.constructor.BaseConstructor.getSingleData(BaseConstructor.java:121)
    at org.yaml.snakeyaml.Yaml.loadFromReader(Yaml.java:480)
    at org.yaml.snakeyaml.Yaml.load(Yaml.java:423)
    at org.anjocaido.groupmanager.dataholder.WorldDataHolder.loadGroups(WorldDataHolder.java:492)
    ... 30 more
    Et là, voyant la masse de lignes incompréhensibles, il abandonne. Adieu, Jean-Kevin !

    1. Rester à jour
    Si garder un plugin à jour peut-être banal, il faut encore y penser. En effet, si la version du plugin est différente de celle de craftbukkit, il peut potentiellement y avoir des bugs accompagnés d'erreurs. Il faut donc impérativement mettre à jour ses plugins en fonction de sa version de craftbukkit, et si besoin de mettre à jour craftbukkit (Je ne parle pas forcément de la version du jeu, simplement de la version du fichier craftbukkit.jar) pour la plus récente.

    2. /reload, LA commande de la mort qui tue
    Tout le monde connaît le /reload. Et c'est bien embêtant. En effet, le /reload revient à recharger TOUS les plugins en même temps, ce qui cause déjà beaucoup de lag. Mais il peut aussi y avoir des problèmes au niveau de certaines configurations, notamment au niveau de plugins multi-mondes (Multiverse par ex.). Si vous avez besoin de recharger les configurations d'un seul plugin, renseignez-vous sur ses commandes. Les plugins les plus importants possèdent en général une commande "/<commande> reload". Aussi, si il faut vraiment recharger toutes les configurations, redémarrez le serveur. Certes, c'est plus long, mais au moins, il n'y a pas de problème.

    3. L'anglais, la langue indispensable
    La première chose qu'il faut savoir avant de se lancer dans les plugins, c'est l'anglais. Vous savez, cette langue que presque toute la planète parle ?
    Les erreurs craftbukkit ne sont pas traduites en français spécialement pour vous. Tous les plugins sans exception sont en anglais, et les erreurs qui vont avec aussi. Avant même de vous lancer dans un serveur, apprenez l'anglais de manière à comprendre la presque totalité des plugins.

    4. Keep Calm and read the log
    La première chose à faire lorsqu'un plugin ne fonctionne pas ou fonctionne mal, c'est d'aller voir la console pour voir ce qui se trame.
    Reprenons notre exemple:

    Code (cpp):
    =============================== GM ERROR LOG ===============================
    = ERROR REPORT START - 2.0 (2.9.6) (Phoenix) =

    java.lang.IllegalArgumentException: The following file couldn't pass on Parser.
    plugins/GroupManager/worlds/world/groups.yml
    at org.anjocaido.groupmanager.dataholder.WorldDataHolder.loadGroups(WorldDataHolder.java:497)
    at org.anjocaido.groupmanager.dataholder.WorldDataHolder.loadGroups(WorldDataHolder.java:417)
    at org.anjocaido.groupmanager.dataholder.worlds.WorldsHolder.loadWorld(WorldsHolder.java:629)
    at org.anjocaido.groupmanager.dataholder.worlds.WorldsHolder.loadWorld(WorldsHolder.java:591)
    at org.anjocaido.groupmanager.dataholder.worlds.WorldsHolder.initialWorldLoading(WorldsHolder.java:88)
    at org.anjocaido.groupmanager.dataholder.worlds.WorldsHolder.initialLoad(WorldsHolder.java:78)
    at org.anjocaido.groupmanager.dataholder.worlds.WorldsHolder.resetWorldsHolder(WorldsHolder.java:70)
    at org.anjocaido.groupmanager.dataholder.worlds.WorldsHolder.<init>(WorldsHolder.java:59)
    at org.anjocaido.groupmanager.GroupManager.onEnable(GroupManager.java:163)
    at org.anjocaido.groupmanager.GroupManager.onEnable(GroupManager.java:87)
    at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:250)
    at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:350)
    at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:389)
    at org.bukkit.craftbukkit.v1_7_R1.CraftServer.loadPlugin(CraftServer.java:439)
    at org.bukkit.craftbukkit.v1_7_R1.CraftServer.enablePlugins(CraftServer.java:375)
    at org.bukkit.craftbukkit.v1_7_R1.CraftServer.reload(CraftServer.java:773)
    at org.bukkit.Bukkit.reload(Bukkit.java:279)
    at org.bukkit.command.defaults.ReloadCommand.execute(ReloadCommand.java:23)
    at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:175)
    at org.bukkit.craftbukkit.v1_7_R1.CraftServer.dispatchCommand(CraftServer.java:683)
    at net.minecraft.server.v1_7_R1.PlayerConnection.handleCommand(PlayerConnection.java:952)
    at net.minecraft.server.v1_7_R1.PlayerConnection.a(PlayerConnection.java:814)
    at net.minecraft.server.v1_7_R1.PacketPlayInChat.a(PacketPlayInChat.java:28)
    at net.minecraft.server.v1_7_R1.PacketPlayInChat.handle(PacketPlayInChat.java:47)
    at net.minecraft.server.v1_7_R1.NetworkManager.a(NetworkManager.java:146)
    at net.minecraft.server.v1_7_R1.ServerConnection.c(SourceFile:134)
    at net.minecraft.server.v1_7_R1.MinecraftServer.u(MinecraftServer.java:655)
    at net.minecraft.server.v1_7_R1.DedicatedServer.u(DedicatedServer.java:250)
    at net.minecraft.server.v1_7_R1.MinecraftServer.t(MinecraftServer.java:545)
    at net.minecraft.server.v1_7_R1.MinecraftServer.run(MinecraftServer.java:457)
    at net.minecraft.server.v1_7_R1.ThreadServerApplication.run(SourceFile:617)
    Caused by: while scanning an anchor
    in "<reader>", line 220, column 16:
    prefix: '
    &a[VIP]&f'
    ^
    expected alphabetic or numeric character, but found [(91)
    in "<reader>", line 220, column 18:
    prefix: '
    &a[VIP]&f'
    ^

    at org.yaml.snakeyaml.scanner.ScannerImpl.scanAnchor(ScannerImpl.java:1169)
    at org.yaml.snakeyaml.scanner.ScannerImpl.fetchAnchor(ScannerImpl.java:782)
    at org.yaml.snakeyaml.scanner.ScannerImpl.fetchMoreTokens(ScannerImpl.java:315)
    at org.yaml.snakeyaml.scanner.ScannerImpl.checkToken(ScannerImpl.java:179)
    at org.yaml.snakeyaml.parser.ParserImpl$ParseBlockMappingKey.produce(ParserImpl.java:563)
    at org.yaml.snakeyaml.parser.ParserImpl.peekEvent(ParserImpl.java:161)
    at org.yaml.snakeyaml.parser.ParserImpl.checkEvent(ParserImpl.java:146)
    at org.yaml.snakeyaml.composer.Composer.composeMappingNode(Composer.java:230)
    at org.yaml.snakeyaml.composer.Composer.composeNode(Composer.java:160)
    at org.yaml.snakeyaml.composer.Composer.composeMappingNode(Composer.java:237)
    at org.yaml.snakeyaml.composer.Composer.composeNode(Composer.java:160)
    at org.yaml.snakeyaml.composer.Composer.composeMappingNode(Composer.java:237)
    at org.yaml.snakeyaml.composer.Composer.composeNode(Composer.java:160)
    at org.yaml.snakeyaml.composer.Composer.composeMappingNode(Composer.java:237)
    at org.yaml.snakeyaml.composer.Composer.composeNode(Composer.java:160)
    at org.yaml.snakeyaml.composer.Composer.composeDocument(Composer.java:123)
    at org.yaml.snakeyaml.composer.Composer.getSingleNode(Composer.java:106)
    at org.yaml.snakeyaml.constructor.BaseConstructor.getSingleData(BaseConstructor.java:121)
    at org.yaml.snakeyaml.Yaml.loadFromReader(Yaml.java:480)
    at org.yaml.snakeyaml.Yaml.load(Yaml.java:423)
    at org.anjocaido.groupmanager.dataholder.WorldDataHolder.loadGroups(WorldDataHolder.java:492)
    ... 30 more

    a) Analyser les erreurs
    On est d'accord, si on ne s'y connaît pas un minimum, tout ces "at.org. ..." ne veulent rien dire. Pourtant, ils ont tous une signification.
    Chaque ligne correspond a une erreur dans le code du plugin. Cette erreur peut être aussi bien due à un problème de configuration qu'à un problème dans le code. Dans ce deuxième cas, il est alors impossible de résoudre le problème (avec cette version du plugin).
    Mais ici, il s'agit d'un problème de configuration, comme dans la plupart des cas.
    Déjà, on va prendre une seule ligne, et voir ce qu'on peut en faire:
    Code (cpp):
    at org.anjocaido.groupmanager.dataholder.WorldDataHolder.loadGroups(WorldDataHolder.java:497)
    Qu'est-ce qu'on peut remarquer là-dedans ?
    Le nom du plugin pardi !
    Une erreur est toujours "suivie" du nom du plugin. Il s'agit là de votre unique façon de savoir d'où vient l'erreur.
    Mais dans ce cas particulier, on peut aussi trouver une deuxième information: loadGroups. En anglais, "charge des groupes" ou quand on fait /manload quoi.
    Il s'agit donc d'un problème de GroupManager, au moment où les groupes sont chargés... Mmh.
    On va trier un peu toutes ces lignes, en enlevant les at.org.bidule:
    Code (cpp):
    =============================== GM ERROR LOG ===============================
    = ERROR REPORT START - 2.0 (2.9.6) (Phoenix) =

    java.lang.IllegalArgumentException: The following file couldn't pass on Parser.
    plugins/GroupManager/worlds/world/groups.yml
    Caused by: while scanning an anchor
    in "<reader>", line 220, column 16:
    prefix: '
    &a[VIP]&f'
    ^
    expected alphabetic or numeric character, but found [(91)
    in "<reader>", line 220, column 18:
    prefix: '
    &a[VIP]&f'
    ^
    ... 30 more
    Avouez qu'il ne reste plus grand chose !
    Regardons d'abord la première ligne: "The following file couldn't pass on Parser" = "Le fichier suivant ne peut pas être sujet de l'analyse syntaxique" (Merci l'anglais)
    Ce message est fréquent lorsqu'on manipule des fichiers de configuration en YAML (.yml). Il s'agit donc d'un problème de syntaxe !
    Bien, maintenant, le nom du fichier: plugins/GroupManager/worlds/world/groups.yml
    "groups.yml", le fichier des groupes. Il y a un problème à ce niveau là.
    "in "<reader>", line 220, column 16" et on vous précise même la ligne et la colonne, avec un petit aperçu en dessous !
    Maintenant qu'on sait d'où vient le problème, il va falloir le corriger !

    b) Corriger les erreurs
    Grâce aux logs, on a pu voir le lieu de l'erreur grâce à "line" et "column", ou encore grâce à l'aperçu juste en dessous. A noter que pour toutes les configurations en YAML, la syntaxe des logs sera presque la même.
    Mais il y a un moyen de trouver l'erreur avant même de recharger la configuration, c'est YAML Online parser. Il s'agit d'un site très simple d'utilisation, qui permet de détecter les problèmes de syntaxe dans un fichier YAML. On copie-colle son fichier de configuration à gauche, et on regarde ce qui ne va pas. Si le fichier n'a aucune erreur, alors la sortie (Output, à droite) sera la même que le fichier. Si il y a une erreur, alors on retrouvera la même chose que dans les logs. Quelque chose comme
    Code (cpp):
    in "<reader>", line 220, column 16:
    prefix: '&a[VIP]&f'
    ^
    expected alphabetic or numeric character, but found [(91)
    in "<reader>", line 220, column 18:
    prefix: '&a[VIP]&f'
    ^
    >> Le mieux, c'est de terminer sa configuration, puis d'analyser le fichier avec YAML Online parser !

    c) Autres cas
    Les autres cas sont des cas particuliers. Il n'est écrit nulle part où se situe l'erreur (ci ce n'est par la méthode du "at org."). le YAML Online Parser ne peut rien faire pour vous non plus.
    On peut alors recommencer sa configuration, ou vérifier si il n'y a pas des erreurs de syntaxe dans la configuration. Par erreur de syntaxe, j'entends "Maison est différent de maison".
    J'ai notamment vu cela quand j'ai configuré le plugin uSkyblock. Sa configuration ne permettait pas d'utiliser des majuscules à certains endroits, et il devenait impossible de réaliser certaines actions.
    Il ne faut pas hésiter à relire la configuration de base, à respecter les petits détails comme les majuscules, les guillemets... quitte à copier/coller puis modifier par la suite.

    3. Et si ce n'est pas un problème de configuration YAML ?
    Dans ce cas, il n'y a pas grand-chose à faire. Il s'agit généralement d'un problème de code (je me répète), et il faut attendre une mise à jour.
    Voici un exemple d'erreur impossible à corriger depuis la configuration, avec le plugin Ultimate Skyblock:
    Code (cpp):
    Could not pass event InventoryClickEvent to uSkyBlock v2.0.0
    org.bukkit.event.EventException
        at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:427) ~[craftbukkit-beta.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
        at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) ~[craftbukkit-beta.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
        at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:481) [craftbukkit-beta.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
        at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:466) [craftbukkit-beta.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
        at net.minecraft.server.v1_7_R1.PlayerConnection.a(PlayerConnection.java:1351) [craftbukkit-beta.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
        at net.minecraft.server.v1_7_R1.PacketPlayInWindowClick.a(SourceFile:32) [craftbukkit-beta.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
        at net.minecraft.server.v1_7_R1.PacketPlayInWindowClick.handle(SourceFile:10) [craftbukkit-beta.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
        at net.minecraft.server.v1_7_R1.NetworkManager.a(NetworkManager.java:146) [craftbukkit-beta.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
        at net.minecraft.server.v1_7_R1.ServerConnection.c(SourceFile:134) [craftbukkit-beta.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
        at net.minecraft.server.v1_7_R1.MinecraftServer.u(MinecraftServer.java:655) [craftbukkit-beta.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
        at net.minecraft.server.v1_7_R1.DedicatedServer.u(DedicatedServer.java:250) [craftbukkit-beta.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
        at net.minecraft.server.v1_7_R1.MinecraftServer.t(MinecraftServer.java:545) [craftbukkit-beta.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
        at net.minecraft.server.v1_7_R1.MinecraftServer.run(MinecraftServer.java:457) [craftbukkit-beta.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
        at net.minecraft.server.v1_7_R1.ThreadServerApplication.run(SourceFile:617) [craftbukkit-beta.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
    Caused by: org.bukkit.command.CommandException: Unhandled exception executing command 'c' in plugin uSkyBlock v2.0.0
        at org.bukkit.command.PluginCommand.execute(PluginCommand.java:46) ~[craftbukkit-beta.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
        at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:196) ~[craftbukkit-beta.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
        at org.bukkit.craftbukkit.v1_7_R1.CraftServer.dispatchCommand(CraftServer.java:542) ~[craftbukkit-beta.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
        at org.bukkit.craftbukkit.v1_7_R1.entity.CraftPlayer.performCommand(CraftPlayer.java:260) ~[craftbukkit-beta.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
        at us.talabrek.ultimateskyblock.PlayerJoin.guiClick(PlayerJoin.java:503) ~[?:?]
        at sun.reflect.GeneratedMethodAccessor70.invoke(Unknown Source) ~[?:?]
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.7.0_25]
        at java.lang.reflect.Method.invoke(Method.java:606) ~[?:1.7.0_25]
        at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:425) ~[craftbukkit-beta.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
        ... 13 more
    Caused by: java.lang.NullPointerException
        at us.talabrek.ultimateskyblock.uSkyBlock.populateChallengeRank(uSkyBlock.java:4494) ~[?:?]
        at us.talabrek.ultimateskyblock.uSkyBlock.displayChallengeGUI(uSkyBlock.java:4112) ~[?:?]
        at us.talabrek.ultimateskyblock.ChallengesCommand.onCommand(ChallengesCommand.java:36) ~[?:?]
        at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44) ~[craftbukkit-beta.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
        at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:196) ~[craftbukkit-beta.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
        at org.bukkit.craftbukkit.v1_7_R1.CraftServer.dispatchCommand(CraftServer.java:542) ~[craftbukkit-beta.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
        at org.bukkit.craftbukkit.v1_7_R1.entity.CraftPlayer.performCommand(CraftPlayer.java:260) ~[craftbukkit-beta.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
        at us.talabrek.ultimateskyblock.PlayerJoin.guiClick(PlayerJoin.java:503) ~[?:?]
        at sun.reflect.GeneratedMethodAccessor70.invoke(Unknown Source) ~[?:?]
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.7.0_25]
        at java.lang.reflect.Method.invoke(Method.java:606) ~[?:1.7.0_25]
        at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:425) ~[craftbukkit-beta.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
        ... 13 more

    Dès la première ligne, on sait d'où ça vient: uSkyblock, InventoryClickEvent. Et ça, c'est pas de la configuration. Impossible à corriger sans toucher au code.

    Conclusion
    La résolution d'erreurs ne se fait pas en suivant des tutoriels divers sur un plugin particulier. Il faut savoir s'adapter à chaque plugin et à chaque type d'erreur, pour perdre le moins de temps possible dans la résolution. Pour cela, l'anglais est indispensable. Mais surtout, il faut pratiquer. Encore et encore. Plus vous ferez de configurations, plus vous trouverez d'erreurs, et il faudra les résoudre par vous-même (en faisant des recherches sur Google si besoin).

    J’espère que ce petit tutoriel est compréhensible et servira à plus d'un !
     
    • Utile Utile x 5
    • Gagnant Gagnant x 2
    • J'aime J'aime x 1
    • Informatif Informatif x 1
    #1 Mr_SheepSheep, 12 Avr 2014
    Dernière édition: 16 Avr 2014
  2. QC712

    QC712 Mineur d'Or

    Inscrit:
    2 Juin 2013
    Messages:
    857
    Points:
    151
    Sexe:
    Homme
    Encore un excellent tuto de la commu. Félicitations et merci !
     
    • J'aime J'aime x 1
  3. Mousstery

    Mousstery Mineur de Fer

    Inscrit:
    6 Avr 2014
    Messages:
    755
    Points:
    135
    Sexe:
    Homme
    My goch,je vais enfin savoir comment résoudre mes problèmes de plugins /o/
     
    • Amusant Amusant x 1
  4. Koray

    Koray Explorateur

    Inscrit:
    9 Oct 2013
    Messages:
    62
    Points:
    39
    Sexe:
    Homme
    J'aurais aimé voir ce tuto plus tôt , quand je gérais un serveur . Tout de même ça en aidera plus d'un , merci à toi :D
     
    • J'aime J'aime x 1
  5. Mr_SheepSheep

    Mr_SheepSheep Mineur

    Inscrit:
    27 Juin 2013
    Messages:
    394
    Points:
    92
    Sexe:
    Homme
    Hier soir, j'ai résolu mon problème pour uSkyblock. Il s'agissait en fait d'un problème de syntaxe dans la configuration ("Maison" et "maison"). C'est ce petit détail qui m'a donné l'erreur. Je modifie donc le tutoriel: Il faut faire attention aux petits détails de la configuration par défaut, quitte à copier/coller !
     
    • J'aime J'aime x 1

Partager cette page