Kuidas muuta Minecrafti TypeScriptiga lihtsaks

Tavaliselt nõuab Minecrafti muutmine Java-s kodeerimist ja palju tellinguid. Nüüd saate kirjutada ja jagada Minecrafti modifikatsioone TypeScripti / Javascripti abil.

ScriptCraft on avatud lähtekoodiga JavaScripti Minecrafti modifitseerimisraamatukogu ja oleme kirjutanud TypeScriptile toe ning hulga tööriistu, et luua tuttav arendajakogemus neile, kes tulevad JavaScripti maalt (sh Yeoman ja NPM).

Selles artiklis tutvustan teile esimese TypeScripti Minecrafti modi seadistamist ja ehitamist alla tunni - nii vähe kui 20 minutit, sõltuvalt teie Interneti-ühendusest.

Selles videos (klõpsake siin, kui manustamine ülal ei tööta) näitan teile, kuidas kirjutada Minecrafti põhiline modifikatsioon TypeScripti abil ja käivitada see oma kohalikus arvutis nii töölaua kui ka mobiilse Minecrafti serveriga.

Allpool tutvustan teid allikate linkidega.

Eeldused

Minecrafti serveri käitamiseks ja pistikprogrammi kirjutamise tööriistad vajate arvutisse installitud tarkvara. Installige kõik neli järgmist:

  • Docker - konteinerlahus.
  • Node.js - JavaScripti täitmismootor ja teek.
  • Portainer - veebipõhine GUI Dockeri konteinerite haldamiseks.
  • Visual Studio Code - koodiredaktor.

Minecrafti klient

Pistikprogrammi testimiseks vajate Minecrafti klienti .

Installige vähemalt üks järgmistest:

  • Minecraft Java Edition - lauaarvuti klient, kui soovite testida Bukkiti serveri vastu.
  • Minecraft Pocket Edition - mobiilne klient, kui soovite testida Nukkiti serveri (telefon / tahvelarvuti / Xbox) vastu. Kui kasutate seda, saate oma arvutis mobiilikliendi käitamiseks kasutada Minecrafti Pocket Editioni aluspõhjaga käivitajat.

Paigaldamine

Nüüd, kui eeldused on installitud, on aeg installida tööriistad serveri ja pistikprogrammide väljatöötamiseks.

  1. Käivitage järgmine käsk:
npm i -g smac yo generator-sma-plugin typescript

See installib teie arvutisse neli asja:

  • smac- Scriptcraft Modular Architecture Controller, programm, mis töötab teie pistikprogrammide jaoks Minecrafti servereid.
  • yo- Yeoman , tellingute tööriist.
  • generator-sma-plugin - Yeomani pistikprogramm uue Minecrafti pistikprogrammi loomiseks Scriptcraft Modular Architecture abil.
  • typescript - TypeScripti transpiler TypeScripti koodi teisendamiseks ES5 JavaScripti, mida saab kasutada Minecraftis.

Looge uus pistikprogramm

Nüüd, kui tööriistakomplekt on installitud, looge selle käsu abil uus pistikprogramm:

yo sma-plugin

See käivitab pistikprogrammi viisardi:

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

Siin peate vastama ainult ühele küsimusele - teie pistikprogrammi nimi. Nõustaja loob uue kausta koos pistikprogrammi nimega ja paigutab sinna uue pistikprogrammi failid.

See ekraanikuva näitab teile protsessi:

Tellingud Minecrafti pistikprogrammi abil Magikcraft

Magikcraft.io võimaldab teil kirjutada Minecrafti pistikprogramme TypeScript / JavaScripti, mis töötab töölaual / mobiilseadmes. asciinema.org

Kui viisard on lõpetanud, väljastab ta sarnase sõnumi (valisin nime my-sma-pluginselles näites):

Muutke oma uut pistikprogrammi

Käivitage Visual Studio kood ja avage kataloog, mis sisaldab teie uut pistikprogrammi.

Siin on teie uue pistikprogrammi failide kirjeldus:

  • __tests__- kataloog, mis sisaldab teie pistikprogrammi ühikuteste. Neid juhitakse koos Jasmine'iga. Lisandmooduli arendamisel lisage siia veel teste.
  • .vscode - Visual Studio koodi seaded.
  • autoload- kõik siin olevad failid käivitatakse automaatselt, kui teie pistikprogramm on Minecrafti serveris lubatud. Kasutage seda lähtestamistoiminguteks, sündmuste käitlejate registreerimiseks jne.
  • lib- Koht, kuhu saab panna faile, mida ei tohiks automaatselt laadida (või mis on vajalikud teie automaatselt laetud failidest). Kui teie pistikprogramm pakub teistele pistikprogrammidele funktsionaalsust, siis ekspordite selle kaudu lib/index.ts.
  • node_modules- siia on installitud moodulid alates npm. Te ei saa kasutada alates npm mooduleid, mis kasutavad V8 API-sid (nt fs või http). Paljusid vajalikke funktsioone pakub Scriptcraft API ja @magikcraft/corepakett.
  • .editorconfig - redaktori seaded.
  • .gitattributes- seaded git.
  • .gitignore- failid, mida ignoreerida git.
  • .prettierrc - koodi vormindamise seaded.
  • package-lock.json —Installitud sõltuvuste versioonid.
  • 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()

Kuidas see välja näeb, vaadake allolevat ekraanikuva.

Peatage server

Serveri peatamiseks tippige see käsk serverikonsoolis:

smac stop

Kuidas see käsu käivitamisel välja näeb, vaadake allolevat ekraanikuva.

Ekraanikuva: käivitamine, uuesti laadimine ja peatamine

See ekraanikuva näitab töölaua serveri käivitamist, pistikprogrammi koodi uuesti laadimist ja arendusserveri peatamist.

Käivitage Magikcraft Development Server

Käivitage Magikcraft Development Server. asciinema.org

Täiendavad ressursid

  • Magikcraft GitHubis
  • Magikcraft YouTube'is
  • MCT1 lähtekood (pistikprogrammi näide)
  • ScriptCraft GitHubis
  • Bukkiti API-dokumendid