Comment créer des Commandes (préfixes) ?

Article publié le et mis à jour le .

Dans la partie précédente, on a vu comment écouter des événements avec les events (Partie 3).

Dans cet article, je vais vous montrer comment créer un bot Discord en utilisant la bibliothèque Python discord.py. Nous verrons comment ajouter des commandes à ce bot et les rendre interactives. Nous allons aussi explorer des concepts comme les commandes à paramètres multiples et la gestion du contexte des messages.

Voir le projet sur GitHub

1. Commande Hello, World!

Nous allons commencer avec une commande simple, Hello, World!. Cela nous permettra de nous familiariser avec la structure de base pour créer une commande dans un bot Discord.

import discord
from discord.ext import commands

bot = commands.Bot(command_prefix='$')

@bot.command()
async def hello(ctx):
    await ctx.send("Hello, World!")

Ici, nous définissons notre bot avec un préfixe $, ce qui signifie que toutes nos commandes commenceront par ce symbole. La commande hello utilise un décorateur @bot.command() et une fonction asynchrone pour envoyer un message dans le chat.

Tester la commande

Pour tester cette commande, démarrez votre bot et tapez $hello dans un serveur Discord. Le bot répondra avec “Hello, World!“.

2. Commande avec un paramètre

Nous allons maintenant ajouter une commande qui accepte un paramètre. Imaginons une commande qui répète ce que vous lui envoyez.

@bot.command()
async def repeat(ctx, *, message):
    await ctx.send(message)

Ici, l’astérisque * avant message indique que tous les mots suivants dans la commande doivent être capturés comme un seul paramètre.

Tester la commande

Tapez $repeat Salut les amis! dans Discord, et le bot répétera exactement ce message.

3. Commande avec plusieurs mots

Maintenant, nous allons voir comment gérer plusieurs mots en tant que paramètre dans une commande. La syntaxe que nous venons d’utiliser (*, message) permet justement de capturer tous les mots dans un seul paramètre.

Exemple avec plusieurs mots

Essayez cette commande : $repeat Bonjour tout le monde!
Le bot renverra : Bonjour tout le monde!

4. La commande help

Discord.py inclut par défaut une commande help qui permet d’obtenir des informations sur les commandes disponibles dans votre bot. Cependant, vous pouvez personnaliser cette commande pour ajouter des descriptions plus détaillées et faciliter l’utilisation.

Ajouter une description à une commande

Vous pouvez ajouter une description et une version abrégée de l’aide directement dans le décorateur :

@bot.command(description="Dit bonjour", brief="Commande Hello")
async def hello(ctx):
    await ctx.send("Hello, World!")

Avec cette modification, si vous tapez $help hello, vous verrez une description plus claire.

Conclusion

Félicitations ! Vous savez maintenant comment créer un bot Discord avec des commandes de base. Vous pouvez enrichir votre bot en ajoutant des commandes plus complexes et en personnalisant les réponses selon vos besoins.

N’oubliez pas de consulter la documentation officielle de discord.py pour explorer encore plus de fonctionnalités. Vous pouvez également trouver des exemples complets dans le code source du projet ici.

Et si vous avez bien compris les commandes avec préfixes, on peut voir un autre type de commandes, les commandes slash.

Lire la suite du tutoriel bot discord en python avec discord.py (Partie 5)