(Python)Discord bot与语音聊天断开连接

时间:2017-06-18 07:04:19

标签: python discord discord.py

我需要知道如何让discord bot与语音通道断开连接。目前这是我必须加入语音频道的代码

@client.command(pass_context=True)
async def joinvoice(ctx):
    #"""Joins your voice channel"""
    author = ctx.message.author
    voice_channel = author.voice_channel
    await client.join_voice_channel(voice_channel)

我需要代码断开语音通道

2 个答案:

答案 0 :(得分:3)

您需要从await client.join_voice_channel(voice_channel)返回的语音客户端对象。该对象有一个方法disconnect(),允许您这样做。客户端还有一个属性voice_clients,可以看到所有连接的语音客户端的可迭代内容at the docs。考虑到这一点,我们可以添加一个名为leavevoice的命令(或任何你想要调用的命令)。

@client.command(pass_context=True)
async def joinvoice(ctx):
    #"""Joins your voice channel"""
    author = ctx.message.author
    voice_channel = author.voice_channel
    vc = await client.join_voice_channel(voice_channel)

@client.command(pass_context = True)
async def leavevoice(ctx):
    for x in client.voice_clients:
        if(x.server == ctx.message.server):
            return await x.disconnect()

    return await client.say("I am not connected to any voice channel on this server!")

leavevoice命令中,我们遍历机器人所连接的所有语音客户端,以便找到该服务器的语音通道。一旦找到,断开连接。如果没有,那么机器人没有连接到该服务器中的语音通道。

答案 1 :(得分:0)

@client.command()
async def leavevc(ctx):
    await ctx.voice_client.disconnect()

discord.py重写