Documentation Index
Fetch the complete documentation index at: https://bym.lonestill.uk/llms.txt
Use this file to discover all available pages before exploring further.
Все патчи снимаются при stop() автоматически.
before
const unpatch = api.Patcher.before(object, 'method', (args) => {
args[0] = args[0].toUpperCase(); // модифицируем аргументы на месте
})
Вызывается до оригинальной функции. Возвращаемое значение игнорируется.
after
const unpatch = api.Patcher.after(object, 'method', (args, ret) => {
return ret + 1; // undefined — оригинальный результат сохраняется
})
Вызывается после. Если вернуть не undefined — заменяет результат.
instead
const unpatch = api.Patcher.instead(object, 'method', (args, original) => {
return original(...args) + '!';
})
Полная замена. Оригинал вызывается только если ты сам его позвал.
unpatch
const unpatch = api.Patcher.after(obj, 'method', fn);
unpatch(); // снимает только этот патч
unpatchAll
api.Patcher.unpatchAll() // снять все патчи плагина вручную
Несколько патчей на один метод
api.Patcher.before(obj, 'add', (args) => { args[0] *= 10; });
api.Patcher.after(obj, 'add', (args, ret) => ret + 1000);
// obj.add(2, 3): before 2→20, orig 20+3=23, after 23+1000=1023
Пример
BYM.register({ id: 'nav-logger' }, (api) => ({
start() {
api.Patcher.after(window.history, 'pushState', (args) => {
api.Logger.log('Переход:', args[2]);
});
},
stop() {},
}));