Problème config



  • Salut à tous, j'ai créé un fichier de config et dans mon GuiChat je modifier ces valeurs sauf que le problème c'est que les changement ne s'enregistre pas.
    Je cherche depuis hier une solution à ce problème depuis hier mais j'ai jamais trouvé.
    Je sais pas si j'ai loupé un truc ou quoi que ce soit, bref j'espère que vous pourrez m'aider 🙂

    Classe ConfigHandler

    
    public class ConfigHandler {
    public static Configuration config;
    
    public static boolean enableJoinLeaveMessages;
    public static boolean enableDeathMessages;
    public static boolean enableMentionSound;
    
    public void init(File file)
    {
    config = new Configuration(file);
    config.load();
    syncConfig();
    }
    
    public void syncConfig()
    {
    enableJoinLeaveMessages = config.getBoolean("enableJoinLeaveMessages", "chat", true, "");
    enableDeathMessages = config.getBoolean("enableDeathMessages", "chat", true, "");
    enableMentionSound = config.getBoolean("enableMentionSound", "chat", true, "");
    
    config.save();
    }
    }
    
    

    Classe Main

    ConfigHandler.init(event.getSuggestedConfigurationFile());
    

    GuiChat

    @Override
    public void mouseClicked(int mouseX, int mouseY, int button)
    {
    super.mouseClicked(mouseX, mouseY, button);
    
    if ((mouseX >= (this.width - 16)) && (mouseX <= this.width) && (mouseY >= 0) && (mouseY <= 16))
    {
    if (ConfigHandler.enableJoinLeaveMessages)
    {
    ConfigHandler.enableJoinLeaveMessages = false;
    }
    else
    {
    ConfigHandler.enableJoinLeaveMessages = true;
    }
    }
    
    /////////////////////////
    
    if ((mouseX >= (this.width - 16)) && (mouseX <= this.width) && (mouseY >= 18) && (mouseY <= 34))
    {
    if (ConfigHandler.enableDeathMessages)
    {
    ConfigHandler.enableDeathMessages = false;
    }
    else
    {
    ConfigHandler.enableDeathMessages = true;
    }
    }
    
    //////////////
    
    if ((mouseX >= (this.width - 16)) && (mouseX <= this.width) && (mouseY >= 36) && (mouseY <= 52))
    {
    if (ConfigHandler.enableMentionSound)
    {
    ConfigHandler.enableMentionSound = false;
    }
    else
    {
    ConfigHandler.enableMentionSound = true;
    }
    }
    }
    

    J'ai essayé de faire un config.save(); quand on clique et/ou quand on ferme le gui et ça ne fonctionne pas plus.

    P.S: j'ai également essayé avec l'event configchange, aucun changement


  • Rédacteurs

    J'ai fait un tutoriel pour créer une configuration, cherche le et suit-le



  • @'BrokenSwing':

    J'ai fait un tutoriel pour créer une configuration, cherche le et suit-le

    Oui, sauf que c'est pas du tout ce que je cherche à faire
    Le gui de configuration déclenche l'event OnConfigChange, sauf que moi mes configs sont directement dans le gui chat



  • Alors il faut que tu aies une objet de type "net.minecraftforge.common.config.Property" pour chaque variable (obtenable avec la fonction "taconfig.get(…)"), tu appelles la fonction "setValue(valeur)" sur cet objet et ensuite du appelles "taconfig.save()".



  • @'AymericRed':

    Alors il faut que tu aies une objet de type "net.minecraftforge.common.config.Property" pour chaque variable (obtenable avec la fonction "taconfig.get(…)"), tu appelles la fonction "setValue(valeur)" sur cet objet et ensuite du appelles "taconfig.save()".

    C'est bon j'ai réussi, merci 🙂