Unicopia/src/main/java/com/minelittlepony/unicopia/Unicopia.java
2020-05-28 18:09:53 +02:00

70 lines
2.4 KiB
Java

package com.minelittlepony.unicopia;
import net.fabricmc.api.ModInitializer;
import net.fabricmc.fabric.api.event.world.WorldTickCallback;
import net.fabricmc.fabric.api.loot.v1.FabricLootSupplier;
import net.fabricmc.fabric.api.loot.v1.event.LootTableLoadingCallback;
import net.fabricmc.fabric.api.resource.ResourceManagerHelper;
import net.minecraft.loot.LootTable;
import net.minecraft.resource.ResourceType;
import net.minecraft.util.Identifier;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
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.item.UItems;
import com.minelittlepony.unicopia.mixin.CriterionsRegistry;
import com.minelittlepony.unicopia.network.Channel;
import com.minelittlepony.unicopia.recipe.URecipes;
import com.minelittlepony.unicopia.structure.UStructures;
public class Unicopia implements ModInitializer {
public static final Logger LOGGER = LogManager.getLogger();
private static Config CONFIG;
public static Config getConfig() {
if (CONFIG == null) {
CONFIG = new Config();
}
return CONFIG;
}
public Unicopia() {
getConfig();
}
@Override
public void onInitialize() {
Channel.bootstrap();
UTags.bootstrap();
Commands.bootstrap();
UBlocks.bootstrap();
UItems.bootstrap();
UContainers.bootstrap();
UStructures.bootstrap();
URecipes.bootstrap();
CriterionsRegistry.register(BOHDeathCriterion.INSTANCE);
ResourceManagerHelper.get(ResourceType.SERVER_DATA).registerReloadListener(Pages.instance());
WorldTickCallback.EVENT.register(AwaitTickQueue::tick);
LootTableLoadingCallback.EVENT.register((res, manager, id, supplier, setter) -> {
if (!"minecraft".contentEquals(id.getNamespace())) {
return;
}
Identifier modId = new Identifier("unicopiamc", id.getPath());
LootTable table = manager.getSupplier(modId);
if (table != LootTable.EMPTY) {
supplier.withPools(((FabricLootSupplier)table).getPools());
}
});
}
}