mirror of
https://github.com/PolyhedralDev/Terra.git
synced 2026-10-26 14:00:14 +00:00
make Registry immutable, remove other registry implementations
This commit is contained in:
1 parent
b04a4850da
commit
620ae7d1ff
39 files changed
+275
-819
No files matched your search
+4
-20
@@ -1,33 +1,17 @@
|
||||
package com.dfsek.terra.addon.terrascript.check;
|
||||
|
||||
import com.dfsek.terra.addons.manifest.api.MonadAddonInitializer;
|
||||
import com.dfsek.terra.addons.manifest.api.monad.Do;
|
||||
import com.dfsek.terra.addons.manifest.api.monad.Get;
|
||||
import com.dfsek.terra.addons.manifest.api.monad.Init;
|
||||
import com.dfsek.terra.addons.terrascript.parser.lang.functions.FunctionBuilder;
|
||||
import com.dfsek.terra.api.Platform;
|
||||
import com.dfsek.terra.api.addon.BaseAddon;
|
||||
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;
|
||||
import com.dfsek.terra.api.util.function.monad.Monad;
|
||||
|
||||
import static com.dfsek.terra.addons.manifest.api.monad.Get.platform;
|
||||
import static com.dfsek.terra.addons.manifest.api.monad.Register.register;
|
||||
|
||||
|
||||
public class TerraScriptCheckFunctionAddon implements MonadAddonInitializer {
|
||||
@Override
|
||||
public Monad<?, Init<?>> initialize() {
|
||||
return Do.with(
|
||||
Get.eventManager().map(eventManager -> eventManager.getHandler(FunctionalEventHandler.class)),
|
||||
Get.addon(),
|
||||
Get.platform(),
|
||||
((handler, base, platform) -> Init.ofPure(
|
||||
handler.register(base, ConfigPackPreLoadEvent.class)
|
||||
.priority(1)
|
||||
.then(event -> event
|
||||
.getPack()
|
||||
.getOrCreateRegistry(FunctionBuilder.class)
|
||||
.register(base.key("check"), new CheckFunctionBuilder(platform)))
|
||||
.failThrough()))
|
||||
);
|
||||
return platform().bind(platform -> register(FunctionBuilder.class, "check", new CheckFunctionBuilder(platform)));
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user