Configuration Plugin Reload config: bug(Java)

Luca_008

Architecte en herbe
21 Novembre 2016
150
20
125
23
Bonjour communauté,

J'ai un problème de code java en rapport avec le config.yml

J'ai une commande qui permet de reload le fichier config.yml

Voici le code :

Code:
                else if(args.length == 1){
                    if((args[0].equalsIgnoreCase("reload")) || (args[0].equalsIgnoreCase("rl"))){
                        if(sender.hasPermission("sanctions.reload")){
                            this.getConfig();
                            this.reloadConfig();
                            this.saveDefaultConfig();
                            sender.sendMessage(sanctions + ChatColor.GREEN + "Config reloaded");
                            getServer().getLogger().warning("[Sanctions] Config reloaded !");
                        }
                        else {
                            sender.sendMessage(noperms);
                        }

this. = car je suis dans ma classe principale avec l'extension JavaPlugin

Commande enregistrée dans le plugin.yml et déclarée dans la métode onEnable()

Lorsque je tape la commande /sanctions reload ou rl dans le jeu, je reçois le message Config reloaded et la console recoit le message [Sanctions] config reloaded !. Mais la config ne se reload pas !! :D Super.

Du coup j'ai essayé de faire comme ça;
Code:
                else if(args.length == 1){
                    if((args[0].equalsIgnoreCase("reload")) || (args[0].equalsIgnoreCase("rl"))){
                        if(sender.hasPermission("sanctions.reload")){
                            this.getServer().getPluginManager().disablePlugin(this);
                            this.getServer().getPluginManager().enablePlugin(this);
                            sender.sendMessage(sanctions + ChatColor.GREEN + "Config reloaded");
                            getServer().getLogger().warning("[Sanctions] Config reloaded !");
                        }
                        else {
                            sender.sendMessage(noperms);
                        }

Le plugin se désactive/réactive bien mais la config ne se reload toujours pas :/

Mais quand je fais /reload pour reload le serveur entier. ça fonctionne ^^'

Bizarre.. Merci d'avance à celui qui m'aideras :)

EDIT: je n'ai pas de log d'erreur en console
 
Dernière édition:
Bonjour !

Je ne suis pas un pro dans le java et dans les fichiers config mais si tu disable et enable ton plugin à la suite, est-ce que tu dit pas à ton serveur "Reload QUE le plugin" ? Le code c'est comme un enfant, faut tout lui dire. Après tu as peut être fais quelqu chose qui fait en sorte que ton config.yml se reload en même temps que l'allumage du plugin ? :)

AlexFatta
 
Après tu as peut être fais quelqu chose qui fait en sorte que ton config.yml se reload en même temps que l'allumage du plugin ?
Code:
public void onEnable(){
        getConfig().options().copyDefaults(true);
        saveDefaultConfig();
J'ai ça.. ça suffit normalement ? J'ai déjà essayé de mettre reloadConfig(); dans la métode onEnable() ça ne change rien :/
 
Salut,

Quand tu dis qu'elle ne se reload pas, cela signifie que tu ne stoque jamais les valeurs contenue dans ta config, on est bien d'accord de ça ?
Ce que je veux dire c'est que tu n'a jamais un attribut qui a la valeur de ta config.

Si tel est le cas, sache que ces valeurs ne seront pas supprimé d'où l'impression que ta config ne se reload pas.


Cordialement,
Detobel36
 
Salut,

Quand tu dis qu'elle ne se reload pas, cela signifie que tu ne stoque jamais les valeurs contenue dans ta config, on est bien d'accord de ça ?
Ce que je veux dire c'est que tu n'a jamais un attribut qui a la valeur de ta config.

Si tel est le cas, sache que ces valeurs ne seront pas supprimé d'où l'impression que ta config ne se reload pas.


Cordialement,
Detobel36
Pas sur d'avoir tout tout compris mais mon cas est : Par exemple je tape une commande et je n'ai pas la permission, à la place d'écrire directement sender.sendMessage("Tu n'as pas la permission") dans le code, je met une variable "String" et dans cette variable je récupère avec la méthode getString("Un-String-dans-la-config") qui j'ai configurer dans la config, et l'admin qui utilise le plugin peut changer ce message dans la config, et quand il l'a changé il peut faire /sanctions reload et ça reload directement la config et quand un joueur n'a pas une permission ça met le string que l'admin à choisit dans la config. Je sais pas si tu comprends tout, mais voilà un exemple;

Code:
String UnExemple = getConfig().getString("Exemple-de-string").replace("&", "§");
ensuite;
Code:
Bukkit.broadcastMessage(UnExemple);

Config;
Code:
Exemple-de-string: "Ceci est un exemple !!!"
Ici l'admin peut le changer par exemple comme ceci;
Code:
Exemple-de-string: "Ceci est un test !!!"
Il reload la config;
Et lorsque le broadcast si dessus est dit, on prends son message "Ceci est un test !!!"

Car si on ne le reload pas, bah le string resterais "Ceci est un exemple !!!"