DiscordJS 编辑现有嵌入

Posted

技术标签:

【中文标题】DiscordJS 编辑现有嵌入【英文标题】:DiscordJS edit existing embed 【发布时间】:2021-06-27 10:45:29 【问题描述】:

我想编辑 discord.js 中的现有嵌入。但我收到message.edit 不是函数的错误。

代码:

        await mongo().then(async mongoose => 

        const results = await applicationSchema.findOneAndDelete(
            guildId: guildId,
            applicationId: applicationId
        )

        for (const application of results.applications) 
            const  applicationId, userId, appliedfor  = application
            user22 = bot.users.cache.get(userId);
            let acceptembed = new Discord.MessageEmbed()
                .setColor(colours.maincolour)
                .setDescription(`Lieber <@$userId>! Deine Bewerbung wurde angenommen!`)
            user22.send(acceptembed)
                // m = reaction.messages.cache.fetch(applicationId);
                // m.edit(null,  embed: output );
            let message = bot.channels.cache.get('823554343827013652').messages.fetch(applicationId)
            await message.edit()
        

    )

【问题讨论】:

你需要在这里等待:let message = await bot.channels.cache.get(...).messages.fetch() 因为 fetch 返回一个承诺。 好的。谢谢@ZsoltMeszaros,它现在可以工作了 c: 太好了,不客气:) 【参考方案1】:

您要发送的消息应该放在.edit() 中,就像放在.send() 中一样。请注意,这不会添加到消息中,而是替换它。

bot.channels.cache.get('823554343827013652').messages.fetch(applicationId)
    .then(message => message.edit(acceptembed));

【讨论】:

以上是关于DiscordJS 编辑现有嵌入的主要内容,如果未能解决你的问题,请参考以下文章

Discord js - 如何在给定的时间段内继续对消息做出反应并编辑嵌入

Discord JS - 如何对同一个嵌入做出多次反应?

DiscordJS 13用户嵌入显示在特定频道发送的最后一条消息

使用客户端的参数根据用户留在命令中的参数创建自定义嵌入消息(Discord JS)

Discord.JS 嵌入:页脚中的用户头像

如何使用 nodeJS 和 discordJS 更改 Discord 频道名称?