FunPayServer
FunPayServer copied to clipboard
Не работает уведомление о поступлении нового сообщения
Не работает уведомление о поступлении нового сообщения
Для тех людей, кто столкнется с той же проблемой:
TLDR: включите greetingMessage: 1
в конфиге
Я порылся в коде сервера, этот баг происходит, если параметр greetingMessage
отключен (greetingMessage: 0
)
Это связано с функцией в index.js
65 if(settings.newMessageNotification == true && settings.greetingMessage == true) {
66 runner.registerNewIncomingMessageCallback(onNewIncomingMessage);
67 }
Тут проверяется, включены ли параметры newMessageNotification
и greetingMessage
, и если да, запускает код в onNewIncomingMessage
114 function onNewIncomingMessage(message) {
115 processIncomingMessages(message);
116 }
Переход на функцию processIncomingMessages
89 async function processIncomingMessages(message) {
90 // Notification
91 if(global.telegramBot && settings.newMessageNotification) {
92 if(settings.watermark) {
93 if(!message.content.includes(settings.watermark)) {
94 global.telegramBot.sendNewMessageNotification(message);
95 }
96 } else {
97 global.telegramBot.sendNewMessageNotification(message);
98 }
99 }
Получается, что сообщение отправляется только если включены оба параметра
Предложения по решению проблемы:
- Вынести часть с Notification в отдельную функцию
- Полностью убрать этот код, так как все равно в
processIncomingMessages
происходят проверки
Новый вариант:65 if(settings.newMessageNotification == true && settings.greetingMessage == true) { 66 runner.registerNewIncomingMessageCallback(onNewIncomingMessage); 67 }
runner.registerNewIncomingMessageCallback(onNewIncomingMessage);