Search documentation...

Command Palette

Search for a command to run...

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

Autocomplate Example

หากคุณติดตั้ง nodejs แล้วคุณแค่ใช้ npm install ตามดัวย module ที่คุณใช้งานเช่น

npm install @minecraft/server@2.0.0

แค่นี้คุณก็สามารถใช้งานได้เช่นกันได้ แต่ถ้าคุณต้องการความรวดเร็วอ่านหน้าถัดไปได้เลย 😂

Sponsor Parinya Pantimit on GitHub Sponsor

Thank you for your support! Your generosity helps me continue to develop and maintain this project.

Sponsor