Как определить, редактируется ли сообщение?

avatar
Brandon
8 апреля 2018 в 07:27
13127
1
5

Я хочу, чтобы мой бот разрешал отправлять в чат только "ew". Я решил большинство обходных путей, однако есть один, который я не могу решить самостоятельно. Когда кто-то публикует "фу" в чате, а затем редактирует сообщение на что-то другое, оно остается таким и не удаляется.

Как мне решить эту проблему?

Источник

Ответы (1)

avatar
André
8 апреля 2018 в 10:36
10

client.on('messageUpdate') должен срабатывать каждый раз, когда редактируется сообщение (в кеше). Я почти уверен, что вы не получите событие, если сообщение было отправлено, когда бот был в автономном режиме. Но вы можете получать сообщения при запуске бота.

client.on('messageUpdate', (oldMessage, newMessage) => {
   if(newMessage.content != "ew"){
       //dosomething
   }
}
Brandon
8 апреля 2018 в 11:44
0

Дело в том, что я не знаю, как удалить сообщение. Как я мог это сделать?

André
8 апреля 2018 в 12:15
3

newMessage.delete() ?

André
8 апреля 2018 в 13:41
1

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

bubmet
9 апреля 2018 в 11:13
0

@BrandonB Убедитесь, что у вашего бота есть разрешение «Управление сообщениями».

Shreyas007
20 апреля 2021 в 10:37
0

@André, можно ли как-то заставить это работать с частичными частями, чтобы даже после перезапуска это работало?