diff --git a/common/src/main/java/dev/architectury/registry/level/biome/BiomeModifications.java b/common/src/main/java/dev/architectury/registry/level/biome/BiomeModifications.java index 4f0c2fcf..e2aed79e 100644 --- a/common/src/main/java/dev/architectury/registry/level/biome/BiomeModifications.java +++ b/common/src/main/java/dev/architectury/registry/level/biome/BiomeModifications.java @@ -22,7 +22,10 @@ package dev.architectury.registry.level.biome; import com.google.common.base.Predicates; import dev.architectury.hooks.level.biome.BiomeProperties; import dev.architectury.injectables.annotations.ExpectPlatform; +import net.minecraft.core.Holder; import net.minecraft.resources.ResourceLocation; +import net.minecraft.tags.TagKey; +import net.minecraft.world.level.biome.Biome; import java.util.function.BiConsumer; import java.util.function.Predicate; @@ -89,5 +92,7 @@ public final class BiomeModifications { ResourceLocation getKey(); BiomeProperties getProperties(); + + boolean hasTag(TagKey tag); } } diff --git a/fabric/src/main/java/dev/architectury/event/fabric/EventHandlerImpl.java b/fabric/src/main/java/dev/architectury/event/fabric/EventHandlerImpl.java index 83fef1d5..e5ad152d 100644 --- a/fabric/src/main/java/dev/architectury/event/fabric/EventHandlerImpl.java +++ b/fabric/src/main/java/dev/architectury/event/fabric/EventHandlerImpl.java @@ -23,11 +23,7 @@ import dev.architectury.event.events.client.ClientGuiEvent; import dev.architectury.event.events.client.ClientLifecycleEvent; import dev.architectury.event.events.client.ClientTickEvent; import dev.architectury.event.events.client.ClientTooltipEvent; -import dev.architectury.event.events.common.CommandRegistrationEvent; -import dev.architectury.event.events.common.InteractionEvent; -import dev.architectury.event.events.common.LifecycleEvent; -import dev.architectury.event.events.common.LootEvent; -import dev.architectury.event.events.common.TickEvent; +import dev.architectury.event.events.common.*; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientLifecycleEvents; @@ -41,8 +37,8 @@ import net.fabricmc.fabric.api.event.lifecycle.v1.ServerWorldEvents; import net.fabricmc.fabric.api.event.player.AttackBlockCallback; import net.fabricmc.fabric.api.event.player.UseBlockCallback; import net.fabricmc.fabric.api.event.player.UseItemCallback; -import net.minecraft.commands.Commands; import net.fabricmc.fabric.api.loot.v2.LootTableEvents; +import net.minecraft.commands.Commands; public class EventHandlerImpl { @Environment(EnvType.CLIENT) diff --git a/fabric/src/main/java/dev/architectury/registry/level/biome/fabric/BiomeModificationsImpl.java b/fabric/src/main/java/dev/architectury/registry/level/biome/fabric/BiomeModificationsImpl.java index a95b0989..5ce8e7c7 100644 --- a/fabric/src/main/java/dev/architectury/registry/level/biome/fabric/BiomeModificationsImpl.java +++ b/fabric/src/main/java/dev/architectury/registry/level/biome/fabric/BiomeModificationsImpl.java @@ -33,6 +33,7 @@ import net.minecraft.resources.ResourceKey; import net.minecraft.resources.ResourceLocation; import net.minecraft.sounds.Music; import net.minecraft.sounds.SoundEvent; +import net.minecraft.tags.TagKey; import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.MobCategory; import net.minecraft.world.level.biome.*; @@ -110,6 +111,11 @@ public class BiomeModificationsImpl { public BiomeProperties getProperties() { return properties; } + + @Override + public boolean hasTag(TagKey tag) { + return context.hasTag(tag); + } }; } diff --git a/fabric/src/main/resources/fabric.mod.json b/fabric/src/main/resources/fabric.mod.json index 824d52b1..9915e78d 100644 --- a/fabric/src/main/resources/fabric.mod.json +++ b/fabric/src/main/resources/fabric.mod.json @@ -36,7 +36,7 @@ "depends": { "minecraft": "~1.18.2-", "fabricloader": ">=0.13.0", - "fabric": ">=0.50.0" + "fabric": ">=0.54.0" }, "breaks": { "optifabric": "<1.13.0" diff --git a/forge/src/main/java/dev/architectury/registry/level/biome/forge/BiomeModificationsImpl.java b/forge/src/main/java/dev/architectury/registry/level/biome/forge/BiomeModificationsImpl.java index 498931a9..2c9806c0 100644 --- a/forge/src/main/java/dev/architectury/registry/level/biome/forge/BiomeModificationsImpl.java +++ b/forge/src/main/java/dev/architectury/registry/level/biome/forge/BiomeModificationsImpl.java @@ -23,9 +23,15 @@ import com.google.common.collect.Lists; import dev.architectury.forge.ArchitecturyForge; import dev.architectury.hooks.level.biome.*; import dev.architectury.registry.level.biome.BiomeModifications.BiomeContext; +import dev.architectury.utils.GameInstance; import net.minecraft.core.Holder; +import net.minecraft.core.Registry; import net.minecraft.resources.ResourceKey; import net.minecraft.resources.ResourceLocation; +import net.minecraft.server.MinecraftServer; +import net.minecraft.sounds.Music; +import net.minecraft.sounds.SoundEvent; +import net.minecraft.tags.TagKey; import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.MobCategory; import net.minecraft.world.level.biome.Biome; @@ -43,6 +49,7 @@ import org.apache.commons.lang3.tuple.Pair; import java.util.List; import java.util.Map; +import java.util.Optional; import java.util.function.BiConsumer; import java.util.function.BiPredicate; import java.util.function.Predicate; @@ -83,6 +90,21 @@ public class BiomeModificationsImpl { public BiomeProperties getProperties() { return properties; } + + @Override + public boolean hasTag(TagKey tag) { + MinecraftServer server = GameInstance.getServer(); + if (server != null) { + Optional> registry = server.registryAccess().registry(Registry.BIOME_REGISTRY); + if (registry.isPresent()) { + Optional> holder = registry.get().getHolder(ResourceKey.create(Registry.BIOME_REGISTRY, event.getName())); + if (holder.isPresent()) { + return holder.get().is(tag); + } + } + } + return false; + } }; } diff --git a/gradle.properties b/gradle.properties index b57ee11d..b351a5b7 100644 --- a/gradle.properties +++ b/gradle.properties @@ -14,7 +14,7 @@ base_version=4.5 maven_group=dev.architectury fabric_loader_version=0.13.3 -fabric_api_version=0.50.0+1.18.2 +fabric_api_version=0.58.0+1.18.2 mod_menu_version=3.0.0 forge_version=40.1.14