@@ -50,8 +50,14 @@ async def ping(self, ctx: SlashContext):
5050 :param connector: Kwargs connector for the command. Default ``None``.
5151 :type connector: dict
5252 """
53+ if not permissions :
54+ permissions = {}
5355
5456 def wrapper (cmd ):
57+ decorator_permissions = getattr (cmd , "__permissions__" , None )
58+ if decorator_permissions :
59+ permissions .update (decorator_permissions )
60+
5561 desc = description or inspect .getdoc (cmd )
5662 if options is None :
5763 opts = manage_commands .generate_options (cmd , desc , connector )
@@ -138,8 +144,14 @@ async def group_say(self, ctx: SlashContext, text: str):
138144 base_description = base_description or base_desc
139145 subcommand_group_description = subcommand_group_description or sub_group_desc
140146 guild_ids = guild_ids if guild_ids else []
147+ if not base_permissions :
148+ base_permissions = {}
141149
142150 def wrapper (cmd ):
151+ decorator_permissions = getattr (cmd , "__permissions__" , None )
152+ if decorator_permissions :
153+ base_permissions .update (decorator_permissions )
154+
143155 desc = description or inspect .getdoc (cmd )
144156 if options is None :
145157 opts = manage_commands .generate_options (cmd , desc , connector )
@@ -177,6 +189,25 @@ def wrapper(cmd):
177189 return wrapper
178190
179191
192+ def permission (guild_id : int , permissions : list ):
193+ """
194+ Decorator that add permissions. This will set the permissions for a single guild, you can use it more than once for each command.
195+
196+ :param guild_id: ID of the guild for the permissions.
197+ :type guild_id: int
198+ :param permissions: List of permissions to be set for the specified guild.
199+ :type permissions: list
200+ """
201+
202+ def wrapper (cmd ):
203+ if not getattr (cmd , "__permissions__" , None ):
204+ cmd .__permissions__ = {}
205+ cmd .__permissions__ [guild_id ] = permissions
206+ return cmd
207+
208+ return wrapper
209+
210+
180211def cog_component (
181212 * ,
182213 messages : typing .Union [int , discord .Message , list ] = None ,
0 commit comments