@@ -883,7 +883,7 @@ async def add_perms(self, ctx):
883883
884884 @add_perms .command (name = 'command' )
885885 @checks .has_permissions (PermissionLevel .OWNER )
886- async def add_perms_command (self , ctx , * , command : str , user_or_role : Union [User , str ]):
886+ async def add_perms_command (self , ctx , command : str , user_or_role : Union [User , str ]):
887887 """Add a user, role, or everyone permission to use a command."""
888888 if command not in self .bot .all_commands :
889889 embed = Embed (
@@ -912,7 +912,7 @@ async def add_perms_command(self, ctx, *, command: str, user_or_role: Union[User
912912
913913 @add_perms .command (name = 'level' , aliases = ['group' ])
914914 @checks .has_permissions (PermissionLevel .OWNER )
915- async def add_perms_level (self , ctx , * , level : str , user_or_role : Union [User , str ]):
915+ async def add_perms_level (self , ctx , level : str , user_or_role : Union [User , str ]):
916916 """Add a user, role, or everyone permission to use commands of a permission level."""
917917 if level .upper () not in PermissionLevel ._member_names_ :
918918 embed = Embed (
@@ -949,7 +949,7 @@ async def remove_perms(self, ctx):
949949
950950 @remove_perms .command (name = 'command' )
951951 @checks .has_permissions (PermissionLevel .OWNER )
952- async def remove_perms_command (self , ctx , * , command : str , user_or_role : Union [User , str ]):
952+ async def remove_perms_command (self , ctx , command : str , user_or_role : Union [User , str ]):
953953 """Remove a user, role, or everyone permission to use a command."""
954954 if command not in self .bot .all_commands :
955955 embed = Embed (
@@ -978,7 +978,7 @@ async def remove_perms_command(self, ctx, *, command: str, user_or_role: Union[U
978978
979979 @remove_perms .command (name = 'level' , aliases = ['group' ])
980980 @checks .has_permissions (PermissionLevel .OWNER )
981- async def remove_perms_level (self , ctx , * , level : str , user_or_role : Union [User , str ]):
981+ async def remove_perms_level (self , ctx , level : str , user_or_role : Union [User , str ]):
982982 """Remove a user, role, or everyone permission to use commands of a permission level."""
983983 if level .upper () not in PermissionLevel ._member_names_ :
984984 embed = Embed (
@@ -1014,75 +1014,100 @@ async def get_perms(self, ctx):
10141014
10151015 @get_perms .command (name = 'command' )
10161016 @checks .has_permissions (PermissionLevel .OWNER )
1017- async def get_perms_command (self , ctx , * , command : str ):
1017+ async def get_perms_command (self , ctx , * , command : str = None ):
10181018 """View the currently-set permissions for a command."""
1019- if command not in self .bot .all_commands :
1020- embed = Embed (
1021- title = 'Error' ,
1022- color = Color .red (),
1023- description = 'The command you are attempting to point '
1024- f'to does not exist: `{ command } `.'
1025- )
1026- return await ctx .send (embed = embed )
1027- permissions = self .bot .config .command_permissions .get (self .bot .all_commands [command ].name )
1028- if permissions is None or not permissions :
1029- embed = Embed (
1030- title = f'Permission entries for command `{ command } `:' ,
1031- description = 'No permission entries found.'
1032- )
1033- else :
1034- values = []
1035- for perm in permissions :
1036- if perm == - 1 :
1037- values .insert (0 , '**everyone**' )
1038- else :
1039- user = self .bot .get_user (perm )
1040- if user is not None :
1041- values .append (user .name )
1019+
1020+ def get_command (cmd ):
1021+ permissions = self .bot .config .command_permissions .get (cmd .name )
1022+ if permissions is None or not permissions :
1023+ embed = Embed (
1024+ title = f'Permission entries for command `{ cmd .name } `:' ,
1025+ description = 'No permission entries found.'
1026+ )
1027+ else :
1028+ values = []
1029+ for perm in permissions :
1030+ if perm == - 1 :
1031+ values .insert (0 , '**everyone**' )
10421032 else :
1043- values .append (str (perm ))
1033+ user = self .bot .get_user (perm )
1034+ if user is not None :
1035+ values .append (user .name )
1036+ else :
1037+ values .append (str (perm ))
10441038
1045- embed = Embed (
1046- title = f'Permission entries for command `{ command } `:' ,
1047- description = ', ' .join (values )
1048- )
1049- return await ctx .send (embed = embed )
1039+ embed = Embed (
1040+ title = f'Permission entries for command `{ cmd .name } `:' ,
1041+ description = ', ' .join (values )
1042+ )
1043+ return embed
1044+
1045+ embeds = []
1046+ if command is not None :
1047+ if command not in self .bot .all_commands :
1048+ embed = Embed (
1049+ title = 'Error' ,
1050+ color = Color .red (),
1051+ description = 'The command you are attempting to point '
1052+ f'to does not exist: `{ command } `.'
1053+ )
1054+ return await ctx .send (embed = embed )
1055+ embeds .append (get_command (self .bot .all_commands [command ]))
1056+ else :
1057+ for cmd in self .bot .commands :
1058+ embeds .append (get_command (cmd ))
1059+
1060+ p_session = PaginatorSession (ctx , * embeds )
1061+ return await p_session .run ()
10501062
10511063 @get_perms .command (name = 'level' , aliases = ['group' ])
10521064 @checks .has_permissions (PermissionLevel .OWNER )
1053- async def get_perms_level (self , ctx , * , level : str ):
1065+ async def get_perms_level (self , ctx , * , level : str = None ):
10541066 """View the currently-set permissions for commands of a permission level."""
1055- if level .upper () not in PermissionLevel ._member_names_ :
1056- embed = Embed (
1057- title = 'Error' ,
1058- color = Color .red (),
1059- description = 'The permission level you are attempting to point '
1060- f'to does not exist: `{ level } `.'
1061- )
1062- return await ctx .send (embed = embed )
1063- permissions = self .bot .config .level_permissions .get (PermissionLevel [level .upper ()].name )
1064- if permissions is None or not permissions :
1065- embed = Embed (
1066- title = f'Permission entries for permission level `{ level } `:' ,
1067- description = 'No permission entries found.'
1068- )
1069- else :
1070- values = []
1071- for perm in permissions :
1072- if perm == - 1 :
1073- values .insert (0 , '**everyone**' )
1074- else :
1075- user = self .bot .get_user (perm )
1076- if user is not None :
1077- values .append (user .name )
1067+
1068+ def get_level (perm_level ):
1069+ permissions = self .bot .config .level_permissions .get (perm_level .name )
1070+ if permissions is None or not permissions :
1071+ embed = Embed (
1072+ title = 'Permission entries for permission '
1073+ f'level `{ perm_level .name } `:' ,
1074+ description = 'No permission entries found.'
1075+ )
1076+ else :
1077+ values = []
1078+ for perm in permissions :
1079+ if perm == - 1 :
1080+ values .insert (0 , '**everyone**' )
10781081 else :
1079- values .append (str (perm ))
1082+ user = self .bot .get_user (perm )
1083+ if user is not None :
1084+ values .append (user .name )
1085+ else :
1086+ values .append (str (perm ))
10801087
1081- embed = Embed (
1082- title = f'Permission entries for permission level `{ level } `:' ,
1083- description = ', ' .join (values )
1084- )
1085- return await ctx .send (embed = embed )
1088+ embed = Embed (
1089+ title = f'Permission entries for permission level `{ perm_level .name } `:' ,
1090+ description = ', ' .join (values )
1091+ )
1092+ return embed
1093+
1094+ embeds = []
1095+ if level is not None :
1096+ if level .upper () not in PermissionLevel ._member_names_ :
1097+ embed = Embed (
1098+ title = 'Error' ,
1099+ color = Color .red (),
1100+ description = 'The permission level you are attempting to point '
1101+ f'to does not exist: `{ level } `.'
1102+ )
1103+ return await ctx .send (embed = embed )
1104+ embeds .append (get_level (PermissionLevel [level .upper ()].name ))
1105+ else :
1106+ for perm_level in PermissionLevel :
1107+ embeds .append (get_level (perm_level ))
1108+
1109+ p_session = PaginatorSession (ctx , * embeds )
1110+ return await p_session .run ()
10861111
10871112 @commands .command (hidden = True , name = 'eval' )
10881113 @checks .has_permissions (PermissionLevel .OWNER )
0 commit comments