yoni-mcscripts-lib
Version:
为 Minecraft Script API 中的部分接口创建了 wrapper,并提供简单的事件管理器和任务管理器,另附有一些便于代码编写的一些小工具。
46 lines (35 loc) • 1.14 kB
text/typescript
import { registerAsync, Test } from "./gametest.js";
import { randomName } from "./lib/getRandoms.js";
class Event {
constructor(data: any){
this.data = data;
}
data: any
}
async function eventTest(test: Test){
const { EventRegistry, eventManager } = await import("yoni-mcscripts-lib");
const registry = EventRegistry.register(Event);
eventManager.listenEvent(Event, (event) => {
eventData = event.data;
});
let data = randomName();
let eventData: any = Symbol();
let dataCopy = eventData;
await test.idle(20);
if (eventData !== dataCopy){
test.fail("event handler call on unknown time");
return;
}
eventManager.callEvent(registry, new Event(data));
await test.idle(20);
if (eventData === data){
test.succeed();
} else {
test.fail("event handler didn't call correctly");
}
EventRegistry.unregister(Event);
}
registerAsync("yonimcscriptslib", "eventTest", eventTest)
.structureName("yonimcscriptslib:single_void_structure")
.tag("yonimcscriptslib")
.maxTicks(300*20);