Skip to content

Repository files navigation

RuneRover - OSRS Discord Bot

Features

  • Using latest discord.js v14.x version.
  • Supports all possible type of commands.
    • Message commands (AKA: Prefix commands).
    • Application commands:
      • Chat Input
      • User context
      • Message context
  • Components Handler.
    • Buttons
    • Select menus
    • Modals
    • Autocomplete
  • Easy and simple to use.
  • Advanced command options (click here).
  • Updated to latest discord.js version.
  • Included a database: MongoDB.

Commands, events, and components structure

This Discord bot template uses CommonJS modules. You cannot use import, export, or any related keywords from the ES6 modules.

Prefix commands:

module.exports = {
    structure: {
        name: string,
        description: string,
        aliases: string[],
        permissions?: PermissionResolvable,
        cooldown?: number,
        globalCooldown?: boolean,
        developers?: boolean,
        nsfw?: boolean
    },
    run: (client, message, args) => void
};

Slash/User/Message context commands:

module.exports = {
    structure: SlashCommandBuilder | ContextMenuCommandBuilder,
    options?: {
        cooldown?: number,
        globalCooldown?: boolean,
        developers?: boolean,
        nsfw?: boolean
    },
    run: (client, interaction) => void
};

Event listener:

The ...args is a spread operator of arguments from the event chosen. For an example, if the event is 'messageCreate', the first argument is going to be type of Message.

module.exports = {
    event: string,
    once?: boolean,
    run: (client, ...args) => void
};

Component:

The interaction is the interaction of the component. For an example, if the custom ID is from a button, the interaction is type of ButtonInteraction.

module.exports = {
    customId: string,
    options?: {
        public?: boolean
    },
    run: (client, interaction) => void
};

Requirements

Packages:

  • chalk v2.4.2
  • discord.js v^14.13.0
  • dotenv v^latest
  • mongoose v^latest

Warning

Installing any version from the package chalk that is over v2.4.2 will throw an error that you must enable ES6 modules, while this handler uses CommonJS modules.

Platforms:

  • Node.js v16.9.0 or newer

Setup

  1. Install Visual Studio Code.
  2. Download this project as a .zip file: Click here
  3. Extract the .zip file into a normal folder.
  4. Open VSCode, click on Open Folder, and select the new created folder.
  5. Go to src/ and rename example.config.js to config.js and fill all the required values. You can use ENV instead of config.js to keep your bot token and ID, and your MongoDB URI in a secured place by renaming the file .env.example to .env and filling all required values.

Caution

Sharing your Discord bot's token with anyone is a very risky move since you'll allow them to use your bot. This is also a dangerous move for the MongoDB database; we don't recommend using any public URIs or sharing your database connection URL.

  1. Initialize a new npm package:
npm init -y
  1. Install all required packages:
npm install chalk@2.4.2 discord.js@latest dotenv mongoose
  1. To start your bot, run node . or npm run start.
  2. Enjoy. =)

Command options

The command options, each property is optional, which means it's allowed to provide an undefined value to one of these properties below.

  • permissions (PermissionFlagsBits | string): The required permissions for the command, available to message commands only.
  • cooldown (number): The cooldown of the command, in milliseconds.
  • globalCooldown (boolean): Determines whether the cooldown is global or not.
  • developers (boolean): Determines whether the command is executable only to the developers of the bot.
  • nsfw (boolean): Determines whether this command is executable only in NSFW channels.

Component options

The component options, each property is optional which means it's allowed to provide an undefined value to one of these properties below.

  • public (boolean): If set to true, the component will be available to everyone (default), if set to false, the component will be available to the component owner (original interaction user) only.

FAQs

1. I'm getting this error: "Unable to load application commands to Discord API"

  • The bot token and/or bot ID are invalid.
  • The bot token and bot ID are not from the same Discord bot.
  • Too many application commands.
    • 100 Global Chat input (AKA: Slash) commands.
    • 5 Global User context commands.
    • 5 Global Message context commands.
  • Invalid application command structure.
    • Missing description, type, or any required properties for a command.
    • The command cannot be modified.
  • The Discord API has an issue (Verify Discord status).

Learn more...

2. I'm unable to view any application commands, no errors in console?

This is a common problem for developers, to fix this issue, restart the Discord app or go in a different text channel.

3. Is MongoDB required?

No, MongoDB is not required. There is an option to disable it in config.js so you will avoid errors from the commands that requires the database, such as ?prefix. If you want to use the database, visit MongoDB website.

License

GPL-3.0, General Public License v3

About

OSRS Discord Bot

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages