Python 3.x 删除特定的个人信息
现在它只删除“内容”最后的消息:Python 3.x 删除特定的个人信息,python-3.x,discord.py-rewrite,Python 3.x,Discord.py Rewrite,现在它只删除“内容”最后的消息: @commands.command() @commands.has_permissions(manage_guild=True) async def clear(self, ctx, content:int): await ctx.message.delete() if content > 0: await ctx.channel.purge(limit=con
@commands.command()
@commands.has_permissions(manage_guild=True)
async def clear(self, ctx, content:int):
await ctx.message.delete()
if content > 0:
await ctx.channel.purge(limit=content)
if content == 1:
title = f'Usunięto {content} wiadomość'
colour = discord.Colour.blue()
else:
title = f'Usunięto {content} wiadomości'
colour = discord.Colour.blue()
else:
title = 'Hej! Wartość nie może być mniejsza od 0!'
colour = discord.Colour.red()
clear = discord.Embed(
title = title,
colour = colour
)
clear.set_author(name=ctx.bot.user.name, icon_url=ctx.bot.user.avatar_url)
clear.set_footer(text=version)
textMsg = await ctx.send(embed=clear)
await textMsg.delete(delay=2)
我想让机器人只删除特定的人(例如。"!clear 5@Thundo#0000使用清除函数的检查kwarg。它接受一个带有一个参数的函数-消息。只有当消息的作者是您试图删除其消息的人时,您才能使该函数返回True。将该函数传递给检查kwarg。您还可以传递消息的数量sages,这应该被删除,限制为整数。boom,就是这样,你能举个例子吗?这可能是勺式馈送,但不管你怎么做:D也使用pic中的代码,将成员参数的默认值设为None,这样如果你不给成员,它就不会给出错误,而是默认为“无”,然后作为第一行,您可以检查成员是否为“无”。如果为“无”,则在不使用检查的情况下清除。好的,它可以工作,但现在我遇到了discord.channel.purge(限制)问题例如!clear 4@Thundo-如果Thundo是作者,它会尝试删除最后4条消息,但如果不是,它不会-这是真的,但问题是如果最后4条消息不是Thundo的,它不会删除任何内容,因为没有Thundo的消息。我想让机器人尝试删除最后4条Thundo的消息,即使这条消息es是3天前发送的,其他成员在此频道上发送垃圾邮件。有人可以帮助解决此问题吗?:-)您可以使用channel.history()进行搜索,直到您计算出此人的给定邮件数量。每次都将它们保存在列表中,然后在最后删除它们。问题是,它查找的每100条消息都是对discord API的调用。如果你经常这样做,那就不好了。他们可能会因为滥用API而禁用您的帐户。因此,在这样一个场景中,此人从未发送过消息,而您正在一个包含500000条消息的服务器中查找他们的消息,您可以看到这会变得多么糟糕