Inspired by 2020's April Fools' 20w14infinite Snapshot, this mod brings endless randomly generated dimensions into Minecraft.

and now to fix a bunch of warns

Lera a602ca84 6c94720b

+16 -12
+1 -1
common/src/main/java/net/lerariemann/infinity/block/custom/InfinityPortalBlock.java
··· 87 87 else { 88 88 ItemStack usedKey = player.getStackInHand(Hand.MAIN_HAND); 89 89 if (usedKey.isOf(key.get())) { 90 - if (!player.getAbilities().creativeMode && prov.rule("consumePortalKey")) { 90 + if (!player.getAbilities().creativeMode && RandomProvider.rule("consumePortalKey")) { 91 91 usedKey.decrement(1); // Consume the key if needed 92 92 } 93 93 PortalCreator.openWithStatIncrease(player, s, world, pos);
+1 -1
common/src/main/java/net/lerariemann/infinity/dimensions/RandomNoisePreset.java
··· 191 191 String biome = "infinity:biome_" + id; 192 192 String root = InfinityMod.utilPath + "/surface_rule/custom/"; 193 193 boolean useRandomBlock = parent.randomiseblocks && PROVIDER.roll(parent.random, "randomise_biome_blocks"); 194 - NbtCompound top_block = useRandomBlock ? randomBlock(PROVIDER.rule("forceSolidSurface") ? "full_blocks_worldgen" : "top_blocks") : 194 + NbtCompound top_block = useRandomBlock ? randomBlock(RandomProvider.rule("forceSolidSurface") ? "full_blocks_worldgen" : "top_blocks") : 195 195 NbtUtils.nameToElement(parent.getDefaultBlock("minecraft:grass_block")); 196 196 parent.top_blocks.put(biome, top_block); 197 197 NbtCompound block_underwater = useRandomBlock ? randomBlock("full_blocks_worldgen") :
+3 -2
common/src/main/java/net/lerariemann/infinity/entity/custom/ChaosPawn.java
··· 2 2 3 3 import net.lerariemann.infinity.InfinityMod; 4 4 import net.lerariemann.infinity.iridescence.Iridescence; 5 + import net.lerariemann.infinity.util.core.RandomProvider; 5 6 import net.minecraft.block.BlockState; 6 7 import net.minecraft.block.Blocks; 7 8 import net.minecraft.component.ComponentMap; ··· 103 104 case 0 -> Identifier.of("infinity:entities/chaos_pawn_black"); 104 105 case 1 -> Identifier.of("infinity:entities/chaos_pawn_white"); 105 106 default -> { 106 - boolean bl = InfinityMod.provider.rule("pawnsCanDropIllegalItems"); 107 + boolean bl = RandomProvider.rule("pawnsCanDropIllegalItems"); 107 108 if (bl) yield Identifier.of(""); //loot is defined in dropEquipment instead 108 109 else yield Identifier.of(InfinityMod.provider.randomName(random, "loot_tables")); 109 110 } ··· 163 164 @Override 164 165 protected void dropEquipment(ServerWorld world, DamageSource source, boolean causedByPlayer) { 165 166 super.dropEquipment(world, source, causedByPlayer); 166 - if (!this.isBlackOrWhite() && InfinityMod.provider.rule("pawnsCanDropIllegalItems")) { 167 + if (!this.isBlackOrWhite() && RandomProvider.rule("pawnsCanDropIllegalItems")) { 167 168 String s = InfinityMod.provider.randomName(random, "items"); 168 169 double i = Objects.requireNonNull(this.getAttributeInstance(EntityAttributes.GENERIC_MAX_HEALTH)).getBaseValue() / 10; 169 170 ItemStack stack = Registries.ITEM.get(Identifier.of(s)).getDefaultStack().copyWithCount((int) (i * i));
+3 -3
common/src/main/java/net/lerariemann/infinity/mixin/core/NetherPortalBlockMixin.java
··· 1 1 package net.lerariemann.infinity.mixin.core; 2 2 3 - import net.lerariemann.infinity.InfinityMod; 4 3 import net.lerariemann.infinity.registry.core.ModBlocks; 5 4 import net.lerariemann.infinity.block.entity.InfinityPortalBlockEntity; 6 5 import net.lerariemann.infinity.util.InfinityMethods; 6 + import net.lerariemann.infinity.util.core.RandomProvider; 7 7 import net.lerariemann.infinity.util.teleport.PortalCreator; 8 8 import net.minecraft.block.Block; 9 9 import net.minecraft.block.BlockState; ··· 48 48 @Override 49 49 protected void injected_onBlockAdded(BlockState state, World world, BlockPos pos, BlockState oldState, boolean notify, CallbackInfo ci) { 50 50 if (state.isOf(Blocks.NETHER_PORTAL) && 51 - (InfinityMod.provider.rule("randomizeAllNetherPortals") 51 + (RandomProvider.rule("randomizeAllNetherPortals") 52 52 || InfinityMethods.isInfinity(world))) 53 53 world.scheduleBlockTick(pos, Blocks.NETHER_PORTAL, 2); 54 54 } 55 55 @Override 56 56 protected void injected_scheduledTick(BlockState state, ServerWorld world, BlockPos pos, Random random, CallbackInfo ci) { 57 57 if (state.isOf(Blocks.NETHER_PORTAL)) { 58 - boolean bl = InfinityMod.provider.rule("randomizeAllNetherPortals"); 58 + boolean bl = RandomProvider.rule("randomizeAllNetherPortals"); 59 59 if (!bl && !InfinityMethods.isInfinity(world)) return; 60 60 world.setBlockState(pos, ModBlocks.PORTAL.get().getDefaultState(). 61 61 with(AXIS, state.get(AXIS)));
+2 -1
common/src/main/java/net/lerariemann/infinity/mixin/options/PlayerManagerMixin.java
··· 7 7 import net.lerariemann.infinity.registry.core.ModBlockEntities; 8 8 import net.lerariemann.infinity.util.InfinityMethods; 9 9 import net.lerariemann.infinity.util.core.CommonIO; 10 + import net.lerariemann.infinity.util.core.RandomProvider; 10 11 import net.lerariemann.infinity.util.teleport.WarpLogic; 11 12 import net.lerariemann.infinity.registry.var.ModPayloads; 12 13 import net.minecraft.block.BlockState; ··· 70 71 }); 71 72 } 72 73 InfinityMod.LOGGER.info("Sending sound pack to client"); 73 - if (InfinityMod.provider.rule("useSoundSyncPackets")) InfinityMethods.sendS2CPayload(player, new ModPayloads.DownloadSoundPack( 74 + if (RandomProvider.rule("useSoundSyncPackets")) InfinityMethods.sendS2CPayload(player, new ModPayloads.DownloadSoundPack( 74 75 CommonIO.read(player.server.getSavePath(WorldSavePath.DATAPACKS).resolve("client_sound_pack_data.json")))); 75 76 } 76 77
+3 -2
common/src/main/java/net/lerariemann/infinity/util/InfinityMethods.java
··· 8 8 import net.lerariemann.infinity.access.Timebombable; 9 9 import net.lerariemann.infinity.block.entity.TintableBlockEntity; 10 10 import net.lerariemann.infinity.registry.core.ModComponentTypes; 11 + import net.lerariemann.infinity.util.core.RandomProvider; 11 12 import net.minecraft.block.BlockState; 12 13 import net.minecraft.block.entity.BlockEntity; 13 14 import net.minecraft.item.ItemStack; ··· 236 237 } 237 238 238 239 static boolean chaosMobsEnabled() { 239 - return InfinityMod.provider.rule("chaosMobsEnabled"); 240 + return RandomProvider.rule("chaosMobsEnabled"); 240 241 } 241 242 242 243 static boolean longArithmeticEnabled() { 243 - return InfinityMod.provider.rule("longArithmeticEnabled"); 244 + return RandomProvider.rule("longArithmeticEnabled"); 244 245 } 245 246 }
+1 -1
common/src/main/java/net/lerariemann/infinity/util/config/SoundScanner.java
··· 111 111 /** Receiver for a C2S {@link ModPayloads.UploadJukeboxes} payload, which holds data to send to clients in the future for them to 112 112 * generate custom sound resource packs, as well as jukebox song definitions corresponding to this data. */ 113 113 public static void unpackUploadedJukeboxes(ModPayloads.UploadJukeboxes payload, ServerPlayNetworking.Context context) { 114 - if (!InfinityMod.provider.rule("useSoundSyncPackets")) return; 114 + if (!RandomProvider.rule("useSoundSyncPackets")) return; 115 115 NbtCompound data = payload.data(); 116 116 if (!data.contains("jukeboxes") || !data.contains("entries")) return; 117 117 MinecraftServer server = context.player().server;
+2 -1
common/src/main/java/net/lerariemann/infinity/util/teleport/PortalCreator.java
··· 10 10 import net.lerariemann.infinity.dimensions.RandomDimension; 11 11 import net.lerariemann.infinity.registry.core.ModItems; 12 12 import net.lerariemann.infinity.util.InfinityMethods; 13 + import net.lerariemann.infinity.util.core.RandomProvider; 13 14 import net.lerariemann.infinity.util.loading.DimensionGrabber; 14 15 import net.lerariemann.infinity.options.PortalColorApplier; 15 16 import net.lerariemann.infinity.registry.var.ModCriteria; ··· 234 235 /* creates the dimension datapack */ 235 236 RandomDimension d = new RandomDimension(id, server); 236 237 237 - if (!InfinityMod.provider.rule("runtimeGenerationEnabled")) return false; 238 + if (!RandomProvider.rule("runtimeGenerationEnabled")) return false; 238 239 ((MinecraftServerAccess)(server)).infinity$addWorld( 239 240 key, (new DimensionGrabber(server.getRegistryManager())).grab_all(d)); // create the dimension 240 241 server.getPlayerManager().getPlayerList().forEach(