1414import net .fabricmc .fabric .api .itemgroup .v1 .ItemGroupEvents ;
1515import net .fabricmc .fabric .api .loot .v2 .LootTableEvents ;
1616import net .fabricmc .fabric .api .loot .v2 .LootTableEvents .Modify ;
17+ import net .fabricmc .fabric .api .loot .v3 .FabricLootPoolBuilder ;
18+ import net .fabricmc .fabric .api .loot .v3 .FabricLootTableBuilder ;
1719import net .fabricmc .fabric .api .registry .CompostingChanceRegistry ;
20+ import net .fabricmc .fabric .api .registry .FabricBrewingRecipeRegistryBuilder ;
1821import net .fabricmc .fabric .api .registry .FuelRegistry ;
1922import net .minecraft .block .BlockState ;
2023import net .minecraft .block .Blocks ;
2427import net .minecraft .entity .Entity ;
2528import net .minecraft .item .*;
2629import net .minecraft .loot .LootPool ;
30+ import net .minecraft .loot .LootTable ;
2731import net .minecraft .loot .LootTables ;
2832import net .minecraft .loot .condition .LootCondition ;
2933import net .minecraft .loot .condition .RandomChanceLootCondition ;
3034import net .minecraft .loot .entry .ItemEntry ;
35+ import net .minecraft .loot .function .SetCountLootFunction ;
3136import net .minecraft .loot .provider .number .UniformLootNumberProvider ;
37+ import net .minecraft .potion .Potion ;
3238import net .minecraft .potion .Potions ;
3339import net .minecraft .recipe .BrewingRecipeRegistry ;
3440import net .minecraft .recipe .RecipeSerializer ;
3541import net .minecraft .recipe .SpecialRecipeSerializer ;
3642import net .minecraft .recipe .book .CraftingRecipeCategory ;
3743import net .minecraft .registry .Registries ;
3844import net .minecraft .registry .Registry ;
45+ import net .minecraft .registry .entry .RegistryEntry ;
3946import net .minecraft .server .world .ServerWorld ;
4047import net .minecraft .sound .SoundCategory ;
4148import net .minecraft .sound .SoundEvent ;
@@ -253,21 +260,22 @@ public static void init() {
253260 FuelRegistry .INSTANCE .add (ContentItemTags .BRANCHES_THAT_BURN , 150 );
254261 UniformLootNumberProvider lootTableRange = UniformLootNumberProvider .create (1.0F , 1.0F );
255262 LootCondition chanceLootCondition = RandomChanceLootCondition .builder (0.05F ).build ();
256- LootTableEvents .MODIFY
257- .register (
258- (Modify )(resourceManager , lootManager , id , supplier , setter ) -> {
263+ LootTableEvents .MODIFY .register (
264+ (resourceManager , lootManager , id , tableBuilder , source ) -> {
259265 if (LootTables .ABANDONED_MINESHAFT_CHEST .equals (id ) || LootTables .BURIED_TREASURE_CHEST .equals (id ) || LootTables .SIMPLE_DUNGEON_CHEST .equals (id ) || LootTables .ANCIENT_CITY_CHEST .equals (id )) {
260266 LootPool lootPool = LootPool .builder ()
261267 .rolls (lootTableRange )
262268 .conditionally (chanceLootCondition )
263269 .with (ItemEntry .builder (FOLLY_SEED ).build ())
264- .build ();
265- supplier .pool (lootPool );
270+ .apply ( SetCountLootFunction . builder ( UniformLootNumberProvider . create ( 1.0f , 2.0f ))). build ();
271+ tableBuilder .pool (lootPool );
266272 }
267273 }
268274 );
269- BrewingRecipeRegistry .Builder .registerPotionRecipe (Potions .AWKWARD , ACORN , ContentPotions .RUSTLING );
270- BrewingRecipeRegistry .Builder .registerPotionRecipe (ContentPotions .RUSTLING , Items .REDSTONE , ContentPotions .LONG_RUSTLING );
275+ FabricBrewingRecipeRegistryBuilder .BUILD .register (builder -> {
276+ builder .registerPotionRecipe (Potions .AWKWARD , ACORN , (RegistryEntry <Potion >) ContentPotions .RUSTLING );
277+ builder .registerPotionRecipe ((RegistryEntry <Potion >) ContentPotions .RUSTLING , Items .REDSTONE , (RegistryEntry <Potion >) ContentPotions .LONG_RUSTLING );
278+ });
271279 registerDispenserBehaviors ();
272280 }
273281
@@ -281,8 +289,8 @@ private static void registerDispenserBehaviors() {
281289 Items .GOAT_HORN ,
282290 new FallibleItemDispenserBehavior () {
283291 protected ItemStack dispenseSilently (BlockPointer pointer , ItemStack stack ) {
284- Direction d = (Direction )world .getBlockState ().get (DispenserBlock .FACING );
285292 ServerWorld world = pointer .world ();
293+ Direction d = (Direction )world .getBlockState ().get (DispenserBlock .FACING );
286294 BlockState state = world .getBlockState (pointer .pos ().offset (d ));
287295 if (state .isAir () || state .isOf (Blocks .NOTE_BLOCK )) {
288296 float pitch = state .isOf (Blocks .NOTE_BLOCK )
0 commit comments