Сборка Discord Bot постоянно рушится на Heroku - PullRequest
0 голосов
/ 29 апреля 2020

Я создал бот Discord, и он отлично работал, когда я запускал его локально, а не когда загружал его на Heroku. Я не знаю, почему он постоянно падает. Бот отлично работает локально.

И еще одна вещь, когда я добавляю start в скриптах. Он бежал и бежал в течение одной минуты и снова разбился. Затем перезапускается сам по себе и снова через sh через одну минуту.

2020-04-29T09:24:00.011590+00:00 app[api]: Scaled to web@0:Free worker@0:Free by user owaisshamsi217@gmail.com
2020-04-29T09:24:01.483021+00:00 app[api]: Scaled to web@0:Free worker@1:Free by user owaisshamsi217@gmail.com
2020-04-29T09:24:04.650208+00:00 heroku[worker.1]: State changed from starting to up
2020-04-29T09:24:06.950244+00:00 heroku[worker.1]: State changed from up to crashed
2020-04-29T09:24:06.953653+00:00 heroku[worker.1]: State changed from crashed to starting
2020-04-29T09:24:10.862018+00:00 heroku[worker.1]: State changed from starting to up
2020-04-29T09:24:13.509980+00:00 heroku[worker.1]: State changed from up to crashed

Мой код - только сервер. js Файл с кодом:

const Discord = require('discord.js');
const settings = require('./config.json');
const fs = require('fs');

const bot = new Discord.Client();
bot.commands = new Discord.Collection();

const prefix = settings.prefix;
//const token = settings.token;


bot.on('message', message => {
    if(message.author.bot) return;
    let dm = message.author;

    if(message.channel.name === 'verify') {
        if(message.content === '!verify') {
            message.delete()
            let server = message.guild.name;
            let servericon = message.guild.iconURL();

            var captcha1 = 'https://i.ibb.co/DpjB37s/captcha1.png'
            var captcha2 = 'https://i.ibb.co/nsbq041/captcha2.png'
            var select = [];
            select.push(captcha1);
            select.push(captcha2);

            var chosen = select[Math.floor(Math.random() * select.length)];

            let embed = new Discord.MessageEmbed()
            .setTitle(`**Welcome to ${server}**\n\nCaptcha`)
            .setDescription("Please complete the captcha given below to gain access to the server.\n**Note:** This is case sensitive")
            .setAuthor('Mr.Verifier', "https://i.ibb.co/nckjDjG/hmm.png")
            .setColor('#0929ff')
            .setThumbnail(servericon)
            .addField('**Why all this?**' , 'This is to protect the servers from\nmalicious raids of automated bots',true)
            .setImage(chosen)
            .setTimestamp();

             dm.send(embed)

            let guild = message.guild.id;

            module.exports.guild = guild
            module.exports.chosen = chosen
            module.exports.captcha1 = captcha1
            module.exports.captcha2 = captcha2

        }else{
        message.delete();
        }
    }; 
    if(message.channel.type === 'dm') {
        const response = message.content;
            if(this.chosen === this.captcha1){

                if(dm && response === 'L3thq4') {
                    var role = bot.guilds.cache.get(this.guild).roles.cache.find(r => r.name == 'Verified Member');
                    var user = bot.guilds.cache.get(this.guild).members.cache.find(member => member.id === dm.id)

                    user.roles.add(role);

                    let embed = new Discord.MessageEmbed()
                    .setTitle('**THANK YOU**')
                    .setDescription('You have been given access to the server.')
                    .setColor('#0929ff')

                    dm.send(embed);

                }else{dm.send('You entered the captcha incorrectly')};
            } else if(this.chosen === this.captcha2){

                if (dm && response === 'Fe1t6p') {
                    var role = bot.guilds.cache.get(this.guild).roles.cache.find(r => r.name == 'Verfied Member');
                    var user = bot.guilds.cache.get(this.guild).members.cache.find(m => m.id === dm.id);

                    user.roles.add(role);

                    let embed = new Discord.MessageEmbed()
                    .setTitle('**THANK YOU**')
                    .setDescription('You have been given access to the server.')
                    .setColor('#0929ff')

                    dm.send(embed);

                }else{dm.send('You entered the captcha incorrectly')};
            } else {
                dm.send('No captcha in inventory.');
    };

    };
})



bot.on('ready', async() => {
    console.log("At your service");
})

bot.login(process.env.token);
...