【问题标题】:DMing The Member Joins The Server - Discord.PyDMing 成员加入服务器 - Discord.Py
【发布时间】:2020-06-26 13:38:33
【问题描述】:
@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 活动

【问题讨论】:

  • 没有message.channel.send,但是:await member.send(embed = embed)
  • 但是另一条消息呢?

标签: python discord.py


【解决方案1】:

您可以通过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)

【讨论】:

  • 我与会员更改了消息,但也没有成功
  • 你把message.channel.send(embed=embed)改成member.send(embed=embed)了吗?
  • 查看我添加的示例代码,它应该可以工作 ;-)
  • 这很奇怪,因为它对我有用。 pasteboard.co/JePrwW1.png你能显示错误吗?
  • 除了“角色”之外,基本上是一样的。我会添加它。您的代码中有一些错误,例如member.guild is None
猜你喜欢
  • 2022-01-24
  • 2021-09-03
  • 1970-01-01
  • 1970-01-01
  • 2020-12-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-25
相关资源
最近更新 更多