# This example requires the 'members' privileged intents import discord from discord.ext import commands import random description = """An example bot to showcase the discord.ext.commands extension module. There are a number of utility commands being showcased here.""" intents = discord.Intents(guilds=True, messages=True, members=True) bot = commands.Bot(command_prefix="t-", description=description, intents=intents) @bot.event async def on_ready(): print(f"Logged in as {bot.user} (ID: {bot.user.id})") print("------") @bot.command() async def add(ctx, left: int, right: int): """Adds two numbers together.""" await ctx.send(left + right) @bot.command() async def roll(ctx, dice: str): """Rolls a dice in NdN format.""" try: rolls, limit = map(int, dice.split("d")) except Exception: await ctx.send("Format has to be in NdN!") return result = ", ".join(str(random.randint(1, limit)) for r in range(rolls)) await ctx.send(result) @bot.command(description="For when you wanna settle the score some other way") async def choose(ctx, *choices: str): """Chooses between multiple choices.""" await ctx.send(random.choice(choices)) @bot.command() async def repeat(ctx, times: int, content="repeating..."): """Repeats a message multiple times.""" for i in range(times): await ctx.send(content) @bot.command() async def joined(ctx, member: discord.Member): """Says when a member joined.""" await ctx.send(f"{member.name} joined in {member.joined_at}") @bot.group() async def cool(ctx): """Says if a user is cool. In reality this just checks if a subcommand is being invoked. """ if ctx.invoked_subcommand is None: await ctx.send(f"No, {ctx.subcommand_passed} is not cool") @cool.command(name="bot") async def _bot(ctx): """Is the bot cool?""" await ctx.send("Yes, the bot is cool.") bot.run("token")