列出用户拥有的角色以及服务器中的所有文本通道-discord.py

时间:2018-11-01 12:21:03

标签: python discord.py

我试图做两件事,但到目前为止我还没有成功。

第一

首先要提及用户在服务器中具有的所有角色。我尝试这样做,但是没有提到角色,而是发送了此消息:

[<discord.role.Role object at 0x0335A870>, <discord.role.Role object at 0x0335A970>, <discord.role.Role object at 0x0335AAB0>, <discord.role.Role object at 0x0335A9B0>]

第二:

第二件事是该机器人在服务器中发送了文本通道,语音通道和类别的数量,但到目前为止我还是做不到。

我希望有人能帮助我。谢谢!

2 个答案:

答案 0 :(得分:0)

假设您正在使用async分支,则Client类包含服务器,该服务器返回该机器人已连接到的Server类的列表。这里的文档:http://discordpy.readthedocs.io/en/latest/api.html#discord.Client.servers

遍历此列表,每个Server类都包含通道,该通道返回服务器具有的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)

答案 1 :(得分:0)

这两个命令应该可以满足您的目的。第一个提到作者的所有提到的角色,第二个提到服务器的通道,按其类型进行计数。

npm install