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

2024-09-30 20:22:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我目前正在编程一个Discord机器人。我对discord.py库很陌生,我想知道如何通过使用频道名称来获取频道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))

这是我最近的尝试^

先谢谢你,弗雷德里克:)


Tags: clientidgetasyncdef编程channelche
1条回答
网友
1楼 · 发布于 2024-09-30 20:22:59

您可以使用^{}

@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))

相关问题 更多 >