Python DMing成员加入服务器-Discord.Py
你看到的代码在下面Python DMing成员加入服务器-Discord.Py,python,discord.py,Python,Discord.py,你看到的代码在下面 @client.event async def on_member_join(member): channel = client.get_channel(659080736229294130) await channel.send(f'{member.mention} Katıldı, Hoşgeldin! {channel.guild.member_count} Kişiyiz!') role = get(member.guild.roles, name=ROLE) aw
@client.event
async def on_member_join(member):
channel = client.get_channel(659080736229294130)
await channel.send(f'{member.mention} Katıldı, Hoşgeldin! {channel.guild.member_count} Kişiyiz!')
role = get(member.guild.roles, name=ROLE)
await member.add_roles(role)
print(f"{member} Katıldı!")
if member.guild is None and not member.author.bot:
async with member.typing():
await asyncio.sleep(0.7)
embed = discord.Embed(
title="Hoşgeldin!",
colour=discord.Colour.blue(),
)
embed.set_thumbnail(
url="https://cdn.discordapp.com/avatars/649985273249398784/493fe440660d331687e426ba976da8f4.webp?size=1024")
embed.add_field(name="",
value="**TEXT**",
inline=False)
embed.add_field(name="TEXT",
value= "TEXT", )
embed.set_footer(text="© @MakufonSkifto#0432")
await member.send(embed=embed)
我想让我的机器人对加入服务器的人进行DM。我已经通过welceme频道发出了欢迎新来者的命令,但我无法让DM工作。由于机器人不知道消息是什么,它会将文本变成红色。当我把
message
放在上面时,当有人加入时,它会说“message是缺少的必需上下文”。我不知道如何进行,但我确实需要你们的帮助!我可以提供完整的on_member_joins
事件,如果你们愿意的话你们可以通过成员向用户发送个人消息。发送(…)
其中成员是上下文中的用户(加入服务器)
.send()
函数将内容
(您的消息)发送到给定的目的地
,该目的地可以是频道、组或成员(在本例中)等。
下面是一个示例代码(您的代码有一些更改),它向加入用户的DM发送嵌入:
@client.event
async def on_member_join(member):
@client.event
成员加入时的异步定义(成员):
打印(“{}joined!”.format(member.name))
打印(f'{member.guild.name}')
等待会员。发送(“欢迎!”)
role=member.guild.roles
#member.guild.roles返回类型为的对象
如果是member.guild而不是member.bot:
与成员异步。键入()
嵌入=不和谐。嵌入(
title=“Hoşgeldin!”,
颜色=不和谐。颜色。蓝色(),
)
embed.set_缩略图(
url=”https://cdn.discordapp.com/avatars/649985273249398784/493fe440660d331687e426ba976da8f4.webp?size=1024")
embed.add_字段(name=“something”,
value=“**文本**”,
内联=假)
嵌入.add_字段(name=“TEXT”,
value=“TEXT”)
嵌入.set_页脚(text=“)@MakufonSkifto#0432”)
等待成员发送(嵌入=嵌入)
No message.channel.send,但是:wait member.send(embed=embed)但是另一条消息呢?我用member更改了消息,但是没有成功。您是否将message.channel.send(embed=embed)
更改为member.send(embed=embed)
?查看我添加的示例代码,应该可以成功;-)这很奇怪,因为它对我有用。你能显示错误吗?基本上是一样的,除了“角色”的东西。我再加上。您的代码中有一些错误,例如member.guild为None
@client.event
async def on_member_join(member):
print ("{} joined!".format(member.name))
print (f'{member.guild.name}')
await member.send("Welcome!")
role = member.guild.roles
# member.guild.roles returns an object of type <class 'list'>
if member.guild and not member.bot:
async with member.typing():
embed = discord.Embed(
title="Hoşgeldin!",
colour=discord.Colour.blue(),
)
embed.set_thumbnail(
url="https://cdn.discordapp.com/avatars/649985273249398784/493fe440660d331687e426ba976da8f4.webp?size=1024")
embed.add_field(name="something",
value="**TEXT**",
inline=False)
embed.add_field(name="TEXT",
value="TEXT")
embed.set_footer(text="© @MakufonSkifto#0432")
await member.send(embed=embed)