Игнорировать слабые правки в комнате, но не напрямую боту
У меня есть бот, работающий с использованием 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