UNPKG

discord-vatron

Version:

Módulo para facilitar la interacción con la API de Discord

664 lines (502 loc) 19 kB
### Instalar el módulo ``` $ npm install discord-vatron --s ``` ---------------------- > Este módulo te facilitará el desarrollo de un bot de Discord, teniendo funciones para hacerlo más fácil ### Crear nueva instancia de un bot ```js const Discord = require('discord-vatron'); const bot = new Discord.Bot(); ``` > Si tienes alguna duda puedes preguntar en el servidor de proyectos: [https://discord.gg/aMAR32FuTP](https://discord.gg/aMAR32FuTP) ---------------------- ## Lista clases - [Bot](#bot) - [BotUsuario](#botusuario) - [Archivo](#archivo) - [Botón](#boton) - [Canal](#canal) - [CanalCategoría](#canalcategoria) - [CanalTexto](#canaltexto) - [CanalVoz](#canalvoz) - [Colección](#coleccion) - [Embed](#embed) - [Emoji](#emoji) - [FilaBotones](#filabotones) - [Interacción](#interaccion) - [Menciones](#menciones) - [Mensaje](#mensaje) - [Miembro](#miembro) - [Presencia](#presencia) - [Role](#role) - [Servidor](#servidor) - [Usuario](#usuario) ---------------------- ## Clases ## Bot ### Propiedades - `intents` - Intents que usa - `servidores` - [Colección](#coleccion) con los [servidores](#servidor) en los que se encuentra el bot - `canales` - [Colección](#coleccion) con los [canales](#canal) de todos los servidores en los que se encuentra el bot - `usuarios` - [Colección](#coleccion) con los [usuarios](#usuario) que vee el bot - `roles` - [Colección](#coleccion) con los [roles](#role) de todos los servidores en los que se encuentra el bot - `emojis` - [Colección](#coleccion) con los [emojis](#emoji) de todos los servidores en los que se encuentra el bot - `presencias` - [Colección](#coleccion) con las [presencias](#presencia) de los usuarios que vee el bot - `canalesMD` - [Colección](#coleccion) con los [canales](#canal) de MD que vee el bot - `usuario` - [BotUsuario](#botusuario) del bot ### Métodos `iniciar` - Inicia al bot mediante su token > Ejemplo: `bot.iniciar('token')` `obtenerCanal` - Obtiene un canal mediante la ID en caso de que no esté en la colección bot.canales > Ejemplo: `bot.obtenerCanal('idCanal')` ### Eventos - `listo` - Se emite cuando el bot está listo, recibe: [BotUsuario](#botusuario) - `mensaje` - Se emite cuando se envia un nuevo mensaje a un canal de texto, recibe: [Mensaje](#mensaje) - `mensajeEditado` - Se emite cuando se edita un mensaje, recibe: [MensajeAntiguo](#mensaje) | [MensajeNuevo](#mensaje) - `mensajeEliminado` - Se emite cuando se elimina un mensaje, recibe: [Mensaje](#mensaje) (si estaba en la colección de mensajes) - `servidorActualizado` - Se emite cuando se actualiza un servidor, recibe: [ServidorAntiguo](#servidor) | [ServidorNuevo](#servidor) - `servidorEntrandoMiembro` - Se emite cuando un usuario entra a un servidor, recibe: [Miembro](#miembro) - `servidorSaliendoMiembro` - Se emite cuando un miembro sale de un servidor, recibe: [Miembro](#miembro) - `servidorMiembroActualizado` - Se emite cuando un miembro es actualizado, recibe: [MiembroAntiguo](#miembro) | [MiembroNuevo](#miembro) - `canalActualizado` - Se emite cuando se actualiza un canal, recibe: [CanalAntiguo](#canal) | [CanalNuevo](#canal) - `canalEliminado` - Se emite cuando se elimina un canal, recibe: [Canal](#canal) - `servidorEliminado` - Se emite cuando un servidor es eliminado, recibe: [Servidor](#servidor) - `usuarioActualizado` - Se emite cuando se actualiza un usuario, recibe: [UsuarioAntiguo](#usuario) | [UsuarioNuevo](#usuario) - `presenciaActualizada` - Se emite cuando se actualiza una presencia, recibe: [PresenciaAntigua](#presencia) | [PresenciaNueva](#presencia) - `servidorRoleCreado` - Se emite cuando se crea un role en un servidor, recibe: [Role](#role) - `servidorRoleEliminado` - Se emite cuando se elimina un role en un servidor, recibe: [Role](#role) - `servidorRoleActualizado` - Se emite cuando se actualiza un role en un servidor, recibe: [RoleAntiguo](#role) | [RoleNuevo](#role) - `servidorEmojisActualizados` - Se emite cuando se actualizan los emojis del servidor, recibe: [Servidor](#servidor) | [ListaEmojis](#emoji) - `interaccionCreada` - Se emite cuando se interactua con una interacción, recibe: [Interacción](#interaccion) ## BotUsuario > Extiende a la clase [Usuario](#usuario) ### Métodos `estPresencia` - Cambia la presencia actual del bot > Ejemplo: ```js bot.usuario.estPresencia({ estado: 'enLinea | noMolestar | ausente', juego: { nombre: 'Texto para la presencia', tipo: 'JUGANDO | TRANSMITIENDO | ESCUCHANDO | VIENDO' } }); ``` ## Archivo ### Propiedades - `anchura` - Anchura del archivo - `altura` - Altura del archivo - `tamano` - Tamaño del archivo - `url` - URL del archivo - `urlProxy` - URL Proxy del archivo - `nombre` - Nombre del archivo - `tipoContenido` - Tipo del contenido del archivo, por ejemplo: **image/png** ## Botón > new Discord.Boton(boton?) ### Métodos `estEstilo` - Cambia el estilo del botón; AZUL | GRIS | VERDE | ROJO | URL > Ejemplo: `boton.estEstilo('estilo')` `estTexto` - Cambia el texto del botón > Ejemplo: `boton.estTexto('Click aquí')` `estEmoji` - Cambia el emoji del botón > Ejemplo: `boton.estEmoji('👋 | emojiDeServidor')` `estID` - Cambia la ID del botón (no disponible cuando se usa estilo URL) > Ejemplo: `boton.estID('id')` `estDesactivado` - Activa o desactiva el botón > Ejemplo: `boton.estDesactivado(true|false)` `estURL` - Cambia la URL del botón (sólo disponible cuando se usa el estilo URL) > Ejemplo: `boton.estURL('https://discord.gg/aMAR32FuTP')` ## Canal ### Propiedades - `nombre` - Nombre del canal - `id` - ID del canal - `tipo` - Tipo del canal - `servidor` - [Servidor](#servidor) en el que se encuentra el canal - `categoria` - [CanalCategoría](#canalcategoria) en el que se encuentra el canal ### Métodos `eliminar` - Elimina el canal ## CanalCategoría > Extiende a la clase [Canal](#canal) ### Propiedades - `canales` - [Colección](#coleccion) con los [canales](#canal) que se encuentran dentro de esa categoría ## CanalTexto > Extiende a la clase [Canal](#canal) ### Propiedades - `tema` - Tema del canal - `nfsw` - Si el canal es NSFW o no - `tiempoPausa` - El tiempo de pausa entre [mensaje](#mensaje) y [mensaje](#mensaje) en segundos - `mensajes` - [Colección](#coleccion) con los [mensajes](#mensaje) que se enviaron después de iniciar al bot - `ultimoMensaje` - Último [mensaje](#mensaje) que se envió al canal, si es que está en la colección de mensajes ### Métodos `enviar` - Envia un mensaje al canal, devuelve una promesa que al resolverla devuelve el [mensaje](#mensaje) > Ejemplo ```js canalTexto.enviar({ contenido: 'Contenido del mensaje', embeds: arrayConEmbeds, botones: arrayConBotones, filas: arrayConFilasBotones, responder: mensaje }); ``` `obtenerMensaje` - Obtiene un [mensaje](#mensaje) del canal en caso de que no esté en la colección de mensajes > Ejemplo: `canalTexto.obtenerMensaje('idMensaje')` `crearColectorMensajes` - Crea un colector de mensajes > Ejemplo ```js const colector = canalTexto.crearColectorMensajes((msj) => msj.autor.id == mensaje.autor.id, { tiempo: milisegundos }); colector.on('recibido', (mensaje) => { // lo que quieras // para finalizar: colector.finalizar('razón'); }); colector.on('finalizado', (razon) => { console.log(razon); }); ``` `editar` - Edita el canal > Ejemplo ```js canalTexto.editar({ nombre: 'nombre', tema: 'tema', posicion: num, nsfw: true|false, categoria: categoria|id }); ``` ## CanalVoz > Extiende a la clase [Canal](#canal) ### Propiedades - `miembros` - [Colección](#coleccion) de [miembros](#miembro) que se encuentran conectados al canal de voz - `limiteUsuarios` - Número máximo de miembros que se pueden conectar al canal ### Métodos `editar` - Edita el canal > Ejemplo ```js canalTexto.editar({ nombre: 'nombre', posicion: num, categoria: categoria|id, limiteUsuarios: num }); ``` ## Colección > Extiende a la clase [Map](https://developer.mozilla.org/es/docs/orphaned/Web/JavaScript/Reference/Global_Objects/Map) ### Métodos - `map` - Mapea los valores de la colección - `algunoCumple` - Verifica si algún valor de la colección cumple la condición propuesta en la función - `todosCumplen` - Verifica si todos los valores de la colección cumplen la condición propuesta en la función - `encontrar` - Encuentra el primer valor de la colección que cumpla con la condición propuesta en la función - `filtrar` - Filtra los valores de la colección mediante si cumplen la condición propuesta en la función - `ordenar` - Ordena los valores de la condición según la función - `primero` - Obtén el primer valor de la colección - `ultimo` - Obtén el último valor de la colección - `aleatorio` - Obtén un valor de la colección aleatorio (si pones un número) devuelve un array con varios - `claves` - Obtén un array con todas las claves de la colección - `array` - Obtén un array con todos los valores de la colección ## Embed > new Discord.Embed(embed?) ### Métodos `estTitulo` - Establece el título del embed `estAutor` - Establece el autor en el embed > Ejemplo ```js embed.estAutor({ nombre: 'autor', url: 'urlAutor', icono: 'urlIcono' }); ``` `estDesc` - Establece la descripción del embed `estColor` - Establece el color del embed, puedes usar: AZUL | ROJO | VERDE | BLANCO | AGUA | AMARILLO | MORADO | DORADO | NARANJA | GRIS | NEGRO | ALEATORIO `estImg` - Establece la imagen del embed > Ejemplo ```js embed.estImg({ url: 'urlImagen' }); ``` `estVideo` - Establece el vídeo del embed > Ejemplo ```js embed.estVideo({ url: 'urlVideo' }); ``` `estMarcaTiempo` - Establece la marca de tiempo en el embed > Ejemplo: `embed.estMarcaTiempo(Date.now()+60000)` (la de dentro de 1 minuto) `anadirCampo` - Añade un campo al embed > Ejemplo ```js embed.anadirCampo({ titulo: 'título', desc: 'descripción', enLinea: true|false }); ``` `estUrl` - Establece la URL del embed > Ejemplo: `embed.estUrl('https://discord.gg/aMAR32FuTP')` `estMiniatura` - Establece la miniatura del embed > Ejemplo ```js embed.estMiniatura({ url: 'urlImagen' }); ``` `estPie` - Establece el pie del embed > Ejemplo ```js embed.estPie({ texto: 'texto', icono: 'urlImagen' }); ``` ## Emoji ### Propiedades - `nombre` - Nombre del emoji - `id` - ID del emoji - `animado` - Si es el animado el emoji - `servidor` - Servidor en el que se encuentra el emoji ### Métodos `editar` - Edita el emoji > Ejemplo ```js emoji.editar({ nombre: 'nombre' }); ``` `eliminar` - Elimina el emoji > Ejemplo: `emoji.eliminar()` ## FilaBotones > new Discord.FilaBotones(...botones?) ### Métodos `anadirBoton` - Añade un botón a la fila ## Interacción ### Propiedades `mensaje` - [Mensaje](#mensaje) de la interacción `servidor` - [Servidor](#servidor) de la interacción `canal` - [Canal](#canaltexto) de la interacción `miembro` - [Miembro](#miembro) que ejecuta la interacción `idBoton` - ID del [botón](#boton) presionado ### Métodos `responder` - Responde a la interacción > Ejemplo ```js interaccion.responder({ contenido: 'contenido', embeds: arrayConEmbeds, propio: true|false }); ``` `aplazar` - Aplaza la interacción (no responder nada) > Ejemplo: `interaccion.aplazar()` `pensar` - Piensa el resultado de la interacción > Ejemplo ```js interaccion.pensar({ propio: true|false }); ``` ## Menciones > Extiende a la clase [Colección](#coleccion) ### Propiedades - `usuarios` - [Colección](#coleccion) con los [usuarios](#usuario) mencionados - `miembros` - [Colección](#coleccion) con los [miembros](#miembro) mencionados - `roles` - [Colección](#coleccion) con los [roles](#role) mencionados - `canales` - [Colección](#coleccion) con los [canales](#canal) mencionados ## Mensaje ### Propiedades - `contenido` - Contenido del mensaje - `id` - ID del mensaje - `canal` - [Canal](#canaltexto) del mensaje - `marcaTiempoEnviado` - Marca de tiempo en el que fue enviado el mensaje - `marcaTiempoEditado` - Marca de tiempo en el que fue editado el mensaje - `tts` - Si el mensaje es tts o no - `everyoneMencionado` - Si está mencionado everyone o no - `fijado` - Si el mensaje está fijado o no - `miembro` - [Miembro](#miembro) que escribe el mensaje - `servidor` - [Servidor](#servidor) en el que escribe el mensaje - `embeds` - Array con los [embeds](#embeds) del mensaje - `editable` - Obtén si es editable o no el mensaje - `url` - URL del mensaje - `esWebhook` - Verifica si es un webhook el mensaje - `autor` - [Usuario](#usuario) que escribió el mensaje - `reacciones` - [Colección](#coleccion) con las reacciones del mensaje - `menciones` - [Menciones](#menciones) del mensaje - `archivos` - [Archivos](#archivo) que se encuentran en el mensaje ### Métodos `eliminar` - Eliminar el mensaje `editar` - Edita el mensaje > Ejemplo ```js mensaje.editar({ contenido: 'Contenido del mensaje', embeds: arrayConEmbeds, botones: arrayConBotones, filas: arrayConFilasBotones }); ``` `responder` - Responde a un mensaje > Ejemplo ```js mensaje.responder({ contenido: 'texto', embeds: arrayConEmbeds, botones: arrayConBotones, filas: arrayConFilasBotones }); ``` `reaccionar` - Reacciona al mensaje > Ejemplo: `mensaje.reaccionar('👋 | emojiDelServidor')` `crearColectorBotones` - Crea un colector de botones (cuando se pulsa algún botón del mensaje) > Ejemplo ```js const colector = mensaje.crearColectorBotones((interaccion) => interaccion.miembro.id == mensaje.autor.id, { tiempo: milisegundos }); colector.on('recibido', (interaccion) => { // lo que quieras // para finalizar: colector.finalizar('razón'); }); colector.on('finalizado', (razon) => { console.log(razon); }); ``` ## Miembro ### Propiedades - `usuario` - Miembro en forma de [usuario](#usuario) - `id` - ID del miembro - `marcaTiempoUnido` - Marca de tiempo de cuando se unió el miembro - `servidor` - [Servidor](#servidor) del que es el miembro - `avatar` - Avatar del miembro - `roles` - [Colección](#coleccion) con los roles del miembro - `roleAlto` - [Role](#role) más alto del miembro - `permisos` - [Colección](#coleccion) con los permisos del miembro - `canalVoz` - [CanalVoz](#canalvoz) en el que está el miembro ### Métodos `anadirRole` - Añade un [role](#role) al miembro > Ejemplo: `miembro.anadirRole('idRole|role')` `eliminarRole` - Elimina un [role](#role) al miembro > Ejemplo: `miembro.eliminarRole('idRole|role')` `urlAvatar` - Obtén la URL del avatar del miembro > Ejemplo: `miembro.urlAvatar({ tamano: num, defecto: true|false })` `banear` - Banea al miembro > Ejemplo: `miembro.banear({ dias: num, razon: 'Razón del baneo' })` `expulsar` - Expulsa al miembro > Ejemplo: `miembro.expulsar('Razón del baneo')` `apodo` - Obtén el apodo del miembro > Ejemplo: `miembro.apodo(true|false)` `estApodo` - Establece el apodo del miembro > Ejemplo: `miembro.estApodo('apodo')` ## Presencia ### Propiedades - `juego` - Juego al que se está jugando actualmente - `actividades` - Actividades que se están realizando actualmente - `usuario` - Usuario de la presencia ## Role ### Propiedades - `nombre` - Nombre del role - `id` - ID del role - `separado` - Separado del resto de roles - `posicion` - Posición del role - `administrado` - Role administrado por algún servicio externo - `mencionable` - Role mencionable o no - `color` - Color del role - `servidor` - Servidor del role - `permisos` - Permisos del role - `miembros` - Miembros que tienen el role ### Métodos `eliminar` - Elimina el role `editar` - Edita el role > Ejemplo ```js role.editar({ nombre: 'nombre', color: 'color', separado: true|false, mencionable: true|false }); ``` ## Servidor ### Propiedades - `nombre` - Nombre del servidor - `id` - ID del servidor - `nivelVerificacion` - Nivel de verificación del servidor - `tiempoAFK` - Tiempo para ser considerado AFK en segundos - `miembros` - [Colección](#coleccion) con los [miembros](#miembro) del servidor - `canales` - [Colección](#coleccion) con los [canales](#canal) del servidor - `emojis` - [Colección](#coleccion) con los [emojis](#emoji) del servidor - `roles` - [Colección](#coleccion) con los [roles](#role) del servidor - `region` - Región del servidor - `salpicadura` - Salpicadura del servidor - `dueno` - [Miembro](#miembro) que es dueño del servidor - `yo` - [Miembro](#miembro) referido al bot - `canalAFK` - [CanalVoz](#canalvoz) para AFK's - `canalSistema` - [CanalTexto](#canaltexto) del sistema - `canalReglas` - [CanalTexto](#canaltexto) de reglas ### Métodos `editar` - Edita el servidor > Ejemplo ```js servidor.editar({ nombre: 'nombre', region: 'región', nivelVerificacion: num, canalAFK: 'idCanal|CanalVoz', icono: 'urlIcono', salpicadura: 'urlSalpicadura', canalSistema: 'idCanal|CanalTexto', canalReglas: 'idCanal|CanalTexto' }); ``` `crearRole` - Crea un [role](#role) en el servidor > Ejemplo ```js servidor.crearRole({ nombre: 'nombre', color: 'color', separado: true|false, mencionable: true|false }); ``` `crearCanal` - Crea un [canal](#canal) en el servidor > Ejemplo ```js servidor.crearCanal({ nombre: 'nombre', tipo: 'texto|voz|categoría', tema: 'tema', limiteUsuarios: num, tiempoPausa: num, categoria: 'idCanal|CanalCategoría', nsfw: true|false }); ``` `icono` - Obtén el icono del servidor > Ejemplo: `servidor.icono(tamaño)` `desbanear` - Desbanea a un miembro > Ejemplo: `servidor.desbanear('idMiembro')` ## Usuario ### Propiedades - `nombre` - Nombre de usuario - `nombreCompleto` - Nombre de usuario con el #TAG incluido - `id` - ID del usuario - `tag` - #TAG del usuario - `bot` - El usuario es un bot o no - `sistema` - El usuario es parte del sistema o no - `avatar` - Avatar del usuario - `presencia` - [Presencia](#presencia) del usuario - `banderas` - Banderas que tiene el usuario en su perfil ### Métodos `enviar` - Envia un mensaje al usuario > Ejemplo ```js usuario.enviar({ contenido: 'texto', embeds: arrayConEmbeds, botones: arrayConBotones, filas: arrayConFilasBotones }); ``` `urlAvatar` - Obtén la URL del avatar del usuario > Ejemplo: `usuario.urlAvatar(tamaño)`