32 lines
1.2 KiB
Python
32 lines
1.2 KiB
Python
import discord
|
|
|
|
async def execute(bot, params, message):
|
|
roles = params.get('roles', [])
|
|
if not roles:
|
|
# Fallback for single role
|
|
roles = [params]
|
|
guild = message.guild
|
|
created_count = 0
|
|
for role_params in roles:
|
|
role_name = role_params.get('role_name')
|
|
color = role_params.get('color', '#ffffff')
|
|
permissions_str = role_params.get('permissions', '')
|
|
# Parse color
|
|
try:
|
|
color = discord.Color(int(color.lstrip('#'), 16))
|
|
except ValueError:
|
|
color = discord.Color.default()
|
|
# Parse permissions
|
|
permissions = discord.Permissions()
|
|
if permissions_str:
|
|
perm_list = [p.strip() for p in permissions_str.split(',')]
|
|
for perm in perm_list:
|
|
if hasattr(discord.Permissions, perm):
|
|
setattr(permissions, perm, True)
|
|
try:
|
|
role = await guild.create_role(name=role_name, color=color, permissions=permissions)
|
|
created_count += 1
|
|
except discord.Forbidden:
|
|
await message.channel.send(f"Je n'ai pas les permissions pour créer le rôle '{role_name}'.")
|
|
if created_count > 0:
|
|
await message.channel.send(f"{created_count} rôle(s) créé(s).")
|