我如何获得机器人来转发其DM

所以我的bot DM的用户会问他们问题,但是我需要能够在频道中看到他们的回应。

到目前为止,我有这个:

@bot.event
async def on_message(message):
    channel = bot.get_channel(642759168247463937)
    await channel.send('message')

但是它开始于在任何通道中发送任何消息,并且它也对其自身做出响应,从而导致无休止的垃圾邮件循环。

我是Discord.py的新手,所以老实说,我对如何解决此问题一无所知。

ck870331 回答:我如何获得机器人来转发其DM

我的方法是检查邮件是否来自DM:

@bot.event
async def on_message(message):
    if not message.guild:
        return
    channel = bot.get_channel(642759168247463937)
    await channel.send('message')

之所以可行,是因为如果消息是在DM中发送的,则message.guildNone。由于邮件不会转发到漫游器的DM,因此可以防止垃圾邮件问题。
但是,为避免一般情况下的垃圾邮件,除非有必要,否则最好完全避免对漫游器做出响应。幸运的是,UserMember对象具有名为bot的属性,可以在这里为我们提供帮助:

if message.author.bot:
    return

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

本文链接:https://www.f2er.com/3132032.html

大家都在问