簡體   English   中英

"Discord.py on_message() 重復執行"

[英]Discord.py on_message() repeating execution

長期用戶,第一次發帖。 :-)

我正在使用 discord.py==1.7.2。 我有一個可能很復雜的機器人,我一直在通過反復試驗來破解(據我所知,超級粗略的文檔,也許我並不真正理解 Discord 的概念),但我在 on_message 中看到了一些超級奇怪的行為() 事件。 在一切按我想要的方式工作之后,我注意到一個問題,只是想在執行 on_message() 事件時檢查一個值。 我把它打印到聊天中。 然后我注意到它被反復打印,不停地聊天,直到我殺死了機器人。 我在這里錯過了什么嗎? 我的期望是 on_message() 事件在用戶輸入內容並按下回車然后停止時運行。 這是錯的嗎? 代碼:

@bot.event
async def on_message(message):

    if len(message.content) < 5:
        return

    await message.channel.send('wtf')

這是因為您的事件是on_message<\/code> ,並且您正在此事件中發送一條消息,然后再次觸發該事件,然后再次發送一條消息,依此類推,在一個循環中。

您應該檢查消息的發件人,如果是機器人,則返回。 像這樣,

#... other code
@bot.event
async def on_message(message: Message):
    if message.author.bot: #if message's author is a bot, then ignore it.
        return
    #... rest of your on_message()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM