1.3.6 • Published 3 years ago

discord-commander.js v1.3.6

Weekly downloads
-
License
MIT
Repository
-
Last release
3 years ago

discord-commander.js

discord-commander.js est une librairie permettant de géré les messages commandes et les slash commandes.

Procédure d'installation npm i discord-commander.js

Documentation :

Classes

CommandManager

Constructor :

new CommandManager(client, ownerIds, onCommand);
ParamètreTypeOptionnel
clientClientnon
ownerIdsArray< Snowflake >non
onCommandCommandMangerOnCommandoui

Methodes :

  • registerCommand(command)
ParamètreTypeOptionnel
commandCommandOui

retourne CommandManager

  • registerCommands(commands)
ParamètreTypeOptionnel
commandsArray< Command >oui

retourne CommandManager

Dispatcher

Constructor :

new Dispatcher(options);
ParamètreTypeOptionnel
options.prefixstringnon
options.responseOnMentionbooleannon
options.commandManagerCommandManagernon
options.deleteCommandbooleannon
options.enableResponseByMessageForSlashCommandbooleannon
options.parseArgsCommandParseArgsoui
options.commandOptionsObjectnon

Methodes :

  • onMessage(message)
ParamètreTypeOptionnel
messageMessagenon

retourne void

  • onCommandInteraction(interaction)
ParamètreTypeOptionnel
interactionCommandInteractionnon

retourne void

CommandData

Constructor :

new CommandData(enableSlashCommand, guildIds);
ParamètreTypeOptionnel
enableSlashCommandCommandDataEnableSlashCommandoui
guildIdsArray< Snowflake >oui

Methodes :

  • setName(name)
ParamètreTypeOptionnel
namestringnon

retourne CommandData

  • setDescription(description)
ParamètreTypeOptionnel
descriptionstringnon

retourne CommandData

  • setOptions(options)
ParamètreTypeOptionnel
optionsArray< CommandOptionsData >non

retourne CommandData

  • addOption(option)
ParamètreTypeOptionnel
optionCommandOptionsDatanon

retourne CommandData

  • setDefaultPermission(defaultPermission)
ParamètreTypeOptionnel
defaultPermissionBooleannon

retourne CommandData

  • setAliases(aliases)
ParamètreTypeOptionnel
aliasesArray< string >non

retourne CommandData

  • addAlias(alias)
ParamètreTypeOptionnel
aliasstringnon

retourne CommandData

  • setGroup(group)
ParamètreTypeOptionnel
groupstringnon

retourne CommandData

  • setHidden(hidden)
ParamètreTypeOptionnel
hiddenstringnon

retourne CommandData

  • setExamples(examples)
ParamètreTypeOptionnel
examplesArray< string >non

retourne CommandData

  • addExample(example)
ParamètreTypeOptionnel
examplestringnon

retourne CommandData

  • setClientPermissions(clientPermissions)
ParamètreTypeOptionnel
clientPermissionsArray< PermissionResolvable >non

retourne CommandData

  • addClientPermission(clientPermission)
ParamètreTypeOptionnel
clientPermissionPermissionResolvablenon

retourne CommandData

  • setAuthorPermissions(authorPermissions)
ParamètreTypeOptionnel
authorPermissionsArray< PermissionResolvable >non

retourne CommandData

  • addAuthorPermission(authorPermission)
ParamètreTypeOptionnel
authorPermissionPermissionResolvablenon

retourne CommandData

  • setThrottling(usages, duration)
ParamètreTypeOptionnel
usagesnumbernon
durationnumbernon

retourne CommandData

  • setGuildOnly(guildOnly)
ParamètreTypeOptionnel
guildOnlybooleannon

retourne CommandData

  • setOwnerOnly(guild, bot)
ParamètreTypeOptionnel
guildbooleannon
botbooleannon

retourne CommandData

  • setUnknown(unknown)
ParamètreTypeOptionnel
unknownbooleannon

retourne CommandData

  • get(property)
ParamètreTypeOptionnel
propertystringnon

retourne string

CommandOptionsData

Constructor :

new CommandOptionsData();

Methodes :

  • setType(type)
ParamètreTypeOptionnel
typeApplicationCommandOptionTypenon

retourne CommandOptionsData

  • setName(name)
ParamètreTypeOptionnel
namestringnon

retourne CommandOptionsData

  • setDescription(description)
ParamètreTypeOptionnel
descriptionstringnon

retourne CommandOptionsData

  • setRequired(required)
ParamètreTypeOptionnel
requiredbooleannon

retourne CommandOptionsData

  • setChoices(choices)
