Einen Bot erstellen

Schritt 1. Erstelle eine Anwendung (folge dem Link).

Schritt 2. Füge einen Bot hinzu (klicke auf die Schaltfläche "Bot hinzufügen").

Schritt 2.1. Wähle im Abschnitt Installation die Option Installationslink → Keiner aus.

Schritt 2.2. Deaktiviere im Abschnitt Bot die Option Öffentlicher Bot und aktiviere dann die folgenden Intents:

  • Message Content Intent
  • Server Members Intent

Du kannst auch Presence Intent für die zukünftige Verwendung aktivieren.

Schritt 3. Hole dir den Token (Token zurücksetzen).

Schritt 4. Füge den Bot zum Server hinzu:

  • Gehe zu OAuth2 → URL-Generator.
  • Wähle unter Bereiche die Option bot aus.
  • Wähle unter Bot-Berechtigungen die Optionen Nachrichten senden, Nachrichtenverlauf lesen und alle anderen erforderlichen Berechtigungen aus.

Öffne dann den generierten Link, wähle den Server aus, zu dem du den Bot hinzufügen möchtest, und bestätige die Autorisierung.

Um den vollständigen Webhook von Discord zu erhalten, weise einfach einen beliebigen Wert der Variable save_webhook zu.

Wenn die Variable gesetzt ist, wird der Webhook in discord_webhook gespeichert.

Den Discord-Bot in MaviBot verbinden

Gehe nun in deinem Projekt in MaviBot zum Abschnitt „Messengers“:

Füge dann den von Discord kopierten Token ein.

Klicke auf die Schaltfläche Fertig.

Rechnerfunktionen

Auf eine Nachricht antworten

discord_reply_to_message(message_id, text) - Diese Funktion wird verwendet, um auf eine Nachricht zu antworten.

Parameter Beschreibung
! message_id Die ID der Nachricht, auf die du antworten möchtest.
! text Der Text der Antwortnachricht.

Eine Nachricht löschen

discord_delete_message(message_id) - Diese Funktion wird verwendet, um eine Nachricht zu löschen.

Parameter Beschreibung
! message_id Die ID der zu löschenden Nachricht.

Eine Nachricht bearbeiten

discord_edit_message(message_id, text) - Diese Funktion wird verwendet, um eine Nachricht zu bearbeiten.

Parameter Beschreibung
! message_id Die ID der zu bearbeitenden Nachricht.
! text Der neue Text der Nachricht.

Eine Nachricht anpinnen

discord_pin_message(message_id) - Diese Funktion wird verwendet, um eine Nachricht anzupinnen.

Parameter Beschreibung
! message_id Die ID der anzupinnenden Nachricht.

Eine Nachricht lösen

discord_unpin_message(message_id) - Diese Funktion wird verwendet, um eine Nachricht zu lösen.

Parameter Beschreibung
! message_id Die ID der zu lösenden Nachricht.

Eine Reaktion zu einer Nachricht senden

discord_send_reaction(message_id, reaction) - Diese Funktion wird verwendet, um eine Reaktion zu einer Nachricht zu senden.

Parameter Beschreibung
! message_id Die ID der Nachricht, zu der eine Reaktion gesendet werden soll.
! reaction Die zu sendende Reaktion. Du kannst ein einzelnes Emoji (z. B. ❤️) oder die ID eines benutzerdefinierten Emojis auf dem Server angeben. Informationen zum Abrufen der ID eines benutzerdefinierten Emojis findest du weiter unten.

Eine Reaktion von einer Nachricht in einem Kanal entfernen

discord_delete_reaction(message_id, reaction, user_id) - Diese Funktion wird verwendet, um eine Reaktion von einer Nachricht in einem Kanal zu entfernen.

Parameter Beschreibung
! message_id Die ID der Nachricht, von der die Reaktion entfernt werden soll.
! reaction Die zu entfernende Reaktion. Du kannst ein einzelnes Emoji (z. B. ❤️) oder die ID eines benutzerdefinierten Emojis auf dem Server angeben. Informationen zum Abrufen der ID eines benutzerdefinierten Emojis findest du weiter unten.
user_id Die ID des Benutzers, dessen Reaktion du entfernen möchtest. Dieser Parameter ist optional, wenn du die Reaktion vom aktuellen Bot entfernen möchtest.

Discord-Funktionen

Die folgenden Funktionen ermöglichen dir die Verwaltung von Discord-Servern, Mitgliedern, Kanälen, Rollen, Nachrichten und Einladungen.

Mitgliedermoderation

Ein Mitglied bannen

discord_ban_member(user_id, delete_message_seconds) - Diese Funktion wird verwendet, um ein Mitglied vom Discord-Server zu bannen.

Parameter Beschreibung
! user_id Die Discord-Benutzer-ID des zu bannenden Mitglieds.
delete_message_seconds (Optional) Löscht die vorherigen Nachrichten des Mitglieds aus der angegebenen Anzahl von Sekunden vor dem Bann. Setze 0, um alle Nachrichten zu behalten.

