所以我最近添加了这段代码
@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)
机器人确实删除了消息,但机器人检测到命令的速度太快,因此其他机器人会回复。我想把它做到其他机器人无法回复的地方。我要问的是 - 是否有可能基本上将清除添加到此命令以使其清除最近的2条消息(命令+机器人回复)。
你可以这样做
@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)
在有人写了带有该前缀的消息后,它会被删除,它会检查最后一个消息的数量(无论你把limit
放在哪里取决于有多少机器人响应)并检查是否有人在你的muted_bots
id列表中写了这个消息。