TypeScriptで簡単にMinecraftを変更する方法

通常、Minecraftを変更するには、Javaでのコーディングと、多くのスキャフォールディングが必要です。これで、TypeScript / Javascriptを使用してMinecraftmodを記述および共有できます。

ScriptCraftはオープンソースのJavaScriptMinecraft改造ライブラリであり、TypeScriptのサポートと、JavaScriptランド(YeomanやNPMを含む)から来た人にとってなじみのある開発者エクスペリエンスを作成するための一連のツールを作成しました。

この記事では、インターネット接続にもよりますが、最初のTypeScript Minecraftmodを1時間以内にセットアップして構築する方法を説明します。最短で20分です。

このビデオでは(上記の埋め込みが機能しない場合はここをクリック)、TypeScriptを使用して基本的なMinecraft modを作成し、デスクトップとモバイルMinecraftサーバーの両方を備えたローカルコンピューターで実行する方法を示します。

以下では、リソースへのリンクとともに、手順を説明します。

前提条件

Minecraftサーバーとプラグインを作成するためのツールを実行するには、コンピューターにいくつかのソフトウェアをインストールする必要があります。次の4つすべてをインストールします。

  • Docker —コンテナ化ソリューション。
  • Node.js —JavaScript実行エンジンとライブラリ。
  • Portainer —Dockerコンテナを管理するためのWebベースのGUI。
  • Visual Studio Code —コードエディター。

Minecraftクライアント

プラグインをテストするには、Minecraftクライアントが必要です。

次の少なくとも1つをインストールします。

  • Minecraft Java Edition —Bukkitサーバーに対してテストする場合のデスクトップクライアント。
  • Minecraft Pocket Edition — N​​ukkitサーバー(電話/タブレット/ Xbox)に対してテストする場合のモバイルクライアント。これを使用すると、Minecraft Pocket Edition BedrockLauncherを使用してコンピューターでモバイルクライアントを実行できます。

インストール

前提条件がインストールされたので、サーバーとプラグイン開発用のツールをインストールします。

  1. 次のコマンドを実行します。
npm i -g smac yo generator-sma-plugin typescript

これにより、コンピューターに4つのものがインストールされます。

  • smacScriptcraft Modular Architecture Controller、プラグイン用にMinecraftサーバーを実行するプログラム。
  • yoヨーマン、足場ツール。
  • generator-sma-plugin — Scriptcraft ModularArchitectureを使用して新しいMinecraftプラグインを生成するためのYeomanプラグイン。
  • typescript —TypeScriptコードをMinecraftで実行できるES5JavaScriptに変換するためのTypeScriptトランスパイラー。

新しいプラグインを作成する

ツールセットがインストールされたので、次のコマンドを実行して新しいプラグインを作成します。

yo sma-plugin

これにより、プラグインウィザードが起動します。

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

ここで答える必要がある質問は1つだけです。それは、プラグインの名前です。ウィザードは、プラグインの名前で新しいフォルダーを作成し、その中に新しいプラグインのファイルを配置します。

このスクリーンキャストは、プロセスを示しています。

Magikcraftを使用してMinecraftプラグインを足場にする

Magikcraft.ioを使用すると、デスクトップ/モバイルで実行されるTypeScript / JavaScriptでMinecraftプラグインを作成できます。asciinema.org

ウィザードが完了すると、次のようなメッセージが表示されます(my-sma-pluginこの例では名前を選択しました)。

新しいプラグインを編集します

Visual Studio Codeを起動し、新しいプラグインを含むディレクトリを開きます。

新しいプラグインのファイルの説明は次のとおりです。

  • __tests__—プラグインの単体テストを含むディレクトリ。これらはジャスミンで実行されます。プラグインを開発するときに、ここにテストを追加します。
  • .vscode — VisualStudioコードの設定。
  • autoload — any files in here are automatically executed when your plugin is enabled in the Minecraft server. Use this for initialisation tasks, registering event handlers, and so forth.
  • lib — A place for you to put files that should not be automatically loaded (or that are required from your autoloaded files). If your plugin provides functionality to other plugins, then you export that via lib/index.ts.
  • node_modules — modules from npm are installed here. You cannot use modules from npm that use V8 APIs (like fs or http). Many of the features that you need are provided by the Scriptcraft API and by the @magikcraft/core package.
  • .editorconfig — settings for the editor.
  • .gitattributes — settings for git.
  • .gitignore — files to ignore for git.
  • .prettierrc — settings for code formatting.
  • package-lock.json —versions of installed dependencies.
  • package.json —configuration for this plugin, including dependencies and scripts.
  • README.md — instructions for developing and testing your plugin.
  • smac-nukkit.json — a configuration for running a Nukkit server with your plugin loaded.
  • smac.json — a configuration for running a Bukkit server with your plugin loaded.
  • tsconfig.json — the TypeScript configuration for transpiling your plugin to JavaScript.

Open autoload/index.ts:

This file is automatically executed when the plugin is loaded. Changes that you make here will be visible when you (re)load the plugin.

Start a development server

You can load your plugin in a development server. There are two servers that you can use — one for the desktop Java client, and the other for the mobile Pocket Edition client.

Start the desktop server

Run this to start a desktop server:

npm run start:bukkit

This will:

  1. Pull the Bukkit server image from 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