yoni-mcscripts-lib
Version:
为 Minecraft Script API 中的部分接口创建了 wrapper,并提供简单的事件管理器和任务管理器,另附有一些便于代码编写的一些小工具。
48 lines (43 loc) • 1.51 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}`);
}