如何使用discord.js嵌入

问题描述

我想知道如何在discord.js中编写嵌入内容。这是我当前的代码:它不起作用。我收到警告:message.channel.send上的“消息未定义”,我不知道如何解决。我希望你们能告诉我如何解决此问题。 js

message.channel.send(generateEmbed(0)).then((message) => {
  if (guilds.length <= 10) return;

  message.react(":right_arrow:");
  const collector = message.createReactionCollector(
    (reaction,user) =>
      [":left_arrow:",":right_arrow"].includes(reaction.emoji.name) &&
      user.id === message.author.id,// time out after a minute
    { time: 60000 }
  );

  let currentIndex = 0;
  collector.on("collect",(reaction) => {
    message.reactions.removeAll().then(async () => {
      reaction.emoji.name === ":left_emoji:"
        ? (currentIndex -= 10)
        : (currentIndex += 10);

      message.edit(generateEmbed(currentIndex));

      if (currentIndex !== 0) await message.react(":left_arrow:");
      // react with right arrow if it isn't the end
      if (currentIndex + 10 < guilds.length) message.react(":right_arrow:");
    });
  });
});

bot.login(token);

解决方法

如果要获取消息对象,则必须使用参数“ message”和执行需要消息对象的代码的函数来监听事件“ on”:

bot.on("message",function(message) {
    //your code that uses message
});

对于嵌入,您可以直接转到https://discord.js.org/#/docs/main/stable/class/MessageEmbed上的discord.js官方文档,其中有完整说明。

,

实际上非常容易做到。 这是嵌入的好模板:

    const exampleEmbed = new Discord.MessageEmbed()
    .setColor('#0099ff')
    .setTitle('Some title')
    .setURL('https://discord.js.org/')
    .setAuthor('Some name','https://i.imgur.com/wSTFkRM.png','https://discord.js.org')
    .setDescription('Some description here')
    .setThumbnail('https://i.imgur.com/wSTFkRM.png')
    .addFields(
        { name: 'Regular field title',value: 'Some value here' },{ name: '\u200B',value: '\u200B' },{ name: 'Inline field title',value: 'Some value here',inline: true },)
    .addField('Inline field title','Some value here',true)
    .setImage('https://i.imgur.com/wSTFkRM.png')
    .setTimestamp()
    .setFooter('Some footer text here','https://i.imgur.com/wSTFkRM.png');

// Code to send embed
channel.send(exampleEmbed);