Besoin d'aide : le jeu a cessé de fonctionner.

  • Auteur de la discussion Auteur de la discussion Exilas_
  • Date de début Date de début

Exilas_

Aventurier
16 Avril 2020
4
0
1
23
Bonjour, en essayant de démarrer Minecraft le launcher m'a affiché "le jeu a cessé de fonctionner" (je joue en 1.14.4 avec forge si jamais)
Dans le Minecraft game output, j'ai : 6 debug, 39 infos, 1 warn (Version does not support log configuration, will assume one plaintext entry per line) 0 error et 1 fatal => [13:30:31.367] [monitor] [Process Monitor] [Process crashed with exit code 1]

Je ne comprends pas ce que je dois faire, j'ai ouvert le document latest.log mais encore une fois je ne sais pas quoi faire avec ça.
J'ai encore tout d'ouvert, si jamais je dois envoyer des choses.
Un peu d'aide ne serait pas de refus, merci d'avance et désolé du dérangement.
 
Bonjour,

Merci de joindre le fichier lasted.log (il se trouve sous %appdata%\logs\lasted.log), c'est lui qui contient la raison du crash.
Copie-colle son contenu entre des balises code :
Code:
[code]
copy-pasta ici
[*/code]

Sans l'astérisque « * », tu peux aussi passer par la barre d'outils du traitement de texte : ··· (Insérer) > Code.

Cordialement,
ShE3py.
 
C'est en train de fonctionner, merci beaucoup ShE3py !
Mais si c'est pas trop technique ou long à expliquer, j'aimerais bien comprendre pourquoi ce dossier a fait crash le jeu, c'est possible que cela recommence plus tard ?
 
Le dossier config/ contient les fichiers de configuration des mods, ce qui permet de les paramétrés en surface, par ex. l'on peut souvent désactiver des items qui seraient trop puissants sur un serveur public, style un fly.

En programmation les « erreurs » sont accompagnées d'un message et d'un stack trace, qui indique toutes les fonctions appelées dans l'ordre antichronologique, celle en haut est la plus récente qui a causé le crash et celle tout en bas la moins récente, typiquement la fonction principale main qui est lancée par le système/Java.

