Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 发送后删除消息的Discord bot_Python_Discord_Discord.py - Fatal编程技术网

Python 发送后删除消息的Discord bot

Python 发送后删除消息的Discord bot,python,discord,discord.py,Python,Discord,Discord.py,我的discord bot上有一个过滤器,可以删除所有人的邮件,包括“discord.gg、@everybody、@here”,除非他们具有管理员角色。我的过滤器检查发送的每封邮件,它首先检查该用户是否具有管理员角色,然后检查内容。如果有人在担任管理员角色时发送消息(包含这3个黑名单单词中的一个或全部),则bot将允许发送消息。 不知怎的,过滤器停止工作了,我不知道。bot是用discord.py编写的。 问题是过滤器会阻止bot发送任何类型的消息。我已经缩小到第2行(从这段代码) @clien

我的discord bot上有一个过滤器,可以删除所有人的邮件,包括“discord.gg、@everybody、@here”,除非他们具有管理员角色。我的过滤器检查发送的每封邮件,它首先检查该用户是否具有管理员角色,然后检查内容。如果有人在担任管理员角色时发送消息(包含这3个黑名单单词中的一个或全部),则bot将允许发送消息。 不知怎的,过滤器停止工作了,我不知道。bot是用discord.py编写的。 问题是过滤器会阻止bot发送任何类型的消息。我已经缩小到第2行(从这段代码)

@client.event
异步def on_消息(消息):
如果“735893522032623646”不在str中(message.author.roles):
如果message.content中的“discord.gg”:
等待消息.channel.purge(限制=1)
打印('had inv link')
如果message.content中的“@everyone”:
等待消息.channel.purge(限制=1)
打印(‘每个人都有’)
如果message.content中有“@here”:
等待消息.channel.purge(限制=1)
打印('had here')

'735893522032623646',而str(message.author.roles)是一个包含
角色
对象的列表,而不是
角色ID
,因此您需要检查它是否在角色ID列表中

还要执行
message.delete()
而不是
purge()
要删除消息,有时
purge
也可以删除其他消息

@client.event
异步def on_消息(消息):
如果735893522032623646不在[message.author.roles中的i.id]中:
如果message.content中的“discord.gg”:
等待消息。删除()
打印('had inv link')
message.content中的elif“@everyone”:
等待消息。删除()
打印(‘每个人都有’)
message.content中的elif“@here”:
等待消息。删除()
打印('had here')
等待客户端处理命令(消息)