Project Structure Overview
minecraft script api โฟล์เดอร์มีโครงสร้างที่ไม่ซับซ้อนมาก สามารถเข้าใจได้อย่างง่ายดาย
ไฟล์และโฟล์เดอร์
โครงสร้างของโปรเจ็คดังนี้
project
├── node_modules # โฟล์เดอร์ที่เก็บไฟล์ dependencies
├── scripts # โฟล์เดอร์ที่เก็บไฟล์สคริปต์
│ └──index.js # ไฟล์หลัก
├── manifest.json # ไฟล์ข้อมูล
├── pack_icon.png # ไอคอน
└── package.json # ไฟล์ข้อมูล dependencies
โครงสร้าง Manifest File
โครงสร้างของ Manifest File นั้นสามารถกำหนดค่าของโปรเจ็คเราได้ นี้คือตัวอย่าง
{
"format_version": 2, // คือเวอร์ชันของไฟล์ manifest (แนะนําให้ใช้ 2)
"header": {
"name": "<project_name>", // ชื่อของโปรเจ็ค
"description": "<project_description>", // รายละเอียดของโปรเจ็ค
"uuid": "<project_uuid>", // UUID ของโปรเจ็ค (ไม่ซ้ำกับโปรเจ็คอื่น)
"version": [
1,
0,
0
], // เวอร์ชันของโปรเจ็ค
"min_engine_version": [
1,
21,
70
] // เวอร์ชันเกมที่โปรเจ็ครองรับ
},
"capabilities": [
"script_eval"
], // สิ่งที่โปรเจ็คสามารถใช้ได้
"modules": [ // โมดูลในโปรเจ็ค
{
"type": "script", // ประเภทของโมดูล
"language": "javascript", // ภาษาของโมดูล
"uuid": "<module_uuid>", // UUID ของโมดูล (ไม่ซ้ำกับโปรเจ็คอื่น)
"entry": "scripts/index.js", // ไฟล์หลักของโมดูล (ต้องมีอยู่จริง)
"version": [
1,
0,
0
] // เวอร์ชันของโมดูล (แนะนําให้ใช้ 1.0.0)
}
],
"dependencies": [ // โมดูลที่โปรเจ็คต้องการ
{
"module_name": "@minecraft/server", // ชื่อของโมดูล
"version": "2.0.0-beta" // เวอร์ชันของโมดูล
},
{
"module_name": "@minecraft/server-ui", // ชื่อของโมดูล
"version": "2.0.0-beta" // เวอร์ชันของโมดูล
}
],
"metadata": {
"authors": [
"-"
] // ชื่อของผู้พัฒนา
}
}
สิ่งที่ควรระวัง
- โปรเจ็คจะต้องมีไฟล์
manifest.json
ที่เป็นไฟล์หลักของโปรเจ็ค - โปรเจ็คจะต้องมีโมดูลหลักของโปรเจ็ค
- ชื่อไฟล์หลักใน
scripts
ต้องตรงกับentry
ของโมดูลหลัก - uuid ของโปรเจ็คต้องไม่ซ้ำกับ uuid อื่นๆ สามารถสร้างได้จาก https://www.uuidgenerator.net/
- จะใช้งาน script ได้ต้องกำหนด
dependencies
ที่จะใช้งานเช่น@minecraft/server
และ@minecraft/server-ui
ชนิดของ dependencies
Client dependencies คือ dependencies ที่ใช้งานทรัพยากรหรือข้อมูลที่ต้องโหลดในฝั่งไคลเอนต์ มีดังนี้
สามารถใช้งานได้แค่เติมลงใน manifest.json
dependencies
{
...,
"dependencies": [
{
// ใช้งาน Stable-Beta
"module_name": "@minecraft/server",
// ใส่เวอร์ชั่น Stable-Beta
"version": "2.0.0-beta"
},
{
"module_name": "@minecraft/server-ui",
"version": "2.0.0-beta"
}
]
}
Server dependencies คือ dependencies ที่ใช้งานทรัพยากรหรือข้อมูลที่ต้องโหลดในฝั่งเซิฟเวอร์ มีดังนี้
หากจะใช้งานต้องใช้งานผ่าน Dedicated Server
Package dependencies คือ dependencies ที่ใช้งานทรัพยากรหรือข้อมูลที่ต้องโหลดในฝั่งโปรเจ็ค มีดังนี้
หากจะใช้งานต้องใช้งานผ่าน compiler อย่างเช่น Webpack หรือ ESBuild
เวอร์ชั่นของ dependencies
เนื่องจาก dependencies อาจจะมีการอัพเดตเวอร์ชั่นได้ตลอด คุณสามารถดูการเปลี่ยนแปลงได้ที่
@minecraft/server @minecraft/server-ui @minecraft/server-gametest @minecraft/server-net @minecraft/server-admin @minecraft/vanilla-data @minecraft/math
วิธีการใช้งานเวอร์ชั่น
- Stable: เป็นเวอร์ชั้นล่าสุดที่เสถียรจะมีลักษะนะ
2.0.0
- Stable-Beta: เป็นเวอร์ชั้นล่าสุดที่ยังไม่เสถียรจะมีลักษะนะ
2.0.0-beta.1.21.70-stable
- Preview: เป็นเวอร์ชั้นพัฒนาที่ยังไม่เสถียรจะมีลักษะนะ
2.0.0-beta.1.21.70-preview
การใช้งาน Module
และนี่คือสาเหตุว่าทำไมต้อง Download nodejs เพื่อที่จะใช้เวลาเขียนโค้ดได้เร็วขึ้นและลดข้อผิดพลาด โดยจะเสนอคำแนะนำอัตโนมัติในขณะที่พิมพ์โค้ด
Autocomplate Example
หากคุณติดตั้ง nodejs แล้วคุณแค่ใช้ npm install
ตามดัวย module ที่คุณใช้งานเช่น
npm install @minecraft/server@2.0.0
แค่นี้คุณก็สามารถใช้งานได้เช่นกันได้ แต่ถ้าคุณต้องการความรวดเร็วอ่านหน้าถัดไปได้เลย 😂