Das offizielle Minecraft Wiki twittert hier: Wiki-Twitter  –  Chatte im Wiki-Discord  – Noch keinen Server gefunden? Es gibt einen Wiki-Server

Datengenerator

Aus Minecraft Wiki
Wechseln zu: Navigation, Suche
Dieser Artikel enthält Inhalte über Funktionen, die möglicherweise in der zukünftigen Version 1.13 hinzugefügt werden.
Diese Funktionen sind schon in der aktuellen Entwicklungsversion 18w21b, jedoch noch nicht in einem offiziellen Update enthalten.

Der Datengenerator ist ein Programm, das verschiedene Daten aus Minecraft extrahiert und als JSON-Dateien zur Verfügung stellt.

Aufruf[Bearbeiten]

Der Datengenerator ist im Minecraft-Server integriert. Diesen lädt man sich in einen Ordner seiner Wahl herunter, Download-Links findet man im Wiki in der Versionsgeschichte der gewünschten Minecraft-Version. Den Datengenerator startet man mit folgendem Befehl in dem Ordner, in dem die jar-Datei des Servers steht:

java -classpath minecraft_server.VERSION.jar net.minecraft.data.Main --help

Diesen Befehl kann man in der Windows-Eingabeaufforderung eingeben oder als Batch-Datei abspeichern. Das Ergebnis bei Angabe des --help-Parameters ist folgendes:

Option             Description
------             -----------
--all              Include all generators
--client           Include client generators
--dev              Include development tools
--help             Show the help menu
--input <String>   Input folder
--output <String>  Output folder (default: generated)
--reports          Include data reports
--server           Include server generators

Parameter[Bearbeiten]

Die Parameter haben folgende Bedeutung:

Parameter Bedeutung
--all Ruft alle Generatoren nacheinander auf: --client, --dev und --server.
--client Zur Zeit ohne Funktion.
--dev Konvertierung von NBT zu Stringified NBT (SNBT). Alle Dateien im mit --input festgelegten Eingabeordner, die vom Dateityp .nbt sind, werden in .snbt-Dateien konvertiert. Möchte man z. B. die NBT-Datei Fortress.dat konvertieren, muss man sie zuerst in Fortress.nbt umbenennen. Dann wird im Ausgabeordner eine Datei Fortress.snbt erzeugt, die man mit einem Texteditor öffnen kann.
--help Gibt den Hilfetext aus.
--input <String> Legt den Eingabeordner für --dev fest.
--output <String> Legt den Ausgabeordner fest. Standardmäßig wird der Ordner "generated" erzeugt bzw. gefüllt.
--reports Erzeugt im Ausgabeordner den Ordner reports mit drei Listen (Aufbau der Listen siehe unten):
--server Erzeugt im Ausgabeordner den data-Ordner eines Datenpakets für den Namensraum minecraft. Enthalten sind alle Rezept-Fortschrittsdaten, alle Rezeptdaten und alle Aliasdaten. Alternativ kann man diese auch manuell aus der minecraft.jar extrahieren.

Liste[Bearbeiten]

Mit dem --reports-Parameter erzeugt der Datengenerator Listen, die folgenden Aufbau haben:

Blockliste[Bearbeiten]


  • Die namenlose Haupteigenschaft.

    • ID-Name:
      Der ID-Name des Blockes.

      • properties:
        Optional die Blockzustände des Blockes.

        • Name des Blockzustandes:
          Liste aller Werte, die dieser Zustand annehmen kann.

          • Ein Wert des Blockzustandes.

      • states:
        Die Varianten des Blockes.

        • Eine Variante.

          • properties:
            Optional ein bestimmter Blockzustand, falls der Block welche hat.

            • Name des Blockzustandes:
              Wert des Blockzustandes.

          • id:
            Jede Variante hat eine eindeutige Nummer, beginnend bei 0 für Luft. Die Varianten sind fortlaufend durchnummeriert, sodass sich die ID für eine bestimmte Variante mit jeder Minecraft-Version ändern kann.

          • default:
            Mit "true" wird die Standardvariante beschrieben, die z. B. im Inventar zu sehen ist. Alle anderen Varianten des Blockes haben den Wert "false", aber dieser muss nicht angegeben werden.

Beispiel Grasblock:

 "minecraft:grass_block": {
   "properties": {
     "snowy": [
       "true",
       "false"
     ]
   },
   "states": [
     {
       "properties": {
         "snowy": "true"
       },
       "id": 8
     },
     {
       "properties": {
         "snowy": "false"
       },
       "id": 9,
       "default": true
     }
   ]
 },

