如何向此事件添加冷却时间或速率限制?不和谐

时间:2020-09-02 13:12:33

标签: python discord discord.py

@commands.Cog.listener()
    async def on_message(self, message):
        user_in  = message.content.lower()
        if "gn" in  user_in.split(" ") or "good night" in user_in :
            if message.author.bot: return
            if not message.guild: return
            await message.channel.send(f"Good Night, <@{message.author.id}>")

我需要了解如何为此事件添加冷却时间,以便人们dont垃圾邮件gn或晚安

2 个答案:

答案 0 :(得分:1)

答案 1 :(得分:0)

    async def create_embed(self, ctx, err):
        embed = discord.Embed(title=f"Error Caught!",color=discord.Colour.red())
        embed.add_field(name=f"Info on the error.", value=f"{err}")
        embed.set_thumbnail(url=self.bot.user.avatar_url_as(static_format="png"))
        message_cooldown = commands.CooldownMapping.from_cooldown(1.0, 60.0, commands.BucketType.user)
        bucket = message_cooldown.get_bucket(ctx.message)
        retry_after = bucket.update_rate_limit()
        if retry_after:
            return
        else:
            await ctx.send(embed=embed)

这是在函数中创建嵌入的一个很好的例子,它可以使您的代码更清晰以捕获错误,并确保它不会被冷却映射发送垃圾邮件。