Bonjour !

En vue de créer un logiciel pour gérer ses parties de jeu vidéo sur le jeu Minecraft, il me faut savoir le contenu de certains éléments dans le monde du joueur.

C'est donnée sont stocker dans un fichier MCA, que le logiciel NBT Explorer arrive à lire.

Le code source de ce projet contient un projet Util, pour que les personnes voulant utiliser le code source puisse aussi créer leur logiciel.

Alors voilà, on peut grâce à ce projet exporter le contenu qu'il faut en json.

Nom : Capture d’écran 2021-02-12 183717.png
Affichages : 40
Taille : 57,6 Ko

Mais je ne comprend absolument rien sur comment fonctionne le code.

Déjà, voici le code de base du program.cs :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
namespace NBTUtil
{
    class Program
    {
        static void Main (string[] args)
        {
            ConsoleRunner runner = new ConsoleRunner();
            runner.Run(args);
        }
    }
}
Il dise de mettre un string d'array en paramètre, alors que dans la méthode Run(), voici ce qu'il y a :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
 
public bool Run (string[] args)
        {
            _options.Parse(args);
 
            if (_options.Command == ConsoleCommand.Help)
                return PrintHelp();
 
            if (_options.Path == null)
                return PrintUsage("Error: You must specify a path");
            if (!_commandTable.ContainsKey(_options.Command))
                return PrintUsage("Error: No command specified");
 
            ConsoleOperation op = _commandTable[_options.Command];
            if (!op.OptionsValid(_options))
                return PrintError("Error: Invalid options specified for the given command");
 
            int successCount = 0;
            int failCount = 0;
 
            foreach (var targetNode in new NbtPathEnumerator(_options.Path)) {
                if (!op.CanProcess(targetNode)) {
                    Console.WriteLine(targetNode.NodePath + ": ERROR (invalid command)");
                    failCount++;
                }
                if (!op.Process(targetNode, _options)) {
                    Console.WriteLine(targetNode.NodePath + ": ERROR (apply)");
                    failCount++;
                }
 
                targetNode.Root.Save();
 
                Console.WriteLine(targetNode.NodePath + ": OK");
                successCount++;
            }
 
            Console.WriteLine("Operation complete.  Nodes succeeded: {0}  Nodes failed: {1}", successCount, failCount);
 
            return true;
        }
Donc déjà comment faire pour convertir un "ConsoleOptions" pour avoir un array string.

Si quelqu'un peut m'éclaircir sur tout ça je suis preneur.

Voici un fichier MCA qu'il peut ouvrir, pour essayer de le faire convertir en JSON :

https://mega.nz/file/aThUSSDS#MtFCa-eQKPE7TWcjrf5w5q6SYW8oQCe5thbJepepPQo

Et voici le lien du gitHub :

https://github.com/jaquadro/NBTExplorer

Merci si vous pouvez prendre un peu de temps pour m'expliquer comment je peux avoir mon fichier MCA en JSON