Résolu Java, créer une config

Luca_008

Architecte en herbe
21 Novembre 2016
150
20
125
22
Bonjour, bonsoir

Comme je l'avais déjà dit précédemment je me suis lancé dans le java avec comme api Spigot, avec but de créer mes propres plugins..,

Certaines personnes m'ont déjà aidé et je les en remercie ^^

J'ai aujourd’hui un problème,

J'ai créer mon plugin et j'aimerais y ajouter une config, ou le joueur peut par exemple modifier les messages d'une certaine commande ou etc.. Rassurez vous j'ai déjà créer la config, elle est fonctionnelle ^^

il est possible de mettre des "#" au début d'une ligne dans la config pour annoncer un "Commentaire", du coup, pour vous expliquer le problème huum. Je sais pas regardez juste mes codes :'x

Je créer la config dans Eclipse:
Code:
# Plugin by Luca008
#
# Join message;
Join: "{PLAYER} &ejoined the server"
#
#
# Quit message;
Quit: "{PLAYER} &equited the server"


Ce que j'ai dans le dossier plugin/NomDuPlugin/config quand je lance le serveur :

Code:
# Plugin by Luca008
Join: '{PLAYER} &ejoined the server'
Quit: '{PLAYER} &equited the server'

Je m'explique, quand je mets un "# + commentaire" avant le "Join" ils se mettent dans la config après avoir reload le serveur, et si jen met après le "Join" comme par exemple le "#Qui message;" ils ne se mettent pas dans la config après le reload du serveur

Comment faire pour qu'on voit tout les commentaires?

Merci si quelqu’un réussit à m'aider ;')
 

Noucho

Builder professionnel et Gérant de RegiGames
26 Février 2016
206
28
90
France
RegiGames.fr
Bien le bonjour en ce bas monde,

Qu'est-ce que cela fait si tu retires les # derrière "join message" et "quit message" ?

Bien cordialement,
Noucho
 

Luca_008

Architecte en herbe
21 Novembre 2016
150
20
125
22
Bien le bonjour en ce bas monde,

Qu'est-ce que cela fait si tu retires les # derrière "join message" et "quit message" ?

Bien cordialement,
Noucho

Bonne lecture '^^'
Code:
[15:31:21 ERROR]: [CustomJoinQuitMessage] Cannot load configuration from jar
org.bukkit.configuration.InvalidConfigurationException: mapping values are not allowed here
 in 'string', line 4, column 5:
    Join: "{PLAYER} &ejoined the server"
        ^

        at org.bukkit.configuration.file.YamlConfiguration.loadFromString(YamlConfiguration.java:57) ~[spigot1.8.jar:git-Spigot-db6de12-18fbb24]
        at org.bukkit.plugin.java.JavaPlugin.reloadConfig(JavaPlugin.java:214) [spigot1.8.jar:git-Spigot-db6de12-18fbb24]
        at org.bukkit.plugin.java.JavaPlugin.getConfig(JavaPlugin.java:162) [spigot1.8.jar:git-Spigot-db6de12-18fbb24]
        at me.Luca008.CustomJoinQuitMessage.CustomJoinQuitMessage.onEnable(CustomJoinQuitMessage.java:14) [CustomJoinQuitMessage.jar:?]
        at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:321) [spigot1.8.jar:git-Spigot-db6de12-18fbb24]
        at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:340) [spigot1.8.jar:git-Spigot-db6de12-18fbb24]
        at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:405) [spigot1.8.jar:git-Spigot-db6de12-18fbb24]
        at org.bukkit.craftbukkit.v1_8_R3.CraftServer.loadPlugin(CraftServer.java:357) [spigot1.8.jar:git-Spigot-db6de12-18fbb24]
        at org.bukkit.craftbukkit.v1_8_R3.CraftServer.enablePlugins(CraftServer.java:317) [spigot1.8.jar:git-Spigot-db6de12-18fbb24]
        at org.bukkit.craftbukkit.v1_8_R3.CraftServer.reload(CraftServer.java:741) [spigot1.8.jar:git-Spigot-db6de12-18fbb24]
        at org.bukkit.Bukkit.reload(Bukkit.java:535) [spigot1.8.jar:git-Spigot-db6de12-18fbb24]
        at org.bukkit.command.defaults.ReloadCommand.execute(ReloadCommand.java:25) [spigot1.8.jar:git-Spigot-db6de12-18fbb24]
        at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:141) [spigot1.8.jar:git-Spigot-db6de12-18fbb24]
        at org.bukkit.craftbukkit.v1_8_R3.CraftServer.dispatchCommand(CraftServer.java:641) [spigot1.8.jar:git-Spigot-db6de12-18fbb24]
        at org.bukkit.craftbukkit.v1_8_R3.CraftServer.dispatchServerCommand(CraftServer.java:627) [spigot1.8.jar:git-Spigot-db6de12-18fbb24]
        at net.minecraft.server.v1_8_R3.DedicatedServer.aO(DedicatedServer.java:412) [spigot1.8.jar:git-Spigot-db6de12-18fbb24]
        at net.minecraft.server.v1_8_R3.DedicatedServer.B(DedicatedServer.java:375) [spigot1.8.jar:git-Spigot-db6de12-18fbb24]
        at net.minecraft.server.v1_8_R3.MinecraftServer.A(MinecraftServer.java:654) [spigot1.8.jar:git-Spigot-db6de12-18fbb24]
        at net.minecraft.server.v1_8_R3.MinecraftServer.run(MinecraftServer.java:557) [spigot1.8.jar:git-Spigot-db6de12-18fbb24]
        at java.lang.Thread.run(Unknown Source) [?:1.8.0_101]
