当某人DM是我的机器人时,我将其打印到发送消息的控制台上,该消息是什么,以及该消息的发送时间。我希望漫游器然后让我DM通知我有人发消息,和/或通知谁,何时何地。
我已经看到许多与此有关的不同解决方案的问题。其中许多已经过时,因此无法与我的代码一起使用。我在Spyder上使用Python 3.7。
我可以通过bot命令将bot DM给一个用户,但不能将bot DM赋予一个特定的用户ID。
以下是打印接收到控制台的DM消息的代码。同样,这部分没有问题。只需要将此信息私下发给我。
if isinstance(message.channel, discord.DMChannel):
print("******************************")
print("DM Recieved by: " + message.author.name)
print("Time:", str(datetime.datetime.now()))
print("Message: " + message.content)
print("******************************")
更新代码:
if client.user.mentioned_in(message) and message.mention_everyone is False:
await message.delete()
channel = message.channel
await channel.trigger_typing()
await channel.send("{0.mention} Please don't tag me.".format(message.author))
print("**************************************************")
print("Mentioned By: " + message.author.name)
print("Time:", str(datetime.datetime.now()))
print("Message: " + message.clean_content)
print("Channel: " + str(message.channel))
print("**************************************************\n")
#DM me when bot get's mentioned.
client.get_user(305508822485827584)
await user.send("Test")
答案 0 :(得分:2)
在我看来,您正在使用discord.py的旧异步版本-我强烈建议移至较新的rewrite分支,因为对异步版本的支持现已停止。
client.get_user(ID)
是一种重写方法,在discord.py的异步版本中不存在。在这种情况下,您可以使用client.get_user_info(ID)
。
希望这会有所帮助-编码愉快!
编辑:这是您需要使用的代码:
user = client.get_user(305508822485827584)
await user.send("Test")