Задать вопрос
@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}" занесен в блокировку на всех гильдиях, зарегистрированных в боте.```')
  • Вопрос задан
  • 55 просмотров
Подписаться 1 Простой 1 комментарий
Ответ пользователя fenrir К ответам на вопрос (1)
fenrir1121
@fenrir1121 Куратор тега discord.py
Начни с документации
У вас уже стоит цикл по всем гильдиям. В этом цикле добавить заполнение флага is_admin, если после окончания цикла он заполнен (хотя бы на одном сервере пользователь администратор) не банить пользователя.

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