Fonction qui teste la valeur (true ou false) dans le fichier de config.



  • Bonjour/Bonsoir,
    J'ai un problème avec un fichier de configuration… Je voudrais que lorsque "true" est dans le fichier de configuration, le jeu prenne la fonction #2, mais lorsqu'il est à "false" (par défaut) il prenne la fonction #1...

    Ma ligne de config:

    rotationLook = config.get(Configuration.CATEGORY_GENERAL, "Set the value to false to make it look left and true to make it look right.", true).getInt();
    

    Ici, c'est ça qui teste si le perso regarde à droite ou à gauche (selon la valeur définie dans le fichier de configuration)
    Est-ce que ça ressemblerait à quelque chose comme ceci ?

    if (COGConfigHandler.rotationLook !== false);
    {
    lookLeft(this.guiLeft + 650, this.guiTop + 330, 20, (float)(this.guiLeft + 43 - p_146976_2_), (float)(this.guiTop + 45 - 30 - p_146976_3_), this.mc.thePlayer);
    
    }
    lookRight(this.guiLeft + 650, this.guiTop + 330, 20, (float)(this.guiLeft + 43 - p_146976_2_), (float)(this.guiTop + 45 - 30 - p_146976_3_), this.mc.thePlayer);
    }
    

    Mon problème c'est qu'à "COGConfigHandler.rotationLook !== false", eclipse me met l'erreur "The operator != is undefined for the argument type(s) int, boolean"
    Même erreur pour "==" ou pour ".equals"
    Merci d'avance !



  • Tu t'es trompé, il faut .getBoolean et pas .getInt si tu veux avoir un boolean. De plus, l'opérateur n'est pas !== mais !=



  • 
    rotationLook = config.get(Configuration.CATEGORY_GENERAL, "Set the value to false to make it look left and true to make it look right.", true).getInt();
    
    

    Ici, tu demandes une boolean dans la description, alors que le code attends un int.

    Le code devrais être :

    
    rotationLook = config.get(Configuration.CATEGORY_GENERAL, "Set the value to false to make it look left and true to make it look right.", true).getBoolean();
    
    

    Ensuite, dans la config du mod, si tu mets true ou false, le changement sera effectué sans erreurs.



  • Ah ouais merde c'est vrai, true/false ne sont pas des int –' Sinon pour le "!=" ça marche ! Je teste tout de suite.


    Bon, il n'a visiblement pas l'air de comprendre...
    Il charge les deux fonctions qui sont dans le if...

    if (COGConfigHandler.rotationLook != true);
    {
    lookLeft(this.guiLeft + cfg.leftPixelsDistance, this.guiTop + cfg.topPixelsDistance, cfg.size, (float)(this.guiLeft + 43 - p_146976_2_), (float)(this.guiTop + 45 - 30 - p_146976_3_), this.mc.thePlayer);
    }
    lookRight(this.guiLeft + cfg.leftPixelsDistance, this.guiTop + cfg.topPixelsDistance, cfg.size, (float)(this.guiLeft + 43 - p_146976_2_), (float)(this.guiTop + 45 - 30 - p_146976_3_), this.mc.thePlayer);
    
    

  • Administrateurs

    if (!COGConfigHandler.rotationLook)
    {
    lookLeft(this.guiLeft + cfg.leftPixelsDistance, this.guiTop + cfg.topPixelsDistance, cfg.size, (float)(this.guiLeft + 43 - p_146976_2_), (float)(this.guiTop + 45 - 30 - p_146976_3_), this.mc.thePlayer);
    }
    else
    {
    lookRight(this.guiLeft + cfg.leftPixelsDistance, this.guiTop + cfg.topPixelsDistance, cfg.size, (float)(this.guiLeft + 43 - p_146976_2_), (float)(this.guiTop + 45 - 30 - p_146976_3_), this.mc.thePlayer);
    }
    
    


  • Il me met une erreur à else: "Syntax error on token "else", delete this token"



  • Moi j'ai fait un truc comme ça et ça fonctionne

    enableRespawnKit = config.get("Miscellaneous", "Enable the Respawn Kit ?", true).getBoolean(true);
    

    et pour la fonction à activer ou non

    if(ConfigurationFileManagement.enableRespawnKit == true)
    {
    //Je met mes trucs à faire ici
    }
    

    Et moi ça marche !



  • Ah bahh voila ! Ça fonctionne 😄 Merci infiniment ! ❤



  • De rien 😄



  • La ça relève des bases de Java,
    Va looker des tutos sur les types et sur la syntaxe Java.

    C'est normal que le else ne fonctionne pas, Robin a mis un point virgule a la fin du if par erreur.

    
    if(ConfigurationFileManagement.enableRespawnKit == true)
    {
    //Je met mes trucs à faire ici
    }
    
    

    Ne sert a rien.
    Que ce passe t'il lorsque qu'on fait : if(ConfigurationFileManagement.enableRespawnKit == true)
    ConfigurationFileManagement.enableRespawnKit est remplacé par ça valeur, ce qui donne :
    if(true == true) ou if(false== true).
    Ensuite, Java test la condition, ce qui renvoie une valeur booléenne a son tour.
    true == true -> true
    false == true -> false
    donc on obtiens au final if(true) ou if(false)
    Donc ça revient a faire if(ConfigurationFileManagement.enableRespawnKit) sans opérations inutiles.

    Le code de Robin est le plus efficace.


  • Administrateurs

    Oups en effet, le ; stop le void x)
    (Message édité).



  • Si ton problème est résolu il serait bien de passer le sujet en [Résolu] 🙂



  • Oups.. Excusez-moi !