2025-04-11 20:39:00 +08:00

44 lines
1.2 KiB
JavaScript

class PatchesRegistry {
static patchFns = []
static patchedEventNames = []
static getEventInjectorCode() {
return "globalThis.modapi_specialevents = [" + PatchesRegistry.patchedEventNames.flatMap(x=>`\`${x}\``).join(",") + "];";
}
static patchFile(x) {
var current = x;
PatchesRegistry.patchFns.forEach(fn => {
current = fn(current);
});
return current;
}
static addPatch(fn) {
PatchesRegistry.patchFns.push(fn);
}
static regSpecialEvent(x) {
PatchesRegistry.patchedEventNames.push(x);
}
}
// PatchesRegistry.regSpecialEvent("test");
// PatchesRegistry.addPatch(function (input) {
// var output = input;
// return output;
// })
PatchesRegistry.regSpecialEvent("render");
PatchesRegistry.addPatch(function (input) {
var output = input.replaceAll(
/continue main;\s+?}\s+?if\s?\(!\$this.\$renderHand\)/gm
,
`continue main;
}
ModAPI.events.callEvent("render",{partialTicks:$partialTicks})
if (!$this.$renderHand)`
);
return output;
});
if (globalThis.process) {
module.exports = {
PatchesRegistry: PatchesRegistry
}
}