首页 > 解决方案 > Bot 不会与 VC 断开连接,但不会引发任何错误 [Discord.py]

问题描述

当有人运行断开连接命令时,我的机器人应该从语音通道断开连接。

我的机器人没有断开与语音通道的连接

但它也不会引发任何错误

我的代码:

@client.command()
async def disconnect(ctx):
    vc = ctx.voice_client

    if not vc:
        await ctx.send("I am not in a voice channel.")
        return

    await vc.disconnect()
    await ctx.send("I have left the voice channel!")

这段代码是另一个 StackeOverflow 用户向我展示的代码,但它不起作用。

当没有人在语音通道中时,它会发送 if not in vc 消息,因此显然已找到该通道

当有人在vc中时,它会发送:“我已经离开了语音频道!” 消息但它从未真正离开过

有谁知道为什么它不起作用,我该如何解决这个问题。

谢谢!

标签: pythondiscord.py

解决方案


当机器人连接到该语音通道时,您需要保存voice_client语音通道的,因此如果您没有机器人,您将无法断开它。

查看您使用的代码,channel.connect()这将返回您需要在断开连接时使用它的voice_client。

当你想使用 ctx 时你错了,它用于谁编写了命令而不是机器人。


推荐阅读