ParamètreTypeOptionnel
choicesArray< ApplicationCommandOptionChoice >non

retourne CommandOptionsData

  • addChoice(name, value)
ParamètreTypeOptionnel
namestringnon
valuestring | numbernon

retourne CommandOptionsData

  • setOptions(options)
ParamètreTypeOptionnel
optionsArray< CommandOptionsData >non

retourne CommandOptionsData

  • addOption(option)
ParamètreTypeOptionnel
optionCommandOptionsDatanon

retourne CommandOptionsData

CommandContext

Propriété :

Methodes :

  • get(property)
ParamètreTypeOptionnel
propertystringnon

retourne string

  • send(options)
ParamètreTypeOptionnel
propertyMessageOptions | InteractionReplyOptionsnon

retourne Promise< Message | void >

  • reply(options)
ParamètreTypeOptionnel
propertyReplyMessageOptions | InteractionReplyOptionsnon

retourne Promise< Message | void >

  • getContextBase()

retourne CommandInteraction | Message

CommandArgs

Methodes :

  • getSubCommandGroup()

retourne string | null

  • getSubCommand()

retourne string | null

  • get(name)
ParamètreTypeOptionnel
namestringnon

retourne CommandArg

Command

Methodes :

  • getData()

retourne CommandData

pour le reste voir l'exeple

Types

CommandMangerOnCommand

type : function

Example : function (command, context) {}

ParamètreTypeOptionnel
commandCommandnon
contextCommandContextnon

retourne void

CommandParseArgs

type : function

Example : function (commandData, guild, args, setArg) {}

ParamètreTypeOptionnel
commandDataCommandDatanon
guildGuild | undefinednon
argsArray< string >non
setArg(name: string, data: CommandArg) => voidnon

retourne void

CommandDataEnableSlashCommand

type : string | null

Value :

  • GLOBAL
  • GUILD
  • null

CommandArg

type: Object

KeyTypeOptionnel
namestringnon
valuestring | number | boolean | undefinednon
userUser | nullnon
memberGuildMember | nullnon
channelGuildChannel | ThreadChannel | nullnon
roleRole | nullnon

Exemple de code

const Discord = require('discord.js');
const Handler = require('discord-commander.js');

class UserInfo extends Handler.Command {

    constructor() {
        const user = (new Handler.CommandOptionsData())
            .setType('USER')
            .setName('user')
            .setDescription('user description')
            .setRequired(true);

        const command = (new Handler.CommandData('GUILD'))
            .setName('user-info')
            .setDescription('user-info description')
            .addOption(user);

        super(command);
    }

    execute(context, options) {
        const {user} = context.args.get('user');

        context.reply({
            content: `User: ${user.id} | group: ${context.args.getSubCommandGroup()} | sub: ${context.args.getSubCommand()}`
        }).catch(console.error);
    }

    onError(error, context) {}
    
    slashCommandPermissions(commandId, permissionsManager) {}
}

const client = new Discord.Client({intents: Object.values(Discord.Intents.FLAGS).reduce((acc, p) => acc | p, 0)});

const manager = new Handler.CommandManager(client, ['YOUR ID']).registerCommands([new UserInfo()]);
const dispatcher = new Handler.Dispatcher({
    prefix: '!',
    responseOnMention: true,
    commandManager: manager,
    deleteCommand: true,
    enableResponseByMessageForSlashCommand: true,
    commandOptions: {},
});

client.on('ready', () => console.log('ready'));

client.on('interactionCreate', (interaction) => {
    if (interaction.isCommand()) client.emit('commandInteractionCreate', interaction);
    if (interaction.isButton()) client.emit('buttonInteractionCreate', interaction);
    if (interaction.isSelectMenu()) client.emit('selectMenuInteractionCreate', interaction);
});

client.on('messageCreate', message => dispatcher.onMessage(message));
client.on('messageUpdate', (oldMessage, message) => {
    if (message instanceof Discord.Message) dispatcher.onMessage(message);
});
client.on('commandInteractionCreate', interaction => dispatcher.onCommandInteraction(interaction));

client.login('YOUR TOKEN').catch(console.error);
1.3.6

3 years ago

1.3.5

3 years ago

1.3.4

3 years ago

1.3.3

3 years ago

1.3.2

3 years ago

1.3.1

3 years ago

1.3.0

3 years ago

1.2.0

3 years ago

1.1.6

3 years ago

1.1.5

3 years ago

1.1.4

3 years ago

1.1.3

3 years ago

1.1.2

3 years ago

1.1.1

3 years ago

1.0.1

3 years ago

1.0.0

3 years ago