【问题标题】:Is it possible to get channel ID by name in discord.py是否可以在 discord.py 中按名称获取频道 ID
【发布时间】:2020-11-28 22:20:08
【问题描述】:

标题说明了一切... 我想在公会中获得一个特定名称的频道 ID,但我在文档中找不到任何可以让我这样做的东西。看看像Mee6 这样更发达的机器人,他们可以选择连接到您的服务器并为您的任何文本频道设置欢迎页面。我试过类似的东西:

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

但这只会返回“文本通道”而不是其他任何东西。

【问题讨论】:

  • 我不明白。这是作为命令的一部分运行的吗?如果你有公会,你可以做get(guild.channels, name="channel name")

标签: discord.py


【解决方案1】:
channel = discord.utils.get(client.get_all_channels(), name=name_channel)

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

      channel = message.channel

      简单

      【讨论】:

        【解决方案4】:

        阿卜杜勒阿齐兹说的对,但效率较低且冗长,您可以使用utils.get

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

        【讨论】:

          【解决方案5】:

          如果你使用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 
          

          【讨论】:

            猜你喜欢
            • 2019-03-25
            • 2021-07-05
            • 1970-01-01
            • 2022-01-16
            • 1970-01-01
            • 2014-11-17
            • 2020-11-26
            • 1970-01-01
            相关资源
            最近更新 更多