如何不和谐地向用户发送私人消息?

时间:2020-04-15 12:35:02

标签: python discord message

过去的几个小时,我一直在寻找一种使用其不和谐标记发送直接消息的方法(例如mj#0001) 我到处都是,没有解决方案对我有用

我尝试了client.send_message(),但提示

“ Bot”类的未解析属性引用“ send_message”

这是我的代码:

@client.command()
async def DM(ctx, user_to_dm): # user_to_dm is the discord tag like mj#0081
    await client.send_message(user_to_dm, "insert message here")

我也曾尝试创建一个私人频道并添加我想要的成员,但是我没有运气。 python中的准初学者,discord库对我来说很难使用。任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:0)

(我使用discord.Client,所以您可能需要稍作修改)

我具有此功能,可以在加入人员时向其发送消息。

@client.event
async def on_member_join(user):
    await user.create_dm()
    await user.dm_channel.send(f'Hi **{user.name}**, welcome to the server! Be sure to read the rules to stay out of trouble. Have a great time!')

因此,在向该人发送直接消息之前,您必须先await user.create_dm()打开DM通道,其中userdiscord.Member对象。

是这样的。

@client.command
async def DM(ctx, user):
    user_identifier = int(user[2:-1])
    message_user = client.get_user(user_identifier)
    # now we have a discord.User class under message_user
    await message_user.create_dm()
    await message_user.dm_channel.send(user, "insert message here")

装饰函数时也不要调用该函数,只需将其保留在括号内即可。

答案 1 :(得分:0)

你可以做。

@client.command()
async def DM(ctx, user_to_dm: discord.Member): # user_to_dm is the discord tag like mj#0081
    await user_to_dm.send("insert message here")

就是这样,唯一的问题仅适用于Rewrite分支,也仅适用于commands扩展名。

但是我可以使用命令扩展名看到您,因此这对您来说很好。