有没有办法删除除机器人本身以外的任何人发送的消息,文档似乎表明它是可能的
您可以在没有任何适当权限的情况下删除自己的邮件。但是,要删除其他人的消息,您需要具有相应的权限。
但我找不到一种方法来定位消息,以便在on_message事件触发器中执行此操作,我是否遗漏了某些内容,或者这是不可能的?
答案 0 :(得分:4)
您需要机器人/用户帐户才能拥有“管理消息”权限。
@client.event
async def on_message(message):
await client.delete_message(message)
因此,事件将发生类似
>User sends message
>Bot detects that the user has sent a message
>Bot deletes the message that the user sent
希望你能够看到如何删除用户消息,只需确保将机器人/用户帐户作为“管理消息”权限。
答案 1 :(得分:1)
您可以使用 message.delete() 删除用户消息。
如果用户向服务器发送一些诅咒词,则这是一个代码,以便机器人清除(删除)消息。
@bot.event
async def on_message(message):
""" some on_message command """
if message.author.id == bot.user.id:
return
msg_content = message.content.lower()
curseWord = ['curse1', 'curse2']
# delete curse word if match with the list
if any(word in msg_content for word in curseWord):
await message.delete()
如果您使用的是 COG:
@commands.Cog.listener()
async def on_message(message):
# rest same as above