Inspired by 2020's April Fools' 20w14infinite Snapshot, this mod brings endless randomly generated dimensions into Minecraft.
at master 67 lines 2.8 kB view raw
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}