不和谐.py |如何向我的机器人所在的每个公会的所有者发送消息

时间:2021-05-24 17:59:10

标签: python python-3.x discord discord.py bots

所以我想问一下,有没有一种方法可以让我像在调用它时一样发出命令,机器人会向我的机器人所在的每个公会的所有者发送一个 dm,其中包含我的消息,或者它可以将该消息发送给每个公会的员工频道。我可以用这个命令来发布公告和东西。

1 个答案:

答案 0 :(得分:0)

直接给会员发消息需要获取dm_channel对象的member。您可以通过使用 member.dm_channel 来实现这一点。只需使用 guild.owner 作为 member 并使用 dm-channel 发送消息。
您应该启用 discord.Intents.guilddiscord.Intents.members,以便您的机器人获取 guild.owner


@client.command() 
@commands.is_owner() 
async def broadcast(ctx, message):     
    for guild in client.guilds:
        # get the owner of guild
        owner = guild.owner

        # check if dm exists, if not create it
        if owner.dm_channel is None:
            await owner.create_dm()
      
        # if creation of dm successful
        if owner.dm_channel != None:
            await owner.dm_channel.send(message)
   
        for channel in guild.channels:             
            if(channel.name == 'general'):                 
                await channel.send(message)