Code Monkey home page Code Monkey logo

cordmand's Introduction

Cordmand

About

A utility package for making discord-bot commands much easier to write with discord.js.

Usage Example

Install this package:

npm i @reinforz/cordmand

or,

yarn add @reinforz/cordmand

Example typescript file:

import { Client, GatewayIntentBits } from "discord.js";
import { addCommands } from "@reinforz/cordmand";
import { Commands } from "@reinforz/cordmand/types";

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

// define your commands similar to
const commands: Commands = {
  interactionCreate: [
    // define interactions here
    {
      name: "ping",
      cb: async (interaction) => {
        await interaction.reply("Pong!");
      },
    },
    {
      name: "hello",
      message: {
        content: "hello",
        ephemeral: true,
      },
    },
  ],

  messageCreate: [
    {
      regex: /ping/i,
      message: "pong",
    },
    {
      regex: /hi/i,
      // message can also be a callback function which can access the discord message object
      message: (_, message) => `hello <@${message.author.id}>`,
    },
    {
      regex: /bye/i,
      message: (_, message) => `bye ${message.author.username}`,
      reply: true, // uses discord's message.reply intead of just sending the message in the same channel
    },
    {
      regex: /args/i,
      message: (args) => `The arguments are: ${args.join(", ")}`,
      reply: true, 
    },
  ],
};

// add commands to the client by calling the addCommands function provided by the client
addCommands(client, commands, {
  messageCommandPrefix: /^i!/i,
  // Add your command prefix regex. Make sure to include ^ (starts with) in the regex
});

// login
client.login(process.env.BOT_TOKEN!);

Example with just using makeDiscordClient function:

import { makeDiscordClient } from "@reinforz/cordmand";
import { Commands, MakeDiscordClientOptions } from "@reinforz/cordmand/types";
import { commands } from "./some-file"

const makeClientOptions: MakeDiscordClientOptions = {
  botToken: process.env.BOT_TOKEN!,
  clientOptions: {
    intents: ["Guilds", "GuildMessages", "MessageContent", "GuildMembers"],
  },
  commands, // the same command object as previous one, It will work in the same way as the previous example
  addCommandsOptions: {
    messageCommandPrefix: /^i!/i,
  },
};

makeDiscordClient(makeClientOptions);

Contributors

cordmand's People

Contributors

imoxto avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.