我试着用一个按钮来取消禁止被禁止的用户,但是idk

问题描述 投票:0回答:1

我尝试使用按钮执行禁止命令以解除对 discord.py 中被禁止用户的禁止

我试过这个

@client.hybrid_command()
@commands.has_permissions(ban_members=True)
async def ban(ctx, member:discord.Member, *, reason="nicht gegeben"):
    await member.ban(reason=reason)
    embed = discord.Embed(description=f' {member.mention} wurde gebannt von {ctx.author.mention}\n**Grund:** {reason}')
    unban = discord.ui.Button(label="UNBAN", style=discord.ButtonStyle.red)
    view=discord.ui.View()
    view.add_item(unban)
    await ctx.send(embed=embed, view=view)
    button_callback = button_callback
    async def button_callback(interaction, member):
        print(member)
        await interaction.guild.unban(member)
button discord.py member
1个回答
0
投票

你应该包括在内;什么不起作用,什么起作用以及您遇到了什么错误。不管怎样,这就是你的代码有什么问题。

  1. button_callback
    在分配前被引用。

简单,向上移动

    view.add_item(unban)
    await ctx.send(embed=embed, view=view)
    async def button_callback(interaction, member):
        print(member)
        await interaction.guild.unban(member)
    button_callback = button_callback
  1. 你应该在发送视图之前启动按钮的回调
    unban = discord.ui.Button(label="UNBAN", style=discord.ButtonStyle.red)
    view=discord.ui.View()
    async def button_callback(interaction, member):
        print(member)
        await interaction.guild.unban(member)
    button_callback = button_callback
    view.add_item(unban)
    await ctx.send(embed=embed, view=view)
  1. 不正确的回调分配。 您应该将
    button_callback
    分配给按钮本身。您可以将回调分配给 button.callback.
button_callback = button_callback

unban.callback = button_callback
  1. button_callback
    “缺少必需的位置参数'成员'”。由于您的
    button_callback
    在您的命令中,因此无需在此处定义成员。
    async def button_callback(interaction):
        print(member)
        await interaction.guild.unban(member)

PS:按钮回调无响应所以提示“交互失败”

© www.soinside.com 2019 - 2024. All rights reserved.