Context Menus
These application commands are situated under the "Apps" section when you right-click a user or a message. They act like interactions, except they take a User
or Message
object along with ApplicationCommandInteraction
.
note
For more specific annotations, you can use UserCommandInteraction
or MessageCommandInteraction
instead of ApplicationCommandInteraction
for the respective commands.
User commands
The function below should have only one required argument, which is an instance of ApplicationCommandInteraction
.
@bot.user_command(name="User Info")
async def avatar(inter: disnake.ApplicationCommandInteraction, user: disnake.User):
await inter.response.send_message(f"Username: {user}\nBot: {user.bot}")
Message commands
The function below should have only one required argument, which is an instance of ApplicationCommandInteraction
.
@bot.message_command(name="Reverse")
async def reverse(inter: disnake.ApplicationCommandInteraction, message: disnake.Message):
# Reversing the message and sending it back.
await inter.response.send_message(message.content[::-1])
Context menu notes
- Context menu commands cannot have subcommands or any other options.
- Responses to context menu commands and their permissions function the same as slash commands.