Search in sources :

Example 1 with SpongeGameRegistryRegisterEvent

use of org.spongepowered.common.event.registry.SpongeGameRegistryRegisterEvent in project SpongeCommon by SpongePowered.

the class SpongeGameRegistry method throwRegistryEvent.

@SuppressWarnings("unchecked")
private void throwRegistryEvent(RegistryModule module) {
    if (this.phase == RegistrationPhase.INIT && module instanceof AdditionalCatalogRegistryModule && (!(module instanceof SpongeAdditionalCatalogRegistryModule) || ((SpongeAdditionalCatalogRegistryModule) module).allowsApiRegistration()) && module.getClass().getAnnotation(CustomRegistrationPhase.class) == null) {
        Class<? extends CatalogType> catalogClass = null;
        for (Map.Entry<Class<? extends CatalogType>, CatalogRegistryModule<?>> entry : this.catalogRegistryMap.entrySet()) {
            if (entry.getValue() == module) {
                catalogClass = entry.getKey();
            }
        }
        if (catalogClass == null) {
            // This isn't a valid registered registry
            // We should throw an exception or print out an exception, but otherwise, not going to bother at this moment.
            new PrettyPrinter(60).centre().add("Unregistered RegistryModule").hr().addWrapped(60, "An unknown registry module was added to the ordered set of modules, but the " + "module itself is not registered with the GameRegistry!").add().add("%s : %s", "Registry Module", module.toString()).add().add(new Exception()).add().add("To fix this, the developer providing the module needs to register the module correctly.").trace();
            return;
        }
        final AdditionalCatalogRegistryModule registryModule = (AdditionalCatalogRegistryModule) module;
        SpongeImpl.postEvent(new SpongeGameRegistryRegisterEvent(Sponge.getCauseStackManager().getCurrentCause(), catalogClass, registryModule));
    }
}
Also used : CatalogType(org.spongepowered.api.CatalogType) PrettyPrinter(org.spongepowered.asm.util.PrettyPrinter) AdditionalCatalogRegistryModule(org.spongepowered.api.registry.AdditionalCatalogRegistryModule) ExtraClassCatalogRegistryModule(org.spongepowered.api.registry.ExtraClassCatalogRegistryModule) CatalogRegistryModule(org.spongepowered.api.registry.CatalogRegistryModule) AdditionalCatalogRegistryModule(org.spongepowered.api.registry.AdditionalCatalogRegistryModule) SpongeGameRegistryRegisterEvent(org.spongepowered.common.event.registry.SpongeGameRegistryRegisterEvent) Map(java.util.Map) IdentityHashMap(java.util.IdentityHashMap) CyclicGraphException(org.spongepowered.common.util.graph.CyclicGraphException) RegistryModuleAlreadyRegisteredException(org.spongepowered.api.registry.RegistryModuleAlreadyRegisteredException) IOException(java.io.IOException)

Aggregations

IOException (java.io.IOException)1 IdentityHashMap (java.util.IdentityHashMap)1 Map (java.util.Map)1 CatalogType (org.spongepowered.api.CatalogType)1 AdditionalCatalogRegistryModule (org.spongepowered.api.registry.AdditionalCatalogRegistryModule)1 CatalogRegistryModule (org.spongepowered.api.registry.CatalogRegistryModule)1 ExtraClassCatalogRegistryModule (org.spongepowered.api.registry.ExtraClassCatalogRegistryModule)1 RegistryModuleAlreadyRegisteredException (org.spongepowered.api.registry.RegistryModuleAlreadyRegisteredException)1 PrettyPrinter (org.spongepowered.asm.util.PrettyPrinter)1 SpongeGameRegistryRegisterEvent (org.spongepowered.common.event.registry.SpongeGameRegistryRegisterEvent)1 CyclicGraphException (org.spongepowered.common.util.graph.CyclicGraphException)1