所以我想问一下,有没有一种方法可以让我像在调用它时一样发出命令,机器人会向我的机器人所在的每个公会的所有者发送一个 dm,其中包含我的消息,或者它可以将该消息发送给每个公会的员工频道。我可以用这个命令来发布公告和东西。
答案 0 :(得分:0)
直接给会员发消息需要获取dm_channel
对象的member
。您可以通过使用 member.dm_channel
来实现这一点。只需使用 guild.owner
作为 member
并使用 dm-channel 发送消息。
您应该启用 discord.Intents.guild
和 discord.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)