Quería crear un comando para mi bot que devuelva el avatar del usuario, pero recibo un error:
DiscordAPIError: Cannot send an empty message at RequestHandler.execute (C:\Users\Pooyan\Desktop\PDM Bot Main\node_modules\discord.js\src\rest\RequestHandler.js:350:13) at processTicksAndRejections (node:internal/process/task_queues:96:5) at async RequestHandler.push (C:\Users\Pooyan\Desktop\PDM Bot Main\node_modules\discord.js\src\rest\RequestHandler.js:51:14) at async TextChannel.send (C:\Users\Pooyan\Desktop\PDM Bot Main\node_modules\discord.js\src\structures\interfaces\TextBasedChannel.js:175:15) { method: 'post', path: '/channels/885608990418010202/messages', code: 50006, httpStatus: 400, requestData: { json: { content: undefined, tts: false, nonce: undefined, embeds: undefined, components: undefined, username: undefined, avatar_url: undefined, allowed_mentions: undefined, flags: undefined, message_reference: undefined, attachments: undefined, sticker_ids: undefined }, files: [] } }Mi código:
module.exports = { name: 'avatar', aliases: ['icon', 'pfp', 'profilepic'], permissions: [], cooldown: 5, description: '!', execute(message, args, client, Discord) { if (!message.mentions.users.size) { return message.channel.send(`**آواتار شما:** ${message.author.displayAvatarURL({ dynamic: true })}`); } const avatar_list = message.mentions.users.map(user => { return ` آواتار**<@${user.id}>** ${user.displayAvatarURL({ dynamic: true })}`; }); message.channel.send(avatar_list); } }Estoy usando Discord.js v13, nodo 16
Collection#map devuelve una matriz e intentas send . Como solo puede enviar una cadena, puede unir la matriz devuelta utilizando el método Array#join :
const avatar_list = message.mentions.users.map((user) => { return ` آواتار**<@${user.id}>** ${user.displayAvatarURL({ dynamic: true })}`; }); message.channel.send(avatar_list.join('\n'));