Por lo general, la modificación de Minecraft requiere codificación en Java y muchos andamios. Ahora puedes escribir y compartir mods de Minecraft usando TypeScript / Javascript.
ScriptCraft es una biblioteca de modding de Minecraft de JavaScript de código abierto, y hemos escrito soporte para TypeScript y un montón de herramientas para crear una experiencia de desarrollador familiar para aquellos que vienen de la tierra de JavaScript (incluidos Yeoman y NPM).
En este artículo, lo guiaré para configurar y construir su primer mod de TypeScript Minecraft en menos de una hora, tan solo 20 minutos, según su conexión a Internet.
En este video (haga clic aquí si la inserción no funciona arriba) le muestro cómo escribir un mod básico de Minecraft usando TypeScript y ejecutarlo en su computadora local con un servidor de Minecraft de escritorio y móvil.
A continuación, lo guiaré a través de los pasos, con enlaces a recursos.
Prerrequisitos
Necesitará algún software instalado en su computadora, para ejecutar el servidor de Minecraft y las herramientas para escribir su complemento. Instale los cuatro siguientes:
- Docker: una solución de contenedorización.
- Node.js: una biblioteca y un motor de ejecución de JavaScript.
- Portainer: una GUI basada en web para administrar contenedores Docker.
- Visual Studio Code: un editor de código.
Cliente Minecraft
Necesitas un cliente de Minecraft para probar tu complemento.
Instale al menos uno de los siguientes:
- Minecraft Java Edition: un cliente de escritorio, si desea probar con un servidor Bukkit.
- Minecraft Pocket Edition: un cliente móvil, si desea probar con un servidor Nukkit (teléfono / tableta / Xbox). Si usa esto, puede usar Minecraft Pocket Edition Bedrock Launcher para ejecutar el cliente móvil en su computadora.
Instalación
Ahora que tiene los requisitos previos instalados, es el momento de instalar las herramientas para el servidor y para el desarrollo de complementos.
- Ejecute el siguiente comando:
npm i -g smac yo generator-sma-plugin typescript
Esto instalará cuatro cosas en su computadora:
smac
- Scriptcraft Modular Architecture Controller, un programa que ejecuta servidores de Minecraft para sus complementos.yo
- Yeoman , una herramienta para andamios.generator-sma-plugin
- un complemento de Yeoman para generar un nuevo complemento de Minecraft utilizando la arquitectura modular de Scriptcraft.typescript
- el transpilador TypeScript, para convertir el código TypeScript en JavaScript ES5 que se puede ejecutar en Minecraft.
Crea un nuevo complemento
Ahora que tiene el conjunto de herramientas instalado, cree un nuevo complemento ejecutando este comando:
yo sma-plugin
Esto inicia el asistente de complementos:
➜ yo sma-plugin
_-----_ ╭──────────────────────────╮ | | │ Welcome to the │ |--(o)--| │ Scriptcraft SMA Plugin │ `---------´ │ generator by │ ( _´U`_ ) │ Magikcraft.io! │ /___A___\ /╰──────────────────────────╯ | ~ | __'.___.'__ ´ ` |° ´ Y `
? Your package name (workspace)
Solo hay una pregunta que debe responder aquí: el nombre de su complemento. El asistente creará una nueva carpeta con el nombre del complemento y colocará en ella los archivos para el nuevo complemento.

Este screencast te muestra el proceso:
Andamia un complemento de Minecraft usando Magikcraft
Magikcraft.io le permite escribir complementos de Minecraft en TypeScript / JavaScript que se ejecutarán en Desktop / Mobile. asciinema.org
Una vez que el asistente se completa, emite un mensaje similar a este (elegí el nombre my-sma-plugin
en este ejemplo):

Edita tu nuevo complemento
Inicie Visual Studio Code y abra el directorio que contiene su nuevo complemento.

Aquí hay una descripción de los archivos en su nuevo complemento:
__tests__
- un directorio que contiene pruebas unitarias para su complemento. Estos se ejecutan con Jasmine. Agregue más pruebas aquí a medida que desarrolla su complemento..vscode
- configuración para el código de Visual Studio.autoload
- cualquier archivo aquí se ejecuta automáticamente cuando su complemento está habilitado en el servidor de Minecraft. Úselo para tareas de inicialización, registro de controladores de eventos, etc.lib
- Un lugar para que coloque archivos que no deben cargarse automáticamente (o que se requieren de sus archivos autocargados). Si su complemento proporciona funcionalidad a otros complementos, entonces puede exportarlo a través delib/index.ts
.node_modules
- Aquí se instalan los módulos de npm. No puede usar módulos de npm que usen API V8 (como fs o http). Muchas de las funciones que necesita las proporciona la API de Scriptcraft y el@magikcraft/core
paquete..editorconfig
- configuración del editor..gitattributes
- configuración paragit
..gitignore
- archivos para ignorargit
..prettierrc
- configuración para el formato de código.package-lock.json
: Versiones de dependencias instaladas.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:
- Pull the Bukkit server image from Docker Hub.
- Start the Bukkit server with your plugin loaded.
- 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:
- Pull the Nukkit server image from Docker Hub.
- Start the Nukkit server with your plugin loaded.
- 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