You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
59 lines
1.9 KiB
59 lines
1.9 KiB
# This example requires the 'message_content' privileged intent to function.
|
|
|
|
|
|
import random
|
|
|
|
import discord
|
|
from discord.ext import commands
|
|
|
|
|
|
class MyContext(commands.Context):
|
|
async def tick(self, value):
|
|
# reacts to the message with an emoji
|
|
# depending on whether value is True or False
|
|
# if its True, it'll add a green check mark
|
|
# otherwise, it'll add a red cross mark
|
|
emoji = '\N{WHITE HEAVY CHECK MARK}' if value else '\N{CROSS MARK}'
|
|
try:
|
|
# this will react to the command author's message
|
|
await self.message.add_reaction(emoji)
|
|
except discord.HTTPException:
|
|
# sometimes errors occur during this, for example
|
|
# maybe you don't have permission to do that
|
|
# we don't mind, so we can just ignore them
|
|
pass
|
|
|
|
|
|
class MyBot(commands.Bot):
|
|
async def get_context(self, message, *, cls=MyContext):
|
|
# when you override this method, you pass your new Context
|
|
# subclass to the super() method, which tells the bot to
|
|
# use the new MyContext class
|
|
return await super().get_context(message, cls=cls)
|
|
|
|
|
|
intents = discord.Intents.default()
|
|
intents.message_content = True
|
|
|
|
bot = MyBot(command_prefix='!', intents=intents)
|
|
|
|
|
|
@bot.command()
|
|
async def guess(ctx, number: int):
|
|
"""Guess a random number from 1 to 6."""
|
|
# explained in a previous example, this gives you
|
|
# a random number from 1-6
|
|
value = random.randint(1, 6)
|
|
# with your new helper function, you can add a
|
|
# green check mark if the guess was correct,
|
|
# or a red cross mark if it wasn't
|
|
await ctx.tick(number == value)
|
|
|
|
|
|
# IMPORTANT: You shouldn't hard code your token
|
|
# these are very important, and leaking them can
|
|
# let people do very malicious things with your
|
|
# bot. Try to use a file or something to keep
|
|
# them private, and don't commit it to GitHub
|
|
token = "your token here"
|
|
bot.run(token)
|
|
|