mirror of
https://github.com/skylanix/MamieHenriette.git
synced 2026-02-06 06:40:35 +01:00
Amélioration de la commande de kick pour inclure la possibilité d'utiliser un ID utilisateur, ajout de messages d'erreur pour les utilisateurs introuvables.
This commit is contained in:
@@ -752,9 +752,9 @@ async def handle_staff_help_command(message: Message, bot):
|
|||||||
|
|
||||||
if ConfigurationHelper().getValue('moderation_kick_enable'):
|
if ConfigurationHelper().getValue('moderation_kick_enable'):
|
||||||
value = (
|
value = (
|
||||||
"• `!kick @utilisateur raison`\n"
|
"• `!kick @utilisateur raison` ou `!kick <id> raison`\n"
|
||||||
" Expulse temporairement un utilisateur du serveur\n"
|
" Expulse temporairement un utilisateur du serveur\n"
|
||||||
"Exemple: `!kick @User Spam de liens`"
|
"Exemples: `!kick @User Spam de liens` ou `!kick 123456789012345678 Spam`"
|
||||||
)
|
)
|
||||||
embed.add_field(name="👢 Expulsion", value=value, inline=False)
|
embed.add_field(name="👢 Expulsion", value=value, inline=False)
|
||||||
|
|
||||||
@@ -770,20 +770,40 @@ async def handle_kick_command(message: Message, bot):
|
|||||||
parts = message.content.split(maxsplit=2)
|
parts = message.content.split(maxsplit=2)
|
||||||
if not has_staff_role(message.author.roles):
|
if not has_staff_role(message.author.roles):
|
||||||
await send_access_denied(message.channel)
|
await send_access_denied(message.channel)
|
||||||
elif len(parts) < 2 or not message.mentions:
|
elif len(parts) < 2:
|
||||||
await _send_kick_usage(message.channel)
|
await _send_kick_usage(message.channel)
|
||||||
else:
|
else:
|
||||||
target_member = message.mentions[0]
|
target_user, reason = await _parse_kick_target_and_reason(message, bot, parts)
|
||||||
reason = parts[2] if len(parts) > 2 else "Sans raison"
|
if not target_user:
|
||||||
await _process_kick_success(message, target_member, reason)
|
await _send_user_not_found_for_kick(message.channel)
|
||||||
|
else:
|
||||||
|
await _process_kick_success(message, target_user, reason)
|
||||||
|
|
||||||
async def _send_kick_usage(channel):
|
async def _send_kick_usage(channel):
|
||||||
embed = discord.Embed(
|
embed = discord.Embed(
|
||||||
title="📋 Utilisation de la commande",
|
title="📋 Utilisation de la commande",
|
||||||
description="**Syntaxe :** `!kick @utilisateur [raison]`",
|
description="**Syntaxe :** `!kick @utilisateur [raison]` ou `!kick <id> [raison]`",
|
||||||
color=discord.Color.blue()
|
color=discord.Color.blue()
|
||||||
)
|
)
|
||||||
embed.add_field(name="Exemples", value="• `!kick @User Spam dans le chat`\n• `!kick @User Comportement inapproprié`", inline=False)
|
embed.add_field(name="Exemples", value="• `!kick @User Spam dans le chat`\n• `!kick 123456789012345678 Comportement inapproprié`", inline=False)
|
||||||
|
await channel.send(embed=embed)
|
||||||
|
|
||||||
|
async def _parse_kick_target_and_reason(message: Message, bot, parts: list):
|
||||||
|
if message.mentions:
|
||||||
|
return message.mentions[0], (parts[2] if len(parts) > 2 else "Sans raison")
|
||||||
|
try:
|
||||||
|
user_id = int(parts[1])
|
||||||
|
user = await bot.fetch_user(user_id)
|
||||||
|
return user, (parts[2] if len(parts) > 2 else "Sans raison")
|
||||||
|
except (ValueError, discord.NotFound):
|
||||||
|
return None, None
|
||||||
|
|
||||||
|
async def _send_user_not_found_for_kick(channel):
|
||||||
|
embed = discord.Embed(
|
||||||
|
title="❌ Erreur",
|
||||||
|
description="Utilisateur introuvable. Vérifiez la mention ou l'ID Discord.",
|
||||||
|
color=discord.Color.red()
|
||||||
|
)
|
||||||
await channel.send(embed=embed)
|
await channel.send(embed=embed)
|
||||||
|
|
||||||
async def _process_kick_success(message: Message, target_member, reason: str):
|
async def _process_kick_success(message: Message, target_member, reason: str):
|
||||||
|
|||||||
Reference in New Issue
Block a user