@@ -0,0 +1,1206 @@
+package info.u_team.u_team_core.util.registry;%0A%0Aimport java.util.*;%0Aimport java.util.function.Supplier;%0A%0Aimport net.minecraftforge.eventbus.api.IEventBus;%0Aimport net.minecraftforge.fml.RegistryObject;%0Aimport net.minecraftforge.registries.*;%0A%0Apublic class CommonDeferredRegister%3CR extends IForgeRegistryEntry%3CR%3E%3E implements Iterable%3CRegistryObject%3CR%3E%3E %7B%0A%09%0A%09public static %3CC extends IForgeRegistryEntry%3CC%3E%3E CommonDeferredRegister%3CC%3E create(IForgeRegistry%3CC%3E registry, String modid) %7B%0A%09%09return new CommonDeferredRegister%3CC%3E(registry, modid);%0A%09%7D%0A%09%0A%09private final String modid;%0A%09%0A%09private final DeferredRegister%3CR%3E register;%0A%09%0A%09public CommonDeferredRegister(IForgeRegistry%3CR%3E registry, String modid) %7B%0A%09%09this.modid = modid;%0A%09%09register = DeferredRegister.create(registry, modid);%0A%09%7D%0A%09%0A%09public %3CE extends R%3E RegistryObject%3CE%3E register(final String name, final Supplier%3C? extends E%3E supplier) %7B%0A%09%09return register.register(name, supplier);%0A%09%7D%0A%09%0A%09public void register(IEventBus bus) %7B%0A%09%09register.register(bus);%0A%09%7D%0A%09%0A%09public Collection%3CRegistryObject%3CR%3E%3E getEntries() %7B%0A%09%09return register.getEntries();%0A%09%7D%0A%09%0A%09@Override%0A%09public Iterator%3CRegistryObject%3CR%3E%3E iterator() %7B%0A%09%09return register.getEntries().iterator();%0A%09%7D%0A%09%0A%7D%0A

Add common deferred register that encapsulate the deferred register (to add methods easier)