Kaip lengvai modifikuoti „Minecraft“ naudojant „TypeScript“

Paprastai norint modifikuoti „Minecraft“ reikia „Java“ kodavimo ir daug pastolių. Dabar galite rašyti ir bendrinti „Minecraft“ modifikacijas naudodami „TypeScript“ / „Javascript“.

„ScriptCraft“ yra atviro kodo „JavaScript Minecraft“ modifikavimo biblioteka. Mes parašėme „TypeScript“ palaikymą ir daugybę įrankių, kad sukurtume pažįstamą kūrėjų patirtį tiems, kurie ateina iš „JavaScript“ žemės (įskaitant „Yeoman“ ir „NPM“).

Šiame straipsnyje aš jums padėsiu nustatyti ir sukurti savo pirmąjį „TypeScript Minecraft“ modą per valandą - vos per 20 minučių, priklausomai nuo jūsų interneto ryšio.

Šiame vaizdo įraše (spustelėkite čia, jei įdėjimas neveikia aukščiau) aš parodysiu, kaip parašyti pagrindinį „Minecraft“ modą naudojant „TypeScript“ ir paleisti jį savo vietiniame kompiuteryje tiek su darbalaukiu, tiek su mobiliuoju „Minecraft“ serveriu.

Toliau aprašysiu veiksmus su nuorodomis į išteklius.

Būtinos sąlygos

Jums reikės šiek tiek programinės įrangos, įdiegtos jūsų kompiuteryje, kad galėtumėte paleisti „Minecraft“ serverį ir įrankius, skirtus jūsų papildinio rašymui. Įdiekite visus šiuos keturis:

  • Docker - talpyklės tirpalas.
  • Node.js - „JavaScript“ vykdymo variklis ir biblioteka.
  • „Portainer“ - žiniatinklio GUI, skirtas valdyti „Docker“ konteinerius.
  • „Visual Studio Code“ - kodo redaktorius.

„Minecraft“ klientas

Norėdami išbandyti savo papildinį, jums reikia „Minecraft“ kliento .

Įdiekite bent vieną iš šių veiksmų:

  • „Minecraft Java Edition“ - darbalaukio klientas, jei norite išbandyti „Bukkit“ serverį.
  • „Minecraft Pocket Edition“ - mobilusis klientas, jei norite išbandyti „Nukkit“ serverį (telefoną / planšetinį kompiuterį / „Xbox“). Jei naudojate tai, galite naudoti „Minecraft Pocket Edition Bedrock Launcher“ norėdami paleisti mobilųjį klientą savo kompiuteryje.

Montavimas

Dabar, kai turite įdiegtas būtinas sąlygas, atėjo laikas įdiegti serverio ir papildinių kūrimo įrankius.

  1. Paleiskite šią komandą:
npm i -g smac yo generator-sma-plugin typescript

Tai įdiegs keturis dalykus jūsų kompiuteryje:

  • smac- „ Scriptcraft Modular Architecture Controller“, programa, valdanti „Minecraft“ serverius jūsų įskiepiams.
  • yo- „ Yeoman“ , pastolių įrankis.
  • generator-sma-plugin - „Yeoman“ papildinys, skirtas sukurti naują „Minecraft“ įskiepį naudojant „Scriptcraft“ modulinę architektūrą.
  • typescript - „TypeScript“ transpileris, skirtas konvertuoti „TypeScript“ kodą į „ES5 JavaScript“, kuris gali veikti „Minecraft“.

Sukurkite naują papildinį

Dabar, kai turite įdiegtą įrankių rinkinį, sukurkite naują papildinį vykdydami šią komandą:

yo sma-plugin

Tai paleidžia papildinio vedlį:

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

Čia reikia atsakyti tik į vieną klausimą - įskiepio pavadinimą. Vedlys sukurs naują aplanką su papildinio pavadinimu ir įdės į jį naujojo papildinio failus.

Ši ekrano schema rodo procesą:

Pastatykite „Minecraft“ papildinį naudodami „Magikcraft“

„Magikcraft.io“ leidžia jums rašyti „Minecraft“ papildinius „TypeScript“ / „JavaScript“, kurie veiks „Desktop / Mobile“. asciinema.org

Kai vedlys baigs, jis išsiųs panašų pranešimą (pavadinimą pasirinkau my-sma-pluginšiame pavyzdyje):

Redaguokite savo naują papildinį

Paleiskite „Visual Studio Code“ ir atidarykite katalogą, kuriame yra jūsų naujas papildinys.

Čia yra jūsų naujojo papildinio failų aprašymas:

  • __tests__- katalogas, kuriame yra jūsų įskiepio vieneto testai. Jie valdomi kartu su Jasmine. Pridėkite daugiau bandymų čia kurdami papildinį.
  • .vscode - „Visual Studio“ kodo nustatymai.
  • autoload- visi failai čia yra automatiškai vykdomi, kai jūsų papildinys įgalinamas „Minecraft“ serveryje. Naudokite tai atlikdami pradines užduotis, registruodami įvykių tvarkytuvus ir pan.
  • lib- Vieta, kur galite įdėti failus, kurie neturėtų būti automatiškai įkeliami (arba kurie reikalingi iš jūsų automatiškai išleistų failų). Jei jūsų papildinys suteikia funkcijų kitiems papildiniams, tada juos eksportuojate per lib/index.ts.
  • node_modules- čia yra įdiegti moduliai nuo npm. Negalite naudoti modulių nuo npm, kurie naudoja V8 API (pvz., Fs ar http). Daugelį jums reikalingų funkcijų teikia „Scriptcraft“ API ir @magikcraft/corepaketas.
  • .editorconfig - redaktoriaus nustatymai.
  • .gitattributesVista nustatymai - git.
  • .gitignoreFailus, kurių nepaisysite git.
  • .prettierrc - kodo formatavimo nustatymai.
  • package-lock.json —Įdiegtų priklausomybių versijos.
  • package.json —Šio papildinio konfigūracija, įskaitant priklausomybes ir scenarijus.
  • README.md - instrukcijos, kaip kurti ir išbandyti papildinį.
  • smac-nukkit.json - konfigūracija, leidžianti paleisti „Nukkit“ serverį su jūsų papildiniu.
  • smac.json - konfigūracija paleisti „Bukkit“ serverį su įkeltu įskiepiu.
  • tsconfig.json - „TypeScript“ konfigūracija, skirta įskiepiui perkelti į „JavaScript“.

Atidaryti autoload/index.ts:

Šis failas automatiškai vykdomas, kai įkeliamas papildinys. Čia atlikti pakeitimai bus matomi, kai (iš naujo) įkeliate papildinį.

Paleiskite kūrimo serverį

Galite įkelti papildinį į kūrimo serverį. Yra du serveriai, kuriuos galite naudoti - vienas darbalaukio „Java“ klientui, kitas - mobiliajam „Pocket Edition“ klientui.

Paleiskite darbalaukio serverį

Paleiskite tai norėdami paleisti darbalaukio serverį:

npm run start:bukkit

Tai bus:

  1. Iš „Docker Hub“ ištraukite „Bukkit“ serverio vaizdą.
  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()

Žiūrėkite žemiau esančią ekrano kopiją, kad pamatytumėte, kaip tai atrodo.

Sustabdykite serverį

Norėdami sustabdyti serverį, įveskite šią komandą serverio konsolėje:

smac stop

Žiūrėkite žemiau esančią ekrano kopiją, kad sužinotumėte, kaip ji atrodo paleidus šią komandą.

Ekrano perdavimas: paleisti, įkelti iš naujo ir sustabdyti

Ši ekrano kopija rodo, kaip paleisti darbalaukio serverį, iš naujo įkelti papildinio kodą ir sustabdyti kūrimo serverį.

Paleiskite „Magikcraft Development Server“

Paleiskite „Magikcraft Development Server“. asciinema.org

Kiti šaltiniai

  • „Magikcraft“ „GitHub“
  • „Magikcraft“ „YouTube“
  • MCT1 šaltinio kodas (papildinio pavyzdys)
  • „ScriptCraft“ „GitHub“
  • „Bukkit“ API dokumentai