删除由机器人发送并由用户发送的特定消息。 Discord.py重写

时间:2019-01-20 12:18:47

标签: python-3.x discord.py-rewrite

discord.py重写及其迁移遇到很多麻烦。我查看了迁移到v1.0站点的情况,并说要放入message.delete(),所以我做到了,但是我意识到这没有用,所以我也放入了ctx。但这使它出错了。目前有两个命令出现此错误。

我已经尝试过将消息放入变量中。

@client.command()
async def clear(ctx, amount=100):
    message = ctx.message
    channel = ctx.message.channel
    messages = []
    await ctx.channel.purge(limit=int(amount+1))
    mymessage = await channel.send('Messages deleted')
    await ctx.message.delete(mymessage)

@client.command()
async def verify(ctx, *, arg):
    print(ctx.message.channel.id)
    print(ctx.message.author)
    if ctx.channel.id == 521645091098722305:
        role = await ctx.guild.create_role(name=arg)
        await ctx.message.author.add_roles(role)
        mymessage = await ctx.send('Done! Welcome!')
        await ctx.message.delete(mymessage)
        await ctx.message.delete(ctx.message)

我希望输出删除该消息。对于清晰的文件,它将删除它,然后将其交还。对于验证一个,它只是保持不变并显示错误:     从ex引发CommandInvokeError(exc) discord.ext.commands.errors.CommandInvokeError:命令引发了异常:TypeError:delete()接受1个位置参数,但给出了2个

我提供验证的角色有时也会进行3次。我已经进入任务管理器并杀死了所有的python,但是它仍然可以做到。有一次我正在清理时说完成!也欢迎您。如果您也可以回答这个问题,我将很高兴!预先谢谢你。

2 个答案:

答案 0 :(得分:0)

Message.delete不接受任何参数。这是您要删除的邮件上调用的一种方法。更改

await ctx.message.delete(mymessage)
await ctx.message.delete(ctx.message)

await mymessage.delete()
await ctx.message.delete()

答案 1 :(得分:0)

@client.command(pass_context=True)
async def delete(ctx, arg):
    arg1 = int(arg) + 1
    await client.purge_from(ctx.message.channel, limit=arg1)

!删除10-删除最后10条帖子