首页 > 解决方案 > Javascript然后错误(等待消息)不和谐

问题描述

我想创建一个命令来创建一个分几个阶段执行的公告。首先,我输入*annonce channelID然后机器人问我标题,然后是消息(理论上)不幸的是,一旦*annonce channelID输入,机器人不会继续并写这个(它会.catch

你能帮助我吗 ?

机器人反应: Entre le titre de ton annonce:标题错误消息错误反应错误

const Discord = require('discord.js');
const delay = require('delay');
const NO = '❌';
const YES = '✅';

module.exports.run = async(bot, message, args) => {
    const userN = message.member;
    const msgFilter = m => m.author.id === message.author.id;
    const userDepotAnnonce = message.author.username;
    if(!message.member.hasPermission('ADMINISTRATOR')) {return message.channel.send("Vous ne pouvez pas passer d'annonces !");}
    const channelID = args[0];
    let sendchannel = bot.channels.get(channelID);
    if(message.content !== `*annonce ${channelID}`) {return message.channel.send('Utilise ***annonce ``channelID``** puis valide');}
    message.channel.send("Entre le titre de ton annonce :");
    await delay(100);
    message.channel.awaitMessages(msgFilter, { max: 1, time: 15000, errors: ['time'] })
    .then(titleCollected => {
        const msgTitle = titleCollected.first().content;
        message.channel.send("Entrez le contenu de l'annonce  et joint ton fichier :");
    })
    .catch(titleCollected => {
        message.channel.send('*title error*');
        console.log('Pas de titre');
    })
    message.channel.awaitMessages(msgFilter, { max: 1, time: 30000, errors: ['time'] })
    .then(msgCollected => {
            const messageToSend = msgCollected.first().content;
            if(message.attachments.size > 0){
                let attachment = message.attachments.first()
                const url = attachment.url
                var annonceFinal = new Discord.RichEmbed()
                .setColor("03CD43")
                .setTitle(`Nouvelle annonce : **${msgTitle}**`)
                .setAuthor(userDepotAnnonce, message.author.avatarURL, url)
                .addField('Annonce', messageToSend)
                .addField('Lien', url)
                .setFooter("Annonces by PDC")
            }
            else{
                var annonceFinal = new Discord.RichEmbed()
                .setColor("03CD43")
                .setTitle(`Nouvelle annonce : **${msgTitle}**`)
                .setAuthor(userDepotAnnonce, message.author.avatarURL)
                .addField('Annonce', messageToSend)
                .setFooter("annonces by pdc")
            }
            message.channel.send(`Vous vous désirez passer l'annonce **${msgTitle}** contenant **${messageToSend}** dans ${sendchannel}.\nPour confirmer, utilisez les reactions.` +YES +NO);
        })
        .catch(msgCollected => {
            message.channel.send('*msg error*');
            console.log('Pas de message');
        })
        const filter = (reaction, user) => {return ['✅', '❌'].includes(reaction.emoji.name) && user.id === message.author.id;};
            message.react('✅').then(() => message.react('❌'));
            message.awaitReactions(filter, { max: 1, time: 10000, errors: ['time'] })
            .then(collected => {
                const reaction = collected.first();
                if (reaction.emoji.name === '✅'){
                    sendchannel.send(annonceFinal)
                }
                else if (reaction.emoji.name === '❌'){
                    message.channel.send('Alors arrête de me faire chier !');
                }
            })
            .catch(collected => {
            message.channel.send('*react error*');
            console.log('*react error*');

    })

};

module.exports.help = {
    name: 'annonce'
};

标签: javascriptasync-awaitbotsdiscordcollectors

解决方案


推荐阅读