我正在使用discord.py创建一个音乐机器人,但是在将机器人连接到语音通道时遇到了麻烦。我正在使用嵌齿轮将音乐功能与其他功能区分开来。
@commands.command()
async def join_voice(self, ctx):
channel = ctx.author.voice.channel
print(channel.id)
await self.client.VoiceChannel.connect()
但是我得到了错误:
AttributeError: 'NoneType' object has no attribute 'channel'
我在这里查看了所有文档以及所有类似的问题,但仍然没有解决方案!
有人可以帮忙吗?
答案 0 :(得分:6)
您真的很亲密!您唯一需要更改的是:
@commands.command()
async def join_voice(self, ctx):
connected = ctx.author.voice
if connected:
await connected.channel.connect() # Use the channel instance you put into a variable
您正在执行的是获取VoiceChannel类对象,而不是用户已连接到的实际VoiceChannel实例。这就是您要输入错误的原因,因为它试图找到一个不存在的语音通道。
很高兴看到进度,保持进度!
答案 1 :(得分:1)
我不是discord.py专家,但是请尝试以下链接:
How a discord bot can join a voice channel in discord rewrite? AttributeError: 'NoneType' object has no attribute 'channels' https://github.com/Rapptz/discord.py/issues/585
我认为第三个链接与您更相关。