Discord bot 未加入我所在的语音频道
Posted
技术标签:
【中文标题】Discord bot 未加入我所在的语音频道【英文标题】:Discord bot not joining the voice channel i'm in 【发布时间】:2020-12-21 18:00:17 【问题描述】:我正在尝试编写自己的音乐机器人,但它没有加入我所在的语音频道。 其他一切工作正常。我认为我应该使用 npm 安装一个特定的东西,但我不知道这是否正确,我不确定所以有人可以告诉我我应该怎么做才能解决这个问题...
这是我的代码:
client.on('message', message =>
let args = message.content.substring(prefix.length).split(" ");
switch (args[0])
case 'play':
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();
);
if(!args[1])
message.channel.send("You need to provide a link!");
return;
if(!message.member.voiceChannel)
message.channel.send("You must be in a voice channel to use this command!");
return;
if(!servers[message.guild.id]) servers[message.guild.id] =
queue: []
var server = servers[message.guild.id];
server.queue.push(args[1]);
if(!message.guild.voiceConnection) message.member.voice.channel.join().then(function(connection)
play(connection, message);
)
break;
);
【问题讨论】:
【参考方案1】:我认为您使用的是 discord.js
版本 12+,在此版本中,voiceConnection
属性已从 GuildMember
类中删除。
您应该尝试以下方法 -
message.member.voice.channel.join()
【讨论】:
还是没有加入 if(!message.guild.voice.connection) message.member.voice.channel.join().then(function(connection) 它在括号内的第一个连接上给我一个错误 试试这个 - if(!message.guild.me.voice.channel) 但是我会尝试你的新方法,这样我才能得到这个问题的答案【参考方案2】:我认为您定义 args 的行代码是错字, 您正在尝试使用 'substring' 方法定义 'args' 但这是一个错误,请尝试将其更改为 'slice' ,这应该可以解决您的问题。 除非您尝试了其他命令并且它们有效。
尝试将其更改为该行代码:
让 args = message.content.slice(prefix.length).split(" ");
【讨论】:
以上是关于Discord bot 未加入我所在的语音频道的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Discord.py Cogs 使 Discord Bot 加入语音频道并在成员加入频道时播放音频文件