【问题标题】:How do I get a bot to forward its DMs如何让机器人转发其 DM
【发布时间】:2020-03-05 23:15:45
【问题描述】:

所以我的机器人 DM 的用户并向他们提问,但我需要能够在频道中看到他们的回复。

到目前为止,我有这个:

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

但它开始于任何消息在任何通道中发送并且它也响应自己,从而导致垃圾邮件的无限循环。

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

【问题讨论】:

标签: discord.py


【解决方案1】:

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

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

这是有效的,因为如果消息是在 DM 中发送的,message.guild 就是 None。这可以防止垃圾邮件问题,因为邮件不会转发给机器人的 DM。
但是,一般而言,为了避免垃圾邮件,除非必要,否则最好完全避免响应机器人程序。幸运的是,UserMember 对象有一个名为 bot 的属性,可以帮助我们:

if message.author.bot:
    return

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

【讨论】:

    猜你喜欢
    • 2021-06-13
    • 2021-12-23
    • 2021-03-11
    • 2018-05-10
    • 1970-01-01
    • 2021-03-03
    • 1970-01-01
    • 1970-01-01
    • 2022-10-04
    相关资源
    最近更新 更多