Wrap the wallet deduction in try/except so a failed db_patch immediately
stops the view and shows an error, instead of leaving it open for 30s.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
message.edit(view=self) re-registers the view in discord.py's ViewStore,
resetting the 30-minute timeout timer. Scouted packs never showed
"Scout Window Closed" because each scout pushed the timeout further out.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
When a user exceeds their 2/day scout token limit, they are now offered
a button to purchase an extra token for 200₼ instead of being blocked.
Updates /scout-tokens message to mention the purchase option.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>