Si on regarde l'erreur :
Code:
[4/16/2020 13:30:30.484] [main/INFO] [optifine.OptiFineTransformationService/]: OptiFineTransformationService.initialize
[4/16/2020 13:30:30.751] [main/INFO] [STDERR/]: com.electronwill.nightconfig.core.io.ParsingException: Not enough data available
[4/16/2020 13:30:30.754] [main/INFO] [STDERR/]:     at com.electronwill.nightconfig.core.io.ParsingException.notEnoughData(ParsingException.java:22)
[4/16/2020 13:30:30.756] [main/INFO] [STDERR/]:     at com.electronwill.nightconfig.core.io.ReaderInput.directReadChar(ReaderInput.java:36)
[4/16/2020 13:30:30.776] [main/INFO] [STDERR/]:     at com.electronwill.nightconfig.core.io.AbstractInput.readChar(AbstractInput.java:49)
[4/16/2020 13:30:30.781] [main/INFO] [STDERR/]:     at com.electronwill.nightconfig.core.io.AbstractInput.readCharsUntil(AbstractInput.java:123)
[4/16/2020 13:30:30.783] [main/INFO] [STDERR/]:     at com.electronwill.nightconfig.toml.TableParser.parseKey(TableParser.java:166)
[4/16/2020 13:30:30.785] [main/INFO] [STDERR/]:     at com.electronwill.nightconfig.toml.TableParser.parseDottedKey(TableParser.java:145)
[4/16/2020 13:30:30.787] [main/INFO] [STDERR/]:     at com.electronwill.nightconfig.toml.TableParser.parseNormal(TableParser.java:55)
[4/16/2020 13:30:30.798] [main/INFO] [STDERR/]:     at com.electronwill.nightconfig.toml.TomlParser.parse(TomlParser.java:44)
[4/16/2020 13:30:30.800] [main/INFO] [STDERR/]:     at com.electronwill.nightconfig.toml.TomlParser.parse(TomlParser.java:37)
[4/16/2020 13:30:30.802] [main/INFO] [STDERR/]:     at com.electronwill.nightconfig.core.io.ConfigParser.parse(ConfigParser.java:113)
[4/16/2020 13:30:30.804] [main/INFO] [STDERR/]:     at com.electronwill.nightconfig.core.io.ConfigParser.parse(ConfigParser.java:219)
[4/16/2020 13:30:30.807] [main/INFO] [STDERR/]:     at com.electronwill.nightconfig.core.io.ConfigParser.parse(ConfigParser.java:202)
[4/16/2020 13:30:30.809] [main/INFO] [STDERR/]:     at com.electronwill.nightconfig.core.file.WriteSyncFileConfig.load(WriteSyncFileConfig.java:73)
[4/16/2020 13:30:30.811] [main/INFO] [STDERR/]:     at com.electronwill.nightconfig.core.file.AutoreloadFileConfig.load(AutoreloadFileConfig.java:41)
[4/16/2020 13:30:30.813] [main/INFO] [STDERR/]:     at com.electronwill.nightconfig.core.file.AutosaveCommentedFileConfig.load(AutosaveCommentedFileConfig.java:85)
[4/16/2020 13:30:30.815] [main/INFO] [STDERR/]:     at net.minecraftforge.fml.loading.FMLConfig.loadFrom(FMLConfig.java:57)
[4/16/2020 13:30:30.818] [main/INFO] [STDERR/]:     at net.minecraftforge.fml.loading.FMLConfig.load(FMLConfig.java:69)
[4/16/2020 13:30:30.819] [main/INFO] [STDERR/]:     at net.minecraftforge.fml.loading.FMLServiceProvider.initialize(FMLServiceProvider.java:81)
[4/16/2020 13:30:30.821] [main/INFO] [STDERR/]:     at cpw.mods.modlauncher.TransformationServiceDecorator.onInitialize(TransformationServiceDecorator.java:68)
[4/16/2020 13:30:30.824] [main/INFO] [STDERR/]:     at cpw.mods.modlauncher.TransformationServicesHandler.lambda$initialiseTransformationServices$7(TransformationServicesHandler.java:107)
[4/16/2020 13:30:30.846] [main/INFO] [STDERR/]:     at cpw.mods.modlauncher.TransformationServicesHandler$$Lambda$85/1313916817.accept(Unknown Source)
[4/16/2020 13:30:30.850] [main/INFO] [STDERR/]:     at java.util.HashMap$Values.forEach(HashMap.java:972)
[4/16/2020 13:30:30.852] [main/INFO] [STDERR/]:     at cpw.mods.modlauncher.TransformationServicesHandler.initialiseTransformationServices(TransformationServicesHandler.java:107)
[4/16/2020 13:30:30.853] [main/INFO] [STDERR/]:     at cpw.mods.modlauncher.TransformationServicesHandler.initializeTransformationServices(TransformationServicesHandler.java:59)
[4/16/2020 13:30:30.854] [main/INFO] [STDERR/]:     at cpw.mods.modlauncher.Launcher.run(Launcher.java:75)
[4/16/2020 13:30:30.856] [main/INFO] [STDERR/]:     at cpw.mods.modlauncher.Launcher.main(Launcher.java:65)

