脚本编程入门
TIP
本脚本API页面假设您已具备附加包的基础配置知识。如需了解如何设置行为包,请参阅附加包入门页面。
WARNING
脚本API目前处于积极开发阶段,重大变更频繁。本页面内容基于Minecraft 1.21.40x版本格式。
概述
脚本API(前身为GameTest框架)是一项允许通过行为包中的JavaScript文件实现多样化创作的功能。该API大部分内容已脱离实验性阶段。
本文将带您了解日常开发中会频繁使用的80%核心API概念。
创建首个项目
目前脚本仅能在行为包中使用。
在行为包清单文件中,您需要添加script模块并设置脚本项目的入口文件。当前仅支持"javascript"作为有效语言类型。
BP/manifest.json#modules[0]
json
{
"uuid": "239c134f-67bf-4738-9bcc-8c69d31b1f72",
"version": [1, 0, 0],
"type": "script",
"language": "javascript",
"entry": "scripts/main.js"
}同时需要根据使用的模块设置依赖项。要导入脚本API模块,必须使用module_name和version指定依赖。本例中使用的是@minecraft/server模块。
BP/manifest.json
json
{
"format_version": 2,
"header": {
"name": "基岩版附加包",
"description": "脚本API模板",
"uuid": "<UUID>",
"version": [0, 1, 0],
"min_engine_version": [1, 20, 0]
},
"modules": [
{
"type": "script",
"language": "javascript",
"uuid": "<UUID>",
// 入口文件:Minecraft读取代码的起点
"entry": "scripts/main.js",
"version": [0, 1, 0]
}
],
// 如需在代码中使用eval()和Function(),不需要时请移除
"capabilities": ["script_eval"],
"dependencies": [
{
// 启用@minecraft/server模块,版本1.15.0
// 必须使用最新版本否则可能失效!
"module_name": "@minecraft/server",
"version": "1.16.0"
},
{
// 启用@minecraft/server-ui模块,版本1.3.0
// 必须使用最新版本否则可能失效!
"module_name": "@minecraft/server-ui",
"version": "1.3.0"
}
]
}若项目需要其他模块支持,请参照上述格式添加依赖项。
稳定版API模块(无需开启Beta API实验性功能):
@minecraft/server提供的主要功能已稳定,版本更新不会造成破坏性变更。
Beta版API模块(需在世界设置中开启Beta API实验性功能): 这些API可能随时变更、移除或新增功能,存在较高不稳定性风险!
若需在代码中使用eval()函数或Function()构造函数,可在清单中添加:
BP/manifest.json
json
{
"capabilities": ["script_eval"]
}入口文件可包含脚本代码或导入其他脚本文件,但只能指定一个入口文件。
编写JavaScript脚本
Minecraft脚本引擎仅支持JavaScript。如需使用TypeScript,可参考TypeScript脚本编程进行编译。
BP/scripts/main.js
js
// 此文件通过向聊天栏刷屏"Hello World"来演示代码运行
// 从"@minecraft/server"导入world和system组件
import { world, system } from "@minecraft/server";
// 创建并运行一个每游戏刻触发的间隔事件
system.runInterval(() => {
// 使用API中的world.sendMessage函数向聊天栏发送消息
world.sendMessage("Hello World");
}, 1);参考文档
官方文档托管于Microsoft Learn:
@minecraft/server@minecraft/server-gametest@minecraft/server-ui@minecraft/server-admin@minecraft/server-net
最新Beta版API的TypeScript声明文件:
- 可通过npm安装对应模块获取智能提示支持
- Visual Studio Code用户需先安装Node.js和npm
最新Beta版模块安装命令:
bash
npm i @minecraft/server@1.17.0-beta.1.21.50-stable
npm i @minecraft/server-ui@1.4.0-beta.1.21.50-stable
npm i @minecraft/server-gametest@1.0.0-beta.1.21.50-stable
npm i @minecraft/server-admin@1.0.0-beta.1.21.50-stable
npm i @minecraft/server-net@1.0.0-beta.1.21.50-stable稳定版模块安装命令:
bash
npm i @minecraft/server
npm i @minecraft/server-ui






