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