是否可以在discord.py中按名称获取频道ID

时间:2020-08-08 23:22:46

标签: discord.py

标题说明了一切... 我想在公会中使用给定名称的频道ID,但在文档中找不到任何可以执行此操作的东西。查看Mee6之类的更发达的机器人,他们可以选择连接到您的服务器并为您的任何文本通道设置欢迎页面。我尝试过类似的事情:

channels = discord.utils.get(client.get_all_channels(), guild__name='Test Server'

但这只会返回“文本通道”,而不会返回其他任何内容。

5 个答案:

答案 0 :(得分:2)

阿卜杜勒阿齐兹(Abdulaziz)说的是正确的,但效率和冗长程度较低,您可以使用utils.get

channel = discord.utils.get(ctx.guild.channels, name=given_name)
channel_id = channel.id

答案 1 :(得分:1)

channel = discord.utils.get(client.get_all_channels(), name=name_channel)

答案 2 :(得分:0)

如果您使用的是discord.ext.commands,则可以执行如下循环。

@bot.command()
async def get_channel(ctx, *, given_name=None):
    for channel in ctx.guild.channels:
        if channel.name == given_name:
            wanted_channel_id = channel.id

    await ctx.send(wanted_channel_id) # this is just to check 

答案 3 :(得分:0)

channel = message.channel

简单

答案 4 :(得分:0)

如果您不知道要通过哪个服务器来获取频道,您可以使用这个:

channel = discord.utils.get(self.client.get_all_channels(), id=channel_id)