Discord - BOT发送私信

在Discord中发送私人消息的问题 . 以下是两个代码示例(简化) .

@client.event
async def on_message(message):

无论是私人聊天(使用机器人)还是 Channels ,此代码块都会将消息(cookie表情符号)发回给用户

if message.content == ".cookie":
        await client.delete_message(message)
        await client.send_message(message.channel, ":cookie:")

这个代码块私下向用户发送一条消息,假设用户在 Channels 中发送了一个命令,它可以正常工作,我很满意 .

if message.content == ".cookie":
        await client.delete_message(message)
        await client.send_message(message.author, ":cookie:")

问题是,我希望用户能够在 Channels 或私人消息中向机器人发送消息“.cookie”并获取私人消息(cookie表情符号) .

最后一段代码 . 如果我向 Channels 发送命令.cookie,我会收到来自机器人的私人消息 . 如果我私下向Bot发送命令.cookie,我会收到错误 .

不知道如何处理这个,谢谢

回答(1)

2 years ago

我认为不可能删除人们发送给您的私人消息 . 在删除邮件之前,您可以在 Channels 上添加检查以查看它是否为私有

if message.content == ".cookie":
    if not message.channel.is_private:
        await client.delete_message(message)
    await client.send_message(message.author, ":cookie:")