Игнорировать слабые правки в комнате, но не напрямую боту

У меня есть бот, работающий с использованием Botkit. Я хочу дать предупреждающее сообщение о том, что отредактированные сообщения игнорируются только тогда, когда вы говорите напрямую с ботом, поэтому я делаю:

controller.on('message_changed', function(bot, message) {
    bot.reply(message, ":warning: Your edit was ignored.");
});

Бот находится в комнате со многими людьми, так что эти люди могут иметь "доступ" к боту в частном порядке.

Проблема: Когда кто-то редактирует сообщение в комнате, бот отправляет предупреждение. Какой лучший способ избежать этого?

Я надеюсь избежать жесткого кодирования идентификатора комнаты, на который бот не должен отвечать, поскольку у нас может быть бот в других комнатах.

1 ответ

Решение

Вы можете проверить канал сообщений, чтобы выяснить, является ли он "direct_message" или нет, посмотрев, начинается ли канал с буквы D. Если это начинается с D, это было прямое сообщение, которое редактировалось. Нечто подобное должно работать.

controller.on('message_changed', function(bot, message) {
    if (message.channel.match(/^D/)) {
        bot.reply(message, ":warning: Your edit was ignored.");
    }
});

Кроме того, если вы хотите, чтобы это работало в чатах, где пользователь непосредственно отправляет сообщение боту, вы можете проверить текст сообщения, чтобы увидеть, начинается ли оно с @yourBotsName

Другие вопросы по тегам