# Changelog

## Version 1.1.3

### Updates:

* [x] Added Feature handler
* [x] Updated Discord.JS for this command handler to v14.6.0

### Bug Fixes:

* [x] Added fix for `disabledDefaultCommands` and `ICommand.delete` that caused all commands not to load

## Version 1.1.2 (Stable)

### Bug Fixes:

* [x] Added bug fix for `autocomplete` functions

## Version 1.1.2

### Edits:

* [x] Replaced `featuresDir` option from `NoCliHandler.configuration` with `events`
* [x] Added `foldersOnly` option to [getAllFiles](/nocli-handler.js/utilities/getallfiles.md) utility function
* [x] Refactored `CommandHandler` and `NoCliHandler` class

### Updates:

* [x] Added `isCommand` and `categories` to `CommandHandler`
* [x] Added `categoryName` to `Command` (Which will be useful for `help` commands)
* [x] Added `isEvent` to `EventHandler`
* [x] Added `PrefixHandler` and `EventHandler` classes
* [x] Added `prefix` default command
* [x] Added Dynamic Validations (`default` and `local`) to `events`
* [x] Added Validation plugins (for users who want to create their own validations)
* [x] Refactored typings which will automatically be sorted on `typings` folder (won't affect your imports though)

### Bug Fixes:

* [x] Added fix for `disabledDefaultCommands` and `ICommand.delete` causing all commands not to load when called

### To Do:

* [ ] Update Documentation

## Version 1.1.1

### Edits:

* [x] Added String Types for `ICommand.type`
* [x] Edited option `cooldowns` as not required in [ICommand ](/nocli-handler.js/definitions/icommand.md)
* [x] Added option `instance` to `ICommand.callback`
* [x] Added `isAnAlias` to Command class to prevent cluttering with original commands
* [x] Default commands for CommandHandler has been enabled
* [x] Added `disabledDefaultCommands` option to NoCliHandler
* [x] Added `emojiConfig` option, `options` option, and `NoCliEmojiConfigOptions` type to ICommand

### Updates:

* [x] Added required permissions & roles MongoDB Schema
* [x] Added some default slash commands
* [x] Added `MongoDBResult` type and fixed bug "Early connection before MongoDB Instance returns a connection status"
* [x] Added `handleCommandAutocomplete` function
* [x] Added `ChannelCommands`, `CustomCommands` and `DisabledCommands` classes
* [x] Added function `findCommand` to SlashCommands

{% hint style="info" %}
A stable version has been uploaded, so please use that stable version (optional since it only includes minor changes)
{% endhint %}

### To Do:

* [x] Update Documentation
* [x] Update Guides

## Version 1.1.0

* [x] Added Autocomplete feature
* [x] Added Permission feature
* [x] Added `autocomplete` and `permissions` options to [ICommand](/nocli-handler.js/definitions/icommand.md)
* [x] Removed checking for Discord.JS versions
* [x] Update whole documentation again :/

## Version 1.0.9

### Edit

* [x] If no command is found, no interaction will be sent
* [x] Deleted `ephemeral` option from [ICommand](/nocli-handler.js/definitions/icommand.md) (kinda useless btw)
* [x] Refactored `CommandHandler.ts`

### Update

* [x] Added `Cooldowns` class (MongoDB database required if to store large cooldowns)
* [x] Added `cancelCooldown` and `updateCooldown` functions to ICommand.callback
* [x] Implemented Auto-Owner ID fetching to `NoCliHandler` class if no bot owners are listed
* [x] Update Documentation Guides

## Version 1.0.8

### Edit

* [x] For specifying command `type`, you can only either use numbers or [NoCliCommandType](/nocli-handler.js/definitions/noclicommandtype.md) enum to describe a command
* [x] Both `Legacy` and `Slash` commands can now use `deferReply` option in [ICommand](/nocli-handler.js/definitions/icommand.md)

### Update

* [x] Added command type checks for `type` and option `type`
* [x] Added `reply` option to [ICommand](/nocli-handler.js/definitions/icommand.md) (works only for `Legacy` Commands)

## Version 1.0.7

### Edit

* [x] Added `instance` to `init` function on [ICommand](/nocli-handler.js/definitions/icommand.md)

### Update

* [x] Updated Discord.JS version support to `v14`
* [x] Added Command Validation Check for `aliases` and `type`

{% hint style="danger" %}
This update requires you to re-read the documentation again. This is because Discord.JS version 14 has a lot of changes, especially ApplicationCommands and bot setup.
{% endhint %}

## Version 1.0.6

### Edit

* [x] Added `deferReply` to [ICommand](/nocli-handler.js/definitions/icommand.md)
* [x] Added `ephemeralReply` to [ICommand](/nocli-handler.js/definitions/icommand.md)
* [x] Added command syntax checks for owner only
* [x] Added `init` function to [ICommand](/nocli-handler.js/definitions/icommand.md) to run events

### Update

* [x] Edited `slash` option to `type` with options `LEGACY`, `SLASH` and `BOTH`
* [x] Refactored Command Handler to fit in with the changes above
* [x] Edited error handling file `handle-error.ts` to show errors specifically from which command

{% hint style="danger" %}
This update requires you to re-read the documentation. This is because I will be implementing new features such as Context Menu Interaction in the future.
{% endhint %}

## Version 1.0.5

### Edit

* [x] Edited CommandHandler file to support updating slash commands
* [x] CommandHandler code refactorization

### Update

* [x] Added Guild and Owner-only options to ICommand
* [x] Added Command aliases to ICommand (The option will be called ¨aliases¨)

## Version 1.0.4​

### Edit

* [x] Changed usage option to expectedArgs for ICommand

### Update

* [x] Implemented Slash Commands Support
* [x] Allowed return of ICommand#callback() as a reply
* [x] Added delete option for ICommand

## Version 1.0.3

### Edit

* [x] Fixed showBanner and showFullErrorLog bugs (Minor)

## Version 1.0.2

### Update

* [x] Implemented minArgs and maxArgs options for ICommand
* [x] Implemented usage option for ICommand
* [x] Implemented correctSyntax option for ICommand

## Version 1.0.1

### Update

* [x] Implemented Test Servers and debugging configuration

## Version 1.0.0

### Update

* [x] Setup of a legacy command handler


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://tribui141108.gitbook.io/nocli-handler.js/introduction/changelog.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
