2017-12-20 1 views
0

Ich schreibe einen Discord-Bot mit Python (v. 3.6.1). Eine ihrer Funktionen erkennt alle in einem Kanal gesendeten Nachrichten, verarbeitet sie und antwortet dann auf die Nachrichten in diesem Kanal. (Zumindest ist es das, was ich will, es zu tun.)Wie würde ich meinen Python Discord-Bot dazu bringen, alle gesendeten Nachrichten nachzuahmen?

ich das versucht:

@bot.event 
async def on_message(message): 
    await bot.say(message.content) 

Die Funktion reagiert, wenn eine Nachricht gesendet wird, aber nicht in der Art und Weise, dass ich es will . Ich erhalte stattdessen eine Fehlermeldung:

discord.errors.InvalidArgument: Destination must be Channel, PrivateChannel, User, or Object. Received NoneType

Wie würde ich dieses Problem beheben? Danke vielmals!

+0

immer die generischen [Python] Tag für Python Fragen –

+1

Bitte geben Sie den Code, den Sie Probleme gibt. Die Fehlermeldung allein ist eher nutzlos. Siehe [Wie stelle ich eine gute Frage?] (Https://stackoverflow.com/help/how-to-ask) – Galen

Antwort

1

Sie können bot.say nicht außerhalb eines Befehls verwenden.

Can I use bot.say in other places aside from commands?

No. They only work inside commands due to the way the magic involved works.

http://discordpy.readthedocs.io/en/latest/faq.html#can-i-use-bot-say-in-other-places-aside-from-commands

die Bot Wiederholung haben, jede Nachricht gesendet hat, können Sie send_message verwenden. Unten ist ein Beispiel.

@client.event 
async def on_message(message): 
    await client.send_message(message.channel, message.content) 
Verwandte Themen