具有指定角色命令的 Discord.js 成员列表

时间:2021-01-28 20:49:00

标签: javascript discord discord.js

我有这个 memberlist 命令可以工作,但是如果我说一个不是在服务器上创建的角色,它不会发送 if(!rrole) 引号,它会发送嵌入以提及 id,如果我会尝试使用现有角色运行该命令,它不会发送任何内容,并且会给我一个错误,内容为 Cannot read property 'id' of undefined

module.exports = {
    name: 'memberlist',
    description: 'shows the member list with the specified role',
    async execute(message, args, Discord) {
        const role = message.mentions.roles.first() || message.guild.roles.cache.get(args[0])
        const embe = new Discord.MessageEmbed()
        .setDescription(`${message.author.username} Mention the role or put the role ID`)
        .setColor("RANDOM")
        .setTimestamp()
      if(!role) return message.channel.send(embe); 
        const rid = message.content.split(' ').splice(1).join(' ');
        const rrole = message.guild.roles.cache.find(val => val.id === rid);
        if (!rrole) return message.channel.send({embed: {description: `${message.author.username} \`${rid}\` 
is not a role on this server`, 
color: "RANDOM", timestamp: new Date()}});
        const members = await message.guild.members.fetch().then((member) => {
            if (Array.isArray(member)) {
              return member(
                (m) =>
                `• **${m.displayName}**
                      (${m.user.tag} - ${member.user.id})`
              )
            } else {
              return `• **${member.displayName}**
                           (${member.user} - ${member.user.id})`
            }
          })
        if(!members)
        return message.channel.send({embed: {description: 
`there are no members that currently have **${role.name}** role`, color: "RANDOM", timestamp: new Date()}});
        const embed = new Discord.MessageEmbed()
        .setColor("RANDOM")
        .addField({
            name: `List of ${members}`,
            value: `${message.guild.roles.cache.get(role).members.map(m=> "• " + 
`${m.user.username}` + "#" + m.user.discriminator + `\n(${m.user.id})`).join('\n')}
            that have the role \`${role.name}\``,
            description: members,
            maxPerPage: 20,
            page: Number(message.arg),
        });
        message.channel.send(embed)
    }
}

0 个答案:

没有答案