Как я могу отправлять только пользователей DM с определенной ролью в discord.py ?

#python #discord #discord.py

#python #Discord #discord.py

Вопрос:

Я хочу, чтобы бот отправлял сообщения участникам с определенной ролью, поэтому я попробовал это,

 @bot.command(pass_context=True)
async def message_role(ctx, role: discord.Role, *, message):
    for member in ctx.message.server.members:
        if role in member.roles:
            await member.send(member, message)
  

На самом деле это не работает, и я также не хочу, чтобы мой бот был помечен за рассылку спама, поэтому я хочу проверить или что-то еще, чтобы бот отправлял dm только в том случае, если в роли 25 или менее 25 участников. Если у роли более 25 пользователей, она должна вернуться и сказать что-то вроде — «Не могу отправлять столько пользователей».
Спасибо!

Ответ №1:

Вы можете проверить длину role.members

 @bot.command()
async def message_role(ctx, role: discord.Role, *, message):
    if not len(role.members) <= 25:
        return await ctx.send("Can't dm this much users")
    for i in role.members:
        await i.send(message)