Estoy tratando de hacer un bot que permita a los usuarios crear incrustaciones usando una serie de comandos y va bien. Pero encontré un problema, el bot usa botones pero para confirmar algo como "¿Estás seguro de que este es tu título?" cualquier usuario puede hacer clic en el botón; lo cual es un problema Solo quiero que el usuario que usó el comando pueda usar los botones.
Esto es lo que probé al principio:
client.on('interactionCreate', async interaction => { const filter = m => !m.author.bot && m.author.id === interaction.user.id; const collector = interaction.channel.createMessageCollector({filter, max:1, time:10000}); if (!interaction.isButton() && interaction.user.id != interaction.message.author.id) return; Traté de usar interaction.user.id != o === interaction.message.author.id pero eso no funciona
La mejor manera de hacer un botón solo para un solo usuario es poner la identificación del usuario en la identificación personalizada
Por ejemplo, establezca el ID en title-${interaction.user.id}
if(!interaction.isButton()) return; if (!interaction.customId.endsWith(interaction.user.id)) { return interaction.reply({ content: "This button is not for you", ephemeral: true }) }client.on("interactionCreate", async (interaction) => { //filter the user so it only works for the user who sent the command if (interaction.user.id !== message.author.id) { const embed = new MessageEmbed() .setDescription("You Cannot Interact With This Message!") .setColor("RED"); return interaction.reply({ embeds: [embed], ephemeral: true }); } else { //Code Here } });nose si todavia lo necesitas pero
espero que funcione, a mi me funciona