python - 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中时,它会发送:“我已经离开了语音频道!” 消息但它从未真正离开过
有谁知道为什么它不起作用,我该如何解决这个问题。
谢谢!
解决方案
当机器人连接到该语音通道时,您需要保存voice_client
语音通道的,因此如果您没有机器人,您将无法断开它。
查看您使用的代码,channel.connect()
这将返回您需要在断开连接时使用它的voice_client。
当你想使用 ctx 时你错了,它用于谁编写了命令而不是机器人。
推荐阅读
- mysql - 如何检查 Oracle MySQL 中的存储过程 if-block 中是否存在行
- reactjs - React - 测试卡组件(Ant Design)
- ios - 拒绝 JS Geolocation 请求后,用户如何重置权限设置?(iOS Safari)
- android - 找不到 com.android.tools.lint:lint-gradle:26.1.4
- java - 如果字段实现了该接口,如何实现该接口
- c++ - 从二进制文件中读取结构并插入向量/STL::list 然后返回它
- python - 熊猫数据框忽略列值左侧的零
- azure - 使用 Azure 服务的架构服务器-客户端
- mvvmcross - 单元测试 MxvAsyncCommand 时的 MVVM 交叉空引用
- python - 从 scipy stat 和 popt 解释参数值