【问题标题】:Discord.js Music Bot in a command handler命令处理程序中的 Discord.js 音乐机器人
【发布时间】:2019-04-05 02:42:50
【问题描述】:

我想在我的命令处理程序中制作一个音乐机器人,但我遇到了一些问题。 这是我使用的命令处理程序:

delete require.cache[require.resolve(`./commands/${command}.js`)];

let commandFile = require(`./commands/${command}.js`);
commandFile.run(client, message, args);

在我的 play.js 文件中我有一个队列:

var servers = {};

我不知道如何制作,以便可以跳过队列中的歌曲(使用跳过命令 - skip.js)。跳过代码:

if (server.dispatcher) server.dispatcher.end();

我尝试查看教程,但它们都在一个文件中完成,这使得它更容易,因为你可以把“var servers = {};”在顶部和它的工作。我找不到任何教程,他们展示了如何制作它,以便您可以使用像我这样的命令处理程序。

这是所有文件:

play.js - https://hastebin.com/dijavugufu.js

skip.js - https://hastebin.com/kupecayotu.js

如果有人告诉我如何修改其他一些音乐机器人命令以使用命令处理程序,那也很好。

【问题讨论】:

    标签: javascript node.js discord discord.js


    【解决方案1】:

    嘿,伙计,不确定您是否仍在寻找答案,但我也在研究带有命令处理程序的机器人。我解决这个问题的方法是直接从播放文件中导出跳过函数并在跳过文件中使用该函数。这就是我所做的。

    /*In play.js*/
    var dispatcher;
    async function Play(connection, message){
        dispatcher = await connection.playStream("your url and options here");
    }
    module.exports.Skip = function(){
        if(dispatcher) dispatcher.end();
    }
    
    /*In skip.js*/
    const playModule = require("your_path_to/play.js");
    module.exports.run = async (client, message, args) => {
        var skip = playModule.Skip();
    }
    

    抱歉,我对 Node.js 还是很陌生,并且创建了一个 Discord 机器人,这可能不是最优雅的解决方案。但重点是我通过在 play.js 中编写函数并将该函数导出到 skip.js 并在那里调用它来解决它。

    【讨论】:

      猜你喜欢
      • 2021-02-07
      • 2021-07-23
      • 2020-09-22
      • 2021-11-29
      • 2020-08-04
      • 2020-12-01
      • 1970-01-01
      • 2020-06-27
      • 2021-07-25
      相关资源
      最近更新 更多