我目前正在编写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))
这是我最近的尝试^
谢谢,弗雷德里克:)
答案 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))