Discord bot ( Phyton ) Private Nachricht?
Gibt es eine Version von
await message.channel.send('Hello')
nur das es halt eine private Nachricht sendet ? oder ein anderer Befehl ?
An eine bestimmte Person, oder an alle Personen des Channels?
an die person die halt einen command wie !hallo ausführt also bis
if message.content.startswith(!hallo) :
bin ich ja schon aber jetz halt noch das mit den privaten nachrichten
4 Antworten
user.send(message)
(Wobei user eine Instanz von Discord.User ist)
Jo
Anstatt "user" halt in dem Fall "message.author"
Und das Hallo muss natürlich in Anführungszeichen sein, ist ja ein String
message.author.send("Hallo");
und wie kann man sagen das halt ein bestimmter nutzer eine nachricht bekommen soll also bspw user#9291.send("hallo") oder wie ?
user = await client.fetch_user(id)
channel = await user.create_dm()
await channel.send(Main.dc_text)
Das Wichtigste ist die ID des Users, den Du kontaktieren möchtest und dass der User einen Server mit Deinem Bot teilt.
Die ID kannst du folgendermaßen herausfinden:
async def on_message(self, message):
if message.author == client.user:
return
print(message.author.id)
Sobald eine Nachricht in einen Server-Textchannel geschickt wird, printet das Programm dessen ID, vorrausgesetzt es ist nicht die des Bots.
Wenn du ein command stat Event machst kannst du member.send machen das es per DM versendet wird.
Wie du schon gesehen hast, ist MrAmazing2 seine Antwort eigentlich genau das, wonach du gesucht hast. Trotzdem will ich dich noch gerne auf ein nicht so Themarelevantes, aber dennoch ein wichtiges Thema hinleiten:
https://gist.github.com/Rapptz/4a2f62751b9600a31a0d3c78100287f1
Lies das mal bitte durch, weil sonst wird in Zukunft garnichts mehr gehen.
also wenn ich das jetz so mache if message.content.startswith(!hallo)
user.send(hallo)
heißt dass das dem der !hallo eingibt eine private nachricht mit hallo geschickt wird richtig ?