mirror of
				https://github.com/Rapptz/discord.py.git
				synced 2025-10-31 05:23:03 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			77 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
	
	
			
		
		
	
	
			77 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
	
	
| .. _quickstart:
 | |
| 
 | |
| .. currentmodule:: discord
 | |
| 
 | |
| Quickstart
 | |
| ============
 | |
| 
 | |
| This page gives a brief introduction to the library. It assumes you have the library installed,
 | |
| if you don't check the :ref:`installing` portion.
 | |
| 
 | |
| A Minimal Bot
 | |
| ---------------
 | |
| 
 | |
| Let's make a bot that replies to a specific message and walk you through it.
 | |
| 
 | |
| It looks something like this:
 | |
| 
 | |
| .. code-block:: python3
 | |
| 
 | |
|     import discord
 | |
| 
 | |
|     client = discord.Client()
 | |
| 
 | |
|     @client.event
 | |
|     async def on_ready():
 | |
|         print('We have logged in as {0.user}'.format(client))
 | |
| 
 | |
|     @client.event
 | |
|     async def on_message(message):
 | |
|         if message.author == client.user:
 | |
|             return
 | |
| 
 | |
|         if message.content.startswith('$hello'):
 | |
|             await message.channel.send('Hello!')
 | |
| 
 | |
|     client.run('your token here')
 | |
| 
 | |
| Let's name this file ``example_bot.py``. Make sure not to name it ``discord.py`` as that'll conflict
 | |
| with the library.
 | |
| 
 | |
| There's a lot going on here, so let's walk you through it step by step.
 | |
| 
 | |
| 1. The first line just imports the library, if this raises a `ModuleNotFoundError` or `ImportError`
 | |
|    then head on over to :ref:`installing` section to properly install.
 | |
| 2. Next, we create an instance of a :class:`Client`. This client is our connection to Discord.
 | |
| 3. We then use the :meth:`Client.event` decorator to register an event. This library has many events.
 | |
|    Since this library is asynchronous, we do things in a "callback" style manner.
 | |
| 
 | |
|    A callback is essentially a function that is called when something happens. In our case,
 | |
|    the :func:`on_ready` event is called when the bot has finished logging in and setting things
 | |
|    up and the :func:`on_message` event is called when the bot has received a message.
 | |
| 4. Since the :func:`on_message` event triggers for *every* message received, we have to make
 | |
|    sure that we ignore messages from ourselves. We do this by checking if the :attr:`Message.author`
 | |
|    is the same as the :attr:`Client.user`.
 | |
| 5. Afterwards, we check if the :class:`Message.content` starts with ``'$hello'``. If it is,
 | |
|    then we reply in the channel it was used in with ``'Hello!'``.
 | |
| 6. Finally, we run the bot with our login token. If you need help getting your token or creating a bot,
 | |
|    look in the :ref:`discord-intro` section.
 | |
| 
 | |
| 
 | |
| Now that we've made a bot, we have to *run* the bot. Luckily, this is simple since this is just a
 | |
| Python script, we can run it directly.
 | |
| 
 | |
| On Windows:
 | |
| 
 | |
| .. code-block:: shell
 | |
| 
 | |
|     $ py -3 example_bot.py
 | |
| 
 | |
| On other systems:
 | |
| 
 | |
| .. code-block:: shell
 | |
| 
 | |
|     $ python3 example_bot.py
 | |
| 
 | |
| Now you can try playing around with your basic bot.
 |