【问题标题】:Discord music bot not working不和谐音乐机器人不工作
【发布时间】:2018-08-24 16:52:52
【问题描述】:

当我在 discord 中运行以下脚本(cmd 中的“node musicbot.js”)和“!play ytlink”时,机器人会加入语音通道并在控制台中记录命令和链接。然而,音乐并没有开始播放。我已经安装了 ffmpeg、ytdl-core 和 discord.js。

有人可以帮帮我吗?我不知道是哪个部分搞砸了。

const Discord = require("discord.js");
const ytdl = require("ytdl-core");
const config = require("./config.json");
const bot = new Discord.Client();

let queue = [];

function play(connection, message) {
    let audio = ytdl(queue[0], {filter: "audioonly"});
    let dispatcher = connection.playStream(audio);
    dispatcher.on("end", function() {
        queue.shift();
        if (queue[0]) play(connection, message);
        else {
        connection.disconnect();
        message.channel.send("The queue has ended");
        }
    });
}

bot.on("message", function(message) {
    if (message.channel.type === "dm") return;
    if (!message.content.startsWith(config.prefix) || message.author.bot) 
return;

    let arguments = message.content.split(" ");
    let command = arguments[0].toLowerCase();
    arguments.shift();
    console.log(command);
    console.log(arguments);

    if (command == "!play") {
        if (!arguments[0]) {
            message.channel.send("Please provide a YouTube link!");
            message.delete();
            return;
        }
        if (!message.member.voiceChannel) {
            message.channel.send("Please join a Voice Channel first!");
            message.delete();
            return;
        }
        queue.push(arguments[0]);
        message.member.voiceChannel.join()
        .then(connection => {
            play(connection, message);
        });
    }
});

bot.on("ready", function() {
    console.log("Ready");
});

bot.login(config.token); 

【问题讨论】:

    标签: bots discord discord.js


    【解决方案1】:

    好的,我有两个解决方案给你。第一个是我使用过的一段代码,我可以说它是根据经验工作的。

    需要ffmpegopusscriptytdl

    function play(connection, message){
        var server = servers[message.guild.id];
    
        server.dispatcher = connection.playStream(ytdl(server.queue[0], {filter: 
    "audioonly"}));
    
    server.queue.shift();
    
    server.dispatcher.on("end", function() {
        if(server.queue[0]) play(connection, message);
        else connection.disconnect();
    });
    }
    

    我强烈推荐的第二个选项是一个节点模块,它具有许多难以实现的高级功能,例如:

    • musichelp [command]:显示此插件命令的帮助文本,或特定命令的帮助。
    • 播放 |:播放来自 YouTube 的音频。
    • skip [number]:跳过一首或多首带有 skip [some number] 的歌曲,
    • 队列:显示当前队列。
    • pause:暂停音乐播放。
    • resume:继续播放音乐。
    • 音量:在 1 到 200 之间调整播放音量。
    • 离开:清除歌曲队列并离开频道。
    • clearqueue:清除歌曲队列。
    • 所有者:各种所有者命令/操作。 (W.I.P)

    易于安装和上手,here is the node page 包含有关安装等的所有信息。

    【讨论】:

      猜你喜欢
      • 2019-04-04
      • 2020-06-20
      • 2019-02-26
      • 2021-11-24
      • 2019-08-03
      • 2020-09-23
      • 2021-01-16
      • 2021-05-23
      • 2021-01-17
      相关资源
      最近更新 更多