1.0.8 • Published 5 years ago

simple-discord v1.0.8

Weekly downloads
2
License
ISC
Repository
-
Last release
5 years ago
simple-discord es un framework de la libreria discord.js que te permitira interactuar con discord de una manera sencilla.

Instalacion:

npm install simple-discord --save

Actualizacion:

- Se agrego una propiedad reload al client, esto servira para recargar tus comandos.
- Se agrego una propiedad al constructor Comando que te permitira activar o desactivar un comando, esto es util cuando tienes algun problema y quieres que dicho comando este deshabilitado hasta que se arregle.

Ejemplo del requerimiento del package:

const Client = require('simple-discord');

Instanciando un nuevo bot.

Para instanciar y crear un bot lo que deberan de hacer es crear un archivo principal en su proyecto, este archivo sera el motor y el index de nuestro bot, aqui debemos de poner una breve informacion que seria el token, la ubicacion de la carpeta donde estan los comandos y la ubicacion de la carpeta donde estan los eventos.
Si ustedes no tienen una carpeta donde estan todos sus comandos, tan solo deberan de poner false, de lo contrario deberan de colocar la ubicacion.
La ubicacion de la carpeta de los eventos es obligatorio.
Esto tambien cuenta con la facilidad de buscar archivos en subdirectorios ya sea si por alguna razon tiene comandos separados en categorias(por carpetas)

Supongamos que el archivo principal de mi bot es index.js, este archivo debera de contener lo siguiente:
const MegaClient = require("simple-discord") //estoy llamando al package en la constante MegaClient

new MegaClient.Client({
  token: "ASDASDLALSDASKDKADS0129Q0Q9WWWEWwjewew9e", //aqui debera estar el token del bot, esto es obligatorio
  comandos: "./comandos", //aqui debera estar la ubicacion de la carpeta donde estan los comandos, en caso de que no tengas ningun comando, solo escribe false
  eventos: "./eventos" //aqui debera estar la ubicacion de la carpeta donde estan los eventos, esto es obligatorio
})

Creacion de un comando.

Una vez que ya tengan especificada la ubicacion donde estaran tus comandos, tan solo nos faltaria crearlos.
simple-discord te permite crear comandos de una manera estructurada y sencilla, tambien te permite agregar la opcion de que cada comando cuente con caracteristicas especiales las cuales veremos a continuacion.

Para crear un comando debemos de usar el constructor llamado Comando, este constructor recibe 7 tipos de datos:
- nombre
- alias
- cooldown
- permiso_cooldown
- descripcion
- disponible
- ejecutar

nombre:

En esta propiedad deberas de poner el nombre del comando.

alias:

En esta propiedad deberas de colocar un array(lista), en este array puedes colocar los alias del comando, de lo contrario solo dejalo vacio: []

cooldown:

En esta propiedad deberas de colocar los segundos de cooldown que tendra el comando, si quieres que este comando no tenga cooldown, solo deberas de poner false

permiso_cooldown:

En esta propiedad deberas de colocar el nombre del permiso que se necesitara para que el cooldown no les afecte, si quieres que esto les afecte a todos por igual, solo pon false

descripcion:

En esta propiedad deberas de colocar la descripcion del comando.

disponible:

Esta propiedad es opcional, puedes usarlo cuando quieras que un comando este deshabilitado, esto puede ser util cuando tengas un comando defectuoso y quieres que no lo usen hasta que lo hayas arreglado.
Esta propiedad recibe como valor true y false, true usalo cuando quieras que el comando este habilitado(puedan usarlo) y falso para que este deshabilitado(no puedan usarlo)
Si usted no agrega esta propiedad al constructor Comando, automaticamente esta propiedad estara por default en true.

ejecutar:

En esta propiedad deberas de colocar la funcion que se usa en un command handler y dentro de esa funcion deberan de estar 3 parametros obligatorios, el primero seria client, el segundo message y el tercero args, puedes cambiarle el nombre pero seguiran teniendo la misma funcion de client, message y args.
Si no sabes como hacer esto, no se preocupen, lo pondre en un ejemplo.

ejemplo:

