使用 Visual Studio Code 工具编写脚本

新提供的两个工具可以使在 Visual Studio Code 中编写游戏测试脚本的过程更轻松、更有趣。

Visual Studio Code Intellisense 的自定义类型定义文件

Visual Studio Code 可以显示不同库的详细类型信息,以便在您键入时提供提示和代码完成下拉列表。 类型信息已可用于游戏测试模块 mojang-minecraftmojang-gametest

首先,使用 Node 包管理器 (npm)。 使用 npm 可非常方便地在您的包中下载和安装不同的代码模块。 在您的开发设备上安装 Node.js(其中包括 npm)。 有关安装 npm 的更多信息,请访问 nodejs.org。我们从安装最新的 LTS 版本的 Node.js 开始。

一旦安装了 Node.js,获取最新的类型定义就很容易了。 在 Visual Studio Code 中,打开行为包文件夹所在的文件夹,只需从终端控制台窗口运行以下命令:

npm i @types/mojang-minecraft
npm i @types/mojang-gametest

这将在您的项目中的 node_modules 文件夹中安装类型定义。

要使用新的代码提示进行编辑,只需打开 Visual Studio Code。 在您编写 JavaScript 时,您应该会看到自动完成:

Visual Studio Code 中的方法自动完成

和类型的内联参考文档:

Visual Studio Code 中的内联参考文档

备注

我们正在更新这些类型定义以匹配最新的测试版 API,因此请务必经常检查 npm 以查看是否有更新的类型定义。

通过《我的世界》脚本调试深入了解您的代码

随着脚本中代码库的增加,您将需要检查代码的多个位置以查看变量的状态并测试您的算法。 在许多入门项目中,人们首先使用诸如 Console.log 或 Chat 之类的命令来打印各种变量 – 这通常被称作“打印调试”。 但是对于开发者来说,有更好的方法! 通过在《我的世界》基岩版中的游戏测试中编写脚本,您可以使用脚本调试功能,使检查《我的世界》脚本中的数据变得轻而易举。

首先,您需要使用 Visual Studio Code 作为开发 JavaScript 文件的编辑器。 之后的步骤包括:

  1. 在 Visual Studio Code 中安装《我的世界》基岩版调试器 – 只需执行一次
  2. 从 development_behavior_packs 文件夹启动 Visual Studio Code
  3. 根据您的测试客户端 - 在基岩版专用服务器或在《我的世界》基岩版客户端中 - 连接《我的世界》基岩版和 Visual Studio Code
  4. 设置断点并随时在代码中添加监视变量,然后将《我的世界》连接到 Visual Studio Code

重要

《我的世界》调试器和游戏测试框架实验经过优化,可与《我的世界》的最新测试版本一起使用。 有关更多信息,请参阅《我的世界》测试版

使用《我的世界》基岩版进行调试

第 1 步:在 Visual Studio Code 中安装《我的世界》基岩版调试器

要使用调试器功能,您需要在 Visual Studio Code 中安装《我的世界》基岩版调试器。 为此,请单击下面的按钮从 Visual Studio Code 的市场下载 《我的世界》基岩版调试器

第 2 步:确保《我的世界》基岩版客户端可发出“环回”请求

如果您想将《我的世界》基岩版客户端连接到运行在同一台机器上的 Visual Studio Code(这是最常见的场景),您需要让《我的世界》客户端不受 UWP 环回限制。 为此,请从命令提示符或开始 | 运行应用执行以下命令。

CheckNetIsolation.exe LoopbackExempt -a -p=S-1-15-2-1958404141-86561845-1752920682-3514627264-368642714-62675701-733520436

checknetisolation 命令正在运行

第 3 步:从 development_behavior_packs 文件夹启动 Visual Studio Code

为了让调试器知道源 JavaScript 文件的位置,您需要相对 JavaScript 源文件所在的行为包专门打开一个 Visual Studio Code 窗口。

在构建游戏测试时,您很可能会将它们部署到《我的世界》的 development_behavior_packs 文件夹中。 它位于 %localappdata%\Packages\Microsoft.MinecraftUWP_8wekyb3d8bbwe\LocalState\games\com.mojang\development_behavior_packs 中。 选择您要调试的行为包,然后打开一个指向该文件夹的 Visual Studio Code 窗口。

第 4 步:为连接准备 Visual Studio Code

