Estoy siguiendo la guía de discord ( https://discordjs.guide/#before-you-begin ) para hacer un bot, y pude configurar todo bien. Pero traté de hacer un comando de barra inclinada donde el usuario adjunta una imagen al cuadro de entrada del chat y el bot envía la imagen en el canal especificado. El problema es que no puedo encontrar una manera de obtener la imagen de la entrada, así es como funciona:
const { SlashCommandBuilder } = require('@discordjs/builders'); const { MessageEmbed } = require('discord.js'); module.exports = { data: new SlashCommandBuilder() .setName('diario') .setDescription('Escreve uma notícia!') .setDefaultPermission(false) .addStringOption(option => option.setName('titulo').setDescription('Escreva seu título!') .setRequired(true)) .addStringOption(option => option.setName('descrição').setDescription('Descreva brevemente.') .setRequired(true)) .addAttachmentOption(option => option.setName('imagem').setDescription("Anexe uma imagem ilustrativa") .setRequired(true)), async execute(interaction) { const action = await interaction; const exampleEmbed = new MessageEmbed() .setColor('#0099ff') .setTitle(action.options.getString('titulo')) .setDescription(action.options.getString('descrição')) .setImage('') action .client .channels .cache .find(channel => channel.name == "jornal") .send({ embeds: [exampleEmbed] }) action.reply({ content: 'Sua notícia foi publicada!', ephemeral: false }); action.deleteReply(); }, };Puedo obtener los valores de cadena a través del comando "action.options.getString()", pero no hay forma de obtener la imagen que envié. Puedo usar "action.options.get()", para obtener un objeto con el nombre adjunto como este { nombre: "imagem", tipo: indefinido, valor: 123456789 }.
¿Hay una manera de hacerlo?
puede recibir un archivo adjunto de una interacción de comando con .options.getAttachment()