Skip to content

Dqrshan/discord-debug

Repository files navigation

Discord.js Debugging Tool

A simple, customizable and efficient discord.js bot debugging tool

Installation

NOTE: discord-debug only supports discord.js v14. Node.js 16.9.0 or newer is required

npm i discord-debug@latest

Quick Links

Basic Usage

const { Client, GatewayIntentBits } = require('discord.js');
const { Debugger } = require('discord-debug');

const client = new Client({
    intents: [
        GatewayIntentBits.Guilds,
        GatewayIntentBits.GuildMessages,
        GatewayIntentBits.GuildMembers,
        GatewayIntentBits.MessageContent
    ]
});

const debug = new Debugger(client, {
    // theme color of the client used in all embeds (default: #000000)
    themeColor: '#00ffff',
    // secrets to hide during eval (default: client token)
    secrets: [],
    // owners that can use this tool (default: client application owner(s))
    owners: [],
    // integrate slash commands [/debug] (default: false)
    registerApplicationCommands: true,
    // load default event listeners [messageCreate, interactionCreate] (default: *see below*)
    loadDefaultListeners: {
        message: true,
        interaction: true
    },
    // MySQL connection options for sql command (default: {})
    sqlConnectionOptions: {
        uri: 'mysql://root:password@localhost:3306/database'
    }
    // Fetch owners from application (default: true)
    fetchOwners: true
});

client.on('ready', () => console.log(`Logged in as ${client.user.tag}`));

client.on('messageCreate', async (message) => {
    if (message.content === '!ping') {
        return message.reply('pong!');
    } else if (message.content.startsWith('!debug')) {
        // handle *in* prefix commands!
        const args = message.content.split(' ').slice(1);
        await debug.messageRun(message, args);
    }
});

client.login('token');

Debug Commands

help

discord-debug comes with an exported commands collection of all commands.

const { EmbedBuilder } = require('discord.js');
const { Commands } = require('discord-debug');

const helpEmbed = new EmbedBuilder().setTitle('Help').setFields(
    Commands.map((data, name) => {
        return {
            name,
            value: `${data.description}\n${data.aliases.join(', ') ?? ''}`,
            inline: true
        };
    })
);

Features


Notes

  • This repository is inspired by wonderlandpark/dokdo.
  • This repository will receive its own features, may it be in dokdo or not.

Contributing

NOTE: Create an issue before creating a pull request!

  1. Fork this repository.
  2. Create a PR.

Developer Contact


Thanks for using discord-debug 💓