在Discord.py中,你可以使用Member
对象的status
属性来判断成员的在线状态。根据成员的状态,你可以选择只向在线、免打扰或空闲成员发送私人消息,而不是向所有成员发送。
首先,你需要获取服务器中的所有成员列表。你可以使用guild.members
属性来获取成员列表。然后,遍历成员列表,判断每个成员的状态,并发送私人消息给符合条件的成员。
下面是一个示例代码:
import discord
intents = discord.Intents.default()
intents.members = True
client = discord.Client(intents=intents)
@client.event
async def on_ready():
guild = client.get_guild(1234567890) # 替换为你的服务器ID
members = guild.members
for member in members:
if member.status == discord.Status.online:
# 发送私人消息给在线成员
await member.send("你好!这是一条私人消息。")
elif member.status == discord.Status.dnd:
# 发送私人消息给免打扰成员
await member.send("你好!这是一条私人消息。")
elif member.status == discord.Status.idle:
# 发送私人消息给空闲成员
await member.send("你好!这是一条私人消息。")
client.run('YOUR_BOT_TOKEN') # 替换为你的机器人令牌
请注意,为了能够获取成员列表和发送私人消息,你需要在创建Client
对象时启用intents.members
权限,并且你的机器人需要有足够的权限来发送私人消息。
这是一个基本的示例,你可以根据需要进行修改和扩展。关于Discord.py的更多信息和使用方法,你可以参考腾讯云的Discord.py产品介绍。
领取专属 10元无门槛券
手把手带您无忧上云