code: async def jsk_repeat(self, ctx: commands.Context, times: int, *, command_string: str):
          
  
          with self.submit(ctx):  # allow repeats to be cancelled
              for _ in range(times):
                  alt_ctx = await copy_context_with(ctx, content=ctx.prefix + command_string)
  
                  if alt_ctx.command is None:
                      return await ctx.send(f'Command "{alt_ctx.invoked_with}" is not found')
  
                  await alt_ctx.command.reinvoke(alt_ctx)
docs: Runs a command multiple times in a row.
  
          This acts like the command was invoked several times manually, so it obeys cooldowns.