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

Discord.py实现Embed内按钮假Nitro命令无响应问题排查

Discord.py 假Nitro整蛊命令无法触发排查方案
  • 首先解决依赖冲突:你同时导入了discord_components和discord_buttons_plugin两个功能重叠的第三方按钮库,二者API逻辑会互相干扰,直接删除其中一个不需要的导入即可。更推荐使用discord.py 2.0及以上版本内置的组件系统,不需要安装额外第三方库,稳定性更强。
  • 检查Cog注册逻辑:你贴出的代码仅为Cog类的内部代码片段,缺少外层的class 自定义Cog名(commands.Cog):类定义,同时要确认你在机器人主程序的异步上下文中执行了await client.add_cog(自定义Cog名(client))的加载逻辑,未完成注册的Cog内部命令不会被机器人识别触发。
  • 检查触发条件配置:首先确认你的机器人主程序中设置了正确的命令前缀,比如前缀设置为!的情况下,需要输入!nitro才能触发命令。其次你给命令加了@commands.has_permissions(ban_members=True)的权限校验装饰器,触发命令的账号没有封禁成员权限的情况下,命令会被直接拦截不会执行。
  • 修正类变量定义:你在__init__方法中定义的buttons是局部变量,类内其他方法无法访问,需要修改为self.buttons = ButtonsClient(client),调用发送方法时改为await self.buttons.send(...),否则命令执行时会抛出变量未定义报错(你当前没有报错说明命令还没走到执行步骤就被拦截了)。

以下是改用discord.py内置组件的简化实现代码,无需额外依赖:

import discord
from discord.ext import commands
from discord import ui

class NitroPrankCog(commands.Cog):
    def __init__(self, client):
        self.client = client

    @commands.command(name='nitro')
    @commands.has_permissions(ban_members=True)
    async def nitro(self, ctx, member: discord.Member = None):
        member = member or ctx.author
        embed = discord.Embed(
            title = "**You've been gifted a subscription!**",
            description = f"||**{member.mention}**|| has gifted you Nitro for **1 month!**",
            color = 0xc17ce0
        )
        embed.set_image(url = 'https://media.threatpost.com/wp-content/uploads/sites/103/2021/04/19145523/Discord-Nitro-e1618858537976.png' )
        # 内置链接按钮实现
        prank_view = ui.View()
        prank_view.add_item(ui.Button(
            style=discord.ButtonStyle.link,
            label="Accept",
            url="https://c.tenor.com/Bvb1iMhQQUUAAAAC/gorilla-middle-finger.gif"
        ))
        await ctx.send(embed=embed, view=prank_view)

# 主程序异步初始化位置添加以下代码完成Cog注册
# await client.add_cog(NitroPrankCog(client))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 18:03:03