From 3655eba15eeee13322ca985f45e867eaef296996 Mon Sep 17 00:00:00 2001 From: Vos Date: Sun, 22 Mar 2026 16:03:52 -0500 Subject: [PATCH] 2.1.0 Fixes 2 --- ...ecipies.java => ModLootTableModifier.java} | 53 +++++++++++++------ 1 file changed, 36 insertions(+), 17 deletions(-) rename src/main/java/com/acethewildfire/acesbs/util/{UpdateRecipies.java => ModLootTableModifier.java} (76%) diff --git a/src/main/java/com/acethewildfire/acesbs/util/UpdateRecipies.java b/src/main/java/com/acethewildfire/acesbs/util/ModLootTableModifier.java similarity index 76% rename from src/main/java/com/acethewildfire/acesbs/util/UpdateRecipies.java rename to src/main/java/com/acethewildfire/acesbs/util/ModLootTableModifier.java index 48d57cd..0188fc8 100644 --- a/src/main/java/com/acethewildfire/acesbs/util/UpdateRecipies.java +++ b/src/main/java/com/acethewildfire/acesbs/util/ModLootTableModifier.java @@ -1,14 +1,10 @@ package com.acethewildfire.acesbs.util; import com.acethewildfire.acesbs.AcesBS; -import com.acethewildfire.acesbs.AcesBSClient; +import com.acethewildfire.acesbs.item.AshenSteelItems; import com.acethewildfire.acesbs.item.ModItems; import com.acethewildfire.acesbs.item.PrismaSteelItems; import net.fabricmc.fabric.api.loot.v3.LootTableEvents; -import net.fabricmc.fabric.api.tag.convention.v2.ConventionalBlockTags; -import net.minecraft.block.Block; -import net.minecraft.block.BlockState; -import net.minecraft.block.Blocks; import net.minecraft.enchantment.Enchantment; import net.minecraft.enchantment.Enchantments; import net.minecraft.item.Item; @@ -16,36 +12,27 @@ import net.minecraft.item.ItemConvertible; import net.minecraft.item.Items; import net.minecraft.loot.LootPool; import net.minecraft.loot.LootTable; +import net.minecraft.loot.LootTables; import net.minecraft.loot.condition.InvertedLootCondition; -import net.minecraft.loot.condition.LocationCheckLootCondition; import net.minecraft.loot.condition.LootCondition; import net.minecraft.loot.condition.MatchToolLootCondition; +import net.minecraft.loot.condition.RandomChanceLootCondition; import net.minecraft.loot.entry.ItemEntry; import net.minecraft.loot.function.ApplyBonusLootFunction; import net.minecraft.loot.function.ExplosionDecayLootFunction; import net.minecraft.loot.provider.number.UniformLootNumberProvider; -import net.minecraft.predicate.BlockPredicate; import net.minecraft.predicate.NumberRange; import net.minecraft.predicate.component.ComponentPredicateTypes; import net.minecraft.predicate.component.ComponentsPredicate; -import net.minecraft.predicate.entity.LocationPredicate; import net.minecraft.predicate.item.EnchantmentPredicate; import net.minecraft.predicate.item.EnchantmentsPredicate; import net.minecraft.predicate.item.ItemPredicate; import net.minecraft.registry.*; -import net.minecraft.registry.entry.RegistryEntry; -import net.minecraft.registry.entry.RegistryEntryList; -import net.minecraft.registry.tag.TagKey; import net.minecraft.util.Identifier; -import java.util.ArrayList; import java.util.List; -import java.util.Optional; -import static com.acethewildfire.acesbs.util.ModTags.Blocks.MC_ORES; -import static net.fabricmc.fabric.api.tag.convention.v2.ConventionalBlockTags.ORES; - -public class UpdateRecipies { +public class ModLootTableModifier { public static LootCondition.Builder specialToolCondition(RegistryEntryLookup lookup, ItemConvertible... tools) { return MatchToolLootCondition.builder( ItemPredicate.Builder.create() @@ -104,4 +91,36 @@ public class UpdateRecipies { tableBuilder.pool(extraPool); }); } + + public static void updateChests(){ + Identifier NETHER_FORTRESS_CHEST = + Identifier.of("minecraft", "chests/nether_bridge"); + + LootTableEvents.MODIFY.register((key, tableBuilder, source, wrapperLookup) -> { + if (NETHER_FORTRESS_CHEST.equals(key.getValue())) { + + LootPool.Builder pool = LootPool.builder() + .with(ItemEntry.builder(AshenSteelItems.ASHEN_SMITHING_TEMPLATE)) + .conditionally(RandomChanceLootCondition.builder(0.1f)); + + tableBuilder.pool(pool); + } + }); + + LootTableEvents.MODIFY.register((key, tableBuilder, source, wrapperLookup) -> { + if (key.equals(LootTables.HERO_OF_THE_VILLAGE_ARMORER_GIFT_GAMEPLAY)) { + + LootPool.Builder pool = LootPool.builder() + .with(ItemEntry.builder(PrismaSteelItems.PRISMA_SMITHING_TEMPLATE)) + .conditionally(RandomChanceLootCondition.builder(0.1f)); + + tableBuilder.pool(pool); + } + }); + } + + public static void updateAll(){ + updateVanilla(); + updateChests(); + } }