Discord ist nicht nur eine Gaming-Plattform - es ist ein vollwertiges Kommunikationswerkzeug für Communities jeder Art. Mit einem eigenen Bot können Sie Ihren Server automatisieren, Moderation übernehmen und interaktive Features hinzufügen. In diesem Tutorial zeigen wir Ihnen, wie Sie Ihren ersten Discord Bot erstellen.
Was kann ein Discord Bot?
Die Möglichkeiten sind nahezu unbegrenzt. Hier einige Beispiele:
- Moderation: Automatisches Löschen von Spam, Muting von Usern
- Musikwiedergabe: Abspielen von Musik in Voice Channels
- Willkommensnachrichten: Automatische Begrüßung neuer Mitglieder
- Spiele: integrierte Spiele wie Tic-Tac-Toe oder Würfeln
- Informationen: Wetter, Finanzdaten, Nachrichten abrufen
- Tickets: Support-Ticket-Systeme erstellen
- Level-System: XP und Ränge für aktive User
Vorbereitung: Was Sie brauchen
Bevor wir starten, benötigen Sie folgendes:
- Ein Discord-Konto
- Ein Discord-Server, wo Sie Administrator sind
- Node.js (für Discord.js) oder Python (für discord.py) installiert
- Einen Code-Editor (VS Code empfohlen)
Schritt 1: Bot bei Discord registrieren
Der erste Schritt ist die Erstellung des Bot-Accounts im Discord Developer Portal:
- Gehen Sie zu discord.com/developers/applications
- Klicken Sie auf "New Application" und geben Sie einen Namen ein
- Gehen Sie im Menü zu "Bot"
- Klicken Sie auf "Add Bot" und bestätigen Sie
- Kopieren Sie den Token (merken Sie sich diesen!)
- Aktivieren Sie unter "Privileged Gateway Intents" die benötigten Optionen
Schritt 2: Bot auf den Server einladen
So invite Sie Ihren Bot:
- Gehen Sie zu "OAuth2" → "URL Generator"
- Wählen Sie bei "Scopes" die Option "bot"
- Wählen Sie die benötigten Berechtigungen (z.B. "Manage Messages", "Send Messages")
- Kopieren Sie die generierte URL und öffnen Sie sie in einem Browser
- Wählen Sie Ihren Server aus und bestätigen Sie
Schritt 3: Das erste Bot-Skript (Python)
Wir verwenden Python mit der discord.py-Bibliothek. Installieren Sie zuerst die Library:
pip install discord.py
Dann erstellen Sie eine Datei namens bot.py:
import discord
from discord.ext import commands
# Bot-Setup
intents = discord.Intents.default()
intents.message_content = True # Wichtig für Message Content Intent!
bot = commands.Bot(command_prefix='!', intents=intents)
# Event: Bot ist bereit
@bot.event
async def on_ready():
print(f'Bot ist online als {bot.user}')
print(f'Bot ID: {bot.user.id}')
# Einfacher Befehl
@bot.command()
async def hallo(ctx):
await ctx.send('Hallo! Ich bin dein Bot!')
# Befehl mit Argumenten
@bot.command()
async def sage(ctx, *, nachricht):
await ctx.send(nachricht)
# Moderation: Nachrichten löschen
@bot.command()
async def clear(ctx, anzahl: int):
await ctx.channel.purge(limit=anzahl + 1)
await ctx.send(f'{anzahl} Nachrichten gelöscht!', delete_after=3)
# Event: Neue Mitglieder begrüßen
@bot.event
async def on_member_join(member):
channel = discord.utils.get(member.guild.text_channels, name='willkommen')
if channel:
await channel.send(f'Willkommen {member.mention} auf dem Server!')
# Bot starten (ersetzen Sie YOUR_TOKEN mit Ihrem Token)
bot.run('YOUR_TOKEN_HIER_EINFÜGEN')
Schritt 4: Erweiterte Features
Hier sind einige fortgeschrittenere Beispiele:
Embed Nachrichten
@bot.command()
async def info(ctx):
embed = discord.Embed(
title="Server Info",
description="Willkommen auf unserem Server!",
color=0x6366f1
)
embed.add_field(name="Mitglieder", value=len(ctx.guild.members))
embed.add_field(name="Server Name", value=ctx.guild.name)
embed.set_thumbnail(url=ctx.guild.icon.url)
await ctx.send(embed=embed)
Button-Interaktionen
from discord.ui import Button, View
@bot.command()
async def button(ctx):
button = Button(label="Klick mich!", style=discord.ButtonStyle.primary)
async def button_callback(interaction):
await interaction.response.send_message("Button geklickt!")
button.callback = button_callback
view = View()
view.add_item(button)
await ctx.send("Hier ist ein Button:", view=view)
Musik abspielen (mit LAVALINK)
Für Musik brauchen Sie einen Lavalink-Server. Das ist fortgeschrittener, aber es gibt gute Tutorials in der discord.py-Dokumentation.
Schritt 5: Den Bot hosten
Damit Ihr Bot 24/7 läuft, brauchen Sie einen Server. Optionen:
Kostenlose Optionen
- Render.com: Kostenloser Hosting-Service, gut für Einsteiger
- Heroku: Ebenfalls kostenlos, aber mit Einschränkungen
- Replit: Online-IDE mit Hosting
Kostenpflichtige Optionen
- DigitalOcean: Ab 4$/Monat
- AWS: Kostenlose Tier für neue Nutzer
- VPS: Verschiedene Anbieter ab ~5€/Monat
Best Practices
Ein guter Bot ist nicht der mit den meisten Features - sondern der, der zuverlässig und nutzerfreundlich ist.
- Token geheim halten: Teilen Sie Ihren Bot-Token niemals
- Fehlerbehandlung: Fügen Sie try-except-Blöcke hinzu
- Logging: Protokollieren Sie wichtige Ereignisse
- Commands sinnvoll benennen: Klare, einprägsame Namen
- Hilfe-Befehl: Erklären Sie, was jeder Befehl macht
- Reactions: Nutzen Sie Reactions für einfache Interaktionen
Nützliche Libraries
Über discord.py hinaus gibt es nützliche Erweiterungen:
- discord.ext.commands: Integrierte Command-Erweiterung
- discord-ext-music: Für Musik-Features
- aiosqlite: Für Datenbanken
- python-dotenv: Für sichere Token-Speicherung
Fazit
Das Programmieren eines Discord Bots ist ein großartiges Projekt für Anfänger und Fortgeschrittene. Sie lernen nicht nur Programmieren, sondern auch wie APIs und Events funktionieren. Starten Sie mit einfachen Befehlen und erweitern Sie Ihren Bot nach und nach.
Die Discord-Community ist riesig und hilfreich. Bei Fragen finden Sie in offiziellen Foren und Subreddits immer Unterstützung. Viel Spaß beim Coden!