31 lines
1.3 KiB
Markdown
31 lines
1.3 KiB
Markdown
### Context & Goal
|
|
|
|
Currently, every command manually performs checks like user existence or maintenance mode, or these are hardcoded into the `CommandHandler`. Standardizing these requirements in the command definition itself makes the code cleaner and more declarative.
|
|
|
|
### Dependencies
|
|
|
|
- None
|
|
|
|
### Affected Files
|
|
|
|
- `shared/lib/types.ts`: Update `Command` interface to include a optional `requirements` object.
|
|
- `bot/lib/handlers/CommandHandler.ts`: Update to read and enforce these requirements.
|
|
- `bot/commands/economy/balance.ts`: Refactor to use the new requirements (example).
|
|
|
|
### Technical Constraints & Strategy
|
|
|
|
- Implementation: Use a standardized `requirements` object in the `Command` interface.
|
|
- Requirements could include: `userExists: boolean`, `permissions: string[]`, `devOnly: boolean`.
|
|
- Ensure `CommandHandler` provides clear error messages to the user when a requirement fails.
|
|
|
|
### Definition of Done (Binary)
|
|
|
|
- [ ] `Command` interface updated in `types.ts`.
|
|
- [ ] `CommandHandler.ts` enforces requirements before executing command.
|
|
- [ ] At least one command (e.g., `balance`) is refactored to use the new system.
|
|
- [ ] Clear error embeds are shown to the user when requirements aren't met.
|
|
|
|
### New Test Files
|
|
|
|
- None (Verification via manual testing of command execution).
|