Gegenstandsliste[Bearbeiten]


  • Die namenlose Haupteigenschaft.

    • ID-Name:
      Der ID-Name des Gegenstandes.

      • protocol_id:
        Jeder Gegenstand hat eine eindeutige Nummer, beginnend bei 0 für Luft. Zu den Gegenständen gehören auch die Blöcke, die im Inventar sein können. Die Gegenstände sind fortlaufend durchnummeriert, sodass sich die ID für einen bestimmten Gegenstand mit jeder Minecraft-Version ändern kann.

Beispiel Eimer:

 "minecraft:bucket": {
   "protocol_id": 486
 },

Befehlsliste[Bearbeiten]

Die Befehlsliste enthält die Logik des Befehle-Parser Brigadier. Der prüft einen Befehl bereits bei der Eingabe, daher geht seine Prüfung strikt von links nach rechts: Das erste Element muss ein Befehl sein. Danach folgt bei vielen Befehlen ein Parameter, ggf. gefolgt von einem weiteren Parameter etc. Jede mögliche Parameterkette ist in der Liste enthalten. Eine einzelne Parameterkette ist so aufgebaut:

  • Die Eigenschaften des ersten Parameters werden beschrieben, die restlichen Parameter dieser Kette stecken in der children-Eigenschaft des ersten Parameters.
  • In der children-Eigenschaft geht es genauso weiter: Das Eigenschaften des nächsten Parameters werden beschrieben, die restlichen Parameter dieser Kette stecken wieder in einer children-Eigenschaft.
  • Das geht immer so weiter bis zum letzten Parameter dieser Kette.
  • Sobald ein Teil der Parameterkette ausführbar ist, wird das mit der executable-Eigenschaft gekennzeichnet.
  • Danach kann die Parameterkette weitergehen (children), was einer optionalen Eingabe entspricht.

  • Die namenlose Haupteigenschaft.

    • type:
      "root" für die Befehlsliste.

    • children:
      Alle Befehle.

      • Name des Befehls:
        Die Eigenschaften dieses Befehls.

        • type:
          Immer "literal", weil ein Befehl vom Befehle-Parser wörtlich genommen wird.

        • executable:
          Optional "true", wenn der Befehl an diesem Punkt (also ohne Parameter) ausführbar ist. Ohne Angabe gilt "false", d. h. der Befehl ist alleine nicht ausführbar.

        • redirect:
          Optional, wenn der Befehl ein Alias für einen anderen Befehl ist.

          • Der Name des anderen Befehls.

        • children:
          Optional, wenn der Befehl Parameter hat.

          • Name des Parameters:
            Der erste Parameters der Parameterkette.

            • type:
              Entweder "literal", wenn der Parameter eine Textkonstante ist oder "argument", wenn er eine andere Art von Befehlsparameter ist, die durch die parser und ggf. properties genauer beschrieben wird.

            • parser:
              Der Datentyp des Parameters (sofern er nicht "literal" ist). Es gibt zahlreiche Minecraft-Datentypen (z. B. "minecraft:block_pos" für die Eingabe von drei Koordinaten, "minecraft:block_state" für die Eingabe eines ID-Namens (ggf. mit Blockzustand), "minecraft:entity" für ein Objekt etc.) sowie einige Grund-Datentypen, die im Befehle-Parser Brigadier definiert sind (z. B. "brigadier:bool", "brigadier:integer", "brigadier:string").

            • properties:
              Optional die Eigenschaften des Parameters (sofern er nicht "literal" ist).

              • type:
                Der Typ der Parametereigenschaft: "players" oder "entities" für Spieler oder Objekte (wobei amount die Menge genauer festlegt), "word", "phrase" und "greedy" für verschiedene Arten von Texteingaben.

              • amount:
                Die Menge der Spieler oder Objekte: "single" für genau ein , "multiple" wenn mehrere möglich sind (z.B. beim /give-Befehl).

              • min:
                Minimum bei einer Zahleneingabe.

              • max:
                Maximum bei einer Zahleneingabe.

            • executable:
              "true", wenn der Befehl an diesem Punkt der Parameterkette ausführbar ist.

            • redirect:
              Optional, wenn der Befehl einen Unterbefehl ausführen kann, wie z. B. /execute.

              • Der Unterbefehl.

            • children:
              Optional die weiteren Parameter dieser Parameterkette, siehe oben unter children. Die Parameterkette endet damit, dass der letzte Parameter keine children hat.

Beispiel Befehl /help:

   "help": {
     "type": "literal",
     "children": {
       "command": {
         "type": "argument",
         "parser": "brigadier:string",
         "properties": {
           "type": "greedy"
         },
         "executable": true
       }
     },
     "executable": true
   },

Geschichte[Bearbeiten]

Promotional Content