v1.2.11: Add tournaments command with filtering and improve error handling

Features:
- Add /tournaments command with status and game filters
- Add tournament API integration to PlayerService
- Add beautiful tournament embed builders with prize pools
- Protect sync-games from overwriting manual customizations
- Improve error handling with proper MessageFlags

Changes:
- Add getTournamentsData() and getTournamentData() to PlayerService
- Add tournament command handler with pagination support
- Add tournament embed builders with rich formatting
- Update deployment docs for v1.2.10 features
- Add issue tracker documentation
- Add tournament testing script
- Fix ephemeral flags throughout CommandHandler
- Improve permission checks with PermissionFlagsBits

Version: 1.2.11
This commit is contained in:
VinceC
2025-10-02 06:24:54 -05:00
parent 546127f91c
commit dd8aa456d9
11 changed files with 502 additions and 60 deletions

49
docs/issue-tracker.md Normal file
View File

@@ -0,0 +1,49 @@
# VRBattles Discord Bot Issue Tracker
Use this checklist to track code-quality fixes and consistency updates. Check items off as completed and commit this file with your changes.
## How to use
- Edit this file, change "[ ]" to "[x]" for completed items, and include a short note or PR link if helpful.
## Checklist
- [ ] Replace admin permission check with PermissionFlagsBits.Administrator
- Location: `src/commands/CommandHandler.js` (in `handleRegisterServer`)
- Desired: `interaction.member.permissions.has(PermissionFlagsBits.Administrator)`
- [ ] Replace legacy `flags` ephemeral usage with `ephemeral: true`
- Location: various replies in `src/commands/CommandHandler.js` and `src/commands/SubscriptionCommands.js`
- Notes: decide ephemerality at `reply`/`deferReply`; it cannot be changed via `editReply`
- [ ] Switch `interaction.isCommand()` to `interaction.isChatInputCommand()`
- Location: `src/Bot.js` (in `handleInteraction`)
- [ ] Use `PermissionFlagsBits` for channel permission checks
- Location: `src/services/NotificationService.js`
- Replace string permissions (e.g., 'SendMessages', 'ViewChannel') with `PermissionFlagsBits.*`
- [ ] Clean up `SubscriptionCommands` duplicates and constructor mismatch
- Location: `src/commands/SubscriptionCommands.js`
- Remove duplicated methods (`getGame`, `createOrUpdateSubscription`, `safeReply`), fix constructor to accept `(supabase, logger)` and use the injected logger
- [ ] Fix `PlayerService` logging
- Location: `src/services/PlayerService.js`
- Inject a logger or use a consistent logging strategy; remove `this.logger` references if not injected
- [ ] Align `/help` category choices with handler expectations
- Locations:
- `deploy-commands.js` (slash command choices for `help`)
- `src/commands/HelpCommand.js` (expects categories like `getting_started`, `search`, etc.)
- Decide whether to offer topic categories or game names and make both sides consistent
- [ ] Add guild-scoped slash command deployment for development
- Location: `deploy-commands.js` (or add a new `deploy-commands.dev.js`)
- Use `Routes.applicationGuildCommands(CLIENT_ID, GUILD_ID)` for fast iteration in dev
- [ ] Standardize interaction handlers and checks
- Ensure consistent use of `isChatInputCommand`, `isButton`, and ephemerality decisions across commands and buttons
## Notes
- Keep PRs small and focused (one checklist item per PR when possible).
- Update this file with any extra context, follow-ups, or links.