Démarrage rapide

Cette page donne une brève introduction à la bibliothèque. Nous supposons que vous avez déjà installé la bibliothèque. Si cela n’est pas fait, allez voir Installing.

Un Bot Simple

Nous allons programmer un Bot qui répond à un message en particulier.

Cela devrait ressembler à ça :

Note

Puisque cet exemple utilise le contenu des messages, nous avons besoin de l’Intent privé Intents.message_content.

import discord

intents = discord.Intents.default()
intents.message_content = True

client = discord.Client(intents=intents)

@client.event
async def on_ready():
    print(f'We have logged in as {client.user}')

@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')

Nommons ce fichier example_bot.py. Assurez-vous de ne pas le nommer discord.py, cela rentrera en conflit avec le nom de la bibliothèque.

Il y a beaucoup de choses à voir et à comprendre ici, allons-y pas à pas :

  1. La première ligne importe juste la bibliothèque. Si les erreurs ModuleNotFoundError ou ImportError apparaissent alors retournez à la section Installing et assurez-vous d’avoir correctement installé la bibliothèque.

  2. Ensuite, nous créons une instance de Client . Ce client est notre connexion à Discord.

  3. Après cela, nous utilisons le décorateur Client.event() pour enregistrer un événement. Il y a de nombreux événements disponibles dans cette bibliothèque. Comme la bibliothèque est asynchrone, nous programmons avec des « fonctions de rappel ».

    Une fonction de rappel est appelée quand un événement se produit. Dans notre cas, l’événement on_ready() est appelé quand le bot a fini de se connecter et de se paramétrer, donc quand il est prêt à fonctionner. Tandis que l’événement on_message() est appelé quand le bot a reçu un message.

  4. Sachant que l’événement on_message() est actionné pour tous les messages reçus, nous devons nous assurer d’ignorer nos propres messages. On fait cela en vérifiant que le Message.author et le Client.user ne sont pas les mêmes.

  5. Après cela, nous vérifions si le Message.content commence par '$hello'. Si c’est le cas, nous envoyons le message `'Hello!' dans le même salon que le message reçu. C’est une façon basique de gérer les commandes textuelles, que nous pourrons automatiser plus tard avec le module complémentaire discord.ext.commands.

  6. Enfin, nous démarrons le bot avec notre jeton d’authentification (token en anglais). Si tu as besoin d’aide pour trouver ton jeton d’authentification ou tout simplement pour créer un bot, redirige-toi vers la section Création d’un compte de Bot.

Maintenant que notre bot est créé, nous n’avons plus qu’à le démarrer. Par chance, ce n’est qu’un simple programme Python, nous pouvons l’exécuter directement.

Sur Windows :

$ py -3 example_bot.py

Sur d’autres systèmes :

$ python3 example_bot.py

Maintenant, vous pouvez essayer de vous amuser avec votre bot.

Un Bot Simple avec des commandes Slash

Pour aller plus loin, faisons un bot qui enregistre des commandes slashs !

Cela devrait ressembler à ça :

import discord

bot = discord.Bot()

@bot.event
async def on_ready():
    print(f"We have logged in as {bot.user}")

@bot.slash_command(guild_ids=[your, guild_ids, here])
async def hello(ctx):
    await ctx.respond("Hello!")

bot.run("your token here")

Commençons par comparer, pas-à-pas, les différences avec l’exemple précédent :

  1. La première ligne reste inchangée.

  2. Ensuite, nous créons une instance de Bot. Il diffère de Client, puisqu’il supporte la création de commandes slashs ainsi que plein d’autres fonctionnalités tout en héritant des fonctionnalités de Client.

  3. Puis, nous utilisons le décorateur Bot.slash_command() pour enregistrer une nouvelle commande slash. L’attribut guilds_ids contient une liste de serveur discord où la commande sera fonctionnelle. Si vous ne le mettez pas, les commandes seront globalement actives (fonctionnelles sur tous les serveurs), et elles pourront prendre jusqu’à une heure à s’enregistrer.

  4. Après cela, nous répondons à la commande slash sous la forme d’un message textuel. Notez que toutes les commandes slashs doivent avoir une forme de réponse, sinon elles échoueront.

  5. Enfin, nous, encore une fois, démarrons le bot avec le jeton d’authentification.

Félicitations ! Vous venez de créer votre première commande slash !