yoni-mcscripts-lib
Version:
为 Minecraft Script API 中的部分接口创建了 wrapper,并提供简单的事件管理器和任务管理器,另附有一些便于代码编写的一些小工具。
45 lines (44 loc) • 1.52 kB
JavaScript
import { VanillaWorld, overworld } from "./basis.js";
import { Command } from "./command.js";
import { dealWithCmd } from "./commandutils.js";
export { log } from "./util/Logger.js";
/**
* 向所有玩家以脚本引擎的身份发送一条消息。
* (通常这用于向所有玩家广播脚本的运行状态)
*/
export function say(msg = "", displayNameOrSender = "commands.origin.script") {
let runner;
let senderDisplayName;
if (typeof displayNameOrSender === "string") {
runner = overworld;
senderDisplayName = { translate: displayNameOrSender };
}
else {
runner = displayNameOrSender;
senderDisplayName = { selector: "@s" };
}
let rawtext = [
{
translate: "chat.type.announcement",
with: {
rawtext: [
senderDisplayName,
{ text: String(msg) }
]
}
}
];
Command.addExecute(Command.PRIORITY_HIGH, runner, `tellraw @a ${JSON.stringify({ rawtext })}`);
}
/**
* 向指定玩家发送一条普通消息。
* @param receiver 接收者,应该是玩家。
* @param message 接收者,应该是玩家。
*/
export function send(receiver, message) {
if (receiver.sendMessage) {
return receiver.sendMessage(dealWithCmd(message, message));
}
let rawtext = JSON.stringify({ rawtext: [{ text: message }] }, dealWithCmd);
Command.addExecute(Command.PRIORITY_HIGH, receiver, `tellraw @s ${rawtext}`);
}