首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何删除嵌入消息Discord.py?

如何删除嵌入消息Discord.py?
EN

Stack Overflow用户
提问于 2018-08-06 01:12:43
回答 2查看 5.9K关注 0票数 0

嗨,我有一个问题,自动删除消息与是一个嵌入这里是我正在使用

代码语言:javascript
运行
复制
@commands.command(name='hug', pass_context=True, aliases=['hugs'])
    @commands.cooldown(5, 60, commands.BucketType.user)
    async def hug(self, context, member: discord.Member):
        """Hug your friend"""
        author = context.message.author.mention
        mention = member.mention

        hug = "{0} hugs {1}"

        choices = ['example.gif']

        image = random.choice(choices)

        embed = discord.Embed(description=hug.format(author, mention), colour=discord.Color(random.randint(0x000000, 0xFFFFFF)))
        embed.set_image(url=image)

        await self.bot.say(embed=embed)
        await asyncio.sleep(3) 
        await self.bot.delete_message(embed)

看起来我在这里做错了什么,因为它将抛回一个错误

代码语言:javascript
运行
复制
File "C:\Users\Tom\AppData\Local\Programs\Python\Python36-32\lib\site-packages\discord\client.py", line 1261, in delete_message
    channel = message.channel
AttributeError: 'Embed' object has no attribute 'channel'
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-08-06 01:29:28

您删除的是Embed所在的消息,而不是Embed本身。

代码语言:javascript
运行
复制
sent = await self.bot.say(embed=embed)
await asyncio.sleep(3) 
await self.bot.delete_message(sent)
票数 0
EN

Stack Overflow用户

发布于 2020-10-29 03:31:21

对于重写,现在就是

代码语言:javascript
运行
复制
# For on_message
await message.delete()

# For commands
await ctx.message.delete()

和用于在编辑时移除嵌入

代码语言:javascript
运行
复制
# msg would be when you send the message Ex. msg = await ctx.send(embed=embed)
# Make sure to specify what you want to edit with 'content' and 'embed'
await msg.edit(content='Content Here', embed=None)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51696533

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档