节点程序包在本地工作,但在部署到Heroku时不工作

时间:2019-09-07 07:59:03

标签: node.js heroku discord.js

我实现了一个非常简单的discord.js音乐机器人,该机器人使用了node.js包ytdl-core和opus-script。该僵尸程序永远无法使用部署到Herkou时使用的新程序包加入语音通道并播放音乐流,但是与每个命令相关的消息(例如嵌入程序)仍会发送。

const ytdl = require('ytdl-core');
const streamOptions = { seek: 0, volume: 1}

const Discord = require('discord.js')
require('dotenv-flow').config()
const config = {
    token: process.env.TOKEN,
    owner: process.env.OWNER,
    prefix: process.env.PREFIX
}
const ytdl = require('ytdl-core')
const streamOptions = {
    seek: 0,
    volume: 1
}
const prefix = config.prefix
const client = new Discord.Client()

client.on('ready', () => {
    console.log('ready!')
    console.log(prefix)
    client.user.setActivity("foo", {
        type: "WATCHING"
    })
});

client.on("message", async message => {
    const args = message.content.slice(prefix.length).trim().split(/ +/g)
    const command = args.shift().toLowerCase()
    if (message.author.bot) return
    if (message.content.indexOf(prefix) !== 0) return

    if (command === "play") {
        const link = args[0]
        if (message.channel.id === musicChannel) {
            if (message.member.voiceChannel) {
                if (!link) return message.reply("please enter a YouTube url to play!")
                if (!ytdl.validateURL(`${link}`)) return message.reply("pleae enter a valid YouTube url!")
                message.member.voiceChannel.join().then(connection => {
                        console.log("Successfully connected.");
                        const stream = ytdl(`${link}`, {
                            filter: 'audioonly'
                        })
                        const dispatcher = connection.playStream(stream, streamOptions);
                    })
                    .catch(e => {
                        console.error(e);
                    })
                const embed = new Discord.RichEmbed()
                    .setTitle("__A New Youtube URL Is Playing:__")
                    .setThumbnail(client.user.avatarURL)
                    .addField("Current URL:", `${link}`)
                    .addField("Changed by:", `${message.member.user}`)
                    .setColor("#32a852")
                message.guild.channels.get(musicChannel).send(embed).catch(e => {
                    console.error(e);
                })
            } else {
                message.reply("you must be in a voice channel!")
            }
        } else {
            message.reply(`please use music commands in: <#${musicChannel.toString()}>`)
        }
    }

    if (command === "stop") {
        if (message.channel.id === musicChannel) {
            if (message.guild.voiceConnection) {
                message.guild.voiceConnection.disconnect()
                message.channel.send("successfully disconnected from voice channel!")

            } else {
                message.reply("There is currently no music playing!")
            }
        } else {
            message.reply(`please use music commands in: <#${musicChannel.toString()}>`)
        }

    }

}

});

client.login(process.env.TOKEN);

1 个答案:

答案 0 :(得分:0)

试图通过github桌面上传吗? (没有gitignore,将其与node-modules文件夹一起上传)