Does not equal
You need to A) Use a lambda that returns a new instance of your Mana class OR B) Mana::new OR C) make a class that extends Callable in which the function returns a new instance of your Mana class.
I assume you are using 1.12.2 the register method that takes the parameters Class<T>, IStorage<T>, Class<? extends T> doesn't work anymore.