Discord.py 如何检查机器人是否连接到通道?|不和谐

Discord.py 如何检查机器人是否连接到通道?|不和谐,discord.py,voice,Discord.py,Voice,我决定让我的discord机器人播放音乐,但我已经被卡住了。主要是因为我找不到任何来源来帮助我使用当前版本,我一直在使用文档中的所有内容。但是,我不知道如何检查机器人是否连接到语音频道 如果不是Client.is_connected():,我已经尝试了,但是没有成功。如果有任何更新的来源可以帮助我了解discord.py语音功能的基本知识,请给我一个链接:)这是我目前的代码: #----尝试语音命令------ #discord.opus.load_opus()-括号中是什么??? @clien

我决定让我的discord机器人播放音乐,但我已经被卡住了。主要是因为我找不到任何来源来帮助我使用当前版本,我一直在使用文档中的所有内容。但是,我不知道如何检查机器人是否连接到语音频道

如果不是Client.is_connected():,我已经尝试了
,但是没有成功。如果有任何更新的来源可以帮助我了解discord.py语音功能的基本知识,请给我一个链接:)这是我目前的代码:

#----尝试语音命令------
#discord.opus.load_opus()-括号中是什么???
@client.command(name=“join”,pass\u ctx=True)
异步def联接(ctx):
#如果未连接():-Client.is\u connected()不工作
user=ctx.message.author
vc=user.voice.channel
等待vc.connect()
等待ctx.send(f“加入**{vc}**”)
#其他:
#等待ctx.send(“我已连接!”)
@client.command(name=“disconnect”,pass\u ctx=True)
异步def断开连接(ctx):
#如果未连接():-再次无法解决此问题
vc=ctx.message.guild.voice#客户端#我甚至不知道这是如何工作的:D
等待vc.disconnect()
#其他:
#等待ctx.send(“我没有连接到任何频道”)
@client.command(name=“play”,pass\u ctx=True)
异步def播放(ctx,songurl=None):
如果不是songurl:#这至少有效
等待ctx.send(“请指定歌曲”)
返回
如果未连接()?
vc=ctx.message.author.voice.channel
如果不是vc:#我认为这应该行得通
等待ctx.send(“您不在语音频道中!”)
等待vc.connect()
#甚至都没有解决过这一点,它就坏了
ps:很抱歉,我把我的整个vc部分都甩了,但我不太懂


这里真正重要的是play命令,但是我包括了其他命令,只是因为(正如你从我的评论中所看到的)我不太了解正在发生的事情。我该怎么做?当前版本有什么好的来源吗?提前感谢。

机器人可以同时连接到多个公会的语音,因此您需要从
客户端获取相应公会的密码。voice\u客户端
然后检查:

你也可以这样做

client.command()
async def join(ctx):
   user = ctx.message.author
   vc = user.voice.channel

   voice = discord.utils.get(client.voice_clients, guild=ctx.guild) # This allows for more functionality with voice channels

   if voice == None: # None being the default value if the bot isnt in a channel (which is why the is_connected() is returning errors)
      await vc.connect()
      await ctx.send(f"Joined **{vc}**")
   else:
      await ctx.send("I'm already connected!")

名称VoiceClient未定义我的代码没有直接引用
VoiceClient
类,对吗?如果VoiceClient.is_connected():
,我做了
如果VoiceClient.is_connected():
,在放入此函数后,我是否遗漏了什么?只需执行
如果is_connected(ctx):
VoiceClient
类是每个单独的语音客户端的实例。您应该只调用实例的方法,就像我在上面的
voice\u client
中所做的那样。另外,关于我的另一个问题,是否有地方可以学习discord.py voice chat?像导游吗?我什么也找不到
client.command()
async def join(ctx):
   user = ctx.message.author
   vc = user.voice.channel

   voice = discord.utils.get(client.voice_clients, guild=ctx.guild) # This allows for more functionality with voice channels

   if voice == None: # None being the default value if the bot isnt in a channel (which is why the is_connected() is returning errors)
      await vc.connect()
      await ctx.send(f"Joined **{vc}**")
   else:
      await ctx.send("I'm already connected!")