package wtf.hak.survivalfabric; import net.fabricmc.api.ModInitializer; import net.fabricmc.fabric.api.command.v2.CommandRegistrationCallback; import net.fabricmc.fabric.api.event.lifecycle.v1.ServerEntityEvents; import net.fabricmc.fabric.api.event.player.PlayerBlockBreakEvents; import net.minecraft.server.network.ServerPlayerEntity; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import wtf.hak.survivalfabric.commands.ReloadConfigCommand; import wtf.hak.survivalfabric.commands.SlimeChunkCommand; import wtf.hak.survivalfabric.commands.SpectatorCommand; import wtf.hak.survivalfabric.sharedenderchest.SharedEnderChest; import wtf.hak.survivalfabric.veinminer.VeinMinerEvents; import static wtf.hak.survivalfabric.config.ConfigManager.getConfig; public class SurvivalFabric implements ModInitializer { public static final String MOD_ID = "survivalfabric"; public static final Logger LOGGER = LoggerFactory.getLogger(MOD_ID); @Override public void onInitialize() { CommandRegistrationCallback.EVENT.register((dispatcher, registryAccess, environment) -> SpectatorCommand.register(dispatcher, new String[] { "spectator", "s", "S", "camera", "c", "C", })); CommandRegistrationCallback.EVENT.register((dispatcher, registryAccess, environment) -> ReloadConfigCommand.register(dispatcher, new String[] { "reloadsurvivalconfig" })); CommandRegistrationCallback.EVENT.register((dispatcher, registryAccess, environment) -> SlimeChunkCommand.register(dispatcher, new String[] { "slimechunk", "sc" })); if(getConfig().sharedEnderChestEnabled) new SharedEnderChest().onInitialize(); if(getConfig().veinMinerEnabled) { PlayerBlockBreakEvents.BEFORE.register((world, player, pos, state, blockEntity) -> { if (player instanceof ServerPlayerEntity serverPlayer) { return VeinMinerEvents.beforeBlockBreak(world, serverPlayer, pos, state); } else { return true; } }); ServerEntityEvents.ENTITY_LOAD.register(VeinMinerEvents::onEntityLoad); } } }