Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 命令处理程序中的Discord.js音乐Bot_Javascript_Node.js_Discord_Discord.js - Fatal编程技术网

Javascript 命令处理程序中的Discord.js音乐Bot

Javascript 命令处理程序中的Discord.js音乐Bot,javascript,node.js,discord,discord.js,Javascript,Node.js,Discord,Discord.js,我想在我的命令处理程序中创建一个音乐机器人,但遇到了一些问题。 这是我使用的命令处理程序: delete require.cache[require.resolve(`./commands/${command}.js`)]; let commandFile = require(`./commands/${command}.js`); commandFile.run(client, message, args); 在play.js文件中,我有一个队列: var servers = {}; 我

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

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

let commandFile = require(`./commands/${command}.js`);
commandFile.run(client, message, args);
在play.js文件中,我有一个队列:

var servers = {};
我不知道如何使我可以跳过队列中的歌曲(使用skip命令-skip.js)。跳过的代码:

if (server.dispatcher) server.dispatcher.end();
我试着看一些教程,但它们都放在一个文件中,这使它更容易,因为你可以把“var servers={};”放在上面,它就可以工作了。我找不到任何教程,它们展示了如何制作,以便您可以使用像我这样的命令处理程序

以下是所有文件:

play.js-

skip.js-


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

嘿,伙计,我不确定你是否还在寻找答案,但我也在与命令处理程序配合使用。我解决这个问题的方法是直接从播放文件导出skip函数,并在skip文件中使用该函数。这是我所做的

/*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 bot还是相当陌生的,这可能不是最优雅的解决方案。但主要的一点是,我通过在play.js中编写函数并将该函数导出到skip.js并在那里调用来绕过它