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