Minecraft có được viết bằng JavaScript không

Thông thường, việc sửa đổi Minecraft yêu cầu mã hóa bằng Java và rất nhiều giàn giáo. Bây giờ bạn có thể viết và chia sẻ các mod Minecraft bằng TypeScript/Javascript

ScriptCraft là một thư viện sửa đổi JavaScript Minecraft mã nguồn mở và chúng tôi đã viết hỗ trợ cho TypeScript và một loạt công cụ để tạo trải nghiệm nhà phát triển quen thuộc cho những người đến từ vùng đất JavaScript (bao gồm cả Yeoman và NPM)

Trong bài viết này, tôi sẽ hướng dẫn bạn cách thiết lập và xây dựng bản mod Minecraft TypeScript đầu tiên của bạn trong vòng chưa đầy một giờ — chỉ trong 20 phút, tùy thuộc vào kết nối internet của bạn

Trong video này (nhấp vào đây nếu phần nhúng không hoạt động ở trên) tôi chỉ cho bạn cách viết mod Minecraft cơ bản bằng TypeScript và chạy nó trên máy tính cục bộ của bạn bằng cả máy tính để bàn và máy chủ Minecraft di động

Dưới đây, tôi sẽ hướng dẫn bạn các bước, với các liên kết đến tài nguyên

điều kiện tiên quyết

Bạn sẽ cần một số phần mềm được cài đặt trên máy tính của mình để chạy máy chủ Minecraft và các công cụ để viết plugin của bạn. Cài đặt tất cả bốn điều sau đây

  • Docker — giải pháp container hóa
  • Nút. js — một công cụ thực thi và thư viện JavaScript
  • Portainer — GUI dựa trên web để quản lý bộ chứa Docker
  • Visual Studio Code — trình chỉnh sửa mã

Máy khách Minecraft

Bạn cần một ứng dụng khách Minecraft để kiểm tra plugin của mình

Cài đặt ít nhất một trong những điều sau đây

  • Phiên bản Minecraft Java — ứng dụng khách trên máy tính để bàn, nếu bạn muốn thử nghiệm với máy chủ Bukkit
  • Phiên bản bỏ túi Minecraft — ứng dụng khách di động, nếu bạn muốn thử nghiệm với máy chủ Nukkit (điện thoại/máy tính bảng/Xbox). Nếu bạn sử dụng cái này, bạn có thể sử dụng Minecraft Pocket Edition Bedrock Launcher để chạy ứng dụng khách di động trên máy tính của bạn
Cài đặt

Bây giờ bạn đã cài đặt các điều kiện tiên quyết, đã đến lúc cài đặt các công cụ cho máy chủ và để phát triển plugin

  1. Chạy lệnh sau
npm i -g smac yo generator-sma-plugin typescript

Điều này sẽ cài đặt bốn thứ trên máy tính của bạn

  • smac— Bộ điều khiển kiến ​​trúc mô-đun Scriptcraft, một chương trình chạy Máy chủ Minecraft cho các plugin của bạn
  • yo — Yeoman, một công cụ giàn giáo
  • generator-sma-plugin — plugin Yeoman để tạo plugin Minecraft mới bằng Kiến trúc mô-đun Scriptcraft
  • yo sma-plugin
    0 — trình biên dịch TypeScript, để chuyển đổi mã TypeScript thành JavaScript ES5 có thể chạy trong Minecraft
Tạo một plugin mới

Bây giờ bạn đã cài đặt bộ công cụ, hãy tạo một plugin mới bằng cách chạy lệnh này

yo sma-plugin

Điều này bắt đầu trình hướng dẫn plugin

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

Chỉ có một câu hỏi bạn cần trả lời ở đây — tên plugin của bạn. Trình hướng dẫn sẽ tạo một thư mục mới có tên plugin và đặt các tệp cho plugin mới vào đó

Screencast này cho bạn thấy quá trình

Giàn giáo một plugin Minecraft bằng Magikcraft

phép thuật. io cho phép bạn viết các plugin Minecraft trong TypeScript/JavaScript sẽ chạy trên Máy tính để bàn/Thiết bị di động

asciinema. tổ chức

Khi trình hướng dẫn hoàn tất, nó sẽ phát ra một thông báo tương tự như thế này (Tôi đã chọn tên

yo sma-plugin
1 trong ví dụ này)

Chỉnh sửa plugin mới của bạn

Bắt đầu Visual Studio Code và mở thư mục chứa plugin mới của bạn

Dưới đây là mô tả về các tệp trong plugin mới của bạn

  • yo sma-plugin
    2 — một thư mục chứa các bài kiểm tra đơn vị cho plugin của bạn. Chúng được chạy với Jasmine. Thêm nhiều thử nghiệm hơn ở đây khi bạn phát triển plugin của mình
  • yo sma-plugin
    3 — cài đặt cho mã Visual Studio
  • yo sma-plugin
    4 — mọi tệp ở đây sẽ tự động được thực thi khi plugin của bạn được bật trong máy chủ Minecraft. Sử dụng điều này cho các tác vụ khởi tạo, đăng ký trình xử lý sự kiện, v.v.
  • yo sma-plugin
    5 — Nơi để bạn đặt các tệp không được tải tự động (hoặc được yêu cầu từ các tệp được tải tự động của bạn). Nếu plugin của bạn cung cấp chức năng cho các plugin khác, thì bạn xuất plugin đó qua
    yo sma-plugin
    6
  • yo sma-plugin
    7 — các mô-đun từ npm được cài đặt tại đây. Bạn không thể sử dụng các mô-đun từ npm sử dụng API V8 (như fs hoặc http). Nhiều tính năng mà bạn cần được cung cấp bởi Scriptcraft API và bởi gói
    yo sma-plugin
    8
  • yo sma-plugin
    9 — cài đặt cho trình chỉnh sửa
  • ➜ yo sma-plugin     _-----_     ╭──────────────────────────╮
    | | │ Welcome to the │
    |--(o)--| │ Scriptcraft SMA Plugin │
    `---------´ │ generator by │
    ( _´U`_ ) │ Magikcraft.io! │
    /___A___\ /╰──────────────────────────╯
    | ~ |
    __'.___.'__
    ´ ` |° ´ Y `
    ? Your package name (workspace)
    0 — cài đặt cho
    ➜ yo sma-plugin     _-----_     ╭──────────────────────────╮
    | | │ Welcome to the │
    |--(o)--| │ Scriptcraft SMA Plugin │
    `---------´ │ generator by │
    ( _´U`_ ) │ Magikcraft.io! │
    /___A___\ /╰──────────────────────────╯
    | ~ |
    __'.___.'__
    ´ ` |° ´ Y `
    ? Your package name (workspace)
    1
  • ➜ yo sma-plugin     _-----_     ╭──────────────────────────╮
    | | │ Welcome to the │
    |--(o)--| │ Scriptcraft SMA Plugin │
    `---------´ │ generator by │
    ( _´U`_ ) │ Magikcraft.io! │
    /___A___\ /╰──────────────────────────╯
    | ~ |
    __'.___.'__
    ´ ` |° ´ Y `
    ? Your package name (workspace)
    2 — các tệp cần bỏ qua đối với
    ➜ yo sma-plugin     _-----_     ╭──────────────────────────╮
    | | │ Welcome to the │
    |--(o)--| │ Scriptcraft SMA Plugin │
    `---------´ │ generator by │
    ( _´U`_ ) │ Magikcraft.io! │
    /___A___\ /╰──────────────────────────╯
    | ~ |
    __'.___.'__
    ´ ` |° ´ Y `
    ? Your package name (workspace)
    1
  • ➜ yo sma-plugin     _-----_     ╭──────────────────────────╮
    | | │ Welcome to the │
    |--(o)--| │ Scriptcraft SMA Plugin │
    `---------´ │ generator by │
    ( _´U`_ ) │ Magikcraft.io! │
    /___A___\ /╰──────────────────────────╯
    | ~ |
    __'.___.'__
    ´ ` |° ´ Y `
    ? Your package name (workspace)
    4 — cài đặt định dạng mã
  • ➜ yo sma-plugin     _-----_     ╭──────────────────────────╮
    | | │ Welcome to the │
    |--(o)--| │ Scriptcraft SMA Plugin │
    `---------´ │ generator by │
    ( _´U`_ ) │ Magikcraft.io! │
    /___A___\ /╰──────────────────────────╯
    | ~ |
    __'.___.'__
    ´ ` |° ´ Y `
    ? Your package name (workspace)
    5 —các phiên bản phụ thuộc đã cài đặt
  • ➜ yo sma-plugin     _-----_     ╭──────────────────────────╮
    | | │ Welcome to the │
    |--(o)--| │ Scriptcraft SMA Plugin │
    `---------´ │ generator by │
    ( _´U`_ ) │ Magikcraft.io! │
    /___A___\ /╰──────────────────────────╯
    | ~ |
    __'.___.'__
    ´ ` |° ´ Y `
    ? Your package name (workspace)
    6 —cấu hình cho plugin này, bao gồm các phần phụ thuộc và tập lệnh
  • ➜ yo sma-plugin     _-----_     ╭──────────────────────────╮
    | | │ Welcome to the │
    |--(o)--| │ Scriptcraft SMA Plugin │
    `---------´ │ generator by │
    ( _´U`_ ) │ Magikcraft.io! │
    /___A___\ /╰──────────────────────────╯
    | ~ |
    __'.___.'__
    ´ ` |° ´ Y `
    ? Your package name (workspace)
    7 — hướng dẫn phát triển và thử nghiệm plugin của bạn
  • ➜ yo sma-plugin     _-----_     ╭──────────────────────────╮
    | | │ Welcome to the │
    |--(o)--| │ Scriptcraft SMA Plugin │
    `---------´ │ generator by │
    ( _´U`_ ) │ Magikcraft.io! │
    /___A___\ /╰──────────────────────────╯
    | ~ |
    __'.___.'__
    ´ ` |° ´ Y `
    ? Your package name (workspace)
    8 — cấu hình để chạy máy chủ Nukkit với plugin của bạn được tải
  • ➜ yo sma-plugin     _-----_     ╭──────────────────────────╮
    | | │ Welcome to the │
    |--(o)--| │ Scriptcraft SMA Plugin │
    `---------´ │ generator by │
    ( _´U`_ ) │ Magikcraft.io! │
    /___A___\ /╰──────────────────────────╯
    | ~ |
    __'.___.'__
    ´ ` |° ´ Y `
    ? Your package name (workspace)
    9 — cấu hình để chạy máy chủ Bukkit với plugin của bạn được tải
  • npm run start:bukkit
    0 — cấu hình TypeScript để chuyển mã plugin của bạn sang JavaScript

