Saltar al contenido
← Todos los tutoriales

Un bot de moderación con discord.py

Filtra palabras prohibidas, avisa a los miembros y da comandos de barra a los moderadores.

Empieza con la plantilla

  1. Crea un bot con la plantilla Moderación y elige Python (discord.py).
  2. En Probar, envía un mensaje que contenga badword como alex: se borra y aparece un aviso.
  3. Cambia Actuando como a moddy y repite: los moderadores están exentos.
  4. Prueba /kick como alex: el sandbox muestra que los miembros sin Kick Members no pueden usarlo.

La idea principal

Leer el texto de los mensajes requiere el intent privilegiado Message Content Intent. Un filtro mínimo es así:

import os
import discord

BANNED = {"badword", "scamlink"}
intents = discord.Intents.default()
intents.message_content = True
client = discord.Client(intents=intents)

@client.event
async def on_message(message: discord.Message):
    if message.author.bot or message.guild is None:
        return
    if any(word in message.content.lower() for word in BANNED):
        await message.delete()
        await message.channel.send(f"{message.author.mention}, that word is not allowed here.")

client.run(os.environ["DISCORD_TOKEN"])

Hazlo tuyo

Abre Editar con IA y pide, por ejemplo: «Añade las palabras spam y scam a la lista prohibida y aísla a la gente 5 minutos en lugar de avisarla». Revisa el cambio antes de aplicarlo.

Buenas prácticas

  • Restringe los comandos de moderación con permisos obligatorios.
  • Registra las acciones en un canal privado #mod-log.
  • Recuerda que el bot no puede moderar al propietario del servidor ni a miembros con un rol superior.

¿Listo para crear tu primer bot?

Crear un bot — gratis