2
2
3
3
import com .chikoritalover .caffeinated .registry .*;
4
4
import net .fabricmc .api .ModInitializer ;
5
+ import net .fabricmc .fabric .api .loot .v2 .LootTableEvents ;
6
+ import net .minecraft .item .ItemConvertible ;
7
+ import net .minecraft .loot .LootPool ;
8
+ import net .minecraft .loot .LootTables ;
9
+ import net .minecraft .loot .condition .LootCondition ;
10
+ import net .minecraft .loot .condition .RandomChanceLootCondition ;
11
+ import net .minecraft .loot .entry .ItemEntry ;
12
+ import net .minecraft .loot .provider .number .UniformLootNumberProvider ;
13
+ import net .minecraft .util .Identifier ;
5
14
import net .minecraft .util .registry .Registry ;
6
15
import org .slf4j .Logger ;
7
16
import org .slf4j .LoggerFactory ;
@@ -26,5 +35,30 @@ public void onInitialize() {
26
35
ModSoundEvents .register ();
27
36
ModStatusEffects .register ();
28
37
ModTradeOffers .register ();
38
+
39
+ registerLootTableEvents ();
40
+ }
41
+
42
+ public void registerLootTableEvents () {
43
+ addLootTablePool (1 , 1 , 0.5F , LootTables .JUNGLE_TEMPLE_CHEST , ModItems .COFFEE_BEANS , 1 , 3 );
44
+ }
45
+
46
+ private void addLootTablePool (int minRolls , int maxRolls , float chance , Identifier lootTable , ItemConvertible item ) {
47
+ addLootTablePool (minRolls , maxRolls , chance , lootTable , item , 1 , 1 );
48
+ }
49
+
50
+ private void addLootTablePool (int minRolls , int maxRolls , float chance , Identifier lootTable , ItemConvertible item , int minCount , int maxCount ) {
51
+ UniformLootNumberProvider lootTableRange = UniformLootNumberProvider .create (minRolls , maxRolls );
52
+ LootCondition condition = RandomChanceLootCondition .builder (chance ).build ();
53
+ LootTableEvents .MODIFY .register ((resourceManager , lootManager , id , supplier , setter ) -> {
54
+ if (lootTable .equals (id )) {
55
+ LootPool lootPool = LootPool .builder ()
56
+ .rolls (lootTableRange )
57
+ .conditionally (condition )
58
+ .with (ItemEntry .builder (item ).build ()).build ();
59
+
60
+ supplier .pool (lootPool );
61
+ }
62
+ });
29
63
}
30
64
}
0 commit comments