Skip to content

Commit 96f4e99

Browse files
committed
Update to 1.21.5
1 parent ea47fb1 commit 96f4e99

39 files changed

+494
-389
lines changed

build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -180,7 +180,7 @@ dependencies {
180180
// TODO: Jade doesn't support Forge any more
181181
// implementation fg.deobf("curse.maven:jade-324717:${jade_file_id}")
182182

183-
implementation "com.github.glitchfiend:TerraBlender-forge:1.21.4-${terrablender_version}"
183+
implementation "com.github.glitchfiend:TerraBlender-forge:1.21.5-${terrablender_version}"
184184

185185
// Example mod dependency using a mod jar from ./libs with a flat dir repository
186186
// This maps to ./libs/coolmod-${mc_version}-${coolmod_version}.jar

gradle.properties

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,15 @@ org.gradle.daemon=false
66
## Environment Properties
77

88
# The Minecraft version must agree with the Forge version to get a valid artifact
9-
minecraft_version=1.21.4
9+
minecraft_version=1.21.5
1010

1111
# The Minecraft version range can use any release version of Minecraft as bounds.
1212
# Snapshots, pre-releases, and release candidates are not guaranteed to sort properly
1313
# as they do not follow standard versioning conventions.
14-
minecraft_version_range=[1.21.4,1.22)
14+
minecraft_version_range=[1.21.5,1.22)
1515

1616
# The Forge version must agree with the Minecraft version to get a valid artifact
17-
forge_version=54.0.35
17+
forge_version=55.0.3
1818

1919
# The Forge version range can use any version of Forge as bounds or match the loader version range
2020
forge_version_range=[0,)
@@ -40,11 +40,11 @@ mapping_channel=official
4040

4141
# The mapping version to query from the mapping channel.
4242
# This must match the format required by the mapping channel.
43-
mapping_version=1.21.4
43+
mapping_version=1.21.5
4444

4545
jei_version=19.21.0.247
4646

47-
terrablender_version=4.3.0.2
47+
terrablender_version=5.0.0.0
4848

4949
# Minecraft uses Apache HTTP Client 4.5.14, so we have to use the same version of the Fluent API
5050
httpclient_version=4.5.14
@@ -62,7 +62,7 @@ mod_name=TestMod3
6262
mod_license=MIT
6363

6464
# The mod version. See https://semver.org/
65-
mod_version=22.0.0
65+
mod_version=23.0.0
6666

6767
# The group ID for the mod. It is only important when publishing as an artifact to a Maven repository.
6868
# This should match the base package used for the mod sources.

src/main/java/choonster/testmod3/TestMod3.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ public TestMod3(final FMLJavaModLoadingContext context) {
5353
ModCreativeTabs.initialise(modEventBus);
5454
ModDataComponents.initialise(modEventBus);
5555
ModClientScreenTypes.initialise(modEventBus);
56-
ModItemSubPredicates.initialise(modEventBus);
56+
ModDataComponentPredicates.initialise(modEventBus);
5757
}
5858

5959
@SubscribeEvent

src/main/java/choonster/testmod3/advancements/criterion/ItemFluidContainerPredicate.java

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,14 @@
22

33
import com.mojang.serialization.Codec;
44
import com.mojang.serialization.codecs.RecordCodecBuilder;
5-
import net.minecraft.advancements.critereon.ItemSubPredicate;
65
import net.minecraft.advancements.critereon.MinMaxBounds;
76
import net.minecraft.advancements.critereon.NbtPredicate;
87
import net.minecraft.core.Holder;
98
import net.minecraft.core.HolderGetter;
109
import net.minecraft.core.HolderSet;
1110
import net.minecraft.core.RegistryCodecs;
11+
import net.minecraft.core.component.DataComponentGetter;
12+
import net.minecraft.core.component.predicates.DataComponentPredicate;
1213
import net.minecraft.core.registries.Registries;
1314
import net.minecraft.nbt.CompoundTag;
1415
import net.minecraft.tags.TagKey;
@@ -28,7 +29,7 @@ public record ItemFluidContainerPredicate(
2829
Optional<HolderSet<Fluid>> fluid,
2930
MinMaxBounds.Ints amount,
3031
Optional<NbtPredicate> nbt
31-
) implements ItemSubPredicate {
32+
) implements DataComponentPredicate {
3233
public static Codec<ItemFluidContainerPredicate> CODEC = RecordCodecBuilder.create(builder ->
3334
builder.group(
3435

@@ -47,8 +48,13 @@ public record ItemFluidContainerPredicate(
4748
).apply(builder, ItemFluidContainerPredicate::new)
4849
);
4950

51+
// TODO: Reimplement if/when Forge reimplements IFluidHandler - https://github.com/MinecraftForge/MinecraftForge/issues/10408
5052
@Override
51-
public boolean matches(final ItemStack item) {
53+
public boolean matches(final DataComponentGetter getter) {
54+
if (!(getter instanceof final ItemStack item)) {
55+
return false;
56+
}
57+
5258
final var fluidContained = FluidUtil.getFluidContained(item);
5359
if (fluidContained.isEmpty()) {
5460
return false;

src/main/java/choonster/testmod3/client/keybinding/KeyMappingHandler.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ private static void placeHeldBlock() {
7575
if (actionResult == InteractionResult.SUCCESS) {
7676
clientPlayer.swing(hand);
7777

78-
if (!heldItem.isEmpty() && (heldItem.getCount() != heldItemCount || gameMode.hasInfiniteItems())) {
78+
if (!heldItem.isEmpty() && (heldItem.getCount() != heldItemCount || clientPlayer.hasInfiniteMaterials())) {
7979
MINECRAFT.gameRenderer.itemInHandRenderer.itemUsed(hand);
8080
}
8181

src/main/java/choonster/testmod3/data/TestMod3LootModifierProvider.java

Lines changed: 18 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,13 @@
66
import choonster.testmod3.world.level.storage.loot.modifiers.ItemLootModifier;
77
import choonster.testmod3.world.level.storage.loot.modifiers.LootTableLootModifier;
88
import choonster.testmod3.world.level.storage.loot.predicates.MatchBlockTag;
9-
import net.minecraft.advancements.critereon.*;
9+
import net.minecraft.advancements.critereon.DataComponentMatchers;
10+
import net.minecraft.advancements.critereon.EnchantmentPredicate;
11+
import net.minecraft.advancements.critereon.ItemPredicate;
12+
import net.minecraft.advancements.critereon.MinMaxBounds;
1013
import net.minecraft.core.HolderLookup;
14+
import net.minecraft.core.component.predicates.DataComponentPredicates;
15+
import net.minecraft.core.component.predicates.EnchantmentsPredicate;
1116
import net.minecraft.core.registries.Registries;
1217
import net.minecraft.data.PackOutput;
1318
import net.minecraft.tags.BlockTags;
@@ -81,16 +86,20 @@ private LootItemCondition.Builder hasSilkTouch(final HolderLookup.Provider regis
8186

8287
return MatchTool.toolMatches(
8388
ItemPredicate.Builder.item()
84-
.withSubPredicate(
85-
ItemSubPredicates.ENCHANTMENTS,
86-
ItemEnchantmentsPredicate.enchantments(
87-
List.of(
88-
new EnchantmentPredicate(
89-
enchantments.getOrThrow(Enchantments.SILK_TOUCH),
90-
MinMaxBounds.Ints.atLeast(1)
89+
.withComponents(
90+
DataComponentMatchers.Builder.components()
91+
.partial(
92+
DataComponentPredicates.ENCHANTMENTS,
93+
EnchantmentsPredicate.enchantments(
94+
List.of(
95+
new EnchantmentPredicate(
96+
enchantments.getOrThrow(Enchantments.SILK_TOUCH),
97+
MinMaxBounds.Ints.atLeast(1)
98+
)
99+
)
91100
)
92101
)
93-
)
102+
.build()
94103
)
95104
);
96105
}

src/main/java/choonster/testmod3/data/TestMod3RecipeProvider.java

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,14 @@
88
import choonster.testmod3.data.crafting.recipe.ShapedArmourUpgradeRecipeBuilder;
99
import choonster.testmod3.data.crafting.recipe.ShapelessCuttingRecipeBuilder;
1010
import choonster.testmod3.data.crafting.recipe.ShapelessFluidContainerRecipeBuilder;
11+
import choonster.testmod3.init.ModDataComponentPredicates;
1112
import choonster.testmod3.init.ModFluids;
12-
import choonster.testmod3.init.ModItemSubPredicates;
1313
import choonster.testmod3.init.ModItems;
1414
import choonster.testmod3.util.RegistryUtil;
1515
import choonster.testmod3.world.item.crafting.ingredient.FluidContainerIngredient;
1616
import net.minecraft.advancements.CriteriaTriggers;
1717
import net.minecraft.advancements.Criterion;
18+
import net.minecraft.advancements.critereon.DataComponentMatchers;
1819
import net.minecraft.advancements.critereon.InventoryChangeTrigger;
1920
import net.minecraft.advancements.critereon.ItemPredicate;
2021
import net.minecraft.advancements.critereon.MinMaxBounds;
@@ -224,11 +225,15 @@ protected void buildRecipes() {
224225
.requires(staticGasContainer)
225226
.unlockedBy("has_static_gas_bucket", has(ModFluids.STATIC_GAS.getBucket().get()))
226227
.unlockedBy("has_static_gas_container", inventoryTrigger(
227-
ItemPredicate.Builder.item().withSubPredicate(
228-
ModItemSubPredicates.FLUID_CONTAINER.get(),
229-
ItemFluidContainerPredicate.Builder.create()
230-
.of(staticGas.getFluid())
231-
.withAmount(MinMaxBounds.Ints.atLeast(staticGas.getAmount()))
228+
ItemPredicate.Builder.item().withComponents(
229+
DataComponentMatchers.Builder.components()
230+
.partial(
231+
ModDataComponentPredicates.FLUID_CONTAINER.get(),
232+
ItemFluidContainerPredicate.Builder.create()
233+
.of(staticGas.getFluid())
234+
.withAmount(MinMaxBounds.Ints.atLeast(staticGas.getAmount()))
235+
.build()
236+
)
232237
.build()
233238
)
234239
))

0 commit comments

Comments
 (0)