Discord Python 机器人删除特定频道中不是命令的消息

所以我有一个#support 频道,我的 discord 成员可以在其中输入 =support,机器人会向他们发送消息以帮助他们,之后机器人将删除用户在频道中输入的 =support 命令以保持频道清洁,但是在此频道中,他们还可以键入任何不是命令的消息,并且机器人不会删除它,如果不是命令,机器人是否有办法删除消息?



拉风的咖菲猫
浏览 156回答 2
2回答

繁华开满天机

这可以使用on_message@bot.eventasync def on_message(m):    if m.channel.id == ChannelIDOfSupport Channel:        if m.content.replace(bot.prefix, "") not in [i.name for i in bot.commands]:            await m.delete()

回首忆惘然

所以基本上我所做的是替换消息侦听器的实际命令,如果它以支持执行命令开始,那么我恢复了命令功能。它看起来像这样:async def on_message(m):    if m.channel.id == 735866701069025301:        if m.content.startswith('=ticket'):            await m.author.send('Your ticket will be created according to what you choose, use the = before choosing a number and then put the number next to it (Example: =2) \n \n **1. General Support** \n \n **2. Staff Application**')            await m.channel.purge()        else: {            await m.delete()}    await client.process_commands(m)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python