要使用《我的世界》基岩版进行调试,您需要从《我的世界》连接到 Visual Studio Code。 此示例假定您在同一台 Windows 10 计算机上进行调试,但您也可以根据需要跨计算机和跨客户端进行调试。 如果要跨设备调试,则可能需要在运行 Visual Studio Code 的计算机上的防火墙内打开一个端口。

要配置连接,请将 .vscode 子文件夹添加到您的行为包文件夹。 在该 .vscode 文件夹中,添加以下 launch.json 配置文件:

(注意:您不需要编辑此文件的任何行。)

{
  "version": "0.2.0",
  "configurations": [
    {
      "type": "minecraft-js",
      "request": "attach",
      "name": "Wait for Minecraft Debug Connections",
      "mode": "listen",
      "localRoot": "${workspaceFolder}/",
      "port": 19144
    }
  ]
}

打开 launch.json 的 Visual Studio Code

第 5 步: 运行您的《我的世界》行为包

现在您已准备好 Visual Studio Code 并准备好行为包,您可以开始调试了!

首先,单击 Visual Studio Code 内的 Start Debugging。 这将使 Visual Studio Code 进入侦听调试连接模式。

启动《我的世界》并使用您的脚本行为包载入一个世界。 您可能希望在游戏测试函数内设置一个断点。 为此,请单击要设置断点的特定代码行的左侧。

在 Visual Studio Code 中设置的断点

使用此斜杠命令连接到端口上的 Visual Studio Code。

/script debugger connect localhost 19144

您应该会看到来自斜杠命令的连接成功响应。

现在,触发代码(可能通过运行测试,例如 /gametest run (my test name)

您应该看到代码运行到您设置的断点。 您还可以查看局部变量并根据需要添加监视。

Visual Studio Code 中的断点和局部变量

使用《我的世界》基岩版专用服务器进行调试

使用基岩版专用服务器进行调试的过程略有不同。 使用基岩版专用服务器进行调试时,基岩版专用服务器将侦听从 Visual Studio Code 发起的调试连接。 您需要先安装用于 Visual Studio Code 的《我的世界》基岩版调试器,步骤如上。

配置您的基岩版专用服务器

默认情况下,基岩版专用服务器未配置为允许调试连接。 要启用此调试,您需要更改基岩版专用服务器的 server.properties 文件中的一些设置。

这些设置在基岩版专用服务器上配置调试:

  • allow-outbound-script-debugging (true/false):启用 /script debugger connect 命令。 默认为 false。
  • allow-inbound-script-debugging (true false):启用 /script debugger listen 命令(以及打开服务器上的端口)。 默认为 false。
  • force-inbound-debug-port (number):将入站调试端口锁定到特定端口。 这将设置默认的脚本调试端口,并防止 /script debugger listen 命令的用户指定备用端口。

对于这个项目,我们可以简单地将 allow-inbound-script-debugging 设置为 true。

为基岩版专用服务器编辑 server.properties

准备您的行为包项目

您的 Visual Studio Code 实例应该指向《我的世界》实例的 development_behavior_packs 文件夹中您的行为包的根目录(所以您应该在 (my Bedrock Dedicated Server installation)\development_behavior_packs\(behaviorpackname) 打开 Visual Studio Code)

在要调试的行为包的根目录下,添加一个 .vscode 子文件夹。 将以下 launch.json 文件添加到该 .vscode 文件夹中:(注意:您不需要编辑此文件的任何行。)

{
  "version": "0.2.0",
  "configurations": [
    {
      "type": "minecraft-js",
      "request": "attach",
      "name": "Attach to Minecraft Bedrock Dedicated Server",
      "localRoot": "${workspaceFolder}/",
      "port": 19144
    }
  ]
}

运行您的《我的世界》行为包

现在您已准备好 Visual Studio Code 并准备好行为包,您可以开始调试了!

启动《我的世界》并使用您的脚本行为包载入一个世界。

在基岩版专用服务器的控制台中,使用此斜杠命令开始监听端口:

script debugger listen 19144

您应该会看到来自此命令的“调试器侦听”响应。

侦听端口的服务器调试器

现在,点击 Visual Studio Code 内的“Start Debugging”。

您可以在基岩版专用服务器中运行命令来启动测试,例如 /gametest run (my test name)

您可以通过单击编辑器左侧的特定代码行在代码中设置断点。 当您在行为包中运行测试时,代码将运行到您设置的断点。 您还可以查看局部变量并根据需要添加监视。

就是这样! 随着代码助手的更新以及 Visual Studio Code 中引入新的调试器功能,我们希望您能够更快地编写更丰富的测试和脚本。