简体   繁体   English

删除回复的消息pycord

[英]delete replied message pycord

how can I make my bot delete the message I've replied in discord.py?如何让我的机器人删除我在 discord.py 中回复的消息? I have only code for standard clear command我只有标准清除命令的代码

@commands.has_permissions(manage_messages=True)
@bot.slash_command(description="Clears X messages.")
@discord.option("num", description="amount of messages")
@discord.option("target", description="from specific member")
async def clear(ctx, num: int, target: discord.Member=None):
    if num > 500 or num < 0:
        return await ctx.send("Invalid amount. Maximum is 500.")
    def msgcheck(amsg):
        if target:
           return amsg.author.id == target.id
        return True
    deleted = await ctx.channel.purge(limit=num, check=msgcheck)
    EmbClear = discord.Embed(title=":white_check_mark:Success!", description=f':thumbsup: Deleted **{len(deleted)}/{num}** messages.')
    await ctx.respond(embed=EmbClear, delete_after=5)

To be able to delete a message, you will need the Manage Messages permission.为了能够删除消息,您将需要“ Manage Messages ”权限。 You can add this permission to your bot by opening your server's settings, going to the "permissions" tab and selecting Manage Messages from the available options.您可以通过打开服务器设置、转到“权限”选项卡并从可用选项中选择Manage Messages来将此权限添加到您的机器人。 Once you've done that, you can delete a message with the following command: message.delete()完成后,您可以使用以下命令删除一条消息: message.delete()

You can use the delete() function on the Message object that you get back from replying.您可以在回复后收到的消息 object 上使用delete() function。 For example:例如:

@bot.event
async def on_message(message):
    if message.content.startswith('!hello'):
        msg = await message.channel.send('Hello!')
        await msg.delete()

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM