Если я набираю 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,
}
}
});
}
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 >
}
Вы должны сделать встраивание для
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)
Похожие вопросы
Новые вопросы
discord.js
Discord.js - это модуль node.js, который позволяет разработчику взаимодействовать с Discord API. Используйте этот тег для вопросов об использовании discord.js, а не для вопросов, касающихся Discord API или Discord в целом (для вопросов об API используйте тег 'discord').