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.unpackDefaultConfigs();
42 ConfigManager.updateInvocationUnlock();
43 //? if >1.21 {
44 ModComponentTypes.registerComponentTypes();
45 //?}
46 ModParticles.registerServer();
47 ModStatusEffects.registerModEffects();
48 ModItemFunctions.registerItemFunctions();
49 ModEntityDataSerializers.registerSerializers();
50 ModEntities.registerEntities();
51 ModBlocks.registerModBlocks();
52 ModItems.registerModItems();
53 ModPayloads.registerC2SPacketsReceivers();
54 ModBlockEntities.registerBlockEntities();
55 ModPoi.registerPoi();
56 ModCommands.registerCommands();
57 ModDensityFunctionTypes.registerFunctions();
58 ModMaterialConditions.registerConditions();
59 ModMaterialRules.registerRules();
60 ModPlacementModifiers.registerModifiers();
61 ModStructureTypes.registerStructures();
62 ModSounds.registerSounds();
63 ModFeatures.registerFeatures();
64 ModStats.registerStats();
65 ModCriteria.registerCriteria();
66 RandomText.walkPaths();
67 provider = new RandomProvider();
68 }
69}