сообщение не определено, я не получаю его - PullRequest
0 голосов
/ 16 апреля 2020

Так что я не могу понять, как определить сообщение, я уже много искал и пробовал некоторые вещи, но это не сработало. Я новичок, поэтому я просто забыл, где и как я должен это делать.

client.on("guildMemberAdd", async member => {
        try {
        await member.send(`Hello ${member}, welcome to the PotatoHost Server! 
I want to help you and so my question is: Do you want to buy a server or do you need more informations first? \n
A: I want to buy a server
B: I need more informations first \n
Please react to this message with A or B.`)
            .then(function (message) {
                message.react("?")
                message.react("?")
            });

            message.awaitReactions((reaction, user) => user.id == message.author.id && (reaction.emoji.name == '?' || reaction.emoji.name == '?'),
                { max: 1}).then(collected => {
                    if (collected.first().emoji.name == '?') {
                        message.reply('Ok, so you want to buy a server. Let me recommend you to visit <#699374469977735208>.');
                        client.destroy();

                    }
                    else
                    message.reply('Ok, so you need more informations first. Let me recommend you to visit <#699374469977735208>.');
                })

        } catch (err) {
            console.log(err)
        }
    })

 client.login(token);

Ответы [ 2 ]

0 голосов
/ 16 апреля 2020

Я не уверен в этом, но почему вы не перемещаете сообщение внутри области сообщения?

client.on("guildMemberAdd", async member => {
        try {
        await member.send(`Hello ${member}, welcome to the PotatoHost Server! 
I want to help you and so my question is: Do you want to buy a server or do you need more informations first? \n
A: I want to buy a server
B: I need more informations first \n
Please react to this message with A or B.`)
            .then(function (message) {
                message.react("?")
                message.react("?")
            message.awaitReactions((reaction, user) => user.id == message.author.id && (reaction.emoji.name == '?' || reaction.emoji.name == '?'),
                { max: 1}).then(collected => {
                    if (collected.first().emoji.name == '?') {
                        message.reply('Ok, so you want to buy a server. Let me recommend you to visit <#699374469977735208>.');
                        client.destroy();

                    }
                    else
                    message.reply('Ok, so you need more informations first. Let me recommend you to visit <#699374469977735208>.');
                })

            });


        } catch (err) {
            console.log(err)
        }
    })

 client.login(token);
0 голосов
/ 16 апреля 2020

message определяется только в обратном вызове в вашей первой функции .then. Вы снова вызвали message после того, как оно больше не определено. Чтобы исправить это, сдвиньте все вызовы в сообщении внутри .then.

.then(function (message) {
    message.react("?")
    message.react("?")
    message.awaitReactions((reaction, user) => user.id == message.author.id && 
        (reaction.emoji.name == '?' || reaction.emoji.name == '?'),
        { max: 1}).then(collected => {
        if (collected.first().emoji.name == '?') {
            message.reply('Ok, so you want to buy a server. Let me recommend you to visit <#699374469977735208>.');
             client.destroy();
        } else
            message.reply('Ok, so you need more informations first. Let me recommend you to visit <#699374469977735208>.');
    })
});

Возможно, вы захотите прочитать в областях: https://www.w3schools.com/js/js_scope.asp

...