角色列表命令发送objecct对象而不是角色discord.js

时间:2020-09-09 12:44:57

标签: javascript node.js discord discord.js

它发送[object Object]。控制台中没有错误。

let embed = new Discord.MessageEmbed()
 .setTitle('Availible Roles')
 .setColor('RANDOM')
 .setDescription(roles.array().join(' \n'));
message.channel.send(embed, { split: true });

其余代码

const Discord = require('discord.js');
const { prefix, token } = require('../config.json');

module.exports = {
    name: '',
    description: '',
    execute(message, args, client) {
        if (!message.content.startsWith(prefix) || message.author.bot) return;
        const roles = message.guild.roles.cache.filter(c => c.name.startsWith('A'))
       
        const arr = roles
            .array()
            .join('\n')
            .match(/.{1,2048}/g);

        for (let chunk of arr) {
            // loop through every element (every 2048 characters)
            let embed = new Discord.MessageEmbed()
                .setTitle('Available Roles')
                .setColor('RANDOM')
                .setDescription(chunk);

            message.channel.send(embed); // wait for the embed to be sent
        }
    },
};


常量角色= message.guild.roles.cache.filter(c => c.name.startsWith('A'))

1 个答案:

答案 0 :(得分:0)

您的问题是 rules: { 'react/self-closing-comp': process.env.NODE_ENV === 'production' ? 'error' : 'warn', 。此选项可能会使嵌入混乱,因为它用于常规文本消息。如果将其删除,则嵌入应该可以正常工作。

PoC


如果您担心角色过多并且超过2048个字符的限制,则可以实现此功能:

{ split: true }

代码段示例:

// array of your description split every 2048 characters
const arr = roles
 .array()
 .join('\n')
 .match(/.{1,2048}/g);

for (let chunk of arr) {
 // loop through every element (every 2048 characters)
 let embed = new Discord.MessageEmbed()
  .setTitle('Available Roles')
  .setColor('RANDOM')
  .setDescription(chunk);

 await message.channel.send(embed); // wait for the embed to be sent
}