Discord 不协调Python重写-广播

Discord 不协调Python重写-广播,discord,discord.py,discord.py-rewrite,Discord,Discord.py,Discord.py Rewrite,是否可以使bot在其所在的每台服务器上发送1条消息,而不向每个通道发送消息?我有一个工作代码,但它发送到所有通道 @client.command() async def broadcast(ctx, *, message): for guild in client.guilds: for channel in guild.channels: if guild.name == ctx.author.guild.name:

是否可以使bot在其所在的每台服务器上发送1条消息,而不向每个通道发送消息?我有一个工作代码,但它发送到所有通道

@client.command()
async def broadcast(ctx, *, message):
    for guild in client.guilds:
        for channel in guild.channels:
            
            if guild.name == ctx.author.guild.name:
                pass

            else:
                try:
                    await channel.send(message)
                    await ctx.send(
                        'Sent to {} (ID: {}, Owner: {}#{} With {} Members)'.format(
                            guild.name,
                            guild.id,
                            guild.owner.name,
                            guild.owner.discriminator,
                            guild.member_count
                            ))

                except:
                await ctx.send(
                    'Could not send at {} (Channel ID: {}). (Owner: {}#{})'.format(
                        guild.name,
                        channel.id,
                        guild.owner.name,
                        guild.owner.discriminator,
                        ))
                    return

                else:
                    break
please help
如果你使用

用于client.guilds中的帮会:
channel=discord.utils.get(guild.text\u channels,name=“general”)
如果频道!=无:
#做点什么
你可以从每个公会获得#通用频道。这只是一个频道(Discord允许多个频道共享名称,但大多数人不会这样做,
.get()
无论如何只返回第一个频道)。
这比在所有频道上循环要好得多,比选择随机频道稍微好一点,但我仍然考虑让公会设置自己的广播接收频道。
虽然我的bot只存在于一台服务器中,但我不知道尝试在100多台服务器上执行此操作是否会产生未知后果。

类似的问题是,无法轻松控制您实际发送到的频道。你可以从迭代器中弹出一个通道,而不是循环,或者类似的东西,但是对于所有人来说,每个公会都是一个随机通道。更干净的选择是让公会使用命令指定他们想要接收广播的频道,然后在所有这些频道上循环,但存储频道ID将是一项巨大的结构投资。CSV/Json读/写最容易,数据库访问最难。想想你想做什么。泰姆,我不知道怎么做,但现在我明白了,泰姆