проголосовать за сообщить о Discord Bot - PullRequest
0 голосов
/ 28 мая 2020

Я пытаюсь создать бота, которого люди могут вызывать, чтобы проголосовать за отчет, если голосование проходит успешно, когда больше чем на 2 (или число X) больше «да», чем «нет». Он отправит сообщение на отдельный канал, где только бот может отправлять сообщения, и отправит DM администратору сервера ( это то, что я не знаю, что делать ).

Также я получаю сообщение об ошибке:

"const sentEmbed = await msg.channel.send(voting); // Send Embed
                   ^^^^^
SyntaxError: await is only valid in async function"

Это код, который у меня есть:

if(!msg.mentions.users.first()) return msg.channel.send('You need to mention somebody!'); // Check if no User was Mentioned
const voting = async function new Discord.RichEmbed() // Generate Voting Embed
    .setColor('#42b34d')
    .setFooter('Mute ' + msg.mentions.users.first().tag + ' for 10m?')
    .setImage(msg.mentions.users.first().avatarURL);
const role = msg.guild.roles.find(r => r.name === 'Muted'); // Find Role
if(!role) return msg.channel.send('No Role was found, please make sure you have a muteed role!'); // Make sure there is a Role
const agree = '✅'; // Define Emojis
const disagree = '❌'; // Define Emojis

const sentEmbed = await msg.channel.send(voting); // Send Embed
const filter = (reaction, user) => (reaction.emoji.name === agree || reaction.emoji.name === disagree) && !user.bot; // Filter for Reactions
await sentEmbed.react(agree); // React
await sentEmbed.react(disagree); // React
const voteStatus = await msg.channel.send('Voting started 30 seconds left'); // Send start Message and
const collected = await sentEmbed.awaitReactions(filter, { time: 5000 }); // start Collecting Reactions
const agreed = collected.get(agree) || { count: 1 }; // Retrieve Reactions
const disagreed = collected.get(disagree) || { count : 1 }; // Retrieve Reactions
const agreed_count = agreed.count - 1 ; // Count away Bot Votes
const disagreed_count = disagreed.count - 1; // Count away Bot Votes
voteStatus.edit('Voting endet with: ' + agreed_count + agree + ' and ' + disagreed_count + disagree); // Edit message to show Outcome
if(agreed.count > disagreed.count) {

}
else {
    msg.channel.send('Mute Voting Failed :)');
}

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

1 Ответ

0 голосов
/ 06 июня 2020

Причина этой ошибки в том, что вы вызываете await вне асинхронной функции.

Пример асинхронной функции;

async function myFunction() {
    await someOtherFunction();
}
...