await is only valid in async function

787
08 августа 2018, 16:20

Решил написать бота дл Discord и увидел ошибку SyntaxError: await is only valid in async function.

Вот JS код:

const Discord = require('discord.js');
const robot = new Discord.Client();
const ytdl = require('ytdl-core');
const fs = require('fs');
const request = require('request');
const getYoutubeID = require('get-youtube-id');
const fetchVideoInfo = require('youtube-info');
const BotSettings = require("./botsettings.json");
const prefix = BotSettings.prefix;
robot.login(ТУТ ТОКЕН (ОН ТУТ ЕСТЬ));

robot.on('message',(message) => {
        if(message.author.bot) return;
        let messageArray = message.content.split(" ");
        let command = messageArray[0];
        let args = messageArray.slice(1);
        if(!command.startsWith(prefix)) return;
        if(command === `${prefix}userinfo`){
            if(message.author.username === 'Mrsasha45op'){
                let embed = new Discord.RichEmbed().setAuthor(message.author.username).setDescription("Топовый админ");
                message.channel.sendEmbed(embed);
            }else{
                if(message.author.username === `Фиолетовая Мангл`){
                    let embed = new Discord.RichEmbed().setAuthor(message.author.username).setDescription("Я умею рисовать");
                    message.channel.sendEmbed(embed);
                }else{
                    if(message.author.username === `domber`){
                        let embed = new Discord.RichEmbed().setAuthor(message.author.username).setDescription("Друг и Ютубер от бога");
                        message.channel.sendEmbed(embed); 
                    }else {
                        let embed = new Discord.RichEmbed().setAuthor(message.author.username).setDescription("Хороший пользователь");
                        message.channel.sendEmbed(embed);
                    }
                }
}
        }
        if(command === `${prefix}ping`){
            let embed = new Discord.RichEmbed().setDescription("Don't worry! The ping is 0 ms");
            message.channel.sendEmbed(embed);
          }
          if(command === `${prefix}avatar`){
            message.channel.send(message.author.avatarURL);
          }
          if(command === `${prefix}youtube`){
            let embed = new Discord.RichEmbed().setDescription("Конечно это топ");
            message.channel.sendEmbed(embed);
          }
          if(command === `${prefix}wtf`){
            let embed = new Discord.RichEmbed().setDescription("WTF?!");
            message.channel.sendEmbed(embed);
          }
          if(command === `${prefix}торт`){
            let embed = new Discord.RichEmbed().setDescription("О, торт! Дай покушать пж");
            message.channel.sendEmbed(embed);
          }
          if(command === `${prefix}help`){
            let embed = new Discord.RichEmbed().setAuthor("Список комманд:").setDescription("/торт /help /wtf /youtube /avatar /about /ping /userinfo");
            message.channel.sendEmbed(embed);
          }
          if(command === `${prefix}about`){
            let embed = new Discord.RichEmbed().setDescription("Я первый русскоязычный бот Саша. Меня Создал Mrsasha45op!");
            message.channel.sendEmbed(embed);
          }
          if(command === `${prefix}mute`){
                if(!message.member.hasPermission("MANAGE_MESSAGES")) return message.channel.sendMessage("Ты не модер и не админ!!!");
                if(message.channel.permissionsFor(message.member).hasPermission("MANAGE_MESSAGES"));
                let toMute = message.mentions.users.first() || message.guild.members.get(args[0]);
                if(!toMute) return message.channel.sendMessage("Ты не написал айди");
                let role = message.guild.roles.find(r => r.name === "USER MUTED");
                if(!role){
                try{
                    role = await message.guild.createRole({
                            name: "USER MUTED",
                            color: "#000000",
                            permissions: []
                    });
                    message.guild.channels.forEach(async (channel, id) => {
                        await channel.overwritePermissions(role, {
                            SEND_MESSAGES: false,
                            ADD_REACTIONS: false
                        });
                    });
                } catch(e){
                    console.log(e.stack);
                }}
                if(toMute.roles.has(role.id)) return message.channel.sendMessage("Он уже был замучен!")
                await toMute.addRole(role);
                message.channel.sendMessage("Я замутил этого пользователя");

                return message.reply(toMute.username || toMute.user.username);
          }
    });
Answer 1
(async function () {
    try {
      role = await message.guild.createRole({
          name: "USER MUTED",
          color: "#000000",
          permissions: []
      });
      message.guild.channels.forEach(async (channel, id) => {
          await channel.overwritePermissions(role {
              SEND_MESSAGES: false,
              ADD_REACTIONS: false
          });
      });
    } catch (e) {
      console.log(e.stack);
    }
})()
robot.on('message',(message) => {
robot.on('message', async (message) => {
READ ALSO
в input только цифры от 1 до 30

в input только цифры от 1 до 30

имеются два input'a, один из них дублирует второй, цифры переключаются при нажатии на + и - но также нужна возможность самому записать значение...

269
Код с итератором и генератором в js ломает browserSync

Код с итератором и генератором в js ломает browserSync

При запуске следующего кода все работает как и ожидается, но только один разЗатем browserSync отказывается перезапускать браузер, хотя в консоли...

284
Помогите пожалуйста JS discord.js

Помогите пожалуйста JS discord.js

Опять ошибка с ботом :TypeError: Cannot read property 'name' of undefined

224
Запись числа с любым разделителем

Запись числа с любым разделителем

Вообщем, есть форма обычная от yii2:

228