@dogigames_offical

Как исправить ошибку в команде gban?

что делать если при попытке выдать ГБАН проверяет на админку только на текущем сервере, а как его привязать к guild?

Код:
@Bot.command()
async def gban(ctx, member:discord.Member=None, reason=None):
    if ctx.message.author.id!=882147079521189899 and ctx.message.author.id!=754587723741790258 and ctx.message.author.id!=901758770739302402 and ctx.message.author.id!=983738571146031104:
        await ctx.channel.send("```ODSBot » Недостаточно прав для выполнения данной команды.```")
    else:
        if member is None or reason is None:
            await ctx.channel.send("```ODSBot » Правильное использование:\n\n/gban <пользователь> <причина>```")
        else:
            await ctx.send(f'```ODSBot » Введенная Вами команда в обработке...```',delete_after=15)
for guild in Bot.guilds:
    if member.guild_permissions.administrator:
        print(f"Пользователь является администратором на сервере `{guild.name}`.")
        pass
    else:
        await guild.ban(member)
        await ctx.send(f'```ODSBot » Пользователь "{member}" занесен в блокировку на всех гильдиях, зарегистрированных в боте.```')
  • Вопрос задан
  • 54 просмотра
Пригласить эксперта
Ответы на вопрос 1
fenrir1121
@fenrir1121 Куратор тега discord.py
Начни с документации
У вас уже стоит цикл по всем гильдиям. В этом цикле добавить заполнение флага is_admin, если после окончания цикла он заполнен (хотя бы на одном сервере пользователь администратор) не банить пользователя.

Но если посмотреть в целом весь код, то
1) Стоит вынести админов в отдельный конфиг файл, а не хардкодить
2) Банить только только на текущем сервере
3) Если бан настолько глобальный что касается всех серверов какая разница кем является пользователь на одном из них
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы