So ändern Sie Minecraft auf einfache Weise mit TypeScript

Normalerweise erfordert das Ändern von Minecraft das Codieren in Java und viel Gerüst. Jetzt können Sie Minecraft-Mods mit TypeScript / Javascript schreiben und teilen.

ScriptCraft ist eine Open-Source-JavaScript-Minecraft-Modding-Bibliothek. Wir haben Unterstützung für TypeScript und eine Reihe von Tools geschrieben, um eine vertraute Entwicklererfahrung für Benutzer aus JavaScript-Ländern (einschließlich Yeoman und NPM) zu schaffen.

In diesem Artikel werde ich Sie durch die Einrichtung und Erstellung Ihres ersten TypeScript Minecraft-Mods in weniger als einer Stunde führen - abhängig von Ihrer Internetverbindung in nur 20 Minuten.

In diesem Video (klicken Sie hier, wenn die Einbettung oben nicht funktioniert) zeige ich Ihnen, wie Sie einen grundlegenden Minecraft-Mod mit TypeScript schreiben und auf Ihrem lokalen Computer mit einem Desktop- und einem mobilen Minecraft-Server ausführen.

Im Folgenden werde ich Sie durch die Schritte mit Links zu Ressourcen führen.

Voraussetzungen

Sie benötigen eine auf Ihrem Computer installierte Software, um den Minecraft-Server und die Tools zum Schreiben Ihres Plugins auszuführen. Installieren Sie alle vier folgenden Komponenten:

  • Docker - eine Containerisierungslösung.
  • Node.js - eine JavaScript-Ausführungs-Engine und -Bibliothek.
  • Portainer - eine webbasierte Benutzeroberfläche zum Verwalten von Docker-Containern.
  • Visual Studio Code - ein Code-Editor.

Minecraft Client

Sie benötigen einen Minecraft- Client , um Ihr Plugin zu testen.

Installieren Sie mindestens eines der folgenden Elemente:

  • Minecraft Java Edition - ein Desktop-Client, wenn Sie gegen einen Bukkit-Server testen möchten.
  • Minecraft Pocket Edition - ein mobiler Client, wenn Sie gegen einen Nukkit-Server (Telefon / Tablet / Xbox) testen möchten. Wenn Sie dies verwenden, können Sie Minecraft Pocket Edition Bedrock Launcher verwenden, um den mobilen Client auf Ihrem Computer auszuführen.

Installation

Nachdem Sie die Voraussetzungen installiert haben, ist es Zeit, die Tools für den Server und die Plugin-Entwicklung zu installieren.

  1. Führen Sie den folgenden Befehl aus:
npm i -g smac yo generator-sma-plugin typescript

Dadurch werden vier Dinge auf Ihrem Computer installiert:

  • smac- Scriptcraft Modular Architecture Controller, ein Programm, das Minecraft Server für Ihre Plugins ausführt .
  • yo- Yeoman , ein Gerüstwerkzeug.
  • generator-sma-plugin - ein Yeoman-Plugin zum Generieren eines neuen Minecraft-Plugins mithilfe der Scriptcraft Modular Architecture.
  • typescript - der TypeScript-Transpiler zum Konvertieren von TypeScript-Code in ES5-JavaScript, das in Minecraft ausgeführt werden kann.

Erstellen Sie ein neues Plugin

Nachdem Sie das Toolset installiert haben, erstellen Sie ein neues Plugin, indem Sie diesen Befehl ausführen:

yo sma-plugin

Dies startet den Plugin-Assistenten:

➜ yo sma-plugin
 _-----_ ╭──────────────────────────╮ | | │ Welcome to the │ |--(o)--| │ Scriptcraft SMA Plugin │ `---------´ │ generator by │ ( _´U`_ ) │ Magikcraft.io! │ /___A___\ /╰──────────────────────────╯ | ~ | __'.___.'__ ´ ` |° ´ Y `
? Your package name (workspace)

Es gibt nur eine Frage, die Sie hier beantworten müssen - den Namen Ihres Plugins. Der Assistent erstellt einen neuen Ordner mit dem Namen des Plugins und legt die Dateien für das neue Plugin darin ab.

Dieser Screencast zeigt Ihnen den Prozess:

Gerüste ein Minecraft-Plugin mit Magikcraft

Mit Magikcraft.io können Sie Minecraft-Plugins in TypeScript / JavaScript schreiben, die auf Desktop / Mobile ausgeführt werden. asciinema.org

