diff options
Diffstat (limited to 'examples/views/counter.py')
| -rw-r--r-- | examples/views/counter.py | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/examples/views/counter.py b/examples/views/counter.py new file mode 100644 index 00000000..a1ab756a --- /dev/null +++ b/examples/views/counter.py @@ -0,0 +1,43 @@ +from discord.ext import commands + +import discord + + +class CounterBot(commands.Bot): + def __init__(self): + super().__init__(command_prefix=commands.when_mentioned_or('$')) + + async def on_ready(self): + print(f'Logged in as {self.user} (ID: {self.user.id})') + print('------') + + +# Define a simple View that gives us a counter button +class Counter(discord.ui.View): + + # Define the actual button + # When pressed, this increments the number displayed until it hits 5. + # When it hits 5, the counter button is disabled and it turns green. + # note: The name of the function does not matter to the library + @discord.ui.button(label='0', style=discord.ButtonStyle.red) + async def count(self, button: discord.ui.Button, interaction: discord.Interaction): + number = int(button.label) if button.label else 0 + if number + 1 >= 5: + button.style = discord.ButtonStyle.green + button.disabled = True + button.label = str(number + 1) + + # Make sure to update the message with our updated selves + await interaction.response.edit_message(view=self) + + +bot = CounterBot() + + +async def counter(ctx: commands.Context): + """Starts a counter for pressing.""" + await ctx.send('Press!', view=Counter()) + + +bot.run('token') |