Einen Bann aufheben

discord_unban_member(user_id) - Diese Funktion wird verwendet, um einen Bann von einem Mitglied aufzuheben.

Parameter Beschreibung
! user_id Die Discord-Benutzer-ID des Mitglieds, dessen Bann aufgehoben werden soll.

Ein Mitglied kicken

discord_kick_member(user_id) - Diese Funktion wird verwendet, um ein Mitglied vom Server zu entfernen, ohne es zu bannen.

Parameter Beschreibung
! user_id Die Discord-Benutzer-ID des zu entfernenden Mitglieds.

Ein gekicktes Mitglied kann dem Server mit einem gültigen Einladungslink wieder beitreten.

Ein Mitglied in eine Auszeit versetzen

discord_timeout_member(user_id, seconds) - Diese Funktion wird verwendet, um ein Mitglied in eine Auszeit zu versetzen (stummzuschalten).

Parameter Beschreibung
! user_id Die Discord-Benutzer-ID des Mitglieds.
! seconds Dauer der Auszeit in Sekunden.

Auszeit entfernen

discord_remove_timeout(user_id) - Diese Funktion wird verwendet, um die Auszeit eines Mitglieds vor ihrem Ablauf zu entfernen.

Parameter Beschreibung
! user_id Die Discord-Benutzer-ID des Mitglieds.

Nachrichten massenhaft löschen

discord_bulk_delete_messages(channel_id, message_ids) - Diese Funktion wird verwendet, um mehrere Nachrichten aus einem Kanal zu löschen.

Parameter Beschreibung
! channel_id Die Discord-Kanal-ID.
! message_ids Eine Liste der Nachrichten-IDs, die gelöscht werden sollen.

Nachrichten

Eine Nachricht senden

discord_send_message(channel_id, text) - Diese Funktion wird verwendet, um eine Nachricht an einen Discord-Kanal zu senden.

Parameter Beschreibung
! channel_id Die Discord-Kanal-ID.
! text Der Nachrichtentext.

Eine Nachricht abrufen

discord_get_message(channel_id, message_id) - Diese Funktion wird verwendet, um Informationen über eine Nachricht abzurufen.

Parameter Beschreibung
! channel_id Die Discord-Kanal-ID.
! message_id Die ID der Nachricht.

Die Funktion gibt zurück:

  • Nachrichteninhalt
  • Autoreninformationen
  • Anhänge

Eine Direktnachricht senden

discord_send_dm(user_id, text) - Diese Funktion wird verwendet, um eine Direktnachricht an ein Servermitglied zu senden.

Parameter Beschreibung
! user_id Die Discord-Benutzer-ID.
! text Der Nachrichtentext.

Rollen

Eine Rolle hinzufügen

discord_add_role(user_id, role_id) - Diese Funktion wird verwendet, um einem Mitglied eine Rolle zuzuweisen.

Parameter Beschreibung
! user_id Die Discord-Benutzer-ID.
! role_id Die Discord-Rollen-ID.

Eine Rolle entfernen

discord_remove_role(user_id, role_id) - Diese Funktion wird verwendet, um eine Rolle von einem Mitglied zu entfernen.

Parameter Beschreibung
! user_id Die Discord-Benutzer-ID.
! role_id Die Discord-Rollen-ID.

Mitglieds-Spitznamen ändern

discord_set_nickname(user_id, nickname) - Diese Funktion wird verwendet, um den Spitznamen eines Mitglieds auf dem Server zu ändern.

Parameter Beschreibung
! user_id Die Discord-Benutzer-ID.
! nickname Der neue Spitzname.

Server-Rollen abrufen

discord_get_roles() - Diese Funktion wird verwendet, um die Liste der Server-Rollen abzurufen.

Die Funktion gibt zurück:

  • Rollen-ID
  • Rollenname

Mitglieder

Mitgliedsinformationen abrufen

discord_get_member(user_id) - Diese Funktion wird verwendet, um Informationen über ein Servermitglied abzurufen.

Parameter Beschreibung
! user_id Die Discord-Benutzer-ID.

Die Funktion gibt zurück:

  • Mitgliedsrollen
  • Server-Spitzname
  • Beitrittsdatum
  • Berechtigungen

Kanäle

Einen Kanal erstellen

discord_create_channel(name, type, parent_id, permission_overwrites) - Diese Funktion wird verwendet, um einen neuen Discord-Kanal zu erstellen.

Parameter Beschreibung
! name Der Kanalname.
! type Der Kanaltyp (z. B. Text oder Sprache).
parent_id Die Kategorie-ID, in der der Kanal erstellt werden soll.
permission_overwrites Kanaleinstellungen für Berechtigungen, die festlegen, welche Benutzer oder Rollen auf den Kanal zugreifen können.

Einen Kanal löschen

discord_delete_channel(channel_id) - Diese Funktion wird verwendet, um einen Discord-Kanal zu löschen.

Parameter Beschreibung
! channel_id Die Discord-Kanal-ID.

Kanalberechtigungen festlegen

