Discord.py 如何让机器人转发其DMs

Discord.py 如何让机器人转发其DMs,discord.py,Discord.py,因此,我的机器人DM的用户,并问他们问题,但我需要能够看到他们的反应在一个渠道 到目前为止,我有: @bot.event async def on_message(message): channel = bot.get_channel(642759168247463937) await channel.send('message') 但是,当任何消息在任何通道中发送时,它就会开始响应自身,从而导致无休止的垃圾邮件循环 我是Discord.py的新手,所以我真的不知道如何解决这个

因此,我的机器人DM的用户,并问他们问题,但我需要能够看到他们的反应在一个渠道

到目前为止,我有:

@bot.event
async def on_message(message):
    channel = bot.get_channel(642759168247463937)
    await channel.send('message')
但是,当任何消息在任何通道中发送时,它就会开始响应自身,从而导致无休止的垃圾邮件循环


我是Discord.py的新手,所以我真的不知道如何解决这个问题。

我的方法是检查消息是否来自DMs:

@bot.event
异步def on_消息(消息):
如果不是message.guild:
返回
频道=机器人获取频道(642759168247463937)
等待通道。发送('消息')
这是因为如果消息是在DMs中发送的,
message.guild
None
。这可以防止垃圾邮件问题,因为邮件不会转发到机器人的DMs。
然而,为了避免垃圾邮件,除非必要,否则最好避免完全响应机器人程序。幸运的是,
User
Member
对象有一个名为
bot
的属性,可以帮助我们:

如果message.author.bot:
返回

请注意,对于使用
ext.commands
框架的命令,这是自动完成的

用于在协同路由中等待有关垃圾邮件的消息。on_message事件表示当bot接收到消息时,会执行写入函数中的代码,这包括当bot接收到来自自身的消息时,这会导致它无限期地回复自身。要防止垃圾邮件源源不断,您可以在开始时添加一个检查,有关详细信息,请参阅。