52 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			52 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
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)
 | 
						|
        
 | 
						|
 | 
						|
bot = MyBot(command_prefix='!', intents=discord.Intents(guilds=True, messages=True))
 | 
						|
 | 
						|
@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)
 |