Créer un bot discord en 10 minutes avec Python !
Vidéo publiée le samedi 6 janvier 2024, page mise à jour le mardi 24 septembre 2024.
Comment écrire des commandes pour interagir avec les messages d'un serveur discord ? Apprenez comment coder un bot discord en Python avec discord.py !
Le code de la vidéo
import os
import random
import discord
from discord.ext import commands
intents = discord.Intents.default()
intents.message_content = True
bot = commands.Bot(command_prefix="!", intents=intents)
@bot.command()
async def bonjour(ctx):
await ctx.send(f"Bonjour {ctx.author} !")
@bot.command()
async def ping(ctx):
await ctx.send(f"Pong !")
@bot.command()
async def pileouface(ctx):
await ctx.send(random.choice(["Pile", "Face"]))
@bot.command(
help="Lance un dé cubique",
description="Lance un dé et renvoie le résultat entre 1 et 6 compris")
async def roll(ctx):
await ctx.send(random.randint(1, 6))
token = os.environ['TOKEN_BOT_DISCORD']
bot.run(token)
Et si vous voulez aller plus loin, voici quelques pistes d’amélioration.
Code de base “boilerplate”
import os
from dotenv import load_dotenv
import discord
load_dotenv()
token = os.getenv("BOT_DISCORD")
intents = discord.Intents.all()
client = discord.Client(intents=intents)
client.run(token=token)
Un bot Client
import os
from dotenv import load_dotenv
import discord
load_dotenv()
intents = discord.Intents.all()
client = discord.Client(intents=intents)
@client.event
async def on_ready():
print(f"Le bot discord est prêt {client.user}")
@client.event
async def on_message(message):
if message.author == client.user:
return
elif message.content.startswith('!bonjour'):
await message.channel.send('Bonjour !')
@client.event
async def on_member_join(member):
welcome_channel_id = os.getenv("WELCOME_CHANNEL_ID")
channel = client.get_partial_messageable(welcome_channel_id)
await channel.send(f"Bienvenue {member.name}")
token = os.getenv("BOT_DISCORD")
client.run(token=token)
Un bot avec des Commandes
import os
from dotenv import load_dotenv
import discord
from discord.ext import commands
load_dotenv()
intents = discord.Intents.all()
client = discord.Client(intents=intents)
bot = commands.Bot(command_prefix="!", intents=intents)
@bot.command()
async def ping(context):
await context.send("Pong")
@bot.command()
async def aide(context):
embed = discord.Embed(
title="Commandes",
description="Une liste des commandes du serveur",
colour=discord.Colour.random()
)
embed.set_thumbnail(url="https://www.commentcoder.com/favicon.ico")
embed.add_field(name="!ping", value="Répond Pong")
await context.send(embed=embed)
token = os.getenv("BOT_DISCORD")
bot.run(token=token)
Un Bot de Modération
import os
from dotenv import load_dotenv
import discord
from discord.ext import commands
load_dotenv()
intents = discord.Intents.all()
client = discord.Client(intents=intents)
bot = commands.Bot(command_prefix="!", intents=intents)
@bot.command()
#async def kick(context, member):
async def kick(context, member: discord.Member):
#await context.guild.kick(member)
await context.guild.kick(member, reason="Raison")
@bot.command()
async def ban(context, member):
pass
@bot.command()
async def unban(context, member):
pass
token = os.getenv("BOT_DISCORD")
bot.run(token=token)
Je m'appelle Thomas, et je code depuis plus de 20 ans. Depuis ma sortie de la première promotion de l'École 42, j'ai conçu et développé des centaines d'applications et de sites web. Sur ce blog, je partage avec vous les stratégies les plus efficaces pour maîtriser l'art de coder et progresser rapidement.