当前位置: 首页 > 知识库问答 >
问题:

公会text_频道只返回顶部频道,而不是所有频道

堵龙野
2023-03-14

我正在制作一个discord机器人,我希望它在加入新公会时发送消息。

但是,我只想让它在它加入的公会的#General通道中发送消息:

@client.event
async def on_guild_join(guild):
    chans = guild.text_channels
    for channel in chans:
        if channel.name == 'general':
            await channel.send('hi')
        break

我注意到的问题是guild.text_channels只返回服务器的第一个通道的名称。我想通过所有渠道迭代,最后只在#General渠道上发送消息。

它的变通方法是什么?

共有1个答案

翁宜年
2023-03-14

有几种方法可以做到这一点。

下面是一个使用utils的示例。get()

import discord # To access utils.get

@client.event
async def on_guild_join(guild):
    channel = discord.utils.get(guild.text_channels, name="general")
    await channel.send("Hi!")

或者,如果公会设置了system\u频道,您可以在那里发送消息:

@client.event
async def on_guild_join(guild):
    await guild.system_channel.send("Hi!")

您可以为这两种设置创建检查,但请记住,某些服务器可能没有名为general的文本频道或系统频道设置,因此您可能会收到一些属性错误,抱怨NoneType没有。send()属性。

这些错误可以通过错误处理程序或一个try/除外)来避免。

参考文献:

  • Guild。系统信道
 类似资料:
  • 我使用YouTube数据API从查询结果(视频)中获取一些信息。 大多数视频返回他们的数据正确。但有些视频不返回他们的频道标题(无论如何,所有其他字段都返回正确)。 示例: 返回的第二个视频: 返回的第三个视频: 但是如果我证明youtube中的第三个视频ID,它有(如预期的)一个频道标题。 有什么想法吗?

  • 我正在尝试获取频道中所有视频的列表,使用playlistItems列表通过传递playlistId来获取所有视频。示例- 使用channels.listAPI调用获取频道上传播放列表的ID:GEThttps://www.googleapis.com/youtube/v3/channels?part=contentDetails 使用playlistItems.list调用获取上传播放列表中的视频:

  • 我有一个YouTube用户,其中不包含YouTube频道。但是,如果我使用“mine=true”属性查询youtube.channels.list API方法,YouTube数据API确实会返回一个频道,如下面的示例(1)所示。 例: (1) 返回一个通道(mine=true;通过使用OAuth): https://developers.google.com/apis-explorer/#p/yo

  • 我目前正在为我的不和谐服务器开发一个discord.py重写(1.3.3)机器人。目前,我正试图让机器人在语音频道中播放音乐。根据discord.py留档,您将使用函数channel.connect()连接到语音通道,该通道将返回VoiceClient对象。 然而,我从未从通道中获得VoiceClient对象。连接()。机器人确实加入了我的频道,但它似乎陷入了一个无限循环。在“wait chann

  • HTTP接口文档 频道集成信息接口 GET /activity/api/integrated_info?actid=xxxx URL 参数 参数 描述 取值 是否必填 actid 频道HashID string 必填 返回 参数 描述 取值 errcode 错误码 int msg 错误信息 string name 频道名称 string description 频道描述 string visibl

  • RSS频道 可将透过RSS技术传输内容的Web网页登录为频道。RSS传输的内容,包含了新闻影像、专栏、电台节目等各种类型,且在网络上被广泛地公开。 可将频道登录至以下其中一个位置: - Memory Stick™     - 主机内存   登录频道 保存内容 streaming播放声音内容 浏览图像 使用定时设定机能 输入opml档案 选项选单 关闭RSS频道