@Peregrinus_geek

Почему я не могу воспользоваться функцией kick?

Есть 5 серверов дискорда. 4 сервера основных и 1 второстепенный. Во второстепенном понадобилось, чтобы проверять соответствующие роли к другим 4 серверам, а если у участника нету данной роли в соответствующему серверу, то он должен быть кикнут со второстепенного. Сделал код через костыль и не получается заставить работать функцию kick, ибо выдает ошибку. Помогите, пожалуйста, разобраться. Пока что в коде 1 основной и 1 второстепенный сервер.

Код:
import discord
import asyncio
from discord.ext import commands
token = 'TOKEN'

GUILD_1=653925478545096715
GUILD_HP=653925807776858201

client=commands.Bot(command_prefix='#')
@client.event

async def on_ready():
    print('BOT connected')
    #ЧП
    check_list(GUILD_HP, "1")

    check_list(GUILD_1, "1") #Список людей из 1

    #HYDRA
    hydra(GUILD_1,"1")
    
def check_list(GUILD, ID):
    for guild in client.guilds:
        if guild.id == GUILD:
            break
    f = open(str(GUILD)+'_id_'+ID+'.txt', 'w')
    for member in guild.members:
        for role in member.roles:
            if role.name == ID:
                f.write(str(member.id)+'\n')
    f.close()
    
@client.command(kick_members=True)
async def hydra(GUILD,ID):
    for guild in client.guilds:
        if guild.id == GUILD:
            break
    kick=[] #Которые будут кикнуты
    per_HP=[] #Список всех людей в HP
    per=[] #Люди в 1
    with open(str(GUILD)+'_id_'+ID+'.txt', "r") as file:
        per = file.read().splitlines()
    with open(str(GUILD_HP)+'_id_'+ID+'.txt', "r") as file:
        per_HP = file.read().splitlines()

    for k in range(len(per)):
        per[k]=int(per[k])
    for k in range(len(per_HP)):
        per_HP[k]=int(per_HP[k])
    for k in range(len(per_HP)):
        if per_HP[k] not in per:
            kick.append(per_HP[k])
            
    print('Кол-во:',len(kick),'\nБудут кикнуты:',kick,'\n\n')
    for guild in client.guilds:
        if guild.id == 653925807776858201:
            break
    for k in range(len(kick)):
        mem=guild.get_member(kick[k])
        await client.kick(mem,reason=None)
           

client.run(token)


Ошибка:
Warning (from warnings module):
  File "C:\Users\USER\Desktop\HP\HP.py", line 29
    hydra(GUILD_1,"1")
RuntimeWarning: coroutine 'Command.__call__' was never awaited
  • Вопрос задан
  • 220 просмотров
Решения вопроса 1
Alexandre888
@Alexandre888 Куратор тега Боты
Javascript-разработчик
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы