как я могу помешать боту Discord отвечать самому себе или другим ботам? (раздор. js) - PullRequest
2 голосов
/ 21 июня 2020

Я новичок ie во всем этом кодировании. Я начал работать над своим первым ботом Discord через пару дней go, знаете ли, для меня и моих друзей, с которыми можно было повозиться. Теперь предположим, что я хочу, чтобы этот бот обнаруживал слова в сообщении и отвечал каждый раз, когда кто-то упоминает это слово, независимо от того, в какой части сообщения. я смог это сделать, но теперь возникла проблема. допустим, что я ищу слово "привет". Если кто-то скажет «о, привет», «привет», сообщение со словом «привет», бот ответит «привет» в ответ. но бот также обнаружит приветствие в своем собственном сообщении и будет отвечать самому себе снова и снова, пока я не отключу его. вот код:

bot.on("message", message => {
    const hello = ["hello"];
    if( hello.some(word => message.content.includes(word)) ) {
        message.channel.send("Hello!");
}} ) 

итак, я не могу понять, как сделать так, чтобы бот не видел это "привет" в собственном сообщении или в любом сообщении бота, если это проще , но иметь возможность анализировать «привет» от пользователя, чтобы он не застрял в бесконечном l oop ответах самому себе. как я могу это сделать?? заранее спасибо (:

Ответы [ 2 ]

4 голосов
/ 21 июня 2020

Если вы хотите запретить боту отвечать самому себе:

if (message.author == client.user)
    return;

Вы также можете запретить боту отвечать другому боту:

if (message.author.bot)
   return;
1 голос
/ 21 июня 2020

Просто проверьте, является ли автор сообщения ботом, используя message.author.bot

bot.on("message", message => {
    if (message.author.bot) return
    const hello = ["hello"];
    if( hello.some(word => message.content.includes(word)) ) {
        message.channel.send("Hello!");
}
})
...