From 698e782b8889377187833fe9ec92d60f74a1dab3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Schr=C3=B6dinger?= <132720404+Schrodinger71@users.noreply.github.com> Date: Thu, 16 Jan 2025 04:38:45 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9F=D1=80=D0=B0=D0=B2=D0=BA=D0=B8=20=D0=B5?= =?UTF-8?q?=D1=81=D0=BB=D0=B8=20=D0=B2=D0=B2=D0=B5=D0=B4=D1=83=D1=82=20?= =?UTF-8?q?=D1=80=D0=BE=D0=BB=D1=8C=20=D1=81=20=D0=B1=D0=BE=D0=BB=D1=8C?= =?UTF-8?q?=D1=88=D0=B8=D0=BC=20=D0=BA=D0=BE=D0=BB-=D0=B2=D0=BE=D0=BC=20?= =?UTF-8?q?=D1=83=D1=87=D0=B0=D1=81=D1=82=D0=BD=D0=B8=D0=BA=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- commands/user_role_command.py | 37 +++++++++++++++++++++++++---------- 1 file changed, 27 insertions(+), 10 deletions(-) diff --git a/commands/user_role_command.py b/commands/user_role_command.py index f8e5edb..662a6c2 100644 --- a/commands/user_role_command.py +++ b/commands/user_role_command.py @@ -31,13 +31,30 @@ async def user_role(ctx, *role_names: str): # Получаем список пользователей с этой ролью members_with_role = [member.name for member in role.members] - if members_with_role: - # Формируем сообщение с подсчётом пользователей - members_count = len(members_with_role) - members_list = "\n".join([f"👤 **{member}**" for member in members_with_role]) - await ctx.send( - f"✅ **Пользователи с ролью '{role.name}':** ({members_count})\n\n" - f"{members_list}" - ) - else: - await ctx.send(f"⚠️ **Нет пользователей с ролью '{role.name}'.**") + try: + if members_with_role: + members_count = len(members_with_role) + members_list = "\n".join([f"👤 **{member}**" for member in members_with_role]) + + await ctx.send( + f"✅ **Пользователи с ролью '{role.name}':** ({members_count})\n\n" + f"{members_list}" + ) + else: + await ctx.send(f"⚠️ **Нет пользователей с ролью '{role.name}'.**") + + except disnake.errors.HTTPException as e: + # Если ошибка превышения лимита, показываем только первых 10 пользователей + if e.code == 50035: # Проверка на ошибку из-за превышения лимита + members_to_display = members_with_role[:10] # Ограничиваем до 10 пользователей + members_count = len(members_with_role) + members_list = "\n".join([f"👤 **{member}**" for member in members_to_display]) + + message = f"✅ **Пользователи с ролью '{role.name}':** ({members_count})\n\n" + message += members_list + + # Если пользователей больше 10, добавим информацию о количестве оставшихся + if members_count > 10: + message += f"\n\n⚠️ **И ещё {members_count - 10} пользователей...**" + + await ctx.send(message)