@@ -330,6 +330,7 @@ def register_commands(self):
330330 return
331331
332332 for name , cmd in self .locals ["commands" ].items ():
333+ sanitized_name = utils .to_valid_pyfunc_name (name )
333334 try :
334335 checks : list = []
335336 if "roles" in cmd :
@@ -343,14 +344,14 @@ def register_commands(self):
343344 kw_only = self .annotated_params (params )
344345 kw_as_args = ", " .join (f"{ n } ={ n } " for n in params .keys ())
345346 src = f"""
346- async def __{ name } _callback(interaction: discord.Interaction, { kw_only } ):
347+ async def __{ sanitized_name } _callback(interaction: discord.Interaction, { kw_only } ):
347348 await interaction.response.defer()
348349 await self.exec_slash_command(interaction, { kw_as_args } )
349350 """
350351 else :
351352 # no options – only interaction
352353 src = f"""
353- async def __{ name } _callback(interaction: discord.Interaction):
354+ async def __{ sanitized_name } _callback(interaction: discord.Interaction):
354355 await interaction.response.defer()
355356 await self.exec_slash_command(interaction)
356357 """
@@ -372,7 +373,7 @@ async def __{name}_callback(interaction: discord.Interaction):
372373 },
373374 local_ns ,
374375 )
375- _callback = local_ns [f"__{ name } _callback" ]
376+ _callback = local_ns [f"__{ sanitized_name } _callback" ]
376377 _callback .__module__ = self .__module__
377378 _callback .__discord_app_commands_guild_only__ = True
378379 _callback .__discord_app_commands_contexts__ = app_commands .AppCommandContext (guild = True )
@@ -417,7 +418,7 @@ async def __{name}_callback(interaction: discord.Interaction):
417418 self .log .info (f" - Custom command /{ name } added." )
418419
419420 except Exception as ex :
420- self .log .error (f"Failed to register command `{ name } `: { ex } " , exc_info = True )
421+ self .log .error (f"Failed to register command `{ name } `: { ex } " )
421422
422423 def _unregister_commands (self ):
423424 for name in list (self .commands .keys ()):
0 commit comments