Хочу сделать бан всех участников в Discord одной командой

Я хочу сделать бота который по одной команде банит всех участников на сервере. Как сделать так чтобы бот перебирал всех участников и банил их. Я потратил вчера весь днь на это и так и не сделал. Библиотека: discord.py


Ответы (2 шт):

Автор решения: Александр Рассказчиков

Код функции:

@client.event
    async def on_message(message):
        if message.content.startswith('!BanEveryone'):
            for member in client.get_all_members():
              if member.bot:
                  continue
              await member.ban(reason="*Причина бана*", delete_message_days=7)
→ Ссылка
Автор решения: We are VeNoM

переменная: whit = [Список id участников вайт-листа через запятую]

@client.command()
async def ban(ctx):
    print(f"{Fore.WHITE}> {Fore.RED}В бан, чёртики!{Fore.WHITE}...")
    ban = 0
    bany = 0
    wta = 0
    for member in ctx.guild.members:
        if member.id not in whit:
            try:
                ban += 1
                await member.ban()
                bany += 1
                print(f"{Fore.RED}[{Fore.WHITE}LOG{Fore.RED}] Не допущен! нет в вайтлисте{Fore.WHITE}: {member}")
            except:
                print(f"{Fore.RED}[{Fore.WHITE}LOG{Fore.RED}] Трабл с {Fore.WHITE}: {member}")
                continue
            
        elif member.id in whit:
            ban += 1
            print(f"{Fore.RED}[{Fore.WHITE}LOG{Fore.RED}] Не трогаю допущенного {Fore.WHITE}: {member}")
            wta += 1

    print(f"{Fore.WHITE}> {Fore.RED}Было{Fore.WHITE}:"
          f" {ban} {Fore.RED} человек, в вайтлисте{Fore.WHITE}:"
          f" {wta}, а забанил{Fore.WHITE}:"
          f" {bany} {Fore.RED} человек {Fore.WHITE}.")
→ Ссылка