old_contents: # This example requires the 'message_content' privileged intent to function.
  
  import typing
  
  import discord
  from discord.ext import commands
  
  # Defines a custom Select containing colour options
  # that the user can choose. The callback function
  # of this class is called when the user changes their choice
  class Dropdown(discord.ui.Select):
      def __init__(self):
  
          # Set the options that will be presented inside the dropdown
          options = [
              discord.SelectOption(label='Red', description='Your favourite colour is red', emoji='🟥'),
              discord.SelectOption(label='Green', description='Your favourite colour is green', emoji='🟩'),
              discord.SelectOption(label='Blue', description='Your favourite colour is blue', emoji='🟦'),
          ]
  
          # The placeholder is what will be shown when no option is chosen
          # The min and max values indicate we can only pick one of the three options
          # The options parameter defines the dropdown options. We defined this above
          super().__init__(placeholder='Choose your favourite colour...', min_values=1, max_values=1, options=options)
  
      async def callback(self, interaction: discord.Interaction):
          # Use the interaction object to send a response message containing
          # the user's favourite colour or choice. The self object refers to the
          # Select object, and the values attribute gets a list of the user's
          # selected options. We only want the first one.
          await interaction.response.send_message(f'Your favourite colour is {self.values[0]}')
  
  
  class DropdownView(discord.ui.View):
      def __init__(self):
          super().__init__()
  
          # Adds the dropdown to our view object.
          self.add_item(Dropdown())
  
  
  class Bot(commands.Bot):
      def __init__(self):
          intents = discord.Intents.default()
          intents.message_content = True
  
          super().__init__(command_prefix=commands.when_mentioned_or('$'), intents=intents)
  
      async def on_ready(self):
          print(f'Logged in as {self.user} (ID: {self.user.id})')
          print('------')
  
  
  bot = Bot()
  
  
  @bot.command()
  async def colour(ctx):
      """Sends a message with our dropdown containing colours"""
  
      # Create the view containing our dropdown
      view = DropdownView()
  
      # Sending a message containing our view
      await ctx.send('Pick your favourite colour:', view=view)
  
  
  bot.run('token')
  
new_contents: # This example requires the 'message_content' privileged intent to function.
  
  import discord
  from discord.ext import commands
  
  # Defines a custom Select containing colour options
  # that the user can choose. The callback function
  # of this class is called when the user changes their choice
  class Dropdown(discord.ui.Select):
      def __init__(self):
  
          # Set the options that will be presented inside the dropdown
          options = [
              discord.SelectOption(label='Red', description='Your favourite colour is red', emoji='🟥'),
              discord.SelectOption(label='Green', description='Your favourite colour is green', emoji='🟩'),
              discord.SelectOption(label='Blue', description='Your favourite colour is blue', emoji='🟦'),
          ]
  
          # The placeholder is what will be shown when no option is chosen
          # The min and max values indicate we can only pick one of the three options
          # The options parameter defines the dropdown options. We defined this above
          super().__init__(placeholder='Choose your favourite colour...', min_values=1, max_values=1, options=options)
  
      async def callback(self, interaction: discord.Interaction):
          # Use the interaction object to send a response message containing
          # the user's favourite colour or choice. The self object refers to the
          # Select object, and the values attribute gets a list of the user's
          # selected options. We only want the first one.
          await interaction.response.send_message(f'Your favourite colour is {self.values[0]}')
  
  
  class DropdownView(discord.ui.View):
      def __init__(self):
          super().__init__()
  
          # Adds the dropdown to our view object.
          self.add_item(Dropdown())
  
  
  class Bot(commands.Bot):
      def __init__(self):
          intents = discord.Intents.default()
          intents.message_content = True
  
          super().__init__(command_prefix=commands.when_mentioned_or('$'), intents=intents)
  
      async def on_ready(self):
          print(f'Logged in as {self.user} (ID: {self.user.id})')
          print('------')
  
  
  bot = Bot()
  
  
  @bot.command()
  async def colour(ctx):
      """Sends a message with our dropdown containing colours"""
  
      # Create the view containing our dropdown
      view = DropdownView()
  
      # Sending a message containing our view
      await ctx.send('Pick your favourite colour:', view=view)
  
  
  bot.run('token')
  
subject: Remove unused import in dropdown example