Во первых, там где bot.wait_for(...), у вас прописано не "button_click", а "buttton_click", т.е. с тремя t.
Во вторых при запуске кода вам выдаст ошибку, мол у response нет свойства components. Возможно это работает в прошлых версиях, но в новой - нет. Решение - добавить кнопкам custom_id, и проверять его:
@bot.command()
async def test(ctx):
await ctx.send(
embed=discord.Embed(title="тебе нравится наш сервер?"),
components=[
Button(style=ButtonStyle.red, label="ДА!", custom_id="yes"),
Button(style=ButtonStyle.green, label="ну такое..", custom_id="no"),
]
)
response = await bot.wait_for("button_click")
if response.channel == ctx.channel:
if response.custom_id == "yes":
await response.respond(content="рады стараться!")
else:
await response.respond(content="в чем проблема?")
И лучше добавить проверку канала в wait_for, сделать это можно так:
def response_check(inter):
return inter.channel == ctx.channel
response = await bot.wait_for("button_click", check=response_check)
или так:
response = await bot.wait_for("button_click", check=lambda inter: inter.channel == ctx.channel)
Тогда код будет выглядеть так:
@bot.command()
async def test(ctx):
await ctx.send(
embed=discord.Embed(title="тебе нравится наш сервер?"),
components=[
Button(style=ButtonStyle.red, label="ДА!", custom_id="yes"),
Button(style=ButtonStyle.green, label="ну такое..", custom_id="no"),
]
)
response = await bot.wait_for("button_click", check=lambda inter: inter.channel == ctx.channel)
if response.custom_id == "yes":
await response.respond(content="рады стараться!")
else:
await response.respond(content="в чем проблема?")