class ModalTicket(Modal):
def __init__ (self, *args, **kwargs) -> None:
super().__init__(
InputText(
label="Вы",
placeholder="Реальное имя - возраст"),
InputText(
label="ФИО"),
InputText(
label="стим"),
InputText(
label="аывп",
style=discord.InputTextStyle.long),
InputText(
label="ссылка ютуб",
placeholder="Ссылка...",
style=discord.InputTextStyle.long),
*args,
**kwargs,
)
async def callback(self, interaction: discord.Interaction):
member = interaction.user
channel = Bot.get_channel(helperschannel)
embed = discord.Embed(title="Заявка", color=discord.Color.random())
embed.add_field(name="Имя - Возраст", value=self.children[0].value, inline=False)
embed.add_field(name="ФИО", value=self.children[1].value, inline=False)
embed.add_field(name="Steam", value=self.children[2].value, inline=False)
embed.add_field(name="фыва", value=self.children[3].value, inline=False)
embed.add_field(name="Ссылка на канал", value=self.children[4].value, inline=False)
await interaction.response.send_message("Ваша заявка отправлена на рассмотрение команде проекта. Ожидайте!",
ephemeral=True)
message = await channel.send(member.mention, embed=embed)
await message.add_reaction("✅")
await message.add_reaction("❌")
role1 = discord.utils.get(member.guild.roles, id=sended)
await member.add_roles(role1)
emb = discord.Embed()
emb.add_field(name="Успешно!", value="Ваша заявка отправлена на рассмотрение хелперам проекта.", inline=False)
await member.send(embed=emb)
def check(arg):
if helperschannel == arg.channel_id and arg.user_id != bot_id:
return str(arg.emoji) == '✅' or str(arg.emoji) == '❌'
payload = await Bot.wait_for('raw_reaction_add', check=check)
if str(payload.emoji) == '✅':
role = discord.utils.get(member.guild.roles, id=approved)
role1 = discord.utils.get(member.guild.roles, id=sended)
await member.add_roles(role)
await member.remove_roles(role1)
emb = discord.Embed()
emb.add_field(name="Поздравляю!", value="Ваша заявка одобрено, вас ждет собеседование", inline=False)
await member.send(embed=emb)
elif str(payload.emoji) == '❌':
try:
message = await Bot.wait_for('message', timeout=10)
except asyncio.TimeoutError:
emb1 = discord.Embed()
emb1.add_field(name="Отказано!", value=f"Ваша заявка отклонена. Перепроверьте ее и подайте заново.", inline=False)
await member.send(embed=emb1)
return await channel.send(embed=discord.Embed(description=f"Причина отказа не указана."))
role1 = discord.utils.get(member.guild.roles, id=sended)
await member.remove_roles(role1)
emb = discord.Embed()
emb.add_field(name="Отказано!", value=f"Ваша заявка отклонена. Причина: {message.content}", inline=False)
await member.send(embed=emb)