Mở

npm run start:bukkit
1

Tệp này được thực thi tự động khi plugin được tải. Những thay đổi bạn thực hiện ở đây sẽ hiển thị khi bạn (tải) lại plugin

Bắt đầu một máy chủ phát triển

Bạn có thể tải plugin của mình trong máy chủ phát triển. Có hai máy chủ mà bạn có thể sử dụng — một dành cho ứng dụng khách Java trên máy tính để bàn và một dành cho ứng dụng khách Pocket Edition di động

Khởi động máy chủ máy tính để bàn

Chạy cái này để khởi động một máy chủ để bàn

npm run start:bukkit

Điều này sẽ

  1. Kéo hình ảnh máy chủ Bukkit từ Docker Hub
  2. Khởi động máy chủ Bukkit với plugin của bạn được tải
  3. Bắt đầu trình chuyển mã TypeScript để chuyển mã của bạn sang ES5

Bây giờ bạn có thể kết nối với máy chủ bằng máy khách để bàn của mình. Nhấp vào

npm run start:bukkit
2 sau đó nhấp vào
npm run start:bukkit
3, sau đó sử dụng địa chỉ máy chủ
npm run start:bukkit
4

Khởi động máy chủ di động

Chạy lệnh này để khởi động máy chủ di động

npm run start:nukkit

Điều này sẽ

  1. Kéo hình ảnh máy chủ Nukkit từ Docker Hub
  2. Khởi động máy chủ Nukkit với plugin của bạn được tải
  3. Bắt đầu trình chuyển mã TypeScript để chuyển mã của bạn sang ES5

Bây giờ bạn có thể kết nối với máy chủ bằng ứng dụng khách phiên bản bỏ túi của mình. Nhấp vào

npm run start:bukkit
5 rồi đến
npm run start:bukkit
6, sau đó thêm máy chủ có địa chỉ
npm run start:bukkit
4

Tải lại các thay đổi đối với plugin của bạn

Khi bạn thay đổi plugin của mình và lưu TypeScript đã thay đổi, nó sẽ tự động được dịch sang JavaScript

Để tải lại các thay đổi trong máy chủ phát triển, hãy nhập thông tin sau vào bảng điều khiển máy chủ

ts on
refresh()

Xem screencast dưới đây để xem nó trông như thế nào

Dừng máy chủ

Để dừng máy chủ, hãy nhập lệnh này tại bảng điều khiển máy chủ

smac stop

Xem bản ghi màn hình bên dưới để biết nó trông như thế nào khi bạn chạy lệnh này

Ghi hình. Bắt đầu, tải lại và dừng

Bản ghi màn hình này cho thấy bạn đang khởi động máy chủ để bàn, tải lại mã plugin và cũng dừng máy chủ phát triển

Minecraft được viết bằng Java hay Javascript?

Ngôn ngữ viết mã mà Minecraft sử dụng là Java .

Minecraft được viết bằng Java hay C++?

Ấn bản Bedrock được viết bằng C++ và nó đã được điều chỉnh sang các ngôn ngữ khác cho các nền tảng khác nhau như iOS, nhưng Java vẫn chiếm phần lớn nhất trong các ngôn ngữ mã hóa của Minecraft. It is also the programming language that people most often interact with when coding mods for Minecraft.