First Commit
This commit is contained in:
Executable
+54
@@ -0,0 +1,54 @@
|
||||
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))
|
||||
Reference in New Issue
Block a user