nocli-handler.js
  • ๐Ÿ”—Links
    • Link to NPM Package
    • Link to Github Package
  • ๐Ÿš€Introduction
    • Welcome
    • Changelog
  • ๐ŸงชGetting Started
    • Setting Up Your Project
  • โ“Guides
    • Instance
      • Providing a MongoDB Connection
      • Things you really need to know
    • Commands
      • Creating a simple "Ping Pong" Command
      • Command Arguments
      • Enabling Slash Commands
      • Deleting a Command
      • Guild and Owner-only Commands
      • Command Aliases
      • Deferring a command reply
      • Running Events inside a Command
      • Command Cooldowns
      • Setting up Autocomplete
      • Required Permissions
  • ๐ŸซClasses
    • NoCliHandler
      • .connectToMongoDB()
    • ChannelCommands
      • .action()
      • .add()
      • .remove()
      • .getAvailableChannels()
    • Command
    • CommandHandler
      • .getValidations()
      • .readFiles()
      • .runCommand()
      • .isCommand()
    • CustomCommands
      • .loadCommands()
      • .create()
      • .delete()
      • .run()
    • DisabledCommands
      • .loadDisabledCommands()
      • .disable()
      • .enable()
      • .isDisabled()
    • PrefixHandler
      • .loadPrefixes()
      • .get()
      • .set()
    • SlashCommands
      • .getCommands()
      • .findCommand()
      • .optionsAreDifferent()
      • .create()
      • .delete()
      • .createOptions()
    • EventHandler
      • .readFiles()
      • .registerEvents()
      • .isEvent()
  • ๐Ÿ› ๏ธUtilities
    • Cooldowns
      • .loadCooldowns()
      • .getKeyFromCooldownUsage()
      • .cancelCooldown()
      • .updateCooldown()
      • .verifyCooldown()
      • .getKey()
      • .canBypass()
      • .start()
      • .canRunAction()
    • handleCommandAutocomplete
    • handleError
    • log
    • getAllFiles
    • importFile
  • ๐Ÿ†ŽDefinitions
    • NoCliCategoryConfiguration
    • NoCliCategoryType
    • ICommand
    • CommandOptions
    • CommandCallbackOptions
    • NoCliCommandCooldown
    • NoCliCommandType
    • cooldownTypesArray
    • NoCliCooldownType
    • NoCliCooldownKeyOptions
    • IEvent
    • EventConfigurationOptions
    • DynamicValidationConfigurationOptions
    • DynamicValidationCheck
    • DynamicValidationCheckFunction
    • NoCliHandlerOptions
    • NoCliCooldownOptions
    • NoCliCooldownConfigOptions
    • MongoDBConnection
    • MongoDBResult
    • DebugOptions
    • ConfigOptions
    • ValidationPluginsOption
    • NoCliEmojiConfigOptions
    • NoCliLanguageType
    • NoCliRuntimeValidationType
    • NoCliSyntaxValidationType
Powered by GitBook
On this page
  • Permissions
  • End Result
  1. Guides
  2. Commands

Required Permissions

You may want your bot commands to be ran by users in a Discord Server with the required Server permissions or roles.

PreviousSetting up AutocompleteNextNoCliHandler

Last updated 2 years ago

Permissions

When you set required permissions in the permission array, you can specify a String or PermissionFlagsBits enum. For PermissionFlagsBits enum, please read this .

With that, let's add this option to our device command:

device.js
const { NoCliCommandType } = require("nocli-handler.js");
const { PermissionFlagsBits } = require("discord.js")

/**
 * @type {import("nocli-handler.js").ICommand}
 */
const Command = {
    description: "Asks what device you are using",
    type: NoCliCommandType.Slash,
    expectedArgs: '<device>',
    permissions: [PermissionFlagsBits.Administrator],
    minArgs: 1,
    maxArgs: 1,
    autocomplete: (interaction, command, args) => {
        return ["Desktop", "Laptop", "Phone", "Tablet"]
    },
    callback: ({ client, interaction, args, text }) => {
        return `You chose ${args.join(' ')}`;
    }
}

module.exports = Command;
device.ts
import { ICommand, NoCliCommandType } from "nocli-handler.js";
import { PermissionFlagsBits } from "discord.js";

export default {
    description: "Asks what device you are using",
    type: NoCliCommandType.Slash,
    expectedArgs: '<device>',
    permissions: [PermissionFlagsBits.Administrator],
    minArgs: 1,
    maxArgs: 1,
    autocomplete: (interaction, command, args) => {
        return ["Desktop", "Laptop", "Phone", "Tablet"]
    },
    callback: ({ client, interaction, args, text }) => {
        return `You chose ${args.join(' ')}`;
    }
} as ICommand;

End Result

โ“
documentation