Caused by: org.yaml.snakeyaml.scanner.ScannerException: mapping values are not allowed here
 in 'string', line 4, column 5:
    Join: "{PLAYER} &ejoined the server"
        ^

        at org.yaml.snakeyaml.scanner.ScannerImpl.fetchValue(ScannerImpl.java:871) ~[spigot1.8.jar:git-Spigot-db6de12-18fbb24]
        at org.yaml.snakeyaml.scanner.ScannerImpl.fetchMoreTokens(ScannerImpl.java:360) ~[spigot1.8.jar:git-Spigot-db6de12-18fbb24]
        at org.yaml.snakeyaml.scanner.ScannerImpl.peekToken(ScannerImpl.java:249) ~[spigot1.8.jar:git-Spigot-db6de12-18fbb24]
        at org.yaml.snakeyaml.parser.ParserImpl$ParseDocumentEnd.produce(ParserImpl.java:253) ~[spigot1.8.jar:git-Spigot-db6de12-18fbb24]
        at org.yaml.snakeyaml.parser.ParserImpl.peekEvent(ParserImpl.java:158) ~[spigot1.8.jar:git-Spigot-db6de12-18fbb24]
        at org.yaml.snakeyaml.parser.ParserImpl.getEvent(ParserImpl.java:168) ~[spigot1.8.jar:git-Spigot-db6de12-18fbb24]
        at org.yaml.snakeyaml.composer.Composer.composeDocument(Composer.java:124) ~[spigot1.8.jar:git-Spigot-db6de12-18fbb24]
        at org.yaml.snakeyaml.composer.Composer.getSingleNode(Composer.java:105) ~[spigot1.8.jar:git-Spigot-db6de12-18fbb24]
        at org.yaml.snakeyaml.constructor.BaseConstructor.getSingleData(BaseConstructor.java:120) ~[spigot1.8.jar:git-Spigot-db6de12-18fbb24]
        at org.yaml.snakeyaml.Yaml.loadFromReader(Yaml.java:450) ~[spigot1.8.jar:git-Spigot-db6de12-18fbb24]
        at org.yaml.snakeyaml.Yaml.load(Yaml.java:369) ~[spigot1.8.jar:git-Spigot-db6de12-18fbb24]
        at org.bukkit.configuration.file.YamlConfiguration.loadFromString(YamlConfiguration.java:55) ~[spigot1.8.jar:git-Spigot-db6de12-18fbb24]
        ... 19 more
[15:31:21 INFO]: Server permissions file permissions.yml is empty, ignoring it
[15:31:21 INFO]: CONSOLE: Reload complete.
 

Noucho

Builder professionnel et Gérant de RegiGames
26 Février 2016
206
28
90
France
RegiGames.fr
Donc ce n'est pas ça, ne m'y connaissant pas du tout en codage de plugins, je laisse le soin à @Detoble36 de te répondre :)

Bien cordialement,
Noucho
 

Luca_008

Architecte en herbe
21 Novembre 2016
150
20
125
22
Donc ce n'est pas ça, ne m'y connaissant pas du tout en codage de plugins, je laisse le soin à @Detoble36 de te répondre :)

Bien cordialement,
Noucho
Pas de problèmes, j'attendrais le temps qu'il faut pour avoir une réponse :')
 

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,

Peux-tu me donner le code qui vise à charger cette configuration ?
Le fichier config.yml doit est placé à la racine de ton plugin (au même endroit que le plugin.yml) et non dans un dossier config :)

Les "#" permettent bien de mettre des commentaires. D'ailleurs ce n'est pas ça qui fait bug mais bien les deux points... Comme ça sans code je ne vois pas pourquoi :/


Cordialement,
Detobel36
 

Luca_008

Architecte en herbe
21 Novembre 2016
150
20
125
22
Salut,

Peux-tu me donner le code qui vise à charger cette configuration ?
Le fichier config.yml doit est placé à la racine de ton plugin (au même endroit que le plugin.yml) et non dans un dossier config :)

Les "#" permettent bien de mettre des commentaires. D'ailleurs ce n'est pas ça qui fait bug mais bien les deux points... Comme ça sans code je ne vois pas pourquoi :/


Cordialement,
Detobel36

[EDIT] si je modifie le message après "Join" et "Quit" ça fonctionne si jamais, c'est uniquement les commentaires qui disparaissent seuls :/


La racine de mon plugin, c'est ma classe principale? car moi je l'ai mise ici(Dans ma classe principale) ;

Code:
package me.Luca008.CustomJoinQuitMessage;

import org.bukkit.event.Listener;
import org.bukkit.plugin.PluginManager;
import org.bukkit.plugin.java.JavaPlugin;

public class CustomJoinQuitMessage extends JavaPlugin implements Listener{
  
    public void onEnable(){
        getServer().getConsoleSender().sendMessage("§a[§bCustomJoinQuitMessage§a] §eYou can custom the join and quit messages in the config");
        PluginManager pm = getServer().getPluginManager();
        pm.registerEvents(new JoinQuitMessage(this), this);
      
        getConfig().options().copyDefaults(true);
        saveConfig();
      
    }
  
    public void onDisable(){
      
      
    }

}

Pour ce que je souhaite modifier avec la config c'est ici:

Code:
package me.Luca008.CustomJoinQuitMessage;

import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.event.player.PlayerQuitEvent;

public class JoinQuitMessage implements Listener {

    private CustomJoinQuitMessage pl;

    public JoinQuitMessage(CustomJoinQuitMessage pl) {
        this.pl = pl;
    }
  
    @EventHandler
  
    public void on(PlayerJoinEvent e){
        Player player = e.getPlayer();
        String joinmsg = this.pl.getConfig().getString("Join").replace("&", "§").replace("{PLAYER}", player.getDisplayName());
        e.setJoinMessage(joinmsg);
    }
  
    @EventHandler
  
    public void on(PlayerQuitEvent e){
        Player player = e.getPlayer();
        String quitmsg = this.pl.getConfig().getString("Quit").replace("&", "§").replace("{PLAYER}", player.getDisplayName());;
        e.setQuitMessage(quitmsg);
    }

}

Voilà
 

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,

La racine de mon plugin, c'est ma classe principale? car moi je l'ai mise ici(Dans ma classe principale) ;
Je parle de l'emplacement du fichier en lui même... Il doit être dans le même dossier que ton plugin.yml ;)

Par contre, je ne comprend pourquoi tu as fait deux cadre "code" dans ton premier message...
Vérifie que ton fichier est bien encodé en UTF-8 ;)

Tout le reste semble bon.


Cordialement,
Detobel36