Цикл встраивания сообщений не останавливается

Если я набираю 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,
            }
          }
        });
}

срабатывает ли цикл, если отправляется сообщение с «pingtest», или он срабатывает, если отправляется какое-либо сообщение?

James m 30.05.2019 16:10

Можете ли вы добавить больше вашего кода?

JackRed 30.05.2019 16:52

@Jamesm с любым сообщением

Sir Cyborg 30.05.2019 19:22

Не могли бы вы попробовать if (message.content ==='pingtest') для меня и посмотреть, сработает ли это?

James m 30.05.2019 21:43
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
4
112
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

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

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 >
}

вам нужно сделать вставку для

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)

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