Frage Discord Bot

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Foxx_VTL
User
Beiträge: 2
Registriert: Montag 15. Juni 2020, 12:16

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 :)
Jankie
User
Beiträge: 592
Registriert: Mittwoch 26. September 2018, 14:06

Indem du die Dokumentation durchstöberst und ausprobierst. Bei konkreten Fragen mit Code können wir dir dann gerne Helfen.
NPC
User
Beiträge: 56
Registriert: Dienstag 8. Januar 2019, 17:51

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
Foxx_VTL
User
Beiträge: 2
Registriert: Montag 15. Juni 2020, 12:16

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.
einfachTobi
User
Beiträge: 512
Registriert: Mittwoch 13. November 2019, 08:38

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.
Benutzeravatar
__blackjack__
User
Beiträge: 14052
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

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.
“Vir, intelligence has nothing to do with politics!” — Londo Mollari
einfachTobi
User
Beiträge: 512
Registriert: Mittwoch 13. November 2019, 08:38

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
Benutzeravatar
sparrow
User
Beiträge: 4538
Registriert: Freitag 17. April 2009, 10:28

@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.
Antworten