Skip to content

Latest commit

 

History

History
79 lines (54 loc) · 1.59 KB

File metadata and controls

79 lines (54 loc) · 1.59 KB

Documentation


事件订阅

首先引入

import { Event } from "sapi-pro";

Event.chatBus

函数

subscribe(callback: (t: ChatSendBeforeEvent) => void | chatOpe, priority: number = 0) 订阅聊天事件,约等于 world.beforeEvents.chatSend.subscribe

示例
Event.chatBus.subscribe((t) => {
    world.sendMessage(t.sender.name + t.message);
});

Event.intervalBus

函数

subscribetick(callback: () => void) 订阅 tick,每 tick 执行一次回调

subscribesec(callback: (lastsec: number) => void) 订阅秒,每秒执行一次回调

subscribemin(callback: () => void) 订阅分钟,每分钟执行一次回调

示例
//简单的tps计算器
export const gg = new ScoreBoardDataBase("gg", "公告");
Event.intervalBus.subscribesec((lastsec) => {
    tps = ((system.currentTick - lasttick) / ((Date.now() - lastsec) / 1000)).toFixed(1);
    if (parseFloat(tps) > 20) tps = "20.0";
    lasttick = system.currentTick;
    //设置计分板
    gg.clear();
    gg.set(`§6TPS §r${tps}`, 3);
});

Event.itemBus

函数

bind(itemid: string, func: (player: Player) => void) 为物品使用绑定一个函数

示例
Event.itemBus.bind("minecraft:clock", (player: Player) => {
    FormManager.open(player, "menu.main");
});

Event.ScriptEventBus

函数

bind(id: string, func: (t: ScriptEventCommandMessageAfterEvent) => void) 绑定一个 scriptEvent

发送 scriptEvent 可以使用 SAPI 原版命令: system.scriptEvent(id: string, message: string): void;