python - DMing 成员加入服务器 - 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)
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)
你看到的代码在
@client.event
async def on_member_join(member):
我希望我的机器人 DM 加入服务器的人。我已经通过welceme 频道发布了一个欢迎新人的命令,但我无法让DM 工作。由于机器人不知道消息是什么,它使文本变为红色。当我放在message
顶部时,当有人加入时,它会说“消息是缺少的必需上下文”。我不知道如何进行,但我绝对需要你们的帮助!on_member_joins
如果你们愿意,我可以提供完整的活动
解决方案
member.send(...)
您可以通过上下文中的用户在哪里member
(加入服务器)向用户发送个人消息。
该<destination>.send(<content>)
函数将content
(您的消息)发送到给定的消息destination
,可以是频道、组或成员(在这种情况下)等。这是一个示例代码(您的代码进行了一些更改),它将嵌入发送到加入用户的 DM:
@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)
推荐阅读
- django-templates - 我在扩展的 html 上复制了模板标签内的内容
- azure-devops - 从 Azure DevOps 构建中获取触发的构建资源
- powerbi - 如何使用dax比较日期数据类型的日期表中的值
- javascript - 如何从另一个组件的功能更新组件的数组?
- reactjs - 如何使 Visual Studio 2022 看起来像用于 React JS 开发的 vs 代码
- google-cloud-platform - 使用 ansible / AWX 管理 GCP 标签
- flutter - 如何将 API 响应保存在数据库中?
- ios - 当我按下按钮上传图像时颤动崩溃
- typescript - Nextjs 如何在 Vercel 上将自定义文件夹移动到生产环境
- java - 我的 Java 程序没有将数据写入 GridDB 表