我有以下代码:
(".....................").then(sentMessage => sentMessage.edit(".....................")).then(sentMessage => sentMessage.edit("....................")).then(sentMessage => sentMessage.edit("....................")).then(sentMessage => sentMessage.edit("....................")).then(sentMessage => sentMessage.edit("....................")).then(sentMessage => sentMessage.edit("..................")).then(sentMessage => sentMessage.edit(".........................")).then(sentMessage => sentMessage.edit("..:tired_face:.:red_car:......................")).then(sentMessage => sentMessage.edit("...:ghost::red_car:......................")
如何将其放入使用以下代码嵌入的discord.js中:
message.channel.send({
"embed": {
"title": "Car",
"description": - i want the above code to be here -,
"color": 16763981,
"footer": {
"text": "Have a fun ride!"
}
}
})
}
discord.js有可能吗?如果是这样,请帮帮我!不知道如何实现这一目标。
:)将
答案 0 :(得分:1)
我不知道你到底想要做什么。我想你制作的是动画,如果没有,你只想在你的嵌入中打印这段代码,只需将这段代码放在反引号中
description: `(".....................")
.then(sentMessage => sentMessage.edit("....................."))
.then(sentMessage => sentMessage.edit("...................."))
.then(sentMessage => sentMessage.edit("...................."))
.then(sentMessage => sentMessage.edit("...................."))
.then(sentMessage => sentMessage.edit("...................."))
.then(sentMessage => sentMessage.edit(".................."))
.then(sentMessage => sentMessage.edit("........................."))
.then(sentMessage => sentMessage.edit("..:tired_face:.:red_car:......................"))
.then(sentMessage => sentMessage.edit("...:ghost::red_car:......................")`,

如果你想制作动画,你将不得不使用机器人来删除和重写动画的每一步的嵌入(如果我'你不能编辑嵌入。我没有错)
尝试更明确地了解真正想要展示的内容
答案 1 :(得分:0)
您可以创建lastMessage的变量(而不是将其再次发送),然后创建message.edit()
答案 2 :(得分:0)
如果我对您的理解正确,您想将第一段代码发送到description字段中并进行编辑,以使其成为动画吗?
我以前没有尝试编辑嵌入的消息,但这就是我要解决的方法。
const sendCarAnimation = async (message) => {
// define the steps here
const animationSteps = [
".....................",
".....................",
"....................",
"....................",
"....................",
"....................",
"..................",
".........................",
"..:tired_face:.:red_car:......................",
"...:ghost::red_car:......................"
];
// generate an embed using the RichEmbed functionality
const embed = new Discord.RichEmbed()
.setTitle('Car')
.setDescription(animationSteps[0])
.setColor(16763981)
.setFooter('Have a fun ride!')
// initialize the message with the first embed
let messageState = await message.channel.send(embed);
// loop through and edit the message
let isFirst = true;
for(let currentStep of animationSteps) {
if(isFirst) {
isFirst = false;
continue;
}
embed.setDescription(currentStep);
messageState = await messageState.edit(embed);
}
}
注意::这将需要执行很多请求,因此您很可能会受到不和谐的限制。因此,我认为这不是一个好主意。这是他们的documentation。您可能可以使用Discord.js的
提取一些棘手的代码client.on('rateLimit', (rateLimitInfo) => {});
事件。 Documentation也与此链接。祝你好运!
答案 3 :(得分:0)
知道了!我要解决的问题是在启动时使用channel = client.user.guilds.cache.get("Guild id here").channels.cache.get("channel id")
抢占了正确的频道,建立了一个刚刚说旧的嵌入,然后发送了嵌入。
我确实包括了一系列动画步骤,例如Emil Choparinov和一个msgProgress
变量。该漫游器会检测何时发送邮件,并检查if (msg.content === '')
。如果为true,则会将recievedEmbed
常量设置为msg.embeds[0]
。
然后,使用旧的嵌入作为起点,将新的常量embed
设置为新的Discord.MessageEmbed
,并将标题设置为animationSteps[msgProgress]
。然后,它调用msg.edit(embed)
,并将msgProgress
变量更改为1。
还有一个client.on('messageUpdate', msg => {})
,它具有相同的代码,除了在开始时,它检查msg progress> 9,如果是,则返回。这是代码:
require('dotenv').config();
const Discord = require('discord.js');
const client = new Discord.Client();
var channel;
const genericEmbed = new Discord.MessageEmbed()
.setTitle("old");
const animationSteps = [
"...............:red_car:......",
"............:red_car:.........",
"........:red_car:............",
".....:red_car:...............",
"..:red_car:..................",
":red_car:....................",
":open_mouth:....:red_car:..............",
".:cold_sweat:..:red_car:......................",
"..:tired_face:.:red_car:......................",
"...:ghost::red_car:......................"
];
var msgProgress = 0;
client.on('ready', () => {
console.log(`Logged in as ${client.user.tag}!`);
channel = client.guilds.cache.get("753227876207165570").channels.cache.get("753227876207165573");
console.log(channel);
const firstEmbed = new Discord.MessageEmbed()
.setTitle("old");
channel.send(firstEmbed);
});
client.on('message', msg => {
if (msg.content === '') {
console.log("good");
channel = msg.channel;
const receivedEmbed = msg.embeds[0];
const embed = new Discord.MessageEmbed(receivedEmbed)
.setTitle(animationSteps[msgProgress]);
msg.edit(embed);
msgProgress++;
}
});
client.on('messageUpdate', msg => {
if (msgProgress > 9) {
return;
}
if (msg.content === '') {
console.log("good");
channel = msg.channel;
const receivedEmbed = msg.embeds[0];
const embed = new Discord.MessageEmbed(receivedEmbed)
.setTitle(animationSteps[msgProgress]);
msg.edit(embed);
msgProgress++;
}
});
client.login(process.env.DISCORD_TOKEN);
希望这对您有所帮助! ?