Если я набираю pingtest, мой бот отправляет сообщение для встраивания снова и снова (бесконечный цикл)

if (message.content='pingtest') {
    message.channel.send({embed: {

            color: 000000,
            author: {
              name: client.user.username,
              icon_url: client.user.avatarURL
            },
            title: "A RAID HAS BEGUN (for the Dark Side)",
            description: "",
            fields: [{
                name: "------------------------------",
                value:"Write !raid to enter."
              }

            ],
            footer: {
              icon_url: client.user.avatarURL,
            }
          }
        });
}
0
Sir Cyborg 30 Май 2019 в 16:58

2 ответа

Лучший ответ

Проблема: в своем заявлении if вы используете оператор присваивания, =.
Решение . Используйте оператор равенства (т. е. ===) для сравнения message.content.
Объяснение . Сейчас ваш код настраивает message.content вместо сравнения . Это означает, что независимо от того, что message.content, вы получите ожидаемый результат "pingtest". Что касается зацикливания, я собираюсь предположить, что вы разрешаете сообщения от других ботов в вашем сообщении. Поэтому, когда бот видит свое собственное сообщение, он снова вызывает тот же неисправный код, создавая цепную реакцию.
Пересмотренный код .

if (message.author.bot) return; // bots will no longer trigger a command

if (message.content === 'pingtest') { // comparing message.content with ===
  // < your code for the 'pingtest' command >
}
0
slothiful 30 Май 2019 в 23:34

Вы должны сделать встраивание для

if(message.content.startsWith('pingtest'))
   let embed = new Discord.Embed
       .setColor('color')
       .setTitle('title')
       .setAuthor(`${client.user.username}`)
       .setDescreption('Descreption')
       .addField('Field)
      message.channel.send(embed)
0
Sry Man 31 Май 2019 в 12:26
56379760