为什么我的 discord.py 欢迎信息不起作用

时间:2021-01-09 23:28:15

标签: python discord.py-rewrite

我有这个我以前用过的代码。但它突然停止工作。所以我尝试了一切。但我不知道如何解决这个问题。有人可以帮忙吗?

@bot.event
async def on_member_join(member):
    guild = bot.get_guild(guild_id)
    embed = discord.Embed(title="Welcome", description=f"Hi {member.mention} welcome to {guild.name}")
    embed.set_footer(text="UnhelpfulBOT© | Made by Kezz#4058")
    await bot.get_channel(channel_id).send(content=None, embed=embed)```

3 个答案:

答案 0 :(得分:0)

首先让我们不是通过一些魔法变量而是通过加入的成员(Documentation)获得公会

@bot.event
async def on_member_join(member):
    guild = member.guild
    embed = discord.Embed(title="Welcome", description=f"Hi {member.mention} welcome to {guild.name}")
    embed.set_footer(text="UnhelpfulBOT© | Made by Kezz#4058")

现在我们需要在成员加入的频道中发送消息。 会员加入的一般频道是guild.system_channel (Documentation)。如果没有设置这个频道,我们就不会发送消息。

system_channel = guild.system_channel

if system_channel is None:
    print('No system channel found')
else:
    await.send(embed = embed)

答案 1 :(得分:-1)

您不能只bot.get_channel(channel_id),因为有很多频道。相反,让它更具体,比如频道名称,或者让公会所有者选择一个 JSON 数据库表来记录它。

答案 2 :(得分:-1)

你的代码有一些错误,我认为这更像是你的代码应该是什么样子。至于您没有收到任何错误消息,这是一件非常奇怪的事情,我不确定为什么会发生。

@bot.event
async def on_member_join(member):
    guild = await bot.get_guild(guild_id)

    embed = discord.Embed(
        title = "Welcome",
        description = f"Hi {member.mention} welcome to {guild.name}"
)

embed.set_footer(text = "UnhelpfulBOT© | Made by Kezz#4058")

channel = await bot.get_channel(channel_id)
await channel.send(embed = embed)