Created
July 6, 2022 06:17
Revisions
-
bensonchow123 created this gist
Jul 6, 2022 .There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,64 @@ class AdvertisementConfirmButton(ui.View): def __init__(self, author, skybies_cost, num_messages): super().__init__(timeout=10) self.reply = None self.author = author self.skybies_cost = skybies_cost self.num_messages = num_messages async def on_timeout(self): if self.reply.reference: replied_to = self.reply.reference.resolved await replied_to.delete() await self.reply.delete() async def interaction_check(self, interaction): if self.author.id != interaction.user.id: await interaction.response.send_message( "This confirmation is not for you, you cannot confirm other's advertisement" ) async def _status_embed(self, status, author): if status == "accepted": description = ( f"Message is sent!\n" f"This is your {self.num_messages} message in the past 7 days,\n" f"so {self.skybies_cost} skybies is deduced from your skybie count" ) else: description = ( f"Message is deleted, as you canceled your advertisement" ) colour = 0x4bb543 if status == "accepted" else 0xff0033 status_embed = Embed( description=description, colour=colour ).set_author( name=author.display_name, icon_url=author.avatar.url ).set_thumbnail( url="https://cdn.discordapp.com/attachments/850019796014858280/992247149767164026/promotion.png" ) return status_embed @ui.button(label="Confirm", style=ButtonStyle.success) async def confirm(self, button: ui.Button, interaction: Interaction): skybies = interaction.client.get_cog("Skybies") skybies._take_skybies(interaction.user, self.skybies_cost) status_embed = await self._status_embed("accepted", interaction.user) await interaction.response.send_message( embed=status_embed, ephemeral=True ) await interaction.message.delete() @ui.button(label="Cancel", style=ButtonStyle.danger,) async def decline(self, button: ui.Button, interaction: Interaction): if interaction.message.reference: await interaction.message.reference.resolved.delete() status_embed = await self._status_embed("canceled", interaction.user) await interaction.response.send_message( embed=status_embed, ephemeral=True ) await interaction.message.delete()