import discord from discord.ext import commands # Set slash commands=True when constructing your bot to enable all slash commands # if your bot is only for a couple of servers, you can use the parameter # `slash_command_guilds=[list, of, guild, ids]` to specify this, # then the commands will be much faster to upload. bot = commands.Bot("!", intents=discord.Intents(guilds=True, messages=True), slash_commands=True) @bot.event async def on_ready(): print(f"Logged in as {bot.user} (ID: {bot.user.id})") print("------") @bot.command() # You can use commands.Option to define descriptions for your options, and converters will still work fine. async def ping( ctx: commands.Context, emoji: bool = commands.Option(description="whether to use an emoji when responding") ): # This command can be used with slash commands or message commands if emoji: await ctx.send("\U0001f3d3") else: await ctx.send("Pong!") @bot.command(message_command=False) async def only_slash(ctx: commands.Context): # This command can only be used with slash commands await ctx.send("Hello from slash commands!") @bot.command(slash_command=False) async def only_message(ctx: commands.Context): # This command can only be used with a message await ctx.send("Hello from message commands!") bot.run("token")