55 lines
1.9 KiB
Python
Executable File
55 lines
1.9 KiB
Python
Executable File
import discord
|
|
from discord.ext import commands
|
|
|
|
|
|
class Roles(commands.Cog):
|
|
def __init__(self, client):
|
|
self.client = client
|
|
|
|
@commands.command(name="giveRole")
|
|
@commands.has_permissions(manage_roles=True)
|
|
async def _add_role(self, ctx, member: discord.Member, role):
|
|
role = discord.utils.get(ctx.guild.roles, name=role)
|
|
await member.add_roles(role)
|
|
await ctx.reply("role given", delete_after=2)
|
|
|
|
@commands.command(name="showRoles")
|
|
@commands.has_permissions(manage_roles=True)
|
|
async def _show_role(self, ctx):
|
|
roles = [role for role in ctx.guild.roles][1:]
|
|
embed = discord.Embed(
|
|
colour=discord.Colour.purple(),
|
|
timestamp=ctx.message.created_at,
|
|
title=f"Roles",
|
|
)
|
|
embed.add_field(
|
|
name="Roles:", value="\n".join([role.mention for role in roles])
|
|
)
|
|
await ctx.send(embed=embed)
|
|
|
|
@commands.command(name="takeRole")
|
|
@commands.has_permissions(manage_roles=True)
|
|
async def _take_role(self, ctx, member: discord.Member, role):
|
|
role = discord.utils.get(ctx.guild.roles, name=role)
|
|
await member.remove_roles(role)
|
|
await ctx.reply("role taken", delete_after=2)
|
|
|
|
@commands.command(name="deleteRole")
|
|
@commands.has_permissions(manage_roles=True)
|
|
async def _delete_role(self, ctx, role_name):
|
|
role_object = discord.utils.get(ctx.guild.roles, name=role_name)
|
|
await role_object.delete()
|
|
|
|
@commands.command("addRole")
|
|
@commands.has_permissions(
|
|
manage_roles=True
|
|
) # Check if the user executing the command can manage roles
|
|
async def _create_role(self, ctx, name):
|
|
guild = ctx.guild
|
|
await guild.create_role(name=name)
|
|
await ctx.send(f"Role `{name}` has been created")
|
|
|
|
|
|
async def setup(client):
|
|
await client.add_cog(Roles(client))
|