Как я могу обрезать несогласных пользователей без определенной роли? - PullRequest
0 голосов
/ 17 января 2019

Я владелец сервера разногласий среднего размера, который часто подвергается рейду, поэтому для настройки защиты я добавил роль «участника» и заблокировал все каналы, кроме «запроса роли» (где они могут реагировать на сообщение, чтобы получить роли), «правила» (перечисляет правила) и «добро пожаловать». На канале «Добро пожаловать» бот инструктирует пользователей помечать нашу роль «персонала», после чего появляется сотрудник, следит за тем, чтобы они не наводнили нас пропагандой, и назначает им роль «члена». , Как только они становятся членами, они могут получить доступ ко всему серверу.

Моя проблема в том, что многие люди пренебрегали пометкой сотрудников и теперь полностью бездействуют. Я не могу обрезать их, потому что у них есть роли, но не роль участника. Я хотел бы пнуть всех на сервере, которые не имеют роли участника. Это возможно? Заранее большое спасибо:)

1 Ответ

0 голосов
/ 17 января 2019

Конечно. Перебирайте членов сервера, проверяйте роль и удаляйте их, если у них ее нет

from discord.utils import get

@bot.command(pass_context=True)
async def purge_members(ctx):
    for member in ctx.message.server.members:
        if not get(member.roles, name='member'):
            await bot.kick(member)
...