discord_set_channel_permission(channel_id, target_id, allow, deny) - Diese Funktion wird verwendet, um Kanalberechtigungen für einen Benutzer oder eine Rolle zu konfigurieren.

Parameter Beschreibung
! channel_id Die Discord-Kanal-ID.
! target_id Die Benutzer-ID oder Rollen-ID, deren Berechtigungen geändert werden sollen.
! allow Zu gewährende Berechtigungen.
! deny Zu verweigernde Berechtigungen.

Einladungen

Einladung erstellen

discord_create_invite(channel_id, max_age, max_uses) - Diese Funktion wird verwendet, um einen Einladungslink zu erstellen.

Parameter Beschreibung
! channel_id Die Discord-Kanal-ID.
max_age Lebensdauer der Einladung in Sekunden. Verwenden Sie 0 für keine Ablaufzeit.
max_uses Maximale Anzahl der Nutzungen. Verwenden Sie 0 für unbegrenzte Nutzungen.

Server-Einladungen abrufen

discord_get_invites() - Diese Funktion wird verwendet, um alle Server-Einladungslinks abzurufen.

Die Funktion gibt zurück:

  • Einladungs-URL
  • Anzahl der Nutzungen
  • Verbleibende Lebensdauer (falls zutreffend)

Webhook-Ereignisse

Die folgenden Discord-Ereignisse können an den Chat-Flow weitergeleitet werden:

  • Mitglied ist dem Server beigetreten
  • Mitglied hat den Server verlassen
  • Mitglied wurde gekickt
  • Mitglied wurde gebannt
  • Mitglied wurde entbannt
  • Mitgliedsrollen geändert
  • Nachricht bearbeitet
  • Nachricht gelöscht
  • Reaktion hinzugefügt
  • Reaktion entfernt
  • Slash-Befehl ausgeführt
  • Button geklickt

Webhook-Payload

Webhook-Daten sind verfügbar in:

discord_webhook["data"]
Feld Beschreibung
author_id Discord-Benutzer-ID des Nachrichtenautors.
username Discord-Benutzername.
nickname Server-Spitzname.
channel_id Discord-Kanal-ID.
guild_id Discord-Server-ID.
message_id Discord-Nachrichten-ID.
content Nachrichtentext.
roles Liste der Rollen-IDs des Mitglieds.
is_admin Gibt an, ob das Mitglied Administratorrechte hat.

Callbacks

Wenn ein Benutzer eine Reaktion sendet, wird ein Callback im Chat im folgenden Format empfangen:

new_like ❤️ uid413984787162726410

Wobei uid413984787162726410 die ID des Benutzers ist, der die Reaktion gesendet hat.

So erhalten Sie die ID eines benutzerdefinierten Emojis

Wenn Sie eine benutzerdefinierte Reaktion an eine Nachricht in einem Discord-Kanal senden, wird ein Callback im folgenden Format empfangen:

new_like beer:1479419477396291696 uid413984787162726410

Wobei beer:1479419477396291696 die ID der Reaktion ist. Sie können sie für die Verwendung in reaktionsbezogenen Funktionen kopieren.

So erhalten Sie die Nachrichten-ID

Sie können die Nachrichten-ID des Clients aus dem Webhook abrufen, wenn save_webhook aktiviert ist. Beispiel:

data = discord_webhook["data"]
msg_id = data["id"]
result = discord_reply_to_message(msg_id, "Dies ist eine Antwort auf eine Nachricht")

Zusätzliche Callbacks

Zusätzlich zu new_like sind die folgenden Callbacks verfügbar:

Callback Beschreibung
new_like {emoji} uid{user_id} Ein Benutzer hat eine Reaktion zu einer Nachricht hinzugefügt.
reaction_remove {emoji} uid{user_id} Ein Benutzer hat eine Reaktion von einer Nachricht entfernt.
message_delete mid{message_id} Eine Nachricht wurde gelöscht.
message_edit mid{message_id} Eine Nachricht wurde bearbeitet. Der aktualisierte Nachrichtentext ist in den Webhook-Daten verfügbar.
member_join uid{user_id} Ein Mitglied ist dem Server beigetreten.
member_leave uid{user_id} Ein Mitglied hat den Server verlassen.
member_update uid{user_id} Die Informationen eines Mitglieds (wie Rollen oder Spitzname) wurden aktualisiert.
member_ban uid{user_id} Ein Mitglied wurde vom Server gebannt.
member_unban uid{user_id} Ein Mitglied wurde vom Server entbannt.

Callback-Variablen

Aus Konsistenzgründen mit dem vorhandenen Discord-Ereignisformat verwenden Benutzer- und Nachrichtenidentifikatoren historische Präfixe:

  • Benutzer-IDs werden als uid{user_id} zurückgegeben.
  • Nachrichten-IDs werden als mid{message_id} zurückgegeben.

Die folgenden Variablen verwenden ebenfalls diese präfixierten Identifikatoren:

  • message_from
  • internal_id
  • discord_webhook["data"]