@codecord/core
v1.0.4
Published
A tool-kit for easy discord bot creation, built over discord.js
Downloads
374
Readme
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:
License/Licencia
Dependencies/Dependencias
This project is licensed under the MIT License - see the LICENSE file for details.