@nex-js/dc-js
v1.0.0
Published
A lightweight and powerful framework built on top of discord.js to help you develop Discord bots faster, more organized, and with full type safety.
Maintainers
Readme
✨ Features
- 📦 Auto Loader: Automatically scans and registers your command and event files.
- 🛡️ Type Safety: Built with TypeScript for full type safety and great IDE autocompletion.
- ⚡ Quick Start: Get your bot up and running with just a few lines of code.
- 📂 Structured Architecture: Pre-defined folder structure for commands and events.
🚀 Installation
Create your project and install the dc-js package:
npm install dc-js discord.js
# or
bun add dc-js discord.js📂 Project Structure
dc-js expects the following directory structure by default:
your-bot/
├── src/
│ ├── commands/ # Slash commands
│ │ └── ping.ts
│ └── events/ # Bot events (ready, interactionCreate, etc.)
│ └── ready.ts
├── .env # Bot token
├── index.ts # Entry point
└── package.json🛠️ Usage
1. Main Entry Point (index.ts)
import { DcJs } from 'dc-js';
// Optional: Customize Intents (Default: All Intents)
// DcJs.setIntents(GatewayIntentBits.Guilds, ...)
DcJs.run();2. Defining a Command (src/commands/ping.ts)
import { defineCommand } from 'dc-js';
export default defineCommand({
name: 'ping',
description: 'Measures the bot latency.',
builder: (b) => b, // Use builder to add options/subcommands
handler: async (interaction) => {
await interaction.reply('Pong! 🏓');
}
});3. Defining an Event (src/events/ready.ts)
import { defineEvent } from 'dc-js';
export default defineEvent({
event: 'clientReady',
handler: (client) => {
console.log(`🚀 Logged in as ${client.user?.tag}!`);
}
});4. Configuration (.env)
Create a .env file in your root directory and add your bot token:
TOKEN=YOUR_DISCORD_BOT_TOKEN⚙️ Advanced Configuration
Custom Intents
By default, dc-js enables all gateway intents. To use specific intents:
import { GatewayIntentBits } from 'discord.js';
import { DcJs } from 'dc-js';
DcJs.setIntents(
GatewayIntentBits.Guilds,
GatewayIntentBits.GuildMessages
).run();Custom Client Instance
If you want to provide your own discord.js Client instance:
import { Client, GatewayIntentBits } from 'discord.js';
import { DcJs } from 'dc-js';
const myClient = new Client({ intents: [GatewayIntentBits.Guilds] });
DcJs.setClient(myClient).run();📄 License
This project is licensed under the MIT License.
