过去的几个小时,我一直在寻找一种使用其不和谐标记发送直接消息的方法(例如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库对我来说很难使用。任何帮助将不胜感激。
答案 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通道,其中user
是discord.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
扩展名。
但是我可以使用命令扩展名看到您,因此这对您来说很好。