implement MonadAddonInitializer

This commit is contained in:
dfsek
2022-08-15 10:06:29 -07:00
parent 97854e3037
commit 0609a7cf6b
11 changed files with 206 additions and 38 deletions
@@ -7,27 +7,26 @@
package com.dfsek.terra.addons.ore;
import com.dfsek.terra.addons.manifest.api.AddonInitializer;
import com.dfsek.terra.api.Platform;
import com.dfsek.terra.api.addon.BaseAddon;
import com.dfsek.terra.addons.manifest.api.MonadAddonInitializer;
import com.dfsek.terra.addons.manifest.api.monad.Get;
import com.dfsek.terra.addons.manifest.api.monad.Init;
import com.dfsek.terra.api.event.events.config.pack.ConfigPackPreLoadEvent;
import com.dfsek.terra.api.event.functional.FunctionalEventHandler;
import com.dfsek.terra.api.inject.annotations.Inject;
public class OreAddon implements AddonInitializer {
@Inject
private Platform platform;
@Inject
private BaseAddon addon;
public class OreAddon implements MonadAddonInitializer {
@Override
public void initialize() {
platform.getEventManager()
.getHandler(FunctionalEventHandler.class)
.register(addon, ConfigPackPreLoadEvent.class)
.then(event -> event.getPack().registerConfigType(new OreConfigType(), addon.key("ORE"), 1))
.failThrough();
public Init<?> initialize() {
return Get.eventManager()
.map(eventManager -> eventManager.getHandler(FunctionalEventHandler.class))
.bind(functionalEventHandler ->
Get.addon()
.map(addon -> functionalEventHandler
.register(addon, ConfigPackPreLoadEvent.class)
.then(event -> event
.getPack()
.registerConfigType(new OreConfigType(), addon.key("ORE"), 1))
.failThrough()
));
}
}