我需要让所有通道制作一个Bunker命令,这使得所有通道都是只读的。
答案 0 :(得分:7)
他们在 discord.py (1.0)的newer version中将Client.servers
更改为Client.guilds
。
您也可以使用 bot 代替 Client (info)。
然后guild.text_channels
获取所有文本通道。
对于所有频道,您都可以使用bot.get_all_channels()
text_channel_list = []
for guild in bot.guilds:
for channel in guild.text_channels:
text_channel_list.append(channel)
答案 1 :(得分:3)
假设您使用的是异步分支,Client
类包含servers
,它返回机器人连接的Server
类列表。这里的文档:http://discordpy.readthedocs.io/en/latest/api.html#discord.Client.servers
迭代此列表,每个Server
类包含channels
,它返回服务器具有的Channel
类列表。这里的文档:http://discordpy.readthedocs.io/en/latest/api.html#discord.Server.channels
最后,迭代此列表,您可以检查每个Channel
类的不同属性。例如,如果要检查频道是否为文本,则可以使用channel.type
。这里的文档:http://discordpy.readthedocs.io/en/latest/api.html#discord.Channel
一个粗略的示例,说明如何列出所有Channel
个对象的类型'文字':
text_channel_list = []
for server in Client.servers:
for channel in server.channels:
if channel.type == 'Text':
text_channel_list.append(channel)