Как сделать так, чтобы в сообщении, которое выводил модал, оставлялся ник того, кто отправил этот модал и чтобы ему писало одобрено или нет?
Вот код:
class Otveting(disnake.ui.View):
def __init__(self):
super().__init__()
self.value = Optional[bool]
@disnake.ui.button(label="✅", style=disnake.ButtonStyle.green, custom_id="✅")
async def confirmi(self, ctx, button: disnake.ui.Button, inter: disnake.Interaction):
user = bot.get_user(member.id)
await inter.respone.user.send("Ваша заявка в персонал сервера одобренна!")
self.value = True
@disnake.ui.button(label="❌", style=disnake.ButtonStyle.green, custom_id="❌")
async def canceli(self, ctx, button: disnake.ui.Button, inter: disnake.Interaction):
user = bot.get_user(member.id)
await inter.respone.user.send("Ваша заявка в персонал сервера отклонена!")
self.value = False
Это класс для ответа кнопкой под ответом модала одобрено или нет. Если нажимаешь на галочку, то пользователю, который отправил модал, пишет одобрено, если крестик, то противоположное.
Вторая часть кода:
class MyModal(disnake.ui.Modal):
def __init__(self):
# The details of the modal, and its components
components = [
disnake.ui.TextInput(
label="Ваше имя и возраст",
placeholder="Введите ваше имя и возраст",
custom_id="Имя и возраст",
style=TextInputStyle.short,
max_length=20,
),
disnake.ui.TextInput(
label="Расскажите немного о себе",
placeholder="Расскажите о ваших хороших качествах, чем занимайтесь?",
custom_id="О себе",
style=TextInputStyle.paragraph,
max_length=140,
),
disnake.ui.TextInput(
label="Был ли у вас опыт ранее на данных должностях?",
placeholder="Да/Нет",
custom_id="Был ли опыт?",
style=TextInputStyle.paragraph,
max_length=3,
),
disnake.ui.TextInput(
label="Сколько времени готовы уделять серверу?",
placeholder="Пример: 2-3 часа",
custom_id="Пример онлайна",
style=TextInputStyle.paragraph,
max_length=9,
),
disnake.ui.TextInput(
label="Ваше знание правил от 1 до 10",
placeholder="Пример: 10",
custom_id="Знание правил",
style=TextInputStyle.paragraph,
max_length=2,
),
]
super().__init__(title="Создать заявку в персонал сервера", components=components)
# The callback received when the user input is completed.
async def callback(self, inter: disnake.ModalInteraction):
embed = disnake.Embed(
title=f"Новая заявка в персонал сервера от - ",
color = 0xFF00FF,
)
for key, value in inter.text_values.items():
embed.add_field(
name=key.capitalize(),
value=value[:1024],
inline=False,
)
channel = bot.get_channel(1488203458329968730)
viev = Otveting()
await channel.send(embed=embed, view=viev)
await inter.response.send_message("Заявка успешно подана ожидайте рассмотрения. С вами свяжутся.", ephemeral=True)