Inspired by 2020's April Fools' 20w14infinite Snapshot, this mod brings endless randomly generated dimensions into Minecraft.
at master 58 lines 2.1 kB view raw
1package net.lerariemann.infinity.item.function; 2 3import com.google.gson.JsonDeserializationContext; 4import com.google.gson.JsonObject; 5import net.lerariemann.infinity.block.custom.BiomeBottleBlock; 6import net.lerariemann.infinity.registry.core.ModItemFunctions; 7import net.minecraft.world.item.ItemStack; 8import net.minecraft.world.level.storage.loot.LootContext; 9import net.minecraft.world.level.storage.loot.functions.LootItemConditionalFunction; 10import net.minecraft.world.level.storage.loot.functions.LootItemFunctionType; 11import net.minecraft.world.level.storage.loot.predicates.LootItemCondition; 12import org.jetbrains.annotations.NotNull; 13 14//? if >1.21 { 15import com.mojang.serialization.MapCodec; 16import com.mojang.serialization.codecs.RecordCodecBuilder; 17import java.util.List; 18//?} 19 20public class SetLevelLootFunction extends LootItemConditionalFunction { 21 //? if >1.21 { 22 public static final MapCodec<SetLevelLootFunction> CODEC = RecordCodecBuilder.mapCodec( 23 instance -> commonFields(instance).apply(instance, SetLevelLootFunction::new) 24 ); 25 protected SetLevelLootFunction(List<LootItemCondition> conditions) { 26 super(conditions); 27 } 28 //?} else { 29 /*protected SetLevelLootFunction(LootItemCondition[] lootItemConditions) { 30 super(lootItemConditions); 31 } 32 *///?} 33 34 @Override 35 protected @NotNull ItemStack run(ItemStack stack, LootContext context) { 36 BiomeBottleBlock.updateCharge(stack); 37 return stack; 38 } 39 40 @Override 41 public @NotNull LootItemFunctionType 42 //? if >1.21 { 43 <? extends LootItemConditionalFunction> 44 //?} 45 getType() { 46 return ModItemFunctions.SET_BIOME_BOTTLE_LEVEL.get(); 47 } 48 49 //? if <1.21 { 50 /*public static class Serializer extends LootItemConditionalFunction.Serializer<SetLevelLootFunction> { 51 public Serializer() { 52 } 53 public @NotNull SetLevelLootFunction deserialize(JsonObject object, JsonDeserializationContext deserializationContext, LootItemCondition[] conditions) { 54 return new SetLevelLootFunction(new LootItemCondition[0]); 55 } 56 } 57 *///?} 58}