From 75d2b4b7c36f33e57d3a0f69ffde11702a076d91 Mon Sep 17 00:00:00 2001 From: Juuz <6596629+Juuxel@users.noreply.github.com> Date: Sun, 10 Nov 2024 16:39:32 +0200 Subject: [PATCH] Add tag alias test mod --- fabric-tag-api-v1/build.gradle | 4 + .../fabric/test/tag/TagAliasTest.java | 141 ++++++++++++++++++ .../fabric/tag_alias/block/bricks_ab.json | 6 + .../fabric/tag_alias/block/bricks_bc.json | 6 + .../fabric/tag_alias/item/beetroots.json | 6 + .../fabric/tag_alias/item/gems.json | 6 + .../fabric/tag_alias/item/redstone_dusts.json | 6 + .../tag_alias/loot_table/nether_bricks.json | 6 + .../tag_alias/worldgen/biome/classic.json | 6 + .../tags/block/brick_blocks.json | 6 + .../tags/block/bricks.json | 7 + .../tags/block/more_brick_blocks.json | 6 + .../tags/item/beetroots.json | 6 + .../tags/item/expensive_rocks.json | 6 + .../tags/item/gems.json | 6 + .../tags/item/redstone_dusts.json | 6 + .../tags/item/redstone_powders.json | 5 + .../tags/loot_table/nether_bricks_1.json | 6 + .../tags/loot_table/nether_bricks_2.json | 6 + .../tags/worldgen/biome/classic.json | 6 + .../tags/worldgen/biome/traditional.json | 6 + .../src/testmod/resources/fabric.mod.json | 1 + 22 files changed, 260 insertions(+) create mode 100644 fabric-tag-api-v1/src/testmod/java/net/fabricmc/fabric/test/tag/TagAliasTest.java create mode 100644 fabric-tag-api-v1/src/testmod/resources/data/fabric-tag-api-v1-testmod/fabric/tag_alias/block/bricks_ab.json create mode 100644 fabric-tag-api-v1/src/testmod/resources/data/fabric-tag-api-v1-testmod/fabric/tag_alias/block/bricks_bc.json create mode 100644 fabric-tag-api-v1/src/testmod/resources/data/fabric-tag-api-v1-testmod/fabric/tag_alias/item/beetroots.json create mode 100644 fabric-tag-api-v1/src/testmod/resources/data/fabric-tag-api-v1-testmod/fabric/tag_alias/item/gems.json create mode 100644 fabric-tag-api-v1/src/testmod/resources/data/fabric-tag-api-v1-testmod/fabric/tag_alias/item/redstone_dusts.json create mode 100644 fabric-tag-api-v1/src/testmod/resources/data/fabric-tag-api-v1-testmod/fabric/tag_alias/loot_table/nether_bricks.json create mode 100644 fabric-tag-api-v1/src/testmod/resources/data/fabric-tag-api-v1-testmod/fabric/tag_alias/worldgen/biome/classic.json create mode 100644 fabric-tag-api-v1/src/testmod/resources/data/fabric-tag-api-v1-testmod/tags/block/brick_blocks.json create mode 100644 fabric-tag-api-v1/src/testmod/resources/data/fabric-tag-api-v1-testmod/tags/block/bricks.json create mode 100644 fabric-tag-api-v1/src/testmod/resources/data/fabric-tag-api-v1-testmod/tags/block/more_brick_blocks.json create mode 100644 fabric-tag-api-v1/src/testmod/resources/data/fabric-tag-api-v1-testmod/tags/item/beetroots.json create mode 100644 fabric-tag-api-v1/src/testmod/resources/data/fabric-tag-api-v1-testmod/tags/item/expensive_rocks.json create mode 100644 fabric-tag-api-v1/src/testmod/resources/data/fabric-tag-api-v1-testmod/tags/item/gems.json create mode 100644 fabric-tag-api-v1/src/testmod/resources/data/fabric-tag-api-v1-testmod/tags/item/redstone_dusts.json create mode 100644 fabric-tag-api-v1/src/testmod/resources/data/fabric-tag-api-v1-testmod/tags/item/redstone_powders.json create mode 100644 fabric-tag-api-v1/src/testmod/resources/data/fabric-tag-api-v1-testmod/tags/loot_table/nether_bricks_1.json create mode 100644 fabric-tag-api-v1/src/testmod/resources/data/fabric-tag-api-v1-testmod/tags/loot_table/nether_bricks_2.json create mode 100644 fabric-tag-api-v1/src/testmod/resources/data/fabric-tag-api-v1-testmod/tags/worldgen/biome/classic.json create mode 100644 fabric-tag-api-v1/src/testmod/resources/data/fabric-tag-api-v1-testmod/tags/worldgen/biome/traditional.json diff --git a/fabric-tag-api-v1/build.gradle b/fabric-tag-api-v1/build.gradle index a9a380ad4a..35d162fff0 100644 --- a/fabric-tag-api-v1/build.gradle +++ b/fabric-tag-api-v1/build.gradle @@ -8,3 +8,7 @@ moduleDependencies(project, [ 'fabric-api-base', 'fabric-resource-loader-v0' ]) + +testDependencies(project, [ + ':fabric-lifecycle-events-v1', +]) diff --git a/fabric-tag-api-v1/src/testmod/java/net/fabricmc/fabric/test/tag/TagAliasTest.java b/fabric-tag-api-v1/src/testmod/java/net/fabricmc/fabric/test/tag/TagAliasTest.java new file mode 100644 index 0000000000..9fc98b5a45 --- /dev/null +++ b/fabric-tag-api-v1/src/testmod/java/net/fabricmc/fabric/test/tag/TagAliasTest.java @@ -0,0 +1,141 @@ +/* + * Copyright (c) 2016, 2017, 2018, 2019 FabricMC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.fabricmc.fabric.test.tag; + +import java.util.Arrays; +import java.util.List; +import java.util.Set; +import java.util.function.Function; +import java.util.stream.Collectors; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import net.minecraft.block.Block; +import net.minecraft.block.Blocks; +import net.minecraft.item.Item; +import net.minecraft.item.Items; +import net.minecraft.loot.LootTable; +import net.minecraft.registry.Registry; +import net.minecraft.registry.RegistryEntryLookup; +import net.minecraft.registry.RegistryKey; +import net.minecraft.registry.RegistryKeys; +import net.minecraft.registry.RegistryWrapper; +import net.minecraft.registry.entry.RegistryEntry; +import net.minecraft.registry.entry.RegistryEntryList; +import net.minecraft.registry.tag.TagKey; +import net.minecraft.util.Identifier; +import net.minecraft.world.biome.Biome; +import net.minecraft.world.biome.BiomeKeys; + +import net.fabricmc.api.ModInitializer; +import net.fabricmc.fabric.api.event.lifecycle.v1.CommonLifecycleEvents; + +public final class TagAliasTest implements ModInitializer { + private static final Logger LOGGER = LoggerFactory.getLogger(TagAliasTest.class); + + // Test 1: Alias two non-empty tags + public static final TagKey GEMS = tagKey(RegistryKeys.ITEM, "gems"); + public static final TagKey EXPENSIVE_ROCKS = tagKey(RegistryKeys.ITEM, "expensive_rocks"); + + // Test 2: Alias a non-empty tag and an empty tag + public static final TagKey REDSTONE_DUSTS = tagKey(RegistryKeys.ITEM, "redstone_dusts"); + public static final TagKey REDSTONE_POWDERS = tagKey(RegistryKeys.ITEM, "redstone_powders"); + + // Test 3: Alias a non-empty tag and a missing tag + public static final TagKey BEETROOTS = tagKey(RegistryKeys.ITEM, "beetroots"); + public static final TagKey MISSING_BEETROOTS = tagKey(RegistryKeys.ITEM, "missing_beetroots"); + + // Test 4: Given tags A, B, C, make alias groups A+B and B+C. They should get merged. + public static final TagKey BRICK_BLOCKS = tagKey(RegistryKeys.BLOCK, "brick_blocks"); + public static final TagKey MORE_BRICK_BLOCKS = tagKey(RegistryKeys.BLOCK, "more_brick_blocks"); + public static final TagKey BRICKS = tagKey(RegistryKeys.BLOCK, "bricks"); + + // Test 5: Merge tags from a world generation dynamic registry + public static final TagKey CLASSIC_BIOMES = tagKey(RegistryKeys.BIOME, "classic"); + public static final TagKey TRADITIONAL_BIOMES = tagKey(RegistryKeys.BIOME, "traditional"); + + // Test 6: Merge tags from a reloadable registry + public static final TagKey NETHER_BRICKS_1 = tagKey(RegistryKeys.LOOT_TABLE, "nether_bricks_1"); + public static final TagKey NETHER_BRICKS_2 = tagKey(RegistryKeys.LOOT_TABLE, "nether_bricks_2"); + + private static TagKey tagKey(RegistryKey> registryRef, String name) { + return TagKey.of(registryRef, Identifier.of("fabric-tag-api-v1-testmod", name)); + } + + @Override + public void onInitialize() { + CommonLifecycleEvents.TAGS_LOADED.register((registries, client) -> { + LOGGER.info("Running tag alias tests on the {}...", client ? "client" : "server"); + + assertTagContent(registries, List.of(GEMS, EXPENSIVE_ROCKS), Item::getRegistryEntry, + Items.DIAMOND, Items.EMERALD); + assertTagContent(registries, List.of(REDSTONE_DUSTS, REDSTONE_POWDERS), Item::getRegistryEntry, + Items.REDSTONE); + assertTagContent(registries, List.of(BEETROOTS, MISSING_BEETROOTS), Item::getRegistryEntry, + Items.BEETROOT); + assertTagContent(registries, List.of(BRICK_BLOCKS, MORE_BRICK_BLOCKS, BRICKS), Block::getRegistryEntry, + Blocks.BRICKS, Blocks.STONE_BRICKS, Blocks.NETHER_BRICKS, Blocks.RED_NETHER_BRICKS); + assertTagContent(registries, List.of(CLASSIC_BIOMES, TRADITIONAL_BIOMES), + BiomeKeys.PLAINS, BiomeKeys.DESERT); + + // The loot table registry isn't synced to the client. + if (!client) { + assertTagContent(registries, List.of(NETHER_BRICKS_1, NETHER_BRICKS_2), + Blocks.NETHER_BRICKS.getLootTableKey().orElseThrow(), + Blocks.RED_NETHER_BRICKS.getLootTableKey().orElseThrow()); + } + + LOGGER.info("Tag alias tests completed successfully!"); + }); + } + + @SafeVarargs + private static void assertTagContent(RegistryWrapper.WrapperLookup registries, List> tags, Function> entryExtractor, T... expected) { + Set> entries = Arrays.stream(expected) + .map(entryExtractor) + .collect(Collectors.toSet());; + assertTagContent(registries, tags, entries); + } + + @SafeVarargs + private static void assertTagContent(RegistryWrapper.WrapperLookup registries, List> tags, RegistryKey... expected) { + RegistryEntryLookup lookup = registries.getOrThrow(tags.getFirst().registryRef()); + Set> entries = Arrays.stream(expected) + .map(lookup::getOrThrow) + .collect(Collectors.toSet()); + assertTagContent(registries, tags, entries); + } + + private static void assertTagContent(RegistryWrapper.WrapperLookup registries, List> tags, Set> expected) { + RegistryEntryLookup lookup = registries.getOrThrow(tags.getFirst().registryRef()); + + for (TagKey tag : tags) { + RegistryEntryList.Named tagEntryList = lookup.getOrThrow(tag); + + if (!Set.copyOf(tagEntryList.entries).equals(expected)) { + throw new AssertionError("Expected tag %s to have contents %s, but it had %s instead" + .formatted(tag, expected, tagEntryList.entries)); + } + } + + LOGGER.info("Tags {} / {} were successfully aliased together", tags.getFirst().registryRef().getValue(), tags.stream() + .map(TagKey::id) + .map(Identifier::toString) + .collect(Collectors.joining(", "))); + } +} diff --git a/fabric-tag-api-v1/src/testmod/resources/data/fabric-tag-api-v1-testmod/fabric/tag_alias/block/bricks_ab.json b/fabric-tag-api-v1/src/testmod/resources/data/fabric-tag-api-v1-testmod/fabric/tag_alias/block/bricks_ab.json new file mode 100644 index 0000000000..669531cea5 --- /dev/null +++ b/fabric-tag-api-v1/src/testmod/resources/data/fabric-tag-api-v1-testmod/fabric/tag_alias/block/bricks_ab.json @@ -0,0 +1,6 @@ +{ + "tags": [ + "fabric-tag-api-v1-testmod:bricks", + "fabric-tag-api-v1-testmod:brick_blocks" + ] +} diff --git a/fabric-tag-api-v1/src/testmod/resources/data/fabric-tag-api-v1-testmod/fabric/tag_alias/block/bricks_bc.json b/fabric-tag-api-v1/src/testmod/resources/data/fabric-tag-api-v1-testmod/fabric/tag_alias/block/bricks_bc.json new file mode 100644 index 0000000000..b5c065b8d3 --- /dev/null +++ b/fabric-tag-api-v1/src/testmod/resources/data/fabric-tag-api-v1-testmod/fabric/tag_alias/block/bricks_bc.json @@ -0,0 +1,6 @@ +{ + "tags": [ + "fabric-tag-api-v1-testmod:brick_blocks", + "fabric-tag-api-v1-testmod:more_brick_blocks" + ] +} diff --git a/fabric-tag-api-v1/src/testmod/resources/data/fabric-tag-api-v1-testmod/fabric/tag_alias/item/beetroots.json b/fabric-tag-api-v1/src/testmod/resources/data/fabric-tag-api-v1-testmod/fabric/tag_alias/item/beetroots.json new file mode 100644 index 0000000000..b779e07a24 --- /dev/null +++ b/fabric-tag-api-v1/src/testmod/resources/data/fabric-tag-api-v1-testmod/fabric/tag_alias/item/beetroots.json @@ -0,0 +1,6 @@ +{ + "tags": [ + "fabric-tag-api-v1-testmod:beetroots", + "fabric-tag-api-v1-testmod:missing_beetroots" + ] +} diff --git a/fabric-tag-api-v1/src/testmod/resources/data/fabric-tag-api-v1-testmod/fabric/tag_alias/item/gems.json b/fabric-tag-api-v1/src/testmod/resources/data/fabric-tag-api-v1-testmod/fabric/tag_alias/item/gems.json new file mode 100644 index 0000000000..9a1ca39c6b --- /dev/null +++ b/fabric-tag-api-v1/src/testmod/resources/data/fabric-tag-api-v1-testmod/fabric/tag_alias/item/gems.json @@ -0,0 +1,6 @@ +{ + "tags": [ + "fabric-tag-api-v1-testmod:expensive_rocks", + "fabric-tag-api-v1-testmod:gems" + ] +} diff --git a/fabric-tag-api-v1/src/testmod/resources/data/fabric-tag-api-v1-testmod/fabric/tag_alias/item/redstone_dusts.json b/fabric-tag-api-v1/src/testmod/resources/data/fabric-tag-api-v1-testmod/fabric/tag_alias/item/redstone_dusts.json new file mode 100644 index 0000000000..db710133dd --- /dev/null +++ b/fabric-tag-api-v1/src/testmod/resources/data/fabric-tag-api-v1-testmod/fabric/tag_alias/item/redstone_dusts.json @@ -0,0 +1,6 @@ +{ + "tags": [ + "fabric-tag-api-v1-testmod:redstone_dusts", + "fabric-tag-api-v1-testmod:redstone_powders" + ] +} diff --git a/fabric-tag-api-v1/src/testmod/resources/data/fabric-tag-api-v1-testmod/fabric/tag_alias/loot_table/nether_bricks.json b/fabric-tag-api-v1/src/testmod/resources/data/fabric-tag-api-v1-testmod/fabric/tag_alias/loot_table/nether_bricks.json new file mode 100644 index 0000000000..66ede166ba --- /dev/null +++ b/fabric-tag-api-v1/src/testmod/resources/data/fabric-tag-api-v1-testmod/fabric/tag_alias/loot_table/nether_bricks.json @@ -0,0 +1,6 @@ +{ + "tags": [ + "fabric-tag-api-v1-testmod:nether_bricks_1", + "fabric-tag-api-v1-testmod:nether_bricks_2" + ] +} diff --git a/fabric-tag-api-v1/src/testmod/resources/data/fabric-tag-api-v1-testmod/fabric/tag_alias/worldgen/biome/classic.json b/fabric-tag-api-v1/src/testmod/resources/data/fabric-tag-api-v1-testmod/fabric/tag_alias/worldgen/biome/classic.json new file mode 100644 index 0000000000..c658e8852b --- /dev/null +++ b/fabric-tag-api-v1/src/testmod/resources/data/fabric-tag-api-v1-testmod/fabric/tag_alias/worldgen/biome/classic.json @@ -0,0 +1,6 @@ +{ + "tags": [ + "fabric-tag-api-v1-testmod:classic", + "fabric-tag-api-v1-testmod:traditional" + ] +} diff --git a/fabric-tag-api-v1/src/testmod/resources/data/fabric-tag-api-v1-testmod/tags/block/brick_blocks.json b/fabric-tag-api-v1/src/testmod/resources/data/fabric-tag-api-v1-testmod/tags/block/brick_blocks.json new file mode 100644 index 0000000000..39d086d8e1 --- /dev/null +++ b/fabric-tag-api-v1/src/testmod/resources/data/fabric-tag-api-v1-testmod/tags/block/brick_blocks.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "minecraft:nether_bricks" + ] +} diff --git a/fabric-tag-api-v1/src/testmod/resources/data/fabric-tag-api-v1-testmod/tags/block/bricks.json b/fabric-tag-api-v1/src/testmod/resources/data/fabric-tag-api-v1-testmod/tags/block/bricks.json new file mode 100644 index 0000000000..cd4b051815 --- /dev/null +++ b/fabric-tag-api-v1/src/testmod/resources/data/fabric-tag-api-v1-testmod/tags/block/bricks.json @@ -0,0 +1,7 @@ +{ + "replace": false, + "values": [ + "minecraft:bricks", + "minecraft:stone_bricks" + ] +} diff --git a/fabric-tag-api-v1/src/testmod/resources/data/fabric-tag-api-v1-testmod/tags/block/more_brick_blocks.json b/fabric-tag-api-v1/src/testmod/resources/data/fabric-tag-api-v1-testmod/tags/block/more_brick_blocks.json new file mode 100644 index 0000000000..215aa4e800 --- /dev/null +++ b/fabric-tag-api-v1/src/testmod/resources/data/fabric-tag-api-v1-testmod/tags/block/more_brick_blocks.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "minecraft:red_nether_bricks" + ] +} diff --git a/fabric-tag-api-v1/src/testmod/resources/data/fabric-tag-api-v1-testmod/tags/item/beetroots.json b/fabric-tag-api-v1/src/testmod/resources/data/fabric-tag-api-v1-testmod/tags/item/beetroots.json new file mode 100644 index 0000000000..a3617f9e8a --- /dev/null +++ b/fabric-tag-api-v1/src/testmod/resources/data/fabric-tag-api-v1-testmod/tags/item/beetroots.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "minecraft:beetroot" + ] +} diff --git a/fabric-tag-api-v1/src/testmod/resources/data/fabric-tag-api-v1-testmod/tags/item/expensive_rocks.json b/fabric-tag-api-v1/src/testmod/resources/data/fabric-tag-api-v1-testmod/tags/item/expensive_rocks.json new file mode 100644 index 0000000000..0f3bdf92c3 --- /dev/null +++ b/fabric-tag-api-v1/src/testmod/resources/data/fabric-tag-api-v1-testmod/tags/item/expensive_rocks.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "minecraft:emerald" + ] +} diff --git a/fabric-tag-api-v1/src/testmod/resources/data/fabric-tag-api-v1-testmod/tags/item/gems.json b/fabric-tag-api-v1/src/testmod/resources/data/fabric-tag-api-v1-testmod/tags/item/gems.json new file mode 100644 index 0000000000..0b7f522446 --- /dev/null +++ b/fabric-tag-api-v1/src/testmod/resources/data/fabric-tag-api-v1-testmod/tags/item/gems.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "minecraft:diamond" + ] +} diff --git a/fabric-tag-api-v1/src/testmod/resources/data/fabric-tag-api-v1-testmod/tags/item/redstone_dusts.json b/fabric-tag-api-v1/src/testmod/resources/data/fabric-tag-api-v1-testmod/tags/item/redstone_dusts.json new file mode 100644 index 0000000000..ffe4ba8887 --- /dev/null +++ b/fabric-tag-api-v1/src/testmod/resources/data/fabric-tag-api-v1-testmod/tags/item/redstone_dusts.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "minecraft:redstone" + ] +} diff --git a/fabric-tag-api-v1/src/testmod/resources/data/fabric-tag-api-v1-testmod/tags/item/redstone_powders.json b/fabric-tag-api-v1/src/testmod/resources/data/fabric-tag-api-v1-testmod/tags/item/redstone_powders.json new file mode 100644 index 0000000000..d275da3f43 --- /dev/null +++ b/fabric-tag-api-v1/src/testmod/resources/data/fabric-tag-api-v1-testmod/tags/item/redstone_powders.json @@ -0,0 +1,5 @@ +{ + "replace": false, + "values": [ + ] +} diff --git a/fabric-tag-api-v1/src/testmod/resources/data/fabric-tag-api-v1-testmod/tags/loot_table/nether_bricks_1.json b/fabric-tag-api-v1/src/testmod/resources/data/fabric-tag-api-v1-testmod/tags/loot_table/nether_bricks_1.json new file mode 100644 index 0000000000..2e3d5ab654 --- /dev/null +++ b/fabric-tag-api-v1/src/testmod/resources/data/fabric-tag-api-v1-testmod/tags/loot_table/nether_bricks_1.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "minecraft:blocks/nether_bricks" + ] +} diff --git a/fabric-tag-api-v1/src/testmod/resources/data/fabric-tag-api-v1-testmod/tags/loot_table/nether_bricks_2.json b/fabric-tag-api-v1/src/testmod/resources/data/fabric-tag-api-v1-testmod/tags/loot_table/nether_bricks_2.json new file mode 100644 index 0000000000..0fc36c475d --- /dev/null +++ b/fabric-tag-api-v1/src/testmod/resources/data/fabric-tag-api-v1-testmod/tags/loot_table/nether_bricks_2.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "minecraft:blocks/red_nether_bricks" + ] +} diff --git a/fabric-tag-api-v1/src/testmod/resources/data/fabric-tag-api-v1-testmod/tags/worldgen/biome/classic.json b/fabric-tag-api-v1/src/testmod/resources/data/fabric-tag-api-v1-testmod/tags/worldgen/biome/classic.json new file mode 100644 index 0000000000..946af1ea02 --- /dev/null +++ b/fabric-tag-api-v1/src/testmod/resources/data/fabric-tag-api-v1-testmod/tags/worldgen/biome/classic.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "minecraft:plains" + ] +} diff --git a/fabric-tag-api-v1/src/testmod/resources/data/fabric-tag-api-v1-testmod/tags/worldgen/biome/traditional.json b/fabric-tag-api-v1/src/testmod/resources/data/fabric-tag-api-v1-testmod/tags/worldgen/biome/traditional.json new file mode 100644 index 0000000000..998789efbf --- /dev/null +++ b/fabric-tag-api-v1/src/testmod/resources/data/fabric-tag-api-v1-testmod/tags/worldgen/biome/traditional.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "minecraft:desert" + ] +} diff --git a/fabric-tag-api-v1/src/testmod/resources/fabric.mod.json b/fabric-tag-api-v1/src/testmod/resources/fabric.mod.json index 655e17f28d..822e3f73be 100644 --- a/fabric-tag-api-v1/src/testmod/resources/fabric.mod.json +++ b/fabric-tag-api-v1/src/testmod/resources/fabric.mod.json @@ -10,6 +10,7 @@ }, "entrypoints": { "main": [ + "net.fabricmc.fabric.test.tag.TagAliasTest" ] } }