Supongamos que cree un archivo llamado avatar.js en la ubicacion de la carpeta de los comandos que especifique anteriormente, la estructura de un comando es la siguiente.
const MegaClient = require("simple-discord");

module.exports = new MegaClient.Comando({ //usamos el module.exports y el constructor Comando
  nombre: "avatar", //asignamos el nombre del comando
  alias: ["foto", "verfoto"], //le agregamos unos alias
  cooldown: 5, //el tiempo de cooldown de este comando sera de 5 segundos
  permiso_cooldown: "ADMINISTRATOR", //los usuarios que tengan el permiso de ADMINISTRADOR no les afectara el tiempo del cooldown
  descripcion: "Este comando te permite ver tu foto o el de otro usuario.", //la descripcion del comando
  disponible: true, //este comando estara disponible (podran usarlo)
  ejecutar: async (client, message, args) => { //la funcion

    let usuario = message.mentions.members.first() || message.member;
    let embed = new MegaClient.RichEmbed()
    embed.setColor("RANDOM")
    embed.setImage(usuario.user.displayAvatarURL)
    return message.channel.send(embed)

  }

})

importante

Para que estos comandos funcionen no te olvides de usar el evento message, este evento tambien cuenta con unos detalles especiales que veremos a continuacion.

Creacion de un evento.

Una vez que ya tengan especificada la ubicacion donde estaran tus eventos, tan solo nos faltaria crearlos.
simple-discord de igual forma permite crear eventos de una manera estructurada y sencilla.

Para crear un evento debemos de usar el constructor llamado Evento, este constructor recibe 2 tipos de datos:
- nombre
- ejecutar

En todos los eventos es obligatorio siempre usar el client como primer parametro, pongamos de ejemplo el evento guildMemberAdd, en la version normal esto unicamente recibe el parametro (member), en esta version solo deberan de colocar el client antes: (client, member), asegurate de usar el client como primer parametro en todos los eventos que usaras.

nombre:

En esta propiedad deberas de colocar el nombre del evento.

ejecutar:

En esta propiedad deberas de colocar la funcion que se usa comunmente en los evento, como dije anteriormente, esta funcion debe de recibir obligatoriamente como primer parametro client, puedes colocar otro nombre pero seguira teniendo la misma funcion de client.
Si no sabes como hacer esto, no se preocupen, enseñare un breve ejemplo a continuacion.  

ejemplo:

Supongamos que cree un archivo llamado message.js en la ubicacion de la carpeta de los eventos que especifique anteriormente, la estructura de un evento es la siguiente.
const MegaClient = require("simple-discord");

module.exports = new MegaClient.Evento({ //usamos el module.exports y el constructor Evento
  nombre: "message", //ponemos el nombre del evento
  ejecutar: async (client, message) => { //la funcion

    if(message.author.bot) return;
    if(message.channel.type === "dm") return;
    let prefix = "!!!"

    if(message.content.startsWith(prefix)) {
      client.verificar_comando(message, prefix) //esto lo veremos a continuacion
      return;
    }

  }

})

Propiedades especiales.

Existen propiedades especiales que te permiten facilmente ejecutar, actualizar y obtener informacion de cada comando que creaste, todas estas propiedades le pertenecen al client (client seria la instancia del bot, en otras palabras el bot).

Actualmente hay 3 propiedades esenciales que le pertenecen al client:
- verificar_comando
- comandos
- reload

client.verificar_comando solo debe ser usado en el evento message, esta propiedad recibe dos parametros, el primer parametro seria message y el segundo parametro seria el prefix del bot. Esta funcion lo que hara es verificar si el mensaje del usuario es un comando que creaste, si esto es verdadero lo que hara es ejecutar automaticamente dicho comando.

client.comandos te muestra una coleccion con todos tus comandos y cada comando contiene la configuracion que le asignaste (nombre, alias, descripcion, cooldown, permiso_cooldown, disponible)
Esta propiedad te puede servir en un comando que muestre todos los comandos del bot, tambien para obtener la informacion de un comando especifico, esta propiedad no recibe ningun parametro.

