Skip to content

工具 API

工具 API 提供了各种实用功能,包括日志记录、事件处理、调度器、文件操作、HTTP 请求、JSON 处理和对象操作等。

日志记录

BlocklyAllay 使用标准的 JavaScript console 对象进行日志记录。

console.log(message)

在控制台打印日志消息。

参数:

  • message - 要打印的消息(任意类型)

示例:

console.log("这是一条日志消息");
console.log(123);
console.log({ key: "value" });

console.info(message)

在控制台打印信息消息。

参数:

  • message - 要打印的消息(任意类型)

示例:

console.info("这是一条信息消息");

console.warn(message)

在控制台打印警告消息。

参数:

  • message - 要打印的消息(任意类型)

示例:

console.warn("这是一条警告消息");

console.error(message)

在控制台打印错误消息。

参数:

  • message - 要打印的消息(任意类型)

示例:

console.error("这是一条错误消息");

console.debug(message)

在控制台打印调试消息。

参数:

  • message - 要打印的消息(任意类型)

示例:

console.debug("这是一条调试消息");

事件处理

事件处理 API 通过 allay 对象实现。

event.cancel()

取消当前事件(仅在可取消的事件中有效)。

示例:

function onPlayerChat(player, message) {
  if (message.includes("敏感词")) {
    player.sendMessage("请不要使用敏感词!");
    event.cancel(); // 取消聊天消息发送
  }
}

allay.off(eventType)

取消监听指定事件。

参数:

  • eventType - 事件类型字符串

示例:

allay.off("player.join"); // 取消监听玩家加入事件

allay.cleanup()

清理所有事件监听和定时任务。

示例:

allay.cleanup(); // 清理所有事件监听和定时任务

调度器

调度器 API 通过 allay 对象实现。

allay.runLater(delay, callback, thisArg)

在指定 tick 数后执行一次回调函数。

参数:

  • delay - 延迟的 tick 数(Number)
  • callback - 要执行的回调函数
  • thisArg - 回调函数中的 this 值(可选)

示例:

allay.runLater(
  20,
  function () {
    console.log("1秒后执行");
  },
  this
);

allay.runRepeating(period, callback, thisArg)

每隔指定 tick 数重复执行回调函数。

参数:

  • period - 重复执行的间隔 tick 数(Number)
  • callback - 要执行的回调函数
  • thisArg - 回调函数中的 this 值(可选)

示例:

allay.runRepeating(
  20,
  function () {
    console.log("每秒执行一次");
  },
  this
);

allay.runDelayedRepeating(delay, period, callback, thisArg)

在延迟后每隔指定 tick 数重复执行回调函数。

参数:

  • delay - 初始延迟的 tick 数(Number)
  • period - 重复执行的间隔 tick 数(Number)
  • callback - 要执行的回调函数
  • thisArg - 回调函数中的 this 值(可选)

示例:

allay.runDelayedRepeating(
  40,
  20,
  function () {
    console.log("2秒后开始,每秒执行一次");
  },
  this
);

文件操作

文件操作 API 通过 allay.getFiles() 对象实现。

allay.getFiles().readFile(path)

读取文件内容。

参数:

  • path - 文件路径(String)

返回值:

  • 文件内容字符串,或 null(如果读取失败)

示例:

var content = allay.getFiles().readFile("config.json");
if (content) {
  console.log("文件内容:" + content);
}

allay.getFiles().writeFile(path, content, overwrite)

写入内容到文件。

参数:

  • path - 文件路径(String)
  • content - 要写入的内容(String)
  • overwrite - 是否覆盖现有文件(Boolean,默认为 true)

返回值:

  • 是否写入成功(Boolean)

示例:

allay.getFiles().writeFile("test.txt", "Hello World", true);

allay.getFiles().fileExists(path)

检查文件是否存在。

参数:

  • path - 文件路径(String)

返回值:

  • 文件是否存在(Boolean)

示例:

if (allay.getFiles().fileExists("config.json")) {
    console.log("配置文件存在");
} else {
    console.log("配置文件不存在");
}

allay.getFiles().deleteFile(path)

删除指定文件。

参数: - path - 文件路径(String)

示例:

allay.getFiles().deleteFile("temp.txt");

allay.getFiles().listFiles(path)

列出目录中的文件。

参数: - path - 目录路径(String)

返回值: - 文件列表数组(Array)

示例:

var files = allay.getFiles().listFiles(".");
files.forEach(function(file) {
    console.log("文件:" + file);
});

HTTP请求

HTTP请求API通过 allay.getHttp() 对象实现。

allay.getHttp().get(url)

发送HTTP GET请求。

参数: - url - 请求URL(String)

返回值: - 响应内容字符串,或null(如果请求失败)

示例:

var response = allay.getHttp().get("https://api.example.com/data");
if (response) {
    console.log("GET响应:" + response);
}

allay.getHttp().post(url, body, contentType)

发送HTTP POST请求。

参数: - url - 请求URL(String) - body - 请求正文(String) - contentType - 请求内容类型(String,默认:"application/json")

返回值: - 响应内容字符串,或null(如果请求失败)

示例:

var response = allay.getHttp().post(
    "https://api.example.com/data", 
    JSON.stringify({key: "value"}), 
    "application/json"
);
if (response) {
    console.log("POST响应:" + response);
}

JSON处理

JSON处理API使用标准的JavaScript JSON 对象。

JSON.parse(text)

将JSON字符串转换为JavaScript对象。

参数: - text - JSON字符串(String)

返回值: - 解析后的JavaScript对象

示例:

var jsonStr = '{"name": "测试", "value": 123}';
var obj = JSON.parse(jsonStr);
console.log(obj.name); // 输出:测试

JSON.stringify(value)

将JavaScript对象转换为JSON字符串。

参数: - value - 要转换的JavaScript对象

返回值: - JSON字符串

示例:

var obj = {name: "测试", value: 123};
var jsonStr = JSON.stringify(obj);
console.log(jsonStr); // 输出:{"name":"测试","value":123}

对象操作

对象操作使用JavaScript原生语法。

创建对象

创建一个新的空对象。

示例:

var obj = {};
var objWithProps = {name: "测试", value: 123};

获取对象属性

获取对象的属性值。

示例:

var obj = {name: "测试"};
var name = obj.name; // 或 obj["name"]
console.log(name); // 输出:测试

设置对象属性

设置对象的属性值。

示例:

var obj = {};
obj.name = "测试"; // 或 obj["name"] = "测试"

检查对象属性

检查对象是否包含指定属性。

示例:

var obj = {name: "测试"};
if ("name" in obj) {
    console.log("对象包含name属性");
}

删除对象属性

删除对象的指定属性。

示例:

var obj = {name: "测试"};
delete obj.name;