You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Discord音乐机器人无法识别自定义命令问题求助

解决Discord音乐机器人命令未找到问题

可能的原因及修复步骤

1. 确认命令触发格式正确

你的机器人命令前缀是?,触发命令时必须输入?join(而非直接输入join),否则机器人无法识别这是一条命令。

2. 开启Discord开发者门户的消息内容权限

即使代码中使用了discord.Intents.all(),仍需在Discord开发者门户中手动开启Message Content Intent:

  • 登录Discord开发者门户,找到你的机器人应用
  • 进入Bot页面,在Privileged Gateway Intents区域开启Message Content Intent

3. 修复代码中的问题

(1)优化Cog加载逻辑

main.py中的Cog加载循环可简化为更易读的形式,避免索引错误:

import discord 
from discord.ext import commands
import music

client = commands.Bot(command_prefix="?", intents=discord.Intents.all())

# 加载Cog
for cog in [music]:
    cog.setup(client)

@client.event
async def on_ready():
    print(f"已登录:{client.user}")

client.run("你的TOKEN")

(2)修正pause/resume命令的逻辑错误

原music.py中pause()和resume()方法无返回值,导致if判断失效,修改为:

@commands.command(name="pause")
async def pause(self, ctx):
    if ctx.voice_client and ctx.voice_client.is_playing():
        ctx.voice_client.pause()
        await ctx.send("已暂停 ⏸️")
    else:
        await ctx.send("当前无正在播放的音频")

@commands.command(name="resume")
async def resume(self, ctx):
    if ctx.voice_client and ctx.voice_client.is_paused():
        ctx.voice_client.resume()
        await ctx.send("已继续播放 ▶")
    else:
        await ctx.send("当前音频未暂停")

(3)添加错误处理(可选)

在main.py中添加全局错误处理,便于排查问题:

@client.event
async def on_command_error(ctx, error):
    if isinstance(error, commands.CommandNotFound):
        await ctx.send(f"未知命令:{ctx.message.content},请使用`?`作为前缀触发命令")
    else:
        await ctx.send(f"命令执行出错:{str(error)}")

4. 验证依赖版本

确保使用Discord.py v2.0+版本,旧版本的Intents机制与当前代码不兼容。检查版本:

pip show discord.py

若版本过低,更新至最新版:

pip install --upgrade discord.py

另外,youtube_dl已停止维护,建议替换为yt-dlp:

pip install yt-dlp

修改music.py中的导入与使用:

import yt_dlp  # 替换原import youtube_dl

# ...

with yt_dlp.YoutubeDL(YDL_OPTIONS) as ydl:
    info = ydl.extract_info(url, download=False)
    url2 = info['url']  # yt-dlp直接通过info['url']获取音频链接

内容的提问来源于stack exchange,提问作者user20931946

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 20:45:24