为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

拉风的咖菲猫 2023-05-23 10:23:52
所以我有一个#support 频道,我的 discord 成员可以在其中输入 =support,机器人会向他们发送消息以帮助他们,之后机器人将删除用户在频道中输入的 =support 命令以保持频道清洁,但是在此频道中,他们还可以键入任何不是命令的消息,并且机器人不会删除它,如果不是命令,机器人是否有办法删除消息?
查看完整描述

2 回答

?
繁华开满天机

TA贡献1816条经验 获得超4个赞

这可以使用on_message


@bot.event

async 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()


查看完整回答
反对 回复 2023-05-23
?
回首忆惘然

TA贡献1847条经验 获得超11个赞

所以基本上我所做的是替换消息侦听器的实际命令,如果它以支持执行命令开始,那么我恢复了命令功能。它看起来像这样:


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)

查看完整回答
反对 回复 2023-05-23
  • 2 回答
  • 0 关注
  • 149 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信