1
0
Files
Python-Example/Einführung/05_Python-Basic-Discord-Bot.md
Lukas Blacha e2b3c636ac Fixed Typo
2023-02-03 11:02:29 +01:00

2.6 KiB

Python Basics - Discord Bot

Die Bibliothek welche wir für dieses Beisiel verwenden lautet py-cord. Du kannst pycord installieren indem du folgenden Befehl im Terminal ausführst: python3 -m pip install py-cord

Aufbau des Codes

Imports

An dieser Stelle importiert man alle, für das Projekt benötigten, Bibliotheken. Z.B.:

import discord
from discord.ext import commands

Intents

Als Nächstes gibt man an, wie der Bot Nutzerdaten verarbeitet. In diesem Beispiel reichen die defaults:

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

Bot Variable deklarieren

Hier wird die bot-Variable deklariert. Außerdem wird noch der Prefix festgelegt (!), die Botbeschreibung wird hinzugefügt und die zuvor eingestellten intents werden übergeben.

bot = commands.Bot(
   command_prefix=commands.when_mentioned_or("!"),
   description=description,
   intents=intents)

Bot Events (@)

Sogenannte Events werden mit dem @bot.event Dekorator versehen. Dieser "Dekoriert" sozusagen den darunterliegenden Code. Ein Beispiel für ein Bot-Event, wenn der Bot eingeloggt und bereit ist:

@bot.event
async def on_ready():
    print(f"Logged in as {bot.user} (ID: {bot.user.id})")
    print("------")

Bot Commands

Um ein Command zu erstellen gibt es auch wieder einen Dekorator. Commands werden mit dem @bot.command() Dekorator versehen. Ein Beispiel für einen Command um zwei Strings miteinander zu verbinden:

@bot.command()
async def add(ctx: commands.Context, left: int, right: int):
   """Adds two numbers together."""
   await ctx.send(str(left + right))

Last but not least bot.run()

bot.run("TOKEN") kommt immer an das Ende deines Codes. Dieser Codeschnipsel bildet den Abschluss.

Das Beispiel einmal zusammengesetzt


import discord
from discord.ext import commands

description = """
An example bot to showcase the discord.ext.commands extension module.
There are a number of utility commands being showcased here.
"""

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

bot = commands.Bot(
    command_prefix=commands.when_mentioned_or("!"),
    description=description,
    intents=intents)

@bot.event
async def on_ready():
    print(f"Logged in as {bot.user} (ID: {bot.user.id})")
    print("------")


@bot.command()
async def add(ctx: commands.Context, left: int, right: int):
    """Adds two numbers together."""
    await ctx.send(str(left + right))

bot.run("TOKEN")