package com.minelittlepony.unicopia; import net.fabricmc.api.ModInitializer; import net.fabricmc.fabric.api.resource.ResourceManagerHelper; import net.minecraft.resource.ResourceType; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import com.minelittlepony.common.util.GamePaths; import com.minelittlepony.jumpingcastle.api.Channel; import com.minelittlepony.jumpingcastle.api.JumpingCastle; import com.minelittlepony.unicopia.ability.Abilities; import com.minelittlepony.unicopia.advancement.BOHDeathCriterion; import com.minelittlepony.unicopia.block.UBlocks; import com.minelittlepony.unicopia.command.Commands; import com.minelittlepony.unicopia.container.UContainers; import com.minelittlepony.unicopia.enchanting.Pages; import com.minelittlepony.unicopia.enchanting.recipe.AffineIngredients; import com.minelittlepony.unicopia.item.UItems; import com.minelittlepony.unicopia.mixin.CriterionsRegistry; import com.minelittlepony.unicopia.network.MsgPlayerAbility; import com.minelittlepony.unicopia.network.MsgPlayerCapabilities; import com.minelittlepony.unicopia.network.MsgRequestCapabilities; import com.minelittlepony.unicopia.structure.UStructures; public class Unicopia implements ModInitializer { public static final String MODID = "unicopia"; public static final Logger LOGGER = LogManager.getLogger(); private static Channel channel; public static Channel getConnection() { return channel; } @Override public void onInitialize() { Config.init(GamePaths.getConfigDirectory()); channel = JumpingCastle.subscribeTo(MODID, () -> {}) .listenFor(MsgRequestCapabilities.class) .listenFor(MsgPlayerCapabilities.class) .listenFor(MsgPlayerAbility.class); UTags.bootstrap(); Commands.bootstrap(); UBlocks.bootstrap(); UItems.bootstrap(); UContainers.bootstrap(); UStructures.bootstrap(); Abilities.getInstance().init(); CriterionsRegistry.register(BOHDeathCriterion.INSTANCE); ResourceManagerHelper.get(ResourceType.SERVER_DATA).registerReloadListener(Pages.instance()); ResourceManagerHelper.get(ResourceType.CLIENT_RESOURCES).registerReloadListener(AffineIngredients.instance()); } }