Chaque ligne est préfixée par, dans l'ordre, la date, l'heure, le thread, la sévérité, la classe et le message.
Si l'on prend un example d'un facteur ;
  • Le thread (fils d'exécution), c'est le nom du facteur. Ils travaillent tous en même temps, alors ce serait mieux de dire « John part, Bernard a fini son service » que de dire « Le facteur part, le facteur a fini son service ».
    Généralement pour Minecraft tu auras principalement le main, qui est le thread principale (Minecraft ne fait que peu de choses en même temps).

  • La sévérité, c'est l'importance du message.
    • ERROR: Il n'y a aucun bâtiment portant le numéro de l'enveloppe dans la rue, il ne peut plus livrer.
    • WARNING: Le colis ne rentre pas dans la boîte aux lettres, il l'a redéposé à la Poste. Généralament ça veut juste indiquer qu'il a pris un autre chemin d'exécution, et l'on notifie l'utilisateur pour lui indiquer qu'il se pourrait que le comportement qu'il attende n'a pas été respecté. C'est toujours mieux de reçevoir un mot « Venez récupérer votre paquet à la Poste » que d'attendre deux semaines « Mais il arrive quand mon paquet ».
    • INFO: Le facteur a déposé le paquet. Généralement, l'on indique les tâches qui commencent et celles qui ont réussie/sont terminées.
    • DEBUG: Le facteur a mis le paquet dans sa camionnette. Les messages de débogages ne sont généralements pas affichés, l'on les affiche lorsqu'on recherche un bug, parce qu'elles disent généralement ce que l'on attend, style si l'on demande au facteur de livrer l'on a pas besoin qu'il nous dise « J'AI OUVERT LA PORTE ».
    • TRACE: Tu mets tout et n'importe quoi dedans. Le facteur tourne à gauche, il s'arrête pour laisser passer des piétons, il ralentit au feu orange.
  • La classe, c'est un peu l'endroit où l'erreur se produit. Par exemple, si tu essayes de calculer la racine carrée d'un nombre négatif, ce sera un truc dans le style de Math.
Bon après, si on prend les premières lignes de l'erreur :
Code:
com.electronwill.nightconfig.core.io.ParsingException: Not enough data available
    at com.electronwill.nightconfig.core.io.ParsingException.notEnoughData(ParsingException.java:22)
    at com.electronwill.nightconfig.core.io.ReaderInput.directReadChar(ReaderInput.java:36)
    at com.electronwill.nightconfig.core.io.AbstractInput.readChar(AbstractInput.java:49)

Si on prend la classe de l'erreur, com.electronwill.nightconfig.core.io.ParsingException, l'on sait déjà que c'est une exception de parsage (analyse syntaxique), ce qui signifie qu'il n'arrive pas à lire le contenu d'un fichier. Le message après "Not enough data available" nous dit que le fichier est trop court, probablement parce qu'il est vide.
Après l'on a aussi accès à l'auteur du mod (com.electronwill → TheElectronWill) et le nom du mod ; Night Config, ce qui implique qu'il est fortement probable qu'il ait affaire à des fichiers de configuration.
En l'occurence ce n'est pas réellement un mod mais c'est la librairy qu'utilise Forge pour les fichiers de configuration.

Après si tu descends plus bas tu peux voir qu'effectivement il essayait de lire un caractère.

Donc à partir de là l'on sait que ce qui pause problème est un fichier de configuration, l'on ne sait pas lequel car malheureusement il ne le dit pas mais tous les supprimer marche aussi très bien.
Quant à pourquoi le fichier était invalide, c'est sans-doute car tu avais déjà OptiFine avant et que la façon dont il sauvegarde ses données a changée entre les deux versions, donc lorsqu'il tente de lire l'ancien fichier il n'y arrive pas. Supprimer les fichiers de configuration fait que le jeu va les regénérés lors du prochain lancement, aux valeurs par défaut du mod.

Un peu long et sans doute mal rédigé, n'hésite pas si tu as encore des questions.
 
  • J'aime
Reactions: Exilas_
Wow, c'est très bien rédigé, j'ai bien aimé la comparaison avec le facteur, merci beaucoup d'avoir pris la peine de m'expliquer ! Tu as répondu à toutes mes questions.