from discord.ui import View, button from discord import Interaction, ButtonStyle, Embed, Color, TextChannel, Forbidden, Message, Member, User, File, HTTPException from Christmas.UI.Embed import Mail_Embed from Christmas.Database import database class Mail_Confirm_Button(View): def __init__(self, recive_user: Member, title: str, description: str, *args, **kwargs): self.recive_user = recive_user self.title = title self.description = description super().__init__(timeout=None) @button(label="전송", style=ButtonStyle.green, custom_id="mail_send") async def send(self, button, interaction: Interaction): await interaction.response.defer() if await database.get_guild(interaction.guild.id) == None: await interaction.edit_original_response(embed=Embed(title="❌ 에러!", description="서버가 가입되어있지 않아요! 서버에 가입해주세요!"), view=None) return else: await database.insert_mail(interaction.user.id, self.recive_user.id, self.title, self.description) await interaction.edit_original_response(embed=Mail_Embed.mail_sended(receive_user=self.recive_user), view=None) @button(label="취소", style=ButtonStyle.red, custom_id="mail_cancel") async def cancel(self, button, interaction: Interaction): await interaction.response.defer() await interaction.edit_original_response(embed=Embed(title="✅ 전송취소!", description="편지 전송을 취소했어요!"), view=None)