diff --git a/src/main/java/ru/betterend/BetterEnd.java b/src/main/java/ru/betterend/BetterEnd.java index aa02d22c..23ec25d5 100644 --- a/src/main/java/ru/betterend/BetterEnd.java +++ b/src/main/java/ru/betterend/BetterEnd.java @@ -31,6 +31,7 @@ import ru.betterend.registry.EndTags; import ru.betterend.util.BonemealUtil; import ru.betterend.util.DataFixerUtil; import ru.betterend.util.Logger; +import ru.betterend.util.LootTableUtil; import ru.betterend.world.generator.BetterEndBiomeSource; import ru.betterend.world.generator.GeneratorOptions; import ru.betterend.world.surface.SurfaceBuilders; @@ -64,6 +65,7 @@ public class BetterEnd implements ModInitializer { BonemealUtil.init(); GeneratorOptions.init(); DataFixerUtil.init(); + LootTableUtil.init(); if (hasGuideBook()) { GuideBookItem.register(); diff --git a/src/main/java/ru/betterend/util/LootTableUtil.java b/src/main/java/ru/betterend/util/LootTableUtil.java new file mode 100644 index 00000000..76400df1 --- /dev/null +++ b/src/main/java/ru/betterend/util/LootTableUtil.java @@ -0,0 +1,27 @@ +package ru.betterend.util; + +import net.fabricmc.fabric.api.loot.v1.FabricLootPoolBuilder; +import net.fabricmc.fabric.api.loot.v1.event.LootTableLoadingCallback; +import net.minecraft.item.Items; +import net.minecraft.loot.UniformLootTableRange; +import net.minecraft.loot.condition.RandomChanceLootCondition; +import net.minecraft.loot.entry.ItemEntry; +import net.minecraft.util.Identifier; +import ru.betterend.registry.EndItems; + +public class LootTableUtil { + private static final Identifier END_CITY_TREASURE_ID = new Identifier("chests/end_city_treasure"); + + public static void init() { + LootTableLoadingCallback.EVENT.register((resourceManager, lootManager, id, supplier, setter) -> { + if (END_CITY_TREASURE_ID.equals(id)) { + FabricLootPoolBuilder builder = FabricLootPoolBuilder.builder(); + builder.rolls(UniformLootTableRange.between(0, 5)); + builder.withCondition(RandomChanceLootCondition.builder(0.5f).build()); + builder.withEntry(ItemEntry.builder(Items.GHAST_TEAR).build()); + builder.withEntry(ItemEntry.builder(EndItems.MUSIC_DISC_STRANGE_AND_ALIEN).build()); + supplier.pool(builder); + } + }); + } +}