Discord 如何制作从消息读取数据的嵌入?
我正试图制造一个不和谐的机器人来发布公告。我想创建一个命令,从消息中读取数据并将其转换为嵌入消息 示例命令:Discord 如何制作从消息读取数据的嵌入?,discord,discord.js,Discord,Discord.js,我正试图制造一个不和谐的机器人来发布公告。我想创建一个命令,从消息中读取数据并将其转换为嵌入消息 示例命令:!宣布标题、说明、链接、图像 const Discord = require('discord.js'); const bot = new Discord.Client(); //listener bot.on('ready', () => { bot.user.setGame('Hello!') }); bot.on('message', (message) => {
!宣布标题、说明、链接、图像
const Discord = require('discord.js');
const bot = new Discord.Client();
//listener
bot.on('ready', () => {
bot.user.setGame('Hello!')
});
bot.on('message', (message) => {
if(message.content == 'text') {
const embed = new Discord.RichEmbed()
.setTitle("Title!")
.setDescription("Description")
.setImage("https://i.imgur.com/xxxxxxxx.png")
.setURL("https://google.com")
.addField("Text", true)
//Nope
.setThumbnail("https://i.imgur.com/Rmiwd1j.png")
.setColor(0x00AE86)
.setFooter("Footer", "https://i.imgur.com/xxxxxxxx.png")
.setTimestamp()
/*
* Blank field, useful to create some space.
*/
message.channel.send({embed});
}});
bot.login('token');
我想根据文本进行更改。
如何执行此操作?首先,您需要检测命令:您可以使用来检测
!宣布
:
if (message.content.startsWith('!announce')) {...}
然后,您必须通过拆分字符串来获取命令的其他部分:您可以使用逗号分隔它们,就像您所做的那样(标题、描述等),或者使用您想要的任何字符(在我的示例中我将使用逗号)。将帮助您摆脱
!宣布
part,同时将创建一个包含其他部分的数组
这段代码将从命令生成一个嵌入类!宣布标题、描述、名称,http://example.com/, http://www.hardwarewhore.com/wp-content/uploads/2018/03/dcord.png
client.on("message", message => {
if (message.content.startsWith('!announce')) {
let rest_of_the_string = message.content.slice('!announce'.length); //removes the first part
let array_of_arguments = rest_of_the_string.split(','); //[title, description, link, image]
let embed = new Discord.RichEmbed()
.setTitle(array_of_arguments[0])
.setDescription(array_of_arguments[1])
.setImage(array_of_arguments[3])
.setURL(array_of_arguments[2])
.addField("Text", true)
.setThumbnail("https://i.imgur.com/Rmiwd1j.png")
.setColor(0x00AE86)
.setFooter("Footer", array_of_arguments[3])
.setTimestamp();
message.channel.send({ embed });
}
});
我建议使用文本而不是描述,并提醒.addField()
的第二个参数是文本,而不是内联值