如何使用python discord向机器人所在的每个服务器发送消息

时间:2018-08-16 16:16:50

标签: python discord.py

我想要这样,以便当我键入命令和消息时,它将把该消息转发到机器人通过python discord连接到的每个服务器中的通道。我知道如何获取消息并查找命令,但是我不知道如何在每个服务器中找到该机器人可以发布的频道,然后发送它。

有人可以帮助我吗?

2 个答案:

答案 0 :(得分:0)

您的servers的{​​{1}}对象是机器人所属的Client个对象的可迭代对象,每个Server包含一个Server可迭代对象用于获取您可以发布的频道。

channels

Docs on client servers

Docs on server channels

Docs on client messaging

答案 1 :(得分:0)

您可以遍历该机器人可以看到的所有服务器,然后遍历它们的通道,直到找到可以向其发送消息的服务器为止。

@bot.command(pass_context=True)
async def broadcast(ctx, *, msg):
    for server in bot.servers:
        for channel in server.channels:
            try:
                await bot.send_message(channel, msg)
            except Exception:
                continue
            else:
                break