Inspired by 2020's April Fools' 20w14infinite Snapshot, this mod brings endless randomly generated dimensions into Minecraft.
1package net.lerariemann.infinity;
2
3import net.lerariemann.infinity.access.MinecraftServerAccess;
4import net.lerariemann.infinity.dimensions.RandomText;
5import net.lerariemann.infinity.registry.core.*;
6import net.lerariemann.infinity.registry.payload.ModPayloads;
7import net.lerariemann.infinity.registry.var.*;
8import net.lerariemann.infinity.util.platform.InfinityPlatform;
9import net.lerariemann.infinity.util.config.ConfigManager;
10import net.lerariemann.infinity.util.core.RandomProvider;
11import net.minecraft.server.MinecraftServer;
12import org.slf4j.Logger;
13import org.slf4j.LoggerFactory;
14
15import java.nio.file.Path;
16import java.util.Random;
17
18public class InfinityMod {
19 public static final String MOD_ID = "infinity";
20 public static final Logger LOGGER = LoggerFactory.getLogger("Infinite Dimensions");
21 public static Path configPath = InfinityPlatform.INSTANCE.getConfigFolder().resolve(MOD_ID);
22 public static Path utilPath = configPath.resolve(".util");
23 public static Path invocationLock = configPath.resolve("modular/invocation.lock");
24 public static Path amendmentPath = configPath.resolve("amendments.json");
25
26 public static Path commonConfigPathInJar;
27 public static RandomProvider provider;
28 public static Random random = new Random(); //do not use this in dimgen, only in emergent block behaviour
29
30 public static void updateProvider(MinecraftServer server) {
31 RandomProvider p = new RandomProvider(server);
32 p.kickGhostsOut(server.registryAccess());
33 provider = p;
34 if (!((MinecraftServerAccess)server).infinity$needsInvocation()) {
35 provider.updateDependencies();
36 }
37 }
38
39 public static void init() {
40 commonConfigPathInJar = InfinityPlatform.INSTANCE.getRootPathInJar("config/common");
41 ConfigManager.updateInvocationUnlock();
42 ConfigManager.unpackDefaultConfigs();
43 //? if >1.21 {
44 ModComponentTypes.registerComponentTypes();
45 //?}
46 ModStatusEffects.registerModEffects();
47 ModItemFunctions.registerItemFunctions();
48 ModEntities.registerEntities();
49 ModBlocks.registerModBlocks();
50 ModItems.registerModItems();
51 ModPayloads.registerC2SPacketsReceivers();
52 ModBlockEntities.registerBlockEntities();
53 ModPoi.registerPoi();
54 ModCommands.registerCommands();
55 ModDensityFunctionTypes.registerFunctions();
56 ModMaterialConditions.registerConditions();
57 ModMaterialRules.registerRules();
58 ModPlacementModifiers.registerModifiers();
59 ModStructureTypes.registerStructures();
60 ModSounds.registerSounds();
61 ModFeatures.registerFeatures();
62 ModStats.registerStats();
63 ModCriteria.registerCriteria();
64 RandomText.walkPaths();
65 provider = new RandomProvider();
66 }
67}