Sobald der Assistent abgeschlossen ist, wird eine ähnliche Meldung ausgegeben (ich habe den Namen my-sma-pluginin diesem Beispiel gewählt):

Bearbeiten Sie Ihr neues Plugin

Starten Sie Visual Studio Code und öffnen Sie das Verzeichnis mit Ihrem neuen Plugin.

Hier ist eine Beschreibung der Dateien in Ihrem neuen Plugin:

  • __tests__- Ein Verzeichnis mit Unit-Tests für Ihr Plugin. Diese werden mit Jasmine betrieben. Fügen Sie hier weitere Tests hinzu, während Sie Ihr Plugin entwickeln.
  • .vscode - Einstellungen für Visual Studio-Code.
  • autoload- Alle hier enthaltenen Dateien werden automatisch ausgeführt, wenn Ihr Plugin auf dem Minecraft-Server aktiviert ist. Verwenden Sie diese Option für Initialisierungsaufgaben, zum Registrieren von Ereignishandlern usw.
  • lib- Ein Ort, an dem Sie Dateien ablegen können, die nicht automatisch geladen werden sollen (oder die von Ihren automatisch geladenen Dateien benötigt werden). Wenn Ihr Plugin Funktionen für andere Plugins bereitstellt, exportieren Sie diese über lib/index.ts.
  • node_modules- Hier werden Module von npm installiert. Sie können keine Module von npm verwenden, die V8-APIs verwenden (wie fs oder http). Viele der Funktionen, die Sie benötigen, werden von der Scriptcraft-API und vom @magikcraft/corePaket bereitgestellt.
  • .editorconfig - Einstellungen für den Editor.
  • .gitattributes- Einstellungen für git.
  • .gitignore- Dateien, die ignoriert werden müssen git.
  • .prettierrc - Einstellungen für die Code-Formatierung.
  • package-lock.json - Versionen installierter Abhängigkeiten.
  • package.json - Konfiguration für dieses Plugin, einschließlich Abhängigkeiten und Skripten.
  • README.md - Anweisungen zum Entwickeln und Testen Ihres Plugins.
  • smac-nukkit.json - Eine Konfiguration zum Ausführen eines Nukkit-Servers mit geladenem Plugin.
  • smac.json - Eine Konfiguration zum Ausführen eines Bukkit-Servers mit geladenem Plugin.
  • tsconfig.json - die TypeScript-Konfiguration zum Transpilieren Ihres Plugins in JavaScript.

Öffnen autoload/index.ts:

Diese Datei wird automatisch ausgeführt, wenn das Plugin geladen wird. Änderungen, die Sie hier vornehmen, werden sichtbar, wenn Sie das Plugin (erneut) laden.

Starten Sie einen Entwicklungsserver

Sie können Ihr Plugin auf einen Entwicklungsserver laden. Sie können zwei Server verwenden - einen für den Desktop-Java-Client und einen für den mobilen Pocket Edition-Client.

Starten Sie den Desktop-Server

Führen Sie dies aus, um einen Desktop-Server zu starten:

npm run start:bukkit

Dieser Wille:

  1. Ziehen Sie das Bukkit-Server-Image von Docker Hub.
  2. Start the Bukkit server with your plugin loaded.
  3. Start the TypeScript transpiler to transpile your code to ES5.

You can now connect to the server with your desktop client. Click on Multiplayer then Direct Connect, then use the server address 127.0.0.1:

Start the mobile server

Run this command to start a mobile server:

npm run start:nukkit

This will:

  1. Pull the Nukkit server image from Docker Hub.
  2. Start the Nukkit server with your plugin loaded.
  3. Start the TypeScript transpiler to transpile your code to ES5.

You can now connect to the server with your pocket edition client. Click on Play then Servers, then add a server with the address 127.0.0.1:

Reload changes to your plugin

As you change your plugin and save the changed TypeScript, it will automatically be transpiled to JavaScript.

To reload the changes in the development server, type the following in the server console:

ts onrefresh()

See the screencast below to see what this looks like.

Stop the server

To stop the server, type this command at the server console:

smac stop

See the screencast below to see what it looks like when you run this command.

Screencast: Start, Reload, and Stop

This screencast shows you starting the desktop server, reloading the plugin code, and also stopping the development server.

Start a Magikcraft Development Server

Start a Magikcraft Development Server.asciinema.org

Further Resources

  • Magikcraft on GitHub
  • Magikcraft on YouTube
  • MCT1 Source Code (Example Plugin)
  • ScriptCraft on GitHub
  • Bukkit API Docs