在某个特定的不和.py香肠

2024-03-29 07:38:54 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我最近添加了这个代码

@bot.event
async def on_message(message):
    prefix = re.findall('([;]|[-]|[=]+)', message.content.lower())
    if prefix and message.channel.id == "405815888177266689":
             await bot.delete_message(message)

bot确实删除了消息,但是bot检测到命令的速度太快,所以其他bot会回复。我想让它在其他机器人无法回复。我要问的是-是否可以将purge添加到这个命令中,使其清除最近2条消息(命令+bots回复)。在


Tags: 代码命令reevent消息messageasyncprefix
1条回答
网友
1楼 · 发布于 2024-03-29 07:38:54

你可以这样做

@bot.event
async def on_message(message):
  prefix = re.findall('([;]|[-]|[=]+)', message.content.lower())
  if prefix and message.channel.id == "405815888177266689":
    await bot.delete_message(message)

    muted_bots = ['bot_1_id','bot_2_id']
    async for msg in bot.logs_from(bot.get_channel("405815888177266689"), limit=4):
      if msg.author.id in muted_bots:
        await bot.delete_message(msg)

当有人用这个前缀写了一条消息并将其删除后,它会检查最后的消息数(根据有多少bot响应,limit)并检查写了muted_botsid列表中的人。在

相关问题 更多 >