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