Search in sources :

Example 1 with LanternGameRegistryRegisterEvent

use of org.lanternpowered.server.event.registry.LanternGameRegistryRegisterEvent in project LanternServer by LanternPowered.

the class LanternGameRegistry method registerModulePhase.

@SuppressWarnings("unchecked")
private void registerModulePhase() {
    syncModules();
    for (Class<? extends RegistryModule> moduleClass : this.orderedModules) {
        if (!this.classMap.containsKey(moduleClass)) {
            throw new IllegalStateException("Something funky happened! The module " + moduleClass + " is required but seems to be missing.");
        }
        tryModulePhaseRegistration(this.classMap.get(moduleClass));
        if (this.phase == RegistrationPhase.INIT) {
            Map.Entry<Class<? extends CatalogType>, CatalogRegistryModule<?>> selectedEntry = null;
            for (Map.Entry<Class<? extends CatalogType>, CatalogRegistryModule<?>> entry : this.catalogRegistryMap.entrySet()) {
                if (entry.getValue().getClass() == moduleClass) {
                    selectedEntry = entry;
                    break;
                }
            }
            if (selectedEntry == null) {
                continue;
            }
            final CatalogRegistryModule module = selectedEntry.getValue();
            if (module instanceof AdditionalCatalogRegistryModule && module.getClass().getAnnotation(CustomRegistrationPhase.class) == null) {
                this.game.getEventManager().post(new LanternGameRegistryRegisterEvent(CauseStack.current().getCurrentCause(), selectedEntry.getKey(), (AdditionalCatalogRegistryModule) module));
            }
        }
    }
    registerAdditionalPhase();
}
Also used : PluginCatalogType(org.lanternpowered.server.catalog.PluginCatalogType) CatalogType(org.spongepowered.api.CatalogType) AdditionalCatalogRegistryModule(org.spongepowered.api.registry.AdditionalCatalogRegistryModule) AlternateCatalogRegistryModule(org.spongepowered.api.registry.AlternateCatalogRegistryModule) CatalogRegistryModule(org.spongepowered.api.registry.CatalogRegistryModule) LanternGameRegistryRegisterEvent(org.lanternpowered.server.event.registry.LanternGameRegistryRegisterEvent) AdditionalCatalogRegistryModule(org.spongepowered.api.registry.AdditionalCatalogRegistryModule) Map(java.util.Map) IdentityHashMap(java.util.IdentityHashMap)

Aggregations

IdentityHashMap (java.util.IdentityHashMap)1 Map (java.util.Map)1 PluginCatalogType (org.lanternpowered.server.catalog.PluginCatalogType)1 LanternGameRegistryRegisterEvent (org.lanternpowered.server.event.registry.LanternGameRegistryRegisterEvent)1 CatalogType (org.spongepowered.api.CatalogType)1 AdditionalCatalogRegistryModule (org.spongepowered.api.registry.AdditionalCatalogRegistryModule)1 AlternateCatalogRegistryModule (org.spongepowered.api.registry.AlternateCatalogRegistryModule)1 CatalogRegistryModule (org.spongepowered.api.registry.CatalogRegistryModule)1