所以我最近添加了此代码
@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条消息(该命令+机器人回复)。
答案 0 :(得分:0)
您可以这样做
@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列表中。