当前位置: 首页 > 知识库问答 >
问题:

如何使用bot Discord编辑嵌入。js?

曹茂材
2023-03-14

如何使用我的机器人编辑已发送的嵌入?首先,我构建了一个嵌入式:

const countdownEmbed = {
color: 0x0099ff,
title:('Countdown'),
author: {
    name:`${user_name}`,
    icon_url: `${user_pfp}`,
},
description: 'Your countdown starts in **3 seconds**',
thumbnail: {
    url: `${client_pfp}`,
},
timestamp: new Date(),
footer: {
    text: `© ${client_name}`, 
    icon_url: `${client_pfp}`,
},
};

然后我做了一个新的嵌入:

const countdownEmbed2 = {
    title:("New title!"),
    description: 'Your countdown starts in **2 seconds**',
};

创建“更新”嵌入后,我试图发送消息,然后在一秒钟后编辑它:

message.channel.send({ embed: countdownEmbed })
.then((msg)=> {
    setTimeout(function(){
        msg.edit(countdownEmbed2);
    }, 1000)
});

我的代码只发送初始嵌入,不进行编辑。但是如果我在msg中更改CountEmbed2。编辑(countdownEmbed2)对于一个字符串,它将编辑不一致的消息本身,但不会编辑嵌入的消息。有办法解决这个问题吗?还是有更简单的方法来编辑嵌入?

共有2个答案

卢枫涟
2023-03-14

这里是一个编辑的例子

const editEmbed = new Discord.MessageEmbed()
  .setDescription('this is the old description')
message.channel.send(editEmbed).then((m) => 
m.edit(editEmbed.setDescription('this is the new description')))

让我知道这是否有效

云焱
2023-03-14

我不确定为什么,但在我的测试后,我得出结论,你的问题是由你写嵌入的方式引起的。

如果您使用MessageEmbed构造函数(如果您使用discord.jsv11,它是RichEmbed),它将工作。

这在测试时起作用了:

const countdownEmbed = new MessageEmbed()
    .setDescription('test1')

const countdownEmbed2 = new MessageEmbed()
    .setDescription('test2')
    .setColor('RED')

message.channel.send({ embed: countdownEmbed }).then((msg) => {
    setTimeout(function () {
        msg.edit(countdownEmbed2);
    }, 1000)
})
 类似资料:
  • 我正在尝试开发一些代码来显示bot何时上线,并让嵌入的消息颜色每2秒改变一次其他的东西。(2000ms)但我不知道是怎么回事,我得到一个错误,说或类似的东西。 我所做的是...创建超时。编辑该消息,但它将为uptime部分显示不同的消息/输出。删除并发送消息。 我希望当它联机时,它会发送嵌入消息,然后2秒钟后,它会编辑颜色,等等。 输出是一个bot给出了一个错误,或者根本不工作。

  • 问题内容: 我正在尝试使用Selenium / Webdriver 自动将一些文本插入使用tinymce创建的文本框中 该文本框不是普通的香草文本框,因此以下操作无效: 像使用纯文本框https://code.google.com/p/selenium/wiki/GettingStarted一样可以正常工作 以下是屏幕截图,显示了如何在浏览器的“元素”选项卡中查看textarea元素的位置:htt

  • 把一种编程语言嵌入到一个系统对程序员来讲有着几乎与性一样的魔力。这是一种最具有创造力的可以表现的行为。这使得系统惊人地强大。这也允许你锻炼大多数创造性和有生命力的能力,把系统变成你的朋友。 世界上最好的文本编辑器都有嵌入性语言。这可以被用于预计的观众可以掌握的语言的范围,语言的使用可以变为可选的,正如文本编辑器里那样,这样在一开始可以使用它,而没有其他人必须使用它。 我和许多其他的程序员曾坠入创造

  • 问题内容: 这是我的 JSON 我需要升级到基于 如何在PHP中实现呢? 问题答案: 首先,您需要对其进行解码: 然后更改数据: 然后重新编码并将其保存回文件中:

  • 我在react中的多个输入中添加了动态值,然后尝试对其进行编辑,但它根本不可编辑。代码如下: 我没有使用defaultValue属性,并且添加了onChange事件,但它不起作用!

  • 我需要清除编辑文本时单击按钮。在java中,我们使用getText或setText,但在科特林中,我找不到任何东西。 我尝试使用此选项,但---text=“”---导致类型不匹配