כיצד לשנות את Minecraft בדרך הקלה עם TypeScript

בדרך כלל, שינוי Minecraft דורש קידוד בג'אווה, והרבה פיגומים. עכשיו אתה יכול לכתוב ולשתף Mods Minecraft באמצעות TypeScript / Javascript.

ScriptCraft היא ספריית modvers של קוד פתוח של JavaScript Minecraft, וכתבנו תמיכה ב- TypeScript, וחבורת כלים ליצירת חוויית מפתח מוכרת למי שמגיע מארץ JavaScript (כולל Yeoman ו- NPM).

במאמר זה אדריך אתכם בהקמה ובניית מוד ה- TypeScript Minecraft הראשון שלכם תוך פחות משעה - פחות מ -20 דקות, תלוי בחיבור האינטרנט שלכם.

בסרטון זה (לחץ כאן אם ההטמעה לא עובדת למעלה) אני מראה לך כיצד לכתוב מודל בסיסי של Minecraft באמצעות TypeScript, ולהפעיל אותו במחשב המקומי שלך עם שולחן עבודה ושרת Minecraft נייד.

למטה, אני אלווה אותך בשלבים, עם קישורים למשאבים.

תנאים מוקדמים

תזדקק לתוכנה כלשהי המותקנת במחשב שלך כדי להפעיל את שרת Minecraft ואת הכלים לכתיבת התוסף שלך. התקן את כל ארבעת הדברים הבאים:

  • Docker - פתרון מיכל.
  • Node.js - מנוע וספריית ביצוע JavaScript.
  • פורטיינר - ממשק משתמש מבוסס אינטרנט לניהול מכולות Docker.
  • קוד Visual Studio - עורך קוד.

לקוח מיינקראפט

אתה צריך לקוח Minecraft כדי לבדוק את התוסף שלך.

התקן לפחות אחת מהפעולות הבאות:

  • מהדורת Java של Minecraft - לקוח שולחן עבודה, אם ברצונך לבדוק מול שרת Bukkit.
  • Minecraft Pocket Edition - לקוח סלולרי, אם ברצונך לבדוק מול שרת Nukkit (טלפון / טאבלט / Xbox). אם אתה משתמש בזה, אתה יכול להשתמש ב- Minecraft Pocket Edition משגר סלעים להפעלת הלקוח הנייד במחשב שלך.

הַתקָנָה

כעת לאחר שהתקנתם את התנאים המוקדמים, הגיע הזמן להתקין את הכלים לשרת ולפיתוח תוספים.

  1. הפעל את הפקודה הבאה:
npm i -g smac yo generator-sma-plugin typescript

פעולה זו תתקין ארבעה דברים במחשב שלך:

  • smac- Scriptcraft Controller Architecture Controller, תוכנית שמפעילה שרתי Minecraft עבור התוספים שלך.
  • yo- יאומן , כלי פיגומים.
  • generator-sma-plugin - תוסף Yeoman ליצירת תוסף Minecraft חדש באמצעות הארכיטקטורה המודולרית Scriptcraft.
  • typescript - ה- TypeScript העבר, להמרת קוד TypeScript ל- JavaScript של ES5 שיכול לרוץ ב- Minecraft.

צור תוסף חדש

כעת לאחר התקנת ערכת הכלים, צור תוסף חדש על ידי הפעלת פקודה זו:

yo sma-plugin

זה מפעיל את אשף התוסף:

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

יש רק שאלה אחת שעליך לענות עליה כאן - שם התוסף שלך. האשף ייצור תיקיה חדשה עם שם התוסף, ויניח בתוכה את הקבצים של התוסף החדש.

שידור מסך זה מראה לך את התהליך:

פיגום תוסף Minecraft באמצעות Magikcraft

Magikcraft.io מאפשר לך לכתוב תוספי Minecraft ב- TypeScript / JavaScript שיפעלו על שולחן העבודה / הנייד. asciinema.org

לאחר השלמת האשף, הוא משדר הודעה דומה לזו (בחרתי בשם my-sma-pluginבדוגמה זו):

ערוך את התוסף החדש שלך

הפעל את קוד Visual Studio ופתח את הספרייה המכילה את התוסף החדש שלך.

הנה תיאור של הקבצים בתוסף החדש שלך:

  • __tests__- ספריה המכילה בדיקות יחידה עבור התוסף שלך. אלה מנוהלים עם יסמין. הוסף עוד בדיקות כאן תוך כדי פיתוח התוסף שלך.
  • .vscode - הגדרות עבור קוד Visual Studio.
  • autoload- כל הקבצים כאן מבוצעים אוטומטית כאשר התוסף שלך מופעל בשרת Minecraft. השתמש בזה למשימות אתחול, לרישום מטפלי אירועים וכו '.
  • lib- מקום בו אתה יכול לשים קבצים שלא אמורים לטעון אוטומטית (או שנדרשים מהקבצים שאתה טוען אוטומטית). אם התוסף שלך מספק פונקציונליות לתוספים אחרים, אז אתה מייצא את זה באמצעות lib/index.ts.
  • node_modules- מותקנים כאן מודולים מ- npm. אינך יכול להשתמש במודולים מ- npm המשתמשים בממשקי API של V8 (כמו fs או http). רבות מהתכונות הדרושות לך מסופקות על ידי ממשק ה- API של Scriptcraft ועל ידי @magikcraft/coreהחבילה.
  • .editorconfig - הגדרות לעורך.
  • .gitattributes- הגדרות עבור git.
  • .gitignore- קבצים להתעלם מהם git.
  • .prettierrc - הגדרות לעיצוב קוד.
  • package-lock.json —המרות של תלות מותקנת.
  • package.json - תצורה עבור תוסף זה, כולל תלות וסקריפטים.
  • README.md - הוראות לפיתוח ובדיקת התוסף שלך.
  • smac-nukkit.json - תצורה להפעלת שרת Nukkit עם התוסף שלך טעון.
  • smac.json - תצורה להפעלת שרת Bukkit עם התוסף שלך טעון.
  • tsconfig.json - תצורת TypeScript לשינוע התוסף שלך ל- JavaScript.

פתוח autoload/index.ts:

קובץ זה מבוצע אוטומטית בעת טעינת התוסף. שינויים שתבצע כאן יהיו גלויים כאשר אתה טוען מחדש את התוסף.

הפעל שרת פיתוח

אתה יכול לטעון את התוסף שלך בשרת פיתוח. ישנם שני שרתים שבהם אתה יכול להשתמש - אחד ללקוח Java בשולחן העבודה והשני ללקוח Pocket Edition הנייד.

הפעל את שרת שולחן העבודה

הפעל זאת להפעלת שרת שולחן עבודה:

npm run start:bukkit

זה יהיה:

  1. משוך את תמונת שרת Bukkit מ- 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