我实现了一个非常简单的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);
答案 0 :(得分:0)
试图通过github桌面上传吗? (没有gitignore,将其与node-modules文件夹一起上传)