我的世界Script api 教程 - 1.创建你的行为包

开始

Minecraft script API(也称为创建者 API),允许您使用 JavaScript 通过行为包轻与 Minecraft 世界交互。最常见的用例是在 Minecraft 世界中控制许多事物并添加复杂的行为。

准备工作

首先,你要安装Minecraft 基岩版,不会安装请看Minecraft 国际基岩版下载教程。然后,你需要安装一个文本编辑器,推荐使用 Visual Studio Code。接着,还需要安装Typescript,请看Typescript下载安装。

创建行为包

请打开目录C:\Users\[你的用户名]\AppData\Local\Packages\Microsoft.MinecraftUWP_8wekyb3d8bbwe\LocalState\games\com.mojang\development_behavior_packs,创建一个新的文件夹谁便起一个名字,如FirstBP
在这个文件夹中,创建一个新的文件,并将其命名为manifest.json

manifest.json中,输入以下内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
{
"format_version": 2,
"header": {
"name": "FirstBP", // 行为包的名字
"description": "My first behavior pack", // 行为包的描述
"min_engine_version": [
1,
21,
0
],
"uuid": "58a2cb4b-df6c-4366-a396-fd9dabaef503", // UUID 请在https://www.lddgo.net/string/uuid生成生成
"version": [
1,
0,
0
]
},
"modules": [
{
"type": "data",
"uuid": "58fe16a3-1095-473e-84ae-a444e5950974", // UUID 请在https://www.lddgo.net/string/uuid生成生成
"version": [
1,
0,
0
]
},
{
"type": "script",
"language": "javascript",
"uuid": "45b3178a-3b14-4308-a058-45cf738fa2d4", // UUID 请在https://www.lddgo.net/string/uuid生成生成
"entry": "scripts/main.js",
"version": [
1,
0,
0
]
}
],
"dependencies": [
{
"module_name": "@minecraft/common",
"version": "1.0.0"
},
{
"module_name": "@minecraft/server",
"version": "2.0.0-beta"
},
{
"module_name": "@minecraft/server-ui",
"version": "2.0.0-beta"
}
]
}

创建文件tsconfig.json,在其中输入以下内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
{
"compilerOptions": {
"module": "esnext",
"target": "ES2021",
"moduleResolution": "Node",
"experimentalDecorators": true,
"allowSyntheticDefaultImports": true,
"baseUrl": "./src",
"rootDir": "./src",
"outDir": "./scripts/"
},
"exclude": [ "./node_modules" ],
"include": [ "./src" ]
}

之后,命令提示符,依次输入以下命令以使用命令补全:

1
2
npm i @minecraft/[email protected]
npm i @minecraft/[email protected]

创建文件夹src,并在其中创建一个文件main.ts,输入以下内容:

1
2
3
4
5
6
import * as mc from "@minecraft/server";

mc.world.afterEvents.chatSend.subscribe((e)=>{
e.sender.sendMessage('Hello world!')
})
// 你现在不需要理解这些代码的含义。

然后,打开命令提示符,输入tsc编译TypeScript文件。

现在,你行为包有以下文件

1
2
3
4
5
6
7
8
9
10
11
--FirstBP
|--node_modules
| `-...
|--src
| `-main.ts
|--scripts
| `-main.js
|--manifest.json
|--package.json
|--package-lock.json
`--tsconfig.json

/src/main.ts是我们编写脚本的地方

运行行为包

打开 Minecraft 基岩版,进入游戏。创建世界点击行为包,选择刚才创建的FirstBP

点击实验性游戏内容,打开测试版API。

进入世界。如果你在聊天框输入任何信息,你应该会收到一条消息Hello world!,如不行,请检查是否操作正确。

错误列表

这是你编写scriptAPI常遇到的错误。

invalid module version

如果你遇到以下问题:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
[Scripting][error]-Plugin [FirstBP - 1.0.0] - failed to create context.

[Scripting][error]-Plugin [FirstBP] - module [FirstBP - 1.0.0] requesting invalid module version [@minecraft/server - 1.8.0-beta].

Current [beta] version is [2.0.0-beta].

Available versions:
0.1.0
1.19.0
2.0.0-beta
3.0.0-alpha


[Scripting][error]-Plugin [FirstBP] - version conflict for module [@minecraft/server].
[1.8.0-beta] requested by [FirstBP - 1.0.0],
[2.0.0-beta] requested by [@minecraft/server-ui - 2.0.0-beta]


[Scripting][error]-Plugin [FirstBP - 1.0.0] - run failed, no runtime or context available.

这个错误的意思是你行为包依赖的模块版本不正确。解决方法是检查依赖的模块版本是否正确,并更新到最新版本。

  • @minecraft/server最新版本是2.0.0-beta,如果你依赖的模块版本是1.8.0-beta,请将依赖的模块版本改为2.0.0-beta
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
  "dependencies": [
{
"module_name": "@minecraft/common",
"version": "1.0.0"
},
{
"module_name": "@minecraft/server",
- "version": "1.8.0-beta"
+ "version": "2.0.0-beta"
},
{
"module_name": "@minecraft/server-ui",
"version": "2.0.0-beta"
}
]

最新版可以在这里获取寻找最新版获取:

如我要查询@minecraft/server最新版本,可以这样:


总结

本教程介绍了如何创建 Minecraft 行为包,并使用 JavaScript 与 Minecraft 世界进行交互。