discord.py v2迁移后音乐机器人命令无法找到问题排查
Discord.py v2 音乐机器人命令找不到问题排查
问题原因
discord.py v2 对 Cog 类的命名规范要求更严格,必须使用大驼峰命名法(如MusicCog),原代码中的music_cog(小写+下划线)不符合规范,导致Cog无法被正确注册,内部的play等命令自然无法被bot识别。
解决步骤
1. 修改Cog类名
在music_cog.py中,将类名从music_cog改为MusicCog:
# 原代码 class music_cog(commands.Cog): def __init__(self, bot): self.bot = bot # ...其余代码 # 修改后 class MusicCog(commands.Cog): def __init__(self, bot): self.bot = bot # ...其余代码保持不变
2. 更新主文件的导入与加载逻辑
在主文件中,同步修改导入和添加Cog的代码:
# 原代码 from music_cog import music_cog async def main(): async with bot: await bot.add_cog(music_cog(bot)) await bot.start('TOKEN') # 修改后 from music_cog import MusicCog async def main(): async with bot: await bot.add_cog(MusicCog(bot)) await bot.start('TOKEN')
3. 验证修复效果
重启bot后,执行?play命令即可正常识别执行。若仍有异常,可排查以下点:
- Discord开发者面板中是否已开启
Message Content Intent ffmpeg和yt-dlp的环境路径配置是否有效- bot是否具备目标语音频道的连接、发言权限
内容的提问来源于stack exchange,提问作者cxevo
相关产品推荐
相关产品推荐

