Discord.JS Notes

Forum for all related to NodeJS
Post Reply
User avatar
Alex
Posts: 2
Joined: Mon Feb 19, 2024 6:36 pm

Discord.JS Notes

Post by Alex »

Notas de Discord.js, sobre todo de código que me parezca curioso o me venga bien recordar.
Mucha variedad y sin un orden específico.





Webhooks

Los webhooks son útiles principalmente para enviar mensajes con otro nombre y avatar al que tiene el bot. Puedes por ejemplo impersonar a un usuario para bien y para mal, como hace NQN con los emojis. O por ejemplo, como he utilizado yo, para el RSS de noticias de anime.
Image

Suficientes explicaciones. Para crear un webhook o una de sus maneras, especificaremos el canal donde queremos que se cree. Esto lo podemos hacer, por ejemplo, guardando el canal en una variable.

Code: Select all

const channel = await client.channels.cache.get('940505116623114261');
  • Dentro de .get() ponemos el ID del canal que queramos usar.

A continuación, para crear el webhook, usaremos la función .createWebhook() junto a otro parámetros, como por ejemplo el nombre* y su avatar.

Code: Select all

await channel.createWebhook({ name: 'Nombre del Webhook', avatar: 'https://i.pinimg.com/564x/...d6f09403c4d345ec376.jpg' });
  • El nombre es obligatorio, mientras que el avatar es opcional.

Una vez creada, guardaremos esta nueva webhook creada en una variable. Y en este caso, usaré un .then() para que ejecute el siguiente código una vez termine de crear el webhook. También queremos usar async para después poder usar await. Será necesario para que no ocurran problemas; por ejemplo que el webhook se elimine antes de que se mande el mensaje.

El trozo de código para mandar un mensaje o embed desde la webhook será el siguiente:

Code: Select all

await webhook.send({ embeds: embed });
  • webhook es el nombre de la variable que contiene el webhook que hemos creado.
  • Aparte de embeds, puedes pasar más parámetros, puedes enviar texto plano, botones y otras formas de interacción.
  • También puedes cambiar el nombre y avatar al mandar un mensaje, con los parámetros username y avatarURL.

Para eliminar el webhook una vez se ha enviado el mensaje, usaremos el siguiente código.

Code: Select all

client.deleteWebhook(webhook.id);
Si te has perdido en algún punto, aquí está el código entero:

Code: Select all

const channel = await client.channels.cache.get('940505116623114261');
await _channel.createWebhook({ name: 'Nombre del Webhook', avatar: 'https://i.pinimg.com/564x/...d6f09403c4d345ec376.jpg' }).then( async (webhook) => {
        await webhook.send({ embeds: embed, content: 'plain text' });
        client.deleteWebhook(webhook.id);
});
 
USER BELONGS TO THE PATH OF EXPLOSIONS
 
Image
Post Reply