dbd.ts

A powerful TypeScript package made for Discord Bots with ease.

Usage no npm install needed!

<script type="module">
  import dbdTs from 'https://cdn.skypack.dev/dbd.ts';
</script>

README


dbd.ts

dbd.ts

Discord Server NPM Version NPM Downloads


dbd.ts

About

dbd.ts is a powerful TypeScript Package allowing you to create Discord Bots simplified and quick.

  • Interaction Commands Support
  • Custom Functions / Plugins Support
  • Fast and non-cache heavy
  • 300+ functions built-in

dbd.ts vs aoi.js

aoi.js allows users to create their Discord Bots with "ease" but the main issue it's not as friendly for Developers wanting to create their own functions or customization.

  • aoi.js doesn't allow for users to create their own Functions / using Plugin.
  • It built on JS which can lead to several issues long term of stability and performance.
  • aoi.js is heavy on cache consumption / resources unlike dbd.ts it's not the case.

Installation

Node.JS 16.6.0 or newer is required.

npm install dbd.ts

Setup

const dbd = require("dbd.ts")

const bot = new dbd.Bot({
    intents: ["GUILDS", "GUILD_MESSAGES"], //Discord Intents
    prefix: "PREFIX" //Discord Client Prefix
})

bot.addEvent([
    "onMessage"
])

bot.commands.add({
    type: "basicCommand",
    name: "ping",
    code: "Pong! $pingms"
})

bot.login("Discord Bot Token")

Sideload Plugins

With this basic example of how to use plugins and sideload your own or other functions, it's simple.

/**
 * This below will only work if you are using a proper IDE, so intellisense does it's job.
 * @type {import("dbd.ts").FunctionData}
 */ 
const func = {
    // This would be the name for the plugin or function.
    name: "$systemChannelID",
    
    // You cannot skip this on typescript, but in javascript.
    description: "return system channel id of the guild.",

    // This function is called every time this function is used.
    execute: (d, fn) => {
        // Watch out! data.message will not always be a Message object, so is recommend to use instanceof to check what it actually is before ever returning anything.
        return fn.resolve(
            d.data.message.guild?.systemChannelID
        )
    }
}

// Export function.
module.exports = func
//This isn't a exact function hence "plugins"
// Belong line would work too
// module.exports.default = func

Links