The reason this isn't working is because ctx.channel.history()
is an async function, so you'll have to use the async
keyword before the loop. Like this:
@bot.command()
async def purge(ctx, limit=100, member: discord.Member=None):
await ctx.message.delete()
msg = []
async for m in ctx.channel.history():
if m.author == member:
msg.append(m)
await ctx.channel.delete_messages(msg)
You can also just use the purge
function with a lambda instead. If you were to go that route, your code would look like this:
@bot.command()
async def purge(ctx, limit=100, member: discord.Member=None):
await ctx.message.delete()
deleted = await ctx.channel.purge(limit=100, check=lambda msg: msg.author == member)
await ctx.channel.send('Deleted {} message(s)'.format(len(deleted)))
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…