Voice et bot modif
This commit is contained in:
parent
189d56026b
commit
7333a22bcd
10774 changed files with 634644 additions and 933308 deletions
|
|
@ -10,9 +10,22 @@ async def execute(bot, params, message):
|
|||
for assignment in role_assignments:
|
||||
target_mention = assignment.get('target_user_mention')
|
||||
role_name = assignment.get('role_name')
|
||||
role = discord.utils.find(lambda r: r.name.casefold() == role_name.casefold(), message.guild.roles)
|
||||
|
||||
# Try by role_id first if available
|
||||
role = None
|
||||
role_id = assignment.get('role_id')
|
||||
if role_id:
|
||||
try:
|
||||
role = message.guild.get_role(int(role_id))
|
||||
except (ValueError, TypeError):
|
||||
pass
|
||||
|
||||
if not role and role_name:
|
||||
role = discord.utils.find(lambda r: r.name.casefold() == role_name.casefold(), message.guild.roles)
|
||||
|
||||
if not role:
|
||||
await message.channel.send(f"Rôle '{role_name}' introuvable.")
|
||||
label = role_name or assignment.get('role_id', 'inconnu')
|
||||
await message.channel.send(f"Rôle '{label}' introuvable.")
|
||||
continue
|
||||
|
||||
# Check for bulk assignment
|
||||
|
|
|
|||
|
|
@ -9,6 +9,9 @@ async def execute(bot, params, message):
|
|||
created_count = 0
|
||||
for role_params in roles:
|
||||
role_name = role_params.get('role_name')
|
||||
if not role_name:
|
||||
await message.channel.send("Nom de rôle requis pour la création.")
|
||||
continue
|
||||
color = role_params.get('color', '#ffffff')
|
||||
permissions_str = role_params.get('permissions', '')
|
||||
# Parse color
|
||||
|
|
|
|||
|
|
@ -1,5 +1,22 @@
|
|||
import discord
|
||||
|
||||
async def _find_role(guild, role_params):
|
||||
"""Find a role by ID first, then by name (case-insensitive)."""
|
||||
role_id = role_params.get('role_id')
|
||||
if role_id:
|
||||
try:
|
||||
r = guild.get_role(int(role_id))
|
||||
if r:
|
||||
return r
|
||||
except (ValueError, TypeError):
|
||||
pass
|
||||
|
||||
role_name = role_params.get('role_name')
|
||||
if not role_name:
|
||||
return None
|
||||
|
||||
return discord.utils.find(lambda r: r.name.casefold() == role_name.casefold(), guild.roles)
|
||||
|
||||
async def execute(bot, params, message):
|
||||
roles = params.get('roles', [])
|
||||
if not roles:
|
||||
|
|
@ -10,14 +27,17 @@ async def execute(bot, params, message):
|
|||
for role_params in roles:
|
||||
role_name = role_params.get('role_name')
|
||||
position = role_params.get('position')
|
||||
role = discord.utils.find(lambda r: r.name.casefold() == role_name.casefold(), guild.roles)
|
||||
|
||||
role = await _find_role(guild, role_params)
|
||||
if not role:
|
||||
await message.channel.send(f"Rôle '{role_name}' introuvable.")
|
||||
label = role_name or role_params.get('role_id', 'inconnu')
|
||||
await message.channel.send(f"Rôle '{label}' introuvable.")
|
||||
continue
|
||||
try:
|
||||
await role.edit(position=position)
|
||||
moved_count += 1
|
||||
except discord.Forbidden:
|
||||
await message.channel.send(f"Je n'ai pas les permissions pour déplacer le rôle '{role_name}'.")
|
||||
label = role_name or role_params.get('role_id', 'inconnu')
|
||||
await message.channel.send(f"Je n'ai pas les permissions pour déplacer le rôle '{label}'.")
|
||||
if moved_count > 0:
|
||||
await message.channel.send(f"{moved_count} rôle(s) déplacé(s).")
|
||||
await message.channel.send(f"{moved_count} rôle(s) déplacé(s).")
|
||||
|
|
@ -1,5 +1,22 @@
|
|||
import discord
|
||||
|
||||
async def _find_role(guild, role_params):
|
||||
"""Find a role by ID first, then by name (case-insensitive)."""
|
||||
role_id = role_params.get('role_id')
|
||||
if role_id:
|
||||
try:
|
||||
r = guild.get_role(int(role_id))
|
||||
if r:
|
||||
return r
|
||||
except (ValueError, TypeError):
|
||||
pass
|
||||
|
||||
role_name = role_params.get('role_name')
|
||||
if not role_name:
|
||||
return None
|
||||
|
||||
return discord.utils.find(lambda r: r.name.casefold() == role_name.casefold(), guild.roles)
|
||||
|
||||
async def execute(bot, params, message):
|
||||
roles = params.get('roles', [])
|
||||
if not roles:
|
||||
|
|
@ -10,14 +27,17 @@ async def execute(bot, params, message):
|
|||
for role_params in roles:
|
||||
role_name = role_params.get('role_name')
|
||||
new_name = role_params.get('new_name')
|
||||
role = discord.utils.find(lambda r: r.name.casefold() == role_name.casefold(), guild.roles)
|
||||
|
||||
role = await _find_role(guild, role_params)
|
||||
if not role:
|
||||
await message.channel.send(f"Rôle '{role_name}' introuvable.")
|
||||
label = role_name or role_params.get('role_id', 'inconnu')
|
||||
await message.channel.send(f"Rôle '{label}' introuvable.")
|
||||
continue
|
||||
try:
|
||||
await role.edit(name=new_name)
|
||||
modified_count += 1
|
||||
except discord.Forbidden:
|
||||
await message.channel.send(f"Je n'ai pas les permissions pour modifier le rôle '{role_name}'.")
|
||||
label = role_name or role_params.get('role_id', 'inconnu')
|
||||
await message.channel.send(f"Je n'ai pas les permissions pour modifier le rôle '{label}'.")
|
||||
if modified_count > 0:
|
||||
await message.channel.send(f"{modified_count} rôle(s) modifié(s).")
|
||||
await message.channel.send(f"{modified_count} rôle(s) modifié(s).")
|
||||
|
|
@ -10,13 +10,26 @@ async def execute(bot, params, message):
|
|||
for removal in role_removals:
|
||||
target_mention = removal.get('target_user_mention')
|
||||
role_name = removal.get('role_name')
|
||||
role = discord.utils.find(lambda r: r.name.casefold() == role_name.casefold(), message.guild.roles)
|
||||
|
||||
# Try by role_id first if available
|
||||
role = None
|
||||
role_id = removal.get('role_id')
|
||||
if role_id:
|
||||
try:
|
||||
role = message.guild.get_role(int(role_id))
|
||||
except (ValueError, TypeError):
|
||||
pass
|
||||
|
||||
if not role and role_name:
|
||||
role = discord.utils.find(lambda r: r.name.casefold() == role_name.casefold(), message.guild.roles)
|
||||
|
||||
if not role:
|
||||
await message.channel.send(f"Rôle '{role_name}' introuvable.")
|
||||
label = role_name or removal.get('role_id', 'inconnu')
|
||||
await message.channel.send(f"Rôle '{label}' introuvable.")
|
||||
continue
|
||||
|
||||
# Check for bulk removal
|
||||
if target_mention.lower() in ['@everyone', 'everyone', 'all', 'tous']:
|
||||
if target_mention and target_mention.lower() in ['@everyone', 'everyone', 'all', 'tous']:
|
||||
total_members = 0
|
||||
removed_count = 0
|
||||
await message.channel.send(f"Retrait du rôle '{role.name}' de tous les membres... (Cela peut prendre du temps)")
|
||||
|
|
@ -39,6 +52,10 @@ async def execute(bot, params, message):
|
|||
await message.channel.send(f"Rôle '{role.name}' retiré à {removed_count} membres (bots exclus).")
|
||||
continue
|
||||
|
||||
if not target_mention:
|
||||
await message.channel.send("Mention utilisateur requise.")
|
||||
continue
|
||||
|
||||
# Single user removal
|
||||
if target_mention.startswith('<@') and target_mention.endswith('>'):
|
||||
user_id = int(target_mention[2:-1])
|
||||
|
|
@ -68,4 +85,4 @@ async def execute(bot, params, message):
|
|||
except discord.Forbidden:
|
||||
await message.channel.send(f"Je n'ai pas les permissions pour retirer le rôle {role.name} de {member.mention}.")
|
||||
if removed_count > 0 and not total_members:
|
||||
await message.channel.send(f"{removed_count} rôle(s) retiré(s).")
|
||||
await message.channel.send(f"{removed_count} rôle(s) retiré(s).")
|
||||
|
|
@ -1,5 +1,22 @@
|
|||
import discord
|
||||
|
||||
async def _find_role(guild, role_params):
|
||||
"""Find a role by ID first, then by name (case-insensitive)."""
|
||||
role_id = role_params.get('role_id')
|
||||
if role_id:
|
||||
try:
|
||||
r = guild.get_role(int(role_id))
|
||||
if r:
|
||||
return r
|
||||
except (ValueError, TypeError):
|
||||
pass
|
||||
|
||||
role_name = role_params.get('role_name')
|
||||
if not role_name:
|
||||
return None
|
||||
|
||||
return discord.utils.find(lambda r: r.name.casefold() == role_name.casefold(), guild.roles)
|
||||
|
||||
async def execute(bot, params, message):
|
||||
roles = params.get('roles', [])
|
||||
if not roles:
|
||||
|
|
@ -10,14 +27,17 @@ async def execute(bot, params, message):
|
|||
for role_params in roles:
|
||||
role_name = role_params.get('role_name')
|
||||
new_name = role_params.get('new_name')
|
||||
role = discord.utils.find(lambda r: r.name.casefold() == role_name.casefold(), guild.roles)
|
||||
|
||||
role = await _find_role(guild, role_params)
|
||||
if not role:
|
||||
await message.channel.send(f"Rôle '{role_name}' introuvable.")
|
||||
label = role_name or role_params.get('role_id', 'inconnu')
|
||||
await message.channel.send(f"Rôle '{label}' introuvable.")
|
||||
continue
|
||||
try:
|
||||
await role.edit(name=new_name)
|
||||
renamed_count += 1
|
||||
except discord.Forbidden:
|
||||
await message.channel.send(f"Je n'ai pas les permissions pour renommer le rôle '{role_name}'.")
|
||||
label = role_name or role_params.get('role_id', 'inconnu')
|
||||
await message.channel.send(f"Je n'ai pas les permissions pour renommer le rôle '{label}'.")
|
||||
if renamed_count > 0:
|
||||
await message.channel.send(f"{renamed_count} rôle(s) renommé(s).")
|
||||
await message.channel.send(f"{renamed_count} rôle(s) renommé(s).")
|
||||
|
|
@ -1,5 +1,22 @@
|
|||
import discord
|
||||
|
||||
async def _find_role(guild, role_params):
|
||||
"""Find a role by ID first, then by name (case-insensitive)."""
|
||||
role_id = role_params.get('role_id')
|
||||
if role_id:
|
||||
try:
|
||||
r = guild.get_role(int(role_id))
|
||||
if r:
|
||||
return r
|
||||
except (ValueError, TypeError):
|
||||
pass
|
||||
|
||||
role_name = role_params.get('role_name')
|
||||
if not role_name:
|
||||
return None
|
||||
|
||||
return discord.utils.find(lambda r: r.name.casefold() == role_name.casefold(), guild.roles)
|
||||
|
||||
async def execute(bot, params, message):
|
||||
roles = params.get('roles', [])
|
||||
if not roles:
|
||||
|
|
@ -9,14 +26,17 @@ async def execute(bot, params, message):
|
|||
deleted_count = 0
|
||||
for role_params in roles:
|
||||
role_name = role_params.get('role_name')
|
||||
role = discord.utils.find(lambda r: r.name.casefold() == role_name.casefold(), guild.roles)
|
||||
|
||||
role = await _find_role(guild, role_params)
|
||||
if not role:
|
||||
await message.channel.send(f"Rôle '{role_name}' introuvable.")
|
||||
label = role_name or role_params.get('role_id', 'inconnu')
|
||||
await message.channel.send(f"Rôle '{label}' introuvable.")
|
||||
continue
|
||||
try:
|
||||
await role.delete(reason="Supprimé par le Superviseur")
|
||||
deleted_count += 1
|
||||
except discord.Forbidden:
|
||||
await message.channel.send(f"Je n'ai pas les permissions pour supprimer le rôle '{role_name}'.")
|
||||
label = role_name or role_params.get('role_id', 'inconnu')
|
||||
await message.channel.send(f"Je n'ai pas les permissions pour supprimer le rôle '{label}'.")
|
||||
if deleted_count > 0:
|
||||
await message.channel.send(f"{deleted_count} rôle(s) supprimé(s).")
|
||||
await message.channel.send(f"{deleted_count} rôle(s) supprimé(s).")
|
||||
Loading…
Add table
Add a link
Reference in a new issue