Seite 1 von 1

Frage Discord Bot

Verfasst: Montag 15. Juni 2020, 12:19
von Foxx_VTL
Moin, ich programmiere für meinen Discord Server aktuell einen Bot.
Nun möchte ich, dass dieser wenn ein bestimmter Nutzer getaggt wird, dass eine Nachricht ausgegeben wird. Wie genau frage ich nun die Message ab und ob irgendwo in dieser Message der Name des Users enthalten ist?
Danke schon mal im Voraus :)

Re: Frage Discord Bot

Verfasst: Dienstag 16. Juni 2020, 08:00
von Jankie
Indem du die Dokumentation durchstöberst und ausprobierst. Bei konkreten Fragen mit Code können wir dir dann gerne Helfen.

Re: Frage Discord Bot

Verfasst: Dienstag 16. Juni 2020, 10:00
von NPC
Hallo Foxx_VTL,

Was hast du den bisher so geschrieben... Funktioniert es, dass er auf Nachrichten generell antwortet?
Bzw. Gibt es irgendeine Funktion, welche du schon geschrieben hast, die alle Nachrichten prinzipell erhält?

Du siehst, dass es etwas schwierig ist dir zu helfen, wenn man nicht genau weiß wo du hängst. Solche allgemeinen Fragen sehen dann immer sehr schnell nach einem "schreibt mir einer von euch schnell mal" aus....

Nur zum Einordnen:
Was kann/macht dein bisheriger Bot?
In der dokumentation gibt es ein Minimalbeispiel... Verstehst du ungefähr, wann welche der Funktionen aufgerufen wird?
Weißt du was für Informationen beim Aufruf mit übergeben werden?

Viele Grüße
NPC

Re: Frage Discord Bot

Verfasst: Dienstag 16. Juni 2020, 21:01
von Foxx_VTL
NPC hat geschrieben: Dienstag 16. Juni 2020, 10:00 Hallo Foxx_VTL,

Was hast du den bisher so geschrieben... Funktioniert es, dass er auf Nachrichten generell antwortet?
Bzw. Gibt es irgendeine Funktion, welche du schon geschrieben hast, die alle Nachrichten prinzipell erhält?

Du siehst, dass es etwas schwierig ist dir zu helfen, wenn man nicht genau weiß wo du hängst. Solche allgemeinen Fragen sehen dann immer sehr schnell nach einem "schreibt mir einer von euch schnell mal" aus....

Nur zum Einordnen:
Was kann/macht dein bisheriger Bot?
In der dokumentation gibt es ein Minimalbeispiel... Verstehst du ungefähr, wann welche der Funktionen aufgerufen wird?
Weißt du was für Informationen beim Aufruf mit übergeben werden?

Viele Grüße
NPC
Bisher funktioniert es, dass wenn die Nachricht mit den Namen beginnt eine Nachricht ausgegeben wird. Allerdings soll es auch gehen, dass eine Nachricht ausgegeben wird, wenn der Name am Ende oder mitten in der Nachricht ist.

Re: Frage Discord Bot

Verfasst: Mittwoch 17. Juni 2020, 06:27
von einfachTobi
Verwende den 'in Operator:

Code: Alles auswählen

if "Suchwort" in "Ich suche mein Suchwort, aber weiß nicht, ob es da ist.":
    print("Suchwort vorhanden.")
Du solltest dir mal das Grundlagentutorial der Python-Dokumentation ansehen.

Re: Frage Discord Bot

Verfasst: Mittwoch 17. Juni 2020, 07:17
von __blackjack__
Nope, nicht ``in`` verwenden sondern den Rat von Jankie befolgen. Die erwähnten Benutzer gibt eine Nachricht bereits her und die liegen als `Member`-Objekte vor. Das heisst man bekommt damit die tatsächlichen Mitglieder des Chats und nicht nur Textteile die formal wie eine Erwähnung aussehen.

Von der anderen Seite aus betrachtet haben `Member`-Objekte auch eine Methode der man eine Nachricht übergeben kann, und die daraufhin prüft ob das Mitglied in dieser Nachricht erwähnt wird.

Re: Frage Discord Bot

Verfasst: Mittwoch 17. Juni 2020, 08:22
von einfachTobi
Das war aber nicht die Anforderung. Die Anforderung ist es Nachrichten nach Schlagwörtern zu filtern und bei Auffinden eine Nachricht zu posten. So wie ich es verstehe geht es nicht darum die Nachrichten eines bestimmten Nutzers zu durchsuchen. Das klingt auch ganz nach dem, was Foxx_VTL in seinem letzten Post beschreibt.
Also könntest du das on_message-Event nutzen und dort eben meinetwegen prüfen, ob ein Nutzer in message.content vorkommt. Oder die "Mentions" nutzen, die Discord selbst bereitstellt: https://discordpy.readthedocs.io/en/lat ... ml#message

Re: Frage Discord Bot

Verfasst: Mittwoch 17. Juni 2020, 08:43
von sparrow
@einfachTobi: Deine Interpretation der Anforderung ist nicht richtig, Die war "Nun möchte ich, dass dieser wenn ein bestimmter Nutzer getaggt wird, dass eine Nachricht ausgegeben wird." Und die getaggten Benutzer stehen als Member in den mentions.