discord.py如何通过频道名称查找频道ID

时间:2020-10-09 11:25:39

标签: python discord.py

我目前正在编写Discord Bot。我对discord.py lib相当陌生,我想知道如何通过使用频道名称来获取频道ID。

@bot.command
async def get_channel(ctx):
    global channel_id
    channel = discord.utils.get(ctx.guild.channels, name='willkommen')
    channel_id = channel.id
    print(channel_id)

@client.event
async def on_member_join(member):
    global channel_id
    willkommenssprüche = [f'➡ Mmmmmoin {member.mention}', f'➡ Moiiiiiin Meisteeer {member.mention}:100:', f'➡ Moin Leude, {member.mention} hier!', f'➡ Da biste ja {member.mention} alla!']
    
    
    channel = client.get_channel(channel_id)
    await channel.send(random.choice(willkommenssprüche))

这是我最近的尝试^

谢谢,弗雷德里克:)

1 个答案:

答案 0 :(得分:0)

您可以使用discord.utils.get()

@client.command()
async def get_channel(ctx):
    channel = discord.utils.get(ctx.guild.channels, name='channel name')
    print(channel.id)

如果要在on_message事件中获取频道ID,可以使用message.guild.channels代替ctx.guild.channels

编辑

您不必添加我编写的代码。这只是一个例子。 on_member_join具有member属性的guild参数。这样就可以使用它了。

@client.event
async def on_member_join(member):
    willkommenssprüche = [f'➡ Mmmmmoin {member.mention}', f'➡ Moiiiiiin Meisteeer {member.mention}:100:', f'➡ Moin Leude, {member.mention} hier!', f'➡ Da biste ja {member.mention} alla!']
    channel = discord.utils.get(member.guild.channels, name='willkommen')
    await channel.send(random.choice(willkommenssprüche))