I want clear or disable reactions in setting time using nextcord.py
I making poll command and wanna delete or disable(I dont know can I or not) reactions in setting time
I have code like this
@commands.command() @commands.has_permissions(administrator=True) async def poll(self, ctx, time: int, title, *options): await ctx.message.delete() if time == None: await ctx.send("Укажите время!", delete_after = 5) elif title == None: await ctx.send("Укажите название!", delete_after = 5) elif options == None: await ctx.send("Укажите вопросы!", delete_after = 5) if len(options) >= 6: await ctx.send("Максимальное количество вопросов - 6!") else: time1 = datetime.now() time2 = timedelta(minutes=time) time_plus = time1 + time2 time_plus = nextcord.utils.format_dt(time_plus,style = "T") embed = nextcord.Embed(color = 0xFFFFFF, title = title, description=f""" Опроc закончится в {time_plus}n """) embed.set_thumbnail(url = "https://s10.gifyu.com/images/ezgif.com-gif-maker2423fb57189d7e5fb.gif") if len(options) == 1: embed.add_field(name = f"1",value=f"{options[0]}") m = await ctx.send(embed = embed) await m.add_reaction("1️⃣") if datetime.now() == time_plus: m.clear_reaction() if len(options) == 2: embed.add_field(name = f"1",value=f"{options[0]}") embed.add_field(name = f"2",value=f"{options[0]}") m = await ctx.send(embed = embed) await m.add_reaction("1️⃣") await m.add_reaction("2️⃣")
I have my time time_plus
and wanna do something when time invoke
Advertisement
Answer
You can use reaction.clear
or reaction.remove
to remove reaction from your message.
Here’s an example to remove specific reaction from user by using on_raw_reaction_add
@bot.event async def on_raw_reaction_add(payload): channel = await bot.fetch_channel(payload.channel_id) message = await channel.fetch_message(payload.message_id) emoji = payload.emoji.name if message.author.id != bot.user.id or payload.member.id == bot.user.id: return if emoji == '1️⃣': #if user react 1️⃣ to your message #do your stuff here reaction = nextcord.utils.get(message.reactions, emoji=emoji) await reaction.remove(payload.member) #remove the reaction