程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Discord.py 如何在没有 ctx 的情况下离开频道大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决Discord.py 如何在没有 ctx 的情况下离开频道?

开发过程中遇到Discord.py 如何在没有 ctx 的情况下离开频道的问题如何解决?下面主要结合日常开发的经验,给出你关于Discord.py 如何在没有 ctx 的情况下离开频道的解决方法建议,希望对你解决Discord.py 如何在没有 ctx 的情况下离开频道有所启发或帮助;

这是一个 discord bot 功能,应该在有人加入时加入语音频道,播放一首歌曲 5 秒然后离开频道。

问题是使用@bot.event 时我无法将上下文传递给它,所以我找到了一种与 after arg 连接的方法,但我找不到离开频道的方法。

 @bot.event                                                                                                                                                                                           
     async def on_voice_state_update(member,before,after):                                                                                                                                              
         if not before.chAnnel and after.chAnnel:                                                                                                                                                         
             await after.chAnnel.connect()                                                                                                                                                                
             voice = discord.utils.get(bot.voice_clIEnts)                                                                                                                                                 
             voice.play(discord.FFmpegPCMAudio("song.mp3"))                                                                                                                                               
             time.sleep(5)                                                                                                                                                                                
             await after.chAnnel.disconnect()

它说

AttributeError: 'VoiceChAnnel' object has no attribute 'disconnect

我知道我做这个功能的方式可能是错误的,所以如果你们知道“正确”的方式,我希望你们会注意到我。

解决方法

我发现这种不传递上下文就离开语音通道的方法:

 @bot.event                                                                                                                                                                                           
 async def on_voice_state_update(member,before,after):                                                                                                                                              
     if not before.chAnnel and after.chAnnel:                                                                                                                                                         
         await after.chAnnel.connect()                                                                                                                                                                
         voice = discord.utils.get(bot.voice_clients)                                                                                                                                                 
         voice.play(discord.FFmpegPCMAudio("song.mp3"))                                                                                                                                               
         time.sleep(5)                                                                                                                                                                                
         await voice.disconnect()

大佬总结

以上是大佬教程为你收集整理的Discord.py 如何在没有 ctx 的情况下离开频道全部内容,希望文章能够帮你解决Discord.py 如何在没有 ctx 的情况下离开频道所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。