Fichier Config



  • Salut,

    Je suis entreint de créer un fichier config tous marche super sauf que je voudrai ajouter un systéme avec les couleur j'ai donc essayé de faire sa amis sa ne marche pas.

    EnumChatFormatting gold = EnumChatFormatting.GOLD;
    
    usernamecouleur = cfg.get("Couleur", "Choisir la couleur", gold ,"Exemple : gold, black");
    


  • Tu ne peux pas obtenir un EnumChatFormatting juste en lisant le fichier de config, il faut que tu obtiennes un String et selon celui-ci, tu donnes un EnumChatFormatting.

    String colorName = cfg.get("Couleur", "Choisir la couleur", gold ,"Exemple : gold, black");
    ``` Puis ensuite, il doit y a voir un fonction dans EnumChatFormatting pour get un EnumChatFormatting à partir de son nom, si il n'y en a pas, il faut que tu donnes une couleur selon le String avec des if ou, un peux mieux si Mojang rajoutes des couleurs :
    ```java
    for(EnumChatFormatting color : EnumChatFormatting.values())
    {
    if(color.getName().equalsIgnoreCase(colorName)) //C'est peut-être autre chose que getName(), mais qui return forcément un String
    {
    usernamecouleur = color;
    break; //On sort de la boucle
    }
    }
    
    


  • Merci

    Sa ma l'air un peut complexe se que tu ma dit donc j'ai penser pourquoi pas faire en &e/&c/&a etc

    donc j'ai fait sa je suis passer par un string mais evidament se que je penser sa me r'ajoute juste &e devant mon text y a pas un autre moyen ?

    usernamecouleur = cfg.getString("Couleur", "Couleur Pseudo", "&e", "Exemple &e, &c");
    


  • Sinon à la place de ce qui il y a dans le for, tu peux faire un série de if(colorName.equalsIgnoreCase("une couleur")) pour chaque couleur.

    Envoyé de mon RAINBOW LITE 4G en utilisant Tapatalk



  • @'AymericRed':

    Sinon à la place de ce qui il y a dans le for, tu peux faire un série de if(colorName.equalsIgnoreCase("une couleur")) pour chaque couleur.

    Envoyé de mon RAINBOW LITE 4G en utilisant Tapatalk

    Le probleme c'est que j'ai pas compris le

    
    [font=monospace**for**][font=monospace(][font=monospaceEnumChatFormatting][font=monospace color ][font=monospace:] [font=monospaceEnumChatFormatting][font=monospace.][font=monospacevalues][font=monospace())]
    
    [font=monospace{]
    
    [font=monospace**if**][font=monospace(][font=monospacecolor][font=monospace.][font=monospacegetName][font=monospace().][font=monospaceequalsIgnoreCase][font=monospace(][font=monospacecolorName][font=monospace))] [font=monospace//C'est peut-être autre chose que getName(), mais qui return forcément un String]
    
    [font=monospace{]
    
    [font=monospaceusernamecouleur ][font=monospace=][font=monospace color][font=monospace;]
    
    [font=monospace**break**][font=monospace;] [font=monospace//On sort de la boucle]
    
    [font=monospace}]
    
    
     for(EnumChatFormatting color : EnumChatFormatting.values())
    {
    if(usernamecouleur.equalsIgnoreCase("&e")) //C'est peut-être autre chose que getName(), mais qui return forcément un String
    {
    usernamecouleur = color;
    break; //On sort de la boucle
    }
    }
    

    j'ai fait sa mais j'ia une erreur sur color ou sinon pour mettre de la couleur y a Color.BLACK



  • Alors je t'explique 🙂

    
    for(EnumChatFormatting color : EnumChatFormatting.values()) //Pour toutes les couleurs existantes dans EnumChatFormatting, on exécute la boucle du for avec la couleur en argument (Tu peux faire ça pour les tableaux, les énumérations (comme EnumChatFormatting) et les listes)
    {
    if(color.getName().equalsIgnoreCase(colorName)) //Si le nom de la couleur est le même que la couleur indiquée dans le fichier de config
    {
    usernamecouleur = color; //On défini cette couleur comme celle choisie par le joueur
    break; //On sort de la boucle (ça ne sert à rien de la faire pour les autres couleurs vu qu'on a trouvé celle qui nous inréresse
    }
    }
    
    


  • ²Merci pour l'explication c'est beaucoup plus clair

    http://prntscr.com/bbfyyz

    voilà le code est les erreurs getName n'existe pas du tous je les remplacer par getFriendlyName.

    Il me reste gold je c'est d'ou vient l'erreur mais le probleme si je mais EnumChatFormating = EnumChatFormating.GOLD; le get est en erreur



  • Pour gold, mets juste gold entre guillements, c'est la valeur par défaut.
    Pour le getName, je regarde tout de suite 🙂
    EDIT : oui getFriendlyName c'est bon.



  • @'AymericRed':

    Pour gold, mets juste gold entre guillements, c'est la valeur par défaut.
    Pour le getName, je regarde tout de suite 🙂

    Voila se qu'il em dit http://prntscr.com/bbg5zz



  • Ah oui, il faut que tu rajoutes .getString() juste avant le ; en fin de ligne.



  • @'AymericRed':

    Ah oui, il faut que tu rajoutes .getString() juste avant le ; en fin de ligne.

    Merci sa marche super bien