1.1.8 • Published 9 months ago

@codecord/core v1.1.8

Weekly downloads
-
License
MIT
Repository
github
Last release
9 months ago

Codecord Core

Crea bots de discord sin complicaciones, rápido y eficientemente.

Installation/Instalación

npm install @codecord/core

Usage/Uso

Crear un Bot

Con la clase Bot puedes crear tantos bots como quieras, estos se conectarán y estarán configurados según la configuración que les sea pasada como parámetro.

const { Bot } = require("@codecord/core");

const bot = new Bot({
  token: "YOUR_CLIENT_TOKEN",
  guildId: "YOUR_GUILD_ID",
  files: {
    commands: ["commands/*"],
    events: ["events/*"],
    interactions: ["interactions/*"], // read all files on "interactions" directory
  },
});

Al igual que puede ser pasada como parámetro la configuración como un objeto, también se puede proporcionar el path a un archivo .json con la configuración del bot.

const { Bot } = require("@codecord/core");

const bot = new Bot("bot-config.json");

La interfaz de la configuración del bot es la siguiente:

interface BotOptions {
  token: string;
  guildId: string | null;
  mongoDbConnectionUri?: string;
  files?: {
    commands?: string[];
    interactions?: string[];
    events?: string[];
  };
  client?: ClientOptions; // discord.js
  registerCommands?: true | false;
  logs?: true | false;
  autoInteractionHandler?: true | false;
}

Comandos, interacciones, eventos

El bot filtrará aquellos archivos que exporten clases: Command, Interaction, Event. A continuación podrás ver un ejemplo para cada tipo de archivo.

Archivo de Comando

La clase de comando sigue la misma estructura que los SlashCommandBuilder de discord.js.

const { Command } = require("@codecord/core");

const command = new Command()
  .setName("ping")
  .setDescription("🏓 Pong!")
  .setExecution(async (cmd) => {
    await cmd.reply("🏓 Pong!");
  });

module.exports = command;

Archivo de interacción

Cada vez que se ejecuta un botón, un menú, etc...

const { Interaction } = require("@codecord/core");

const interaction = new Interaction("press-button", async (interaction) => {
  await interaction.reply("Thank you for pressing this button. 👍");
});

module.exports = interaction;

Archivo de Evento

Los nombres de los eventos son los mismos que los de discord.js. Puedes ver la lista aquí.

const { Event } = require("@codecord/core");

const event = new Event("ready", async (client) => {
  console.log(`🟢 Connected as ${client.user.username}!`);
});

module.exports = interaction;

Gestores de Archivos JSON

Este paquete utiliza su propio gestor de archivos JSON. El cual también puede ser utilizado por el usuario con la clase JsonManager.

const json = new JsonManager('path/to/your/json-file.json');

Get()

Obtén información de tu archivo JSON. Es conveniente utilizarlo junto a catch para evitar errores (en caso que la query proporcionada no exista).

const data = await json.get(); // obtiene todo el archivo
const level = await json.get(`${user.id}.level`);

Set()

Establece valores en el archivo JSON. Crea automáticamente los objetos basándose en la query, abriendose camino para añadir el valor indicado en relación con la clave proporcionada.

await json.set(`${user.id}.level`, level + 1);

Delete()

Eliminar una clave del archivo JSON.

await json.delete(`${user.id}`);

Has()

Comprueba si una clave se encuentra en el archivo JSON de manera síncrona.

if (!json.has(user.id)) return;

Push()

Si el valor de la query es un array, se puede utilizar el método push(), que agregará un nuevo valor a la lista.

await json.push(`${user.id}.items`, "sword");

Authors/Autores

Issues/Problemas

Cualquier problema por favor reporten abriendo un ticket de soporte en nuestro servidor de discord.

Dependencies/Dependencias

Discord.js

Este paquete está construido sobre discord.js, aquí tienes toda la documentación necesaria sobre esta dependencia:

  1. npm
  2. discordjs.org
  3. Github

Glob

License/Licencia

Dependencies/Dependencias

This project is licensed under the MIT License - see the LICENSE file for details.

1.1.8

9 months ago

1.1.7

9 months ago

1.1.6

9 months ago

1.1.5

9 months ago

1.1.4

9 months ago

1.1.3

9 months ago

1.1.2

9 months ago

1.1.1

9 months ago

1.1.0

9 months ago

1.0.4

10 months ago

1.0.3

10 months ago

1.0.2

10 months ago

1.0.1

10 months ago

1.0.0

10 months ago