Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/37.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 discordJ在前缀和命令之间添加空格_Javascript_Node.js_Discord.js - Fatal编程技术网

Javascript discordJ在前缀和命令之间添加空格

Javascript discordJ在前缀和命令之间添加空格,javascript,node.js,discord.js,Javascript,Node.js,Discord.js,我创建了一个音乐机器人,当有人点击时,它可以播放音乐!在文本频道中播放 现在我想切换!使用播放请播放,但它仅使用请播放进行响应,两者之间没有空格,并且当我尝试更改代码时: const前缀='please'//之前 常量前缀='请'//在之后,问题是您的参数是基于空格字符分割的 const args = message.content.split(" "); args[1]将被引用以获取命令名后的文本,但由于命令中有空格,args[1]将始终是“播放”(或他们使用的任何命令

我创建了一个音乐机器人,当有人点击
时,它可以播放音乐!在文本频道中播放

现在我想切换
!使用
播放
请播放
,但它仅使用
请播放
进行响应,两者之间没有空格,并且当我尝试更改代码时:

const前缀='please'//之前

常量前缀='请'//在
之后,问题是您的参数是基于空格字符分割的

const args = message.content.split(" ");
args[1]
将被引用以获取命令名后的文本,但由于命令中有空格,
args[1]
将始终是“播放”(或他们使用的任何命令)

快速修复方法是将
args[1]
更改为
args[2]

const songInfo = await ytdl.getInfo(args[2]);

编辑:完全升级的代码。。。也像水晶一样清澈。
const{Client,Attachment,Message}=require('discord.js');
const{token}=require(“./config.json”);
const bot=新客户端();
常量前缀='请';
常量ytdl=需要(“ytdl核心”);
const request=require('request');
const cheerio=需要(“cheerio”);
const queue=new Map();
bot.on('ready',()=>{
log('Client is online!');
}
on(“消息”,异步消息=>{
让内容=message.content.split(“”);
if(message.author.bot)返回;
if(content.shift()!==前缀)返回;
const serverQueue=queue.get(message.guild.id);
开关(content.shift()){
案例“播放”:exec(内容、消息、服务器队列);中断;
案例“跳过”:跳过(内容、消息、服务器队列);中断;
案例“停止”:停止(内容、消息、服务器队列);中断;
默认值:message.channel.send(“您需要输入有效的命令!”);
}
});
异步函数执行(ctx、msg、que){
const voiceChannel=msg.member.voice.channel;
如果(!语音频道)
返回msg.channel.send(
“您需要在语音频道播放音乐!”
);
const permissions=voiceChannel.permissions for(msg.client.user);
如果(!permissions.has(“CONNECT”)| |!permissions.has(“SPEAK”))
返回msg.channel.send(
“我需要加入您的语音频道并在其中讲话的权限!”
);
const songInfo=wait ytdl.getInfo(ctx.join(“”));
康斯特宋={
标题:songInfo.title,
网址:songInfo.video\u网址
};
如果(!que){
const queueconstruct={
textChannel:msg.channel,
语音频道:语音频道,
连接:空,
歌曲:[],
第5卷,
玩:真的
};
queue.set(msg.guild.id,queueconstruct);
queueconstruct.songs.push(song);
试一试{
var connection=wait voiceChannel.join();
queueconstruct.connection=连接;
播放(msg.guild,queueconstruct.songs[0]);
}捕捉(错误){
控制台日志(err);
queue.delete(msg.guild.id);
返回msg.channel.send(错误);
}
}否则{
奎。歌。推(歌);
return msg.channel.send(`${song.title}已添加到队列!`);
}
}
等待功能播放(gui、sng){
const serverQueue=queue.get(gui.id);
如果(!sng){
serverQueue.voiceChannel.leave();
queue.delete(gui.id);
返回;
}
const dispatcher=serverQueue.connection
.play(ytdl(sng.url))
.on(“完成”,()=>{
serverQueue.songs.shift();
播放(gui、serverQueue.songs[0]);
})
.on(“error”,error=>console.error(error));
dispatcher.setVolumeLogarithmic(serverQueue.volume/5);
serverQueue.textChannel.send(`streaming:*${sng.title}**`);
}
异步函数停止(ctx、msg、que){
如果(!msg.member.voice.channel)
返回msg.channel.send(
“你必须进入语音频道才能停止音乐!”
);
que.songs=[];
que.connection.dispatcher.end();
}
异步函数跳过(ctx、msg、que){
如果(!msg.member.voice.channel)
返回msg.channel.send(
“你必须进入语音频道才能停止音乐!”
);
如果(!que)
return msg.channel.send(“没有我可以跳过的歌曲!”);
que.connection.dispatcher.end();
}

bot.login(token);
我得到了3个“;”预期值。ts(1005)啊,抱歉。立即更新。编辑:修复。忘记添加
,以防万一。