我正在尝试开发一些代码,以显示该bot何时在线,并让嵌入的消息颜色每2秒更改一次。 (2000毫秒)但是我不知道怎么办,我得到一个错误,提示channel.send.edit is not a function
或类似内容。
我所做的是... 创建超时。 编辑消息,但是它将为正常运行时间部分显示不同的消息/输出。 删除并发送消息。
var myInfo = new discord.RichEmbed()
.setAuthor(`${bot.user.username} is now ONLINE`,`${bot.user.avatarURL}`)
.setDescription(`The bot is now up, please check the following below to see when the bot was online.`)
.addField(`Ready At`,`${bot.readyAt}`,true)
.addField(`Timestamp`,`${bot.readyTimestamp}`,true)
.addField(`Uptime`,`${bot.uptime}`,true)
.setColor(0x008704)
.setFooter('Bot is now online.')
.setThumbnail(`${bot.user.avatarURL}`)
var myInfo2 = new discord.RichEmbed()
.setAuthor(`${bot.user.username} is now ONLINE`,`${bot.user.avatarURL}`)
.setDescription(`The bot is now up, please check the following below to see when the bot was online.`)
.addField(`Ready At`,`${bot.readyAt}`,true)
.addField(`Timestamp`,`${bot.readyTimestamp}`,true)
.addField(`Uptime`,`${bot.uptime}`,true)
.setColor(0x00c13a)
.setFooter('Bot is now online.')
.setThumbnail(`${bot.user.avatarURL}`)
bot.channels.get("523649838693482507").send(myInfo).edit(myInfo2);
我希望机器人在上线时会发送嵌入消息,然后2秒钟后机器人会编辑颜色,依此类推。
输出是发出错误或完全不起作用的机器人。
答案 0 :(得分:0)
您可以通过将then()
方法附加到返回的Prom来使用message.channel.send(...)
的结果,例如...
message.channel.send(myInfo)
.then(m => m.edit(myInfo2)) // Note that this will edit the message immediately.
.catch(console.error);
您会注意到,我添加了catch()
方法来在返回错误的情况下捕获被拒绝的承诺。
或者,您可以将变量声明为已实现的承诺。但是,await
关键字只能在异步函数中。这是一个例子...
client.on('message', async message => {
try {
const m = await message.channel.send('Hello.');
await m.edit('Hi again.');
} catch(err) {
console.error(err);
}
});
在这种情况下,我们可以使用try...catch
语句代替单独的catch()
方法。
有关承诺的更多信息,请参见this MDN documentation。
有关TextChannel.send()
方法的更多信息,请参见the Discord.js documentation。
答案 1 :(得分:-1)
编辑:
尝试这个
client.on('message', message => {
if (message.channel.id === "523649838693482507") {
var myInfo = new discord.RichEmbed()
.setAuthor(`${bot.user.username} is now ONLINE`,`${bot.user.avatarURL}`)
.setDescription(`The bot is now up, please check the following below to see when the bot was online.`)
.addField(`Ready At`,`${bot.readyAt}`,true)
.addField(`Timestamp`,`${bot.readyTimestamp}`,true)
.addField(`Uptime`,`${bot.uptime}`,true)
.setColor(0x008704)
.setFooter('Bot is now online.')
.setThumbnail(`${bot.user.avatarURL}`)
var myInfo2 = new discord.RichEmbed()
.setAuthor(`${bot.user.username} is now ONLINE`,`${bot.user.avatarURL}`)
.setDescription(`The bot is now up, please check the following below to see when the bot was online.`)
.addField(`Ready At`,`${bot.readyAt}`,true)
.addField(`Timestamp`,`${bot.readyTimestamp}`,true)
.addField(`Uptime`,`${bot.uptime}`,true)
.setColor(0x00c13a)
.setFooter('Bot is now online.')
.setThumbnail(`${bot.user.avatarURL}`)
message.channel.send(myInfo)
.then(() => message.edit(myInfo2));
}
});