【问题标题】:Listing all invites (discord.js)列出所有邀请 (discord.js)
【发布时间】:2021-07-24 13:57:21
【问题描述】:

我希望获取在公会中创建的所有邀请,并将所有邀请粘贴到嵌入格式中,仅包含邀请链接。

错误:TypeError:invite.all 不是函数

module.exports = {
  name: `listallinvs`,
  description: `Displays all the invites created within the server.`,
  async execute(message, args) {
   

    message.guild.fetchInvites().then((invites) => {
      let allInvites = invites.all();

      const printinvites = new Discord.MessageEmbed()
        .addField(`Invite URL: ${allInvites.url}`)
     

      message.channel.send(printinvites); 
    });
  },
};

【问题讨论】:

    标签: javascript discord discord.js


    【解决方案1】:

    fetchInvites 返回 collection 的邀请,它没有 .all() 方法,这就是您收到错误的原因。

    您可以做的是获取所有邀请,检查是否有,如果有,迭代它们并为每个邀请创建一个新的嵌入字段。您可以使用返回新数组的.map()。您可以将此数组与 MessageEmbed 的 .addFields() 方法一起使用,该方法接受对象数组(其中对象具有 namevalue 键)。

    查看下面的工作代码:

    message.guild.fetchInvites().then((invites) => {
      if (!invites.size) return message.channel.send('No invites found');
    
      let allInvites = invites.map((i) => ({
        name: 'Invite',
        value: `**Inviter:** ${i.inviter}
          **Code:** [${i.code}](https://discord.gg/${i.code})
          **Used by:** ${i.uses} of ${i.maxUses === 0 ? '∞' : i.maxUses}
          **Expires on:** ${
            i.maxAge
              ? new Date(i.createdTimestamp + i.maxAge * 1000).toLocaleString()
              : 'never'
          }`,
        inline: true,
      }));
    
      message.channel.send(new Discord.MessageEmbed().addFields(allInvites));
    });
    

    您也可以将邀请链接添加为字段值:

    let allInvites = invites.map((i) => ({
      name: 'Invite link',
      value: `https://discord.gg/${i.code}`,
    }));
    
    message.channel.send(new Discord.MessageEmbed().addFields(allInvites));
    

    或者你可以完全放弃嵌入字段而只使用描述

    let allInvites = invites.map((i) => `https://discord.gg/${i.code}`);
    
    message.channel.send(
      new Discord.MessageEmbed()
        .setTitle('Invite Links')
        .setDescription(allInvites.join('\n')),
    );
    

    【讨论】:

    • 感谢您的帮助,非常感谢您的帮助。
    猜你喜欢
    • 2021-11-29
    • 2021-08-19
    • 2021-10-24
    • 1970-01-01
    • 1970-01-01
    • 2021-08-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多