Résolu 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);
-
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.
-
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 !