es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

función que no puede verificar el mensaje y el emoji utilizando discord.js

Intento construir un comando de react en React que simplemente reacciona a un mensaje especificado usando un ID, con el emoji especificado después del mensaje, pero el problema es que no verifica si el mensaje es válido, y no puedo hacer que compruebe si el emoji es válido también. ¿Existe alguna forma de solucionar esto?

El código:

“`javascript
const { MessageEmbed } = require('discord.js')

module.exports = {
name: 'react',
category: 'Staff',
aliases: [],
description: 'Reacciona a un mensaje.',
usage: 'react <messageid> <emoji>',
userperms: [],
botperms: [],
run: async (client, message, args) => {
if (message.author.bot) return;

<pre><code>let emoji = args[1];
let messageID = args[0];

if (!messageID) return message.reply('¡Por favor, indica el ID del mensaje!');
if (!emoji) return message.reply('¡Por favor, indica el emoji!');

if (messageID && emoji) {
/*try {
message.channel.messages.fetch(messageID).then(m => m.react(emoji));
message.channel.send('¡Reaccionado!')
} catch {
message.channel.send('¡Este mensaje no es válido o no se encuentra en el mismo canal!')
}*/
try {
console.log('s')
await Promise.all([message.channel.messages.fetch(_messageID)])
} catch (error) {
if (error.code == 10008) {
message.channel.send('¡No se pudo encontrar el mensaje!');
return
}
}
try {
message.channel.messages.fetch(_messageID).react(emoji)
} catch (error) {
message.channel.send('¡Por favor, usa un emoji válido!')
}
}
</code></pre>

}
}
“`

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para verificar si el ID del mensaje y el emoji son válidos, puedes utilizar el bloque try-catch para capturar cualquier error que pueda ocurrir al intentar obtener el mensaje por su ID y reaccionar a él con el emoji. Aquí tienes un ejemplo de cómo puedes modificar el código para lograr esto:

    const { MessageEmbed } = require('discord.js')
    
    module.exports = {
        name: 'react',
        category: 'Staff',
        aliases: [],
        description: 'Reacciona a un mensaje.',
        usage: 'react <messageid> <emoji>',
        userperms: [],
        botperms: [],
        run: async (client, message, args) => {
        if (message.author.bot) return;
    
        let emoji = args[1];
        let messageID = args[0];
    
        if (!messageID) return message.reply('¡Por favor, indica el ID del mensaje!')
        if (!emoji) return message.reply('¡Por favor, indica el emoji!')
    
        try { 
          let fetchedMessage = await message.channel.messages.fetch(messageID);
          if (!fetchedMessage) {
              message.channel.send('¡Este mensaje no es válido o no está en el mismo canal!');
              return;
          }
          fetchedMessage.react(emoji);
          message.channel.send('¡Reaccionado!');
        } catch (error) {
            message.channel.send('¡Por favor, utiliza un ID de mensaje y un emoji válido!');
        }
      }
    }
    

    Con esta modificación, el código intentará obtener el mensaje por su ID y reaccionar a él con el emoji especificado. Si el ID del mensaje o el emoji no son válidos, se capturará un error y se enviará un mensaje indicando que se deben utilizar un ID de mensaje y emoji válidos.

Comments are closed.