client.reload te permite recargar tus comandos, ya sean todos o uno especifico, si no se le asigna ningun parametro lo que hara es recargar todos los comandos que se encuentran en la ubicacion de la carpeta que especificaste en el constructor Client (ver Instanciando un nuevo bot).
Si usted quiere agregar nuevos comandos sin tener que volver a prender el bot, solo debera de ejecutar esta propiedad sin ningun parametro: client.reload()
Si quieres recargar un comando especifico, solo deberas de colocar nombre de dicho comando: client.reload("nombre_comando")

Ventajas de esto:
- Puedes recargar(actualizar) tus comandos sin tener que volver a prender el bot.
- Puedes agregar nuevos comandos.
- Puedes cambiar valores y propiedades de tus comandos y al hacer el reload los datos antiguos seran actualizados.

Ejemplo_1:

//creare un comando que me muestre todos los comandos del bot.
const MegaClient = require("simple-discord");

module.exports = new MegaClient.Comando({
  nombre: "comandos",
  alias: ["commands"],
  descripcion: "Te muestra toda la lista de comandos.",
  cooldown: 3,
  permiso_cooldown: "ADMINISTRATOR",
  ejecutar: (client, message, args) => {

   if(client.comandos.size <= 0) return message.channel.send("No hay ningun comando disponible.") //de todos modos por si ocurre algo.
   let embed = new MegaClient.RichEmbed()
   embed.setThumbnail(client.user.displayAvatarURL)
   embed.setColor("RANDOM")
   embed.setDescription("Mis comandos son: \n\n"+client.comandos.map(m => `${m.nombre}`).join("\n"))
   message.channel.send(embed)

  }

})

Ejemplo_2:

//creare un comando que me muestre la informacion de un comando especifico.
const MegaClient = require("simple-discord");

module.exports = new MegaClient.Comando({
  nombre: "help",
  alias: ["ayuda"],
  descripcion: "Te muestra la informacion de un comando especifico.",
  cooldown: 3,
  permiso_cooldown: "ADMINISTRATOR",
  ejecutar: (client, message, args) => {

   if(!args[0]) return message.channel.send("Ingresa el nombre del comando.")
   let comando = client.comandos.get(args[0])
   if(!comando) return message.channel.send(`No existe el comando **${args[0]}**`)

   let nombre = comando.nombre
   let alias = comando.alias
   let descripcion = comando.descripcion
   let cooldown = comando.cooldown
   let permiso = comando.permiso_cooldown

   let embed = new MegaClient.RichEmbed()
   embed.setThumbnail(client.user.displayAvatarURL)
   embed.setColor("RANDOM")
   embed.setDescription(`Nombre: ${nombre}\nAliases: ${alias}\nDescripcion: ${descripcion}\nTiempo cooldown: ${cooldown}\nPermiso del cooldown: ${permiso}`)
   return message.channel.send(embed)
  }
  
})

Ejemplo_3:

//creare un comando que haga reload.
const MegaClient = require("simple-discord");
  
module.exports = new MegaClient.Comando({
  nombre: "reload",
  alias: ["actualizar"],
  cooldown: 5,
  permiso_cooldown: "ADMINISTRATOR",
  descripcion: "Este comando te permite actualizar un comando.",
  ejecutar: async (client, message, args) => {

    if(message.author.id != "TU iD") return message.channel.send("Solo mi creador puede usar este comando.")
    if(client.comandos.size <= 0) return message.channel.send("No hay ningun comando.") //esto es un poco ilogico pero vamos a prevenir.
    if(!args[0]) { //si no se ingresa ningun argumento
      client.reload() //recargamos todos los comandos
      return message.channel.send(`Comandos cargados correctamente.`)
    }
    //esto se ejecutara si el usuario ingresa el nombre de un comando
    if(!client.comandos.has(args[0])) return message.channel.send(`El comando ${args[0]} no existe.`) //si el comando no existe
    client.reload(args[0]) //recargamos el comando
    return message.channel.send(`El comando ${args[0]} acaba de ser recargado correctamente.`)
  }

})

Demostracion:

https://youtu.be/qDB8lZbWOHA

https://youtu.be/xZ93nBupJF8

1.0.8

5 years ago

1.0.7

5 years ago

1.0.6

5 years ago

1.0.5

5 years ago

1.0.4

5 years ago

1.0.3

5 years ago

1.0.2

5 years ago

1.0.1

5 years ago