Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在on_message event discord.py之后触发我的bot以DM用户_Python_Python 3.x_Discord_Discord.py - Fatal编程技术网

Python 如何在on_message event discord.py之后触发我的bot以DM用户

Python 如何在on_message event discord.py之后触发我的bot以DM用户,python,python-3.x,discord,discord.py,Python,Python 3.x,Discord,Discord.py,我试图让我的机器人消息直接成为用户,如果他们键入某个单词,例如字母“E”,但我不知道如何做到这一点。感谢您的帮助 我猜这就是你的意思: @bot.event async def on_message(message): if(message.content == 'E'): await message.author.send('You typed E!') 这里有几点需要注意: message.channel.send()函数用于公共响应,如在服务器上。 message.au

我试图让我的机器人消息直接成为用户,如果他们键入某个单词,例如字母“E”,但我不知道如何做到这一点。感谢您的帮助

我猜这就是你的意思:

@bot.event
async def on_message(message):
   if(message.content == 'E'):
      await message.author.send('You typed E!')

这里有几点需要注意:
message.channel.send()
函数用于公共响应,如在服务器上。
message.author.send()
函数用于私人响应或直接消息(DM)

@bot.event
异步def on_消息(消息):
如果(message.content='E'):
wait message.author.send('您键入了E!')`在此处输入代码`
您可以使用

@bot.event
异步def on_消息(消息):
如果message.coent.lower()=“e”:
dmchannel=wait message.author.create_dm()
等待dmchannel.send(“您键入了E!”)

欢迎使用堆栈溢出!请阅读介绍,并复习以了解社区期望。堆栈溢出不是免费的编码服务,因此,类型问题通常不受欢迎。您必须展示自己在解决问题方面的努力,然后提出一个具体问题,说明您的实现在哪些方面存在不足。谢谢您的回答,我尝试了这个方法,但出于某种原因什么也没有发生。我没有收到任何错误,但没有发送任何消息,知道为什么吗?@Matt你到底在discord中键入了什么?@Matt你的机器人正在运行吗?将打印消息添加到on_message事件中,首先检查事件是否触发,然后尝试发送消息。请注意,仅“键入”E不会触发事件,您必须发送一条仅包含“E”的消息才能触发答案。顺便说一句,此代码也区分大小写。因此,您必须将大写的
E
用户希望
直接消息(DM)
转换为
消息作者
而不是公共消息,请尝试将
消息.频道
更改为
消息.作者
。但在此之后,您的答案将与答案相同,请尝试更新它