@@ -342,9 +342,9 @@ def forbidden(self) -> dict:
342342
343343
344344class BaseCommand ():
345- def __init__ (self , callback , name = MISSING , description = MISSING , options = MISSING , guild_ids = MISSING , default_permission = MISSING , guild_permissions = MISSING ) -> None :
345+ def __init__ (self , command_type , callback , name = MISSING , description = MISSING , options = MISSING , guild_ids = MISSING , default_permission = MISSING , guild_permissions = MISSING ) -> None :
346346 self ._json = {
347- "type" : CommandType . SLASH
347+ "type" : command_type
348348 }
349349
350350 self .options = _default ([], options )
@@ -360,7 +360,7 @@ def __init__(self, callback, name=MISSING, description=MISSING, options=MISSING,
360360 param = callback_params [op .name ]
361361 if not op .required and param .default is param .empty :
362362 raise OptionalOptionParameter (param .name )
363- if _none (options , empty_array = True ):
363+ if _none (options , empty_array = True ) and self . command_type == CommandType . SLASH :
364364 _ops = []
365365 has_self = False
366366 for _i , _name in enumerate (callback_params ):
@@ -542,7 +542,7 @@ async def my_function(command, parameter=None):
542542 })
543543 ```
544544 """
545- BaseCommand .__init__ (self , callback , name , description , options , guild_ids , default_permission , guild_permissions )
545+ BaseCommand .__init__ (self , CommandType . SLASH , callback , name , description , options , guild_ids , default_permission , guild_permissions )
546546
547547class SlashSubcommand (BaseCommand ):
548548 def __init__ (self , callback , base_names , name , description = MISSING , options = [], guild_ids = MISSING , default_permission = MISSING , guild_permissions = MISSING ) -> None :
@@ -552,7 +552,7 @@ def __init__(self, callback, base_names, name, description=MISSING, options=[],
552552 raise InvalidArgument ("subcommand groups are currently limited to 2 bases" )
553553 if any ([len (x ) > 32 or len (x ) < 1 for x in base_names ]):
554554 raise InvalidLength ("base_names" , 1 , 32 )
555- BaseCommand .__init__ (self , callback , name , description , options , guild_ids = guild_ids , default_permission = default_permission , guild_permissions = guild_permissions )
555+ BaseCommand .__init__ (self , CommandType . SLASH , callback , name , description , options , guild_ids = guild_ids , default_permission = default_permission , guild_permissions = guild_permissions )
556556 self .base_names = [format_name (x ) for x in base_names ]
557557
558558 def to_option (self ) -> SlashOption :
@@ -562,12 +562,12 @@ def to_dict(self):
562562
563563
564564class ContextCommand (BaseCommand ):
565- def __init__ (self , callback , name = MISSING , guild_ids = MISSING , default_permission = True , guild_permissions = MISSING ) -> None :
565+ def __init__ (self , context_type , callback , name = MISSING , guild_ids = MISSING , default_permission = True , guild_permissions = MISSING ) -> None :
566566 if callback is not None :
567567 callback_params = inspect .signature (callback ).parameters
568568 if len (callback_params ) < 2 :
569569 raise CallbackMissingContextCommandParameters ()
570- super () .__init__ (callback , name = name , guild_ids = guild_ids , default_permission = default_permission , guild_permissions = guild_permissions )
570+ BaseCommand .__init__ (self , context_type , callback , name = name , guild_ids = guild_ids , default_permission = default_permission , guild_permissions = guild_permissions )
571571
572572 @property
573573 def description (self ) -> str :
@@ -584,10 +584,8 @@ def options(self, value):
584584
585585class UserCommand (ContextCommand ):
586586 def __init__ (self , callback , name = MISSING , guild_ids = MISSING , default_permission = True , guild_permissions = MISSING ) -> None :
587- super ().__init__ (callback , name , guild_ids , default_permission , guild_permissions )
588- self ._json ["type" ] = CommandType .USER
587+ super ().__init__ (CommandType .USER , callback , name , guild_ids , default_permission , guild_permissions )
589588
590589class MessageCommand (ContextCommand ):
591590 def __init__ (self , callback , name = MISSING , guild_ids = MISSING , default_permission = True , guild_permissions = MISSING ) -> None :
592- super ().__init__ (callback , name , guild_ids , default_permission , guild_permissions )
593- self ._json ["type" ] = CommandType .MESSAGE
591+ super ().__init__ (CommandType .MESSAGE , callback , name , guild_ids , default_permission , guild_permissions )
0 commit comments