D0ulink
@D0ulink

Как сделать, чтобы при нажатии кнопки нужно было ввести сообщение в чат, и это сообщение записалось как статус в discord.py?

Я хочу сделать, чтобы при нажатии на кнопку типо срабатывала команда на изменение статуса, и статус менялся на сообщение, которое напишет пользователь в чат. Звучит просто, но я разобраться не могу. Помогите плиз!

Код:
@bot.command(aliases=['profile', 'prof', 'p', 'account'])
async def _profile(ctx, member: discord.Member = None):
    if member is None:
        locale.setlocale(locale.LC_TIME, 'ru_RU')
        date_format = "%d %B %Y, %A"
        embed = discord.Embed(title=f"{person} Профиль ― {ctx.author}")
        embed.add_field(name="・ID:", value=f"``` {ctx.author.id}```")
        embed.add_field(name="・Репутация:", value=f"""``` {cursor.execute("SELECT rep FROM users WHERE id = {}".format(ctx.author.id)).fetchone()[0]}```""")
        embed.add_field(name=f"・Статус:", value=f"""```{cursor.execute("SELECT rep FROM users WHERE id = {}".format(ctx.author.id)).fetchone()[0]}```""", inline=False)
        embed.add_field(name='・Аккаунт создан:', value=f'``` {ctx.author.created_at.strftime(date_format)}```', inline=False)
        embed.add_field(name='・Присоединился:', value=f'``` {ctx.author.joined_at.strftime(date_format)}```')

        embed2 = discord.Embed(title=f"Изменить статус", description="Введите Ваш новый статус в чат.")

        em1 = bot.get_emoji(888910406674939965)     # ИЗМЕНИТЬ
        msg = await ctx.send(embed=embed,
                             components=[
                                 [
                                 Button(style=ButtonStyle.grey, id='1', label="Изменить статус", emoji=em1)
                                ]
                             ]
                             )

        response = await bot.wait_for("button_click")
        if response.channel == ctx.channel:
            if response.component.id == "1":
                await msg.edit(embed=embed2,
                                       components=[
                                           [
                                               Button(style=ButtonStyle.grey, id='2', label="Сбросить статус")
                                           ]
                                       ]
        response = await bot.wait_for("message")
  • Вопрос задан
  • 831 просмотр
Решения вопроса 1
@TanderOFF
Проще добавь новую команду !addstatus и записывай статус в базу как текст
А в команде !profile проверяй есть ли какое значение в столбце user_status если есть до выводи его как ты выводишь значение репутации.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы