disagreement/docs/slash_commands.md
2025-06-10 20:50:23 -06:00

35 lines
1.1 KiB
Markdown

# Using Slash Commands
The library provides a slash command framework via the `ext.app_commands` package. Define commands with decorators and register them with Discord.
```python
from disagreement.ext.app_commands import AppCommandGroup
bot_commands = AppCommandGroup("bot", "Bot commands")
@bot_commands.command(name="ping")
async def ping(ctx):
await ctx.respond("Pong!")
```
Use `AppCommandGroup` to group related commands. See the [components guide](using_components.md) for building interactive responses.
## Next Steps
- [Components](using_components.md)
- [Caching](caching.md)
- [Voice Features](voice_features.md)
- [HTTP Client Options](http_client.md)
## Command Persistence
`AppCommandHandler.sync_commands` can persist registered command IDs in
`.disagreement_commands.json`. When enabled, subsequent syncs compare the
stored IDs to the commands defined in code and only create, edit or delete
commands when changes are detected.
Call `AppCommandHandler.clear_stored_registrations()` if you need to wipe the
stored IDs or migrate them elsewhere with
`AppCommandHandler.migrate_stored_registrations()`.