WOKCommands
  • WOKCommands Documentation
  • Useful Links
    • Setup & Options object
    • 🧠 Build a website dashboard, monetize your bot, and get more users
    • 💰 $100 in FREE Hosting Credits
    • 🙋‍♂️ Support Server
    • 📺 YouTube Channel
  • Commands
    • Ping pong command example
    • Command properties
    • Correct argument usage
    • Command initialization method
    • Bot owner only commands
    • Test servers
    • Cooldowns
    • Required permissions
    • Slash commands
    • Inferred slash command arguments
    • Custom slash command arguments
    • Autocomplete
  • Command Validations
    • Validation setup
    • Runtime validations
    • Syntax validations
  • Event Handler
    • Event Handling
    • Dynamic Validations
  • Features
    • Features
  • Built-in commands and features
    • Enabling and disabling commands
    • Configurable required roles
    • Configurable required permissions
    • Per-guild prefixes
    • Customizable channel specific commands
    • Custom commands
Powered by GitBook
On this page

Was this helpful?

  1. Command Validations

Validation setup

PreviousAutocompleteNextRuntime validations

Last updated 1 year ago

Was this helpful?

There are two types of validations:

  • Runtime validations

    • Ran against a command when it is used

    • Should return a true or false for if the command should be ran

    • You must provide any error messages if need be

    • Arguments:

      • command: Command

      • usage: CommandUsage

      • prefix: string

  • Syntax validations

    • Ran against every command when your bot starts up

    • Should throw an error if the syntax for your command is wrong

    • Arguments:

      • command: Command

Here is an example of setting up your validations in your main file:

index.js
const { Client, IntentsBitField, Partials } = require("discord.js");
const path = require("path");
const WOK = require("wokcommands");
require("dotenv/config");

const client = new Client({
  intents: [
    IntentsBitField.Flags.Guilds,
    IntentsBitField.Flags.GuildMessages,
    IntentsBitField.Flags.DirectMessages,
    IntentsBitField.Flags.MessageContent,
  ],
  partials: [Partials.Channel],
});

client.on("ready", () => {
  console.log("The bot is ready");

  new WOK({
    client,
    mongoUri: process.env.MONGO_URI || "",
    commandsDir: path.join(__dirname, "commands"),
    validations: {
      // Where your runtime validation folder is
      runtime: path.join(__dirname, "validations", "runtime"),
      // Where your syntax validation folder is
      syntax: path.join(__dirname, "validations", "syntax"),
    },
  });
});

client.login(process.env.TOKEN);
index.ts
import { Client, IntentsBitField, Partials } from "discord.js";
import path from "path";
import WOK from "wokcommands";
require("dotenv/config");

const client = new Client({
  intents: [
    IntentsBitField.Flags.Guilds,
    IntentsBitField.Flags.GuildMessages,
    IntentsBitField.Flags.DirectMessages,
    IntentsBitField.Flags.MessageContent,
  ],
  partials: [Partials.Channel],
});

client.on("ready", () => {
  console.log("The bot is ready");

  new WOK({
    client,
    mongoUri: process.env.MONGO_URI || "",
    commandsDir: path.join(__dirname, "commands"),
    validations: {
      // Where your runtime validation folder is
      runtime: path.join(__dirname, "validations", "runtime"),
      // Where your syntax validation folder is
      syntax: path.join(__dirname, "validations", "syntax"),
    },
  });
});

client.login(process.env.TOKEN);