Как выполнить команду «Сообщить об ошибке» с помощью discord.js

#node.js #discord #discord.js

Вопрос:

Я пытался сделать отчет «команда об ошибке». До сих пор это мой код:

 bot.on('message', async (client, message, args) => {
    let parts = message.content.split(" ");

    if(parts[0].toLocaleLowerCase() == '!bugreport') {
        const owner = client.users.cache.get('567717280759283883');

        const query = args.join(" ");
        if(!query) return message.channel.send('Bitte schildere den Bug').then(m => m.delete({timeout: 5000}))
    
        const reportEmbed = new Discord.MessageEmbed()
        .setTitle('Fehlermeldung')
        .setThumbnail(message.guild.iconURL())
        .addField('Fehler:', query)
        .addField('Server:', message.guild.name, true)
        .setFooter(`Gesendet von ${message.author.tag}`, message.author.displayAvatarURL({dynamic: true}))
        .setTimestamp();
    
        owner.send(reportEmbed);
    }
});
 

Код ошибки всегда говорит, что «содержимое» не определено, но я этого не понимаю

Ответ №1:

Предполагая , что у вас bot есть a Client , похоже, вы ожидаете message , что событие передаст больше аргументов, чем на самом деле. Хотя это указывало бы на то , что вы пытаетесь читать content undefined , но не content само undefined по себе .

Ответ №2:

Client#message Событие допускает 1 параметр, который является экземпляром Message . Измените свой код на этот

 bot.on('message', async (message) => {
//code here
})
 

Вы, вероятно, запутались с обработчиками сообщений, где вы можете настроить функцию по своему вкусу.

Ответ №3:

Событие message передает только полученное сообщение в соответствии с discord.js документы. Ваш обработчик событий должен выглядеть примерно так в начале:

 bot.on('message', async (message) => {
 

Обратите внимание, что это не полностью исправит вашу команду, так как вы все равно будете пропускать параметры args и. client Вот мое лучшее предположение о том, где их взять, основываясь на том, как вы их используете:

 const args = parts.splice(0,1); // gives array of everything after "!bugreport"
const client = bot; // alternatively, replace client with bot in your code