EaglerForgeInjector/patches.js
ZXMushroom63 541f9b4af3 2.2 beta
2024-11-03 17:26:54 +08:00

38 lines
1.1 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;
});