UNPKG

yoni-mcscripts-lib

Version:

为 Minecraft Script API 中的部分接口创建了 wrapper,并提供简单的事件管理器和任务管理器,另附有一些便于代码编写的一些小工具。

31 lines (30 loc) 1.02 kB
export class FunctionParamsOverrides { addOverrides(overrides, func) { this.entries.push({ overrides, func }); } entries = []; match(params) { EntryFilter: for (const entry of this.entries) { let paramsCopy = params.slice(0); const { overrides, func } = entry; let requireArgc = overrides.reduce((argc, over) => argc + over.argc, 0); if (params.length !== requireArgc) continue; for (const over of overrides) { const { argc, condition } = over; const condParams = paramsCopy.splice(0, argc); if (!condition(argc, condParams)) { continue EntryFilter; //not match, next entry } } // matched, generate result const result = func(params); return { hasResult: true, result }; } // no reault return undefined; } }