Add a bunch of tags from the omnibus.

Fix test imports. And update patches for line numbers.
This commit is contained in:
LexManos committed 2019-09-03 18:51:09 -07:00
1 parent b5b43a5a36
commit 2c8c022034
122 files changed
+1122 -61

No files matched your search

@@ -36,11 +36,54 @@ public class Tags
public static final Tag<Block> CHESTS_WOODEN = tag("chests/wooden");
public static final Tag<Block> COBBLESTONE = tag("cobblestone");
public static final Tag<Block> DIRT = tag("dirt");
public static final Tag<Block> END_STONES = tag("end_stones");
public static final Tag<Block> FENCE_GATES = tag("fence_gates");
public static final Tag<Block> FENCE_GATES_WOODEN = tag("fence_gates/wooden");
public static final Tag<Block> FENCES = tag("fences");
public static final Tag<Block> FENCES_NETHER_BRICK = tag("fences/nether_brick");
public static final Tag<Block> FENCES_WOODEN = tag("fences/wooden");
public static final Tag<Block> GLASS = tag("glass");
public static final Tag<Block> GLASS_BLACK = tag("glass/black");
public static final Tag<Block> GLASS_BLUE = tag("glass/blue");
public static final Tag<Block> GLASS_BROWN = tag("glass/brown");
public static final Tag<Block> GLASS_COLORLESS = tag("glass/colorless");
public static final Tag<Block> GLASS_CYAN = tag("glass/cyan");
public static final Tag<Block> GLASS_GRAY = tag("glass/gray");
public static final Tag<Block> GLASS_GREEN = tag("glass/green");
public static final Tag<Block> GLASS_LIGHT_BLUE = tag("glass/light_blue");
public static final Tag<Block> GLASS_LIGHT_GRAY = tag("glass/light_gray");
public static final Tag<Block> GLASS_LIME = tag("glass/lime");
public static final Tag<Block> GLASS_MAGENTA = tag("glass/magenta");
public static final Tag<Block> GLASS_ORANGE = tag("glass/orange");
public static final Tag<Block> GLASS_PINK = tag("glass/pink");
public static final Tag<Block> GLASS_PURPLE = tag("glass/purple");
public static final Tag<Block> GLASS_RED = tag("glass/red");
public static final Tag<Block> GLASS_WHITE = tag("glass/white");
public static final Tag<Block> GLASS_YELLOW = tag("glass/yellow");
public static final Tag<Block> GLASS_PANES = tag("glass_panes");
public static final Tag<Block> GLASS_PANES_BLACK = tag("glass_panes/black");
public static final Tag<Block> GLASS_PANES_BLUE = tag("glass_panes/blue");
public static final Tag<Block> GLASS_PANES_BROWN = tag("glass_panes/brown");
public static final Tag<Block> GLASS_PANES_COLORLESS = tag("glass_panes/colorless");
public static final Tag<Block> GLASS_PANES_CYAN = tag("glass_panes/cyan");
public static final Tag<Block> GLASS_PANES_GRAY = tag("glass_panes/gray");
public static final Tag<Block> GLASS_PANES_GREEN = tag("glass_panes/green");
public static final Tag<Block> GLASS_PANES_LIGHT_BLUE = tag("glass_panes/light_blue");
public static final Tag<Block> GLASS_PANES_LIGHT_GRAY = tag("glass_panes/light_gray");
public static final Tag<Block> GLASS_PANES_LIME = tag("glass_panes/lime");
public static final Tag<Block> GLASS_PANES_MAGENTA = tag("glass_panes/magenta");
public static final Tag<Block> GLASS_PANES_ORANGE = tag("glass_panes/orange");
public static final Tag<Block> GLASS_PANES_PINK = tag("glass_panes/pink");
public static final Tag<Block> GLASS_PANES_PURPLE = tag("glass_panes/purple");
public static final Tag<Block> GLASS_PANES_RED = tag("glass_panes/red");
public static final Tag<Block> GLASS_PANES_WHITE = tag("glass_panes/white");
public static final Tag<Block> GLASS_PANES_YELLOW = tag("glass_panes/yellow");
public static final Tag<Block> GRAVEL = tag("gravel");
public static final Tag<Block> NETHERRACK = tag("netherrack");
public static final Tag<Block> OBSIDIAN = tag("obsidian");
public static final Tag<Block> ORES = tag("ores");
public static final Tag<Block> ORES_COAL = tag("ores/coal");
public static final Tag<Block> ORES_DIAMOND = tag("ores/diamond");
@@ -50,6 +93,14 @@ public class Tags
public static final Tag<Block> ORES_LAPIS = tag("ores/lapis");
public static final Tag<Block> ORES_QUARTZ = tag("ores/quartz");
public static final Tag<Block> ORES_REDSTONE = tag("ores/redstone");
public static final Tag<Block> SAND = tag("sand");
public static final Tag<Block> SAND_COLORLESS = tag("sand/colorless");
public static final Tag<Block> SAND_RED = tag("sand/red");
public static final Tag<Block> SANDSTONE = tag("sandstone");
public static final Tag<Block> STAINED_GLASS = tag("stained_glass");
public static final Tag<Block> STAINED_GLASS_PANES = tag("stained_glass_panes");
public static final Tag<Block> STONE = tag("stone");
public static final Tag<Block> STORAGE_BLOCKS = tag("storage_blocks");
public static final Tag<Block> STORAGE_BLOCKS_COAL = tag("storage_blocks/coal");
@@ -69,15 +120,25 @@ public class Tags
public static class Items
{
public static final Tag<Item> ARROWS = tag("arrows");
public static final Tag<Item> BONES = tag("bones");
public static final Tag<Item> BOOKSHELVES = tag("bookshelves");
public static final Tag<Item> CHESTS = tag("chests");
public static final Tag<Item> CHESTS_ENDER = tag("chests/ender");
public static final Tag<Item> CHESTS_TRAPPED = tag("chests/trapped");
public static final Tag<Item> CHESTS_WOODEN = tag("chests/wooden");
public static final Tag<Item> COBBLESTONE = tag("cobblestone");
public static final Tag<Item> CROPS = tag("crops");
public static final Tag<Item> CROPS_BEETROOT = tag("crops/beetroot");
public static final Tag<Item> CROPS_CARROT = tag("crops/carrot");
public static final Tag<Item> CROPS_NETHER_WART = tag("crops/nether_wart");
public static final Tag<Item> CROPS_POTATOE = tag("crops/potatoe");
public static final Tag<Item> CROPS_WHEAT = tag("crops/wheat");
public static final Tag<Item> DUSTS = tag("dusts");
public static final Tag<Item> DUSTS_PRISMARINE = tag("dusts/prismarine");
public static final Tag<Item> DUSTS_REDSTONE = tag("dusts/redstone");
public static final Tag<Item> DUSTS_GLOWSTONE = tag("dusts/glowstone");
public static final Tag<Item> DYES = tag("dyes");
public static final Tag<Item> DYES_BLACK = tag("dyes/black");
public static final Tag<Item> DYES_RED = tag("dyes/red");
@@ -95,6 +156,11 @@ public class Tags
public static final Tag<Item> DYES_MAGENTA = tag("dyes/magenta");
public static final Tag<Item> DYES_ORANGE = tag("dyes/orange");
public static final Tag<Item> DYES_WHITE = tag("dyes/white");
public static final Tag<Item> EGGS = tag("eggs");
public static final Tag<Item> END_STONES = tag("end_stones");
public static final Tag<Item> ENDER_PEARLS = tag("ender_pearls");
public static final Tag<Item> FEATHERS = tag("feathers");
public static final Tag<Item> FENCE_GATES = tag("fence_gates");
public static final Tag<Item> FENCE_GATES_WOODEN = tag("fence_gates/wooden");
public static final Tag<Item> FENCES = tag("fences");
@@ -106,15 +172,62 @@ public class Tags
public static final Tag<Item> GEMS_LAPIS = tag("gems/lapis");
public static final Tag<Item> GEMS_PRISMARINE = tag("gems/prismarine");
public static final Tag<Item> GEMS_QUARTZ = tag("gems/quartz");
public static final Tag<Item> GLASS = tag("glass");
public static final Tag<Item> GLASS_BLACK = tag("glass/black");
public static final Tag<Item> GLASS_BLUE = tag("glass/blue");
public static final Tag<Item> GLASS_BROWN = tag("glass/brown");
public static final Tag<Item> GLASS_COLORLESS = tag("glass/colorless");
public static final Tag<Item> GLASS_CYAN = tag("glass/cyan");
public static final Tag<Item> GLASS_GRAY = tag("glass/gray");
public static final Tag<Item> GLASS_GREEN = tag("glass/green");
public static final Tag<Item> GLASS_LIGHT_BLUE = tag("glass/light_blue");
public static final Tag<Item> GLASS_LIGHT_GRAY = tag("glass/light_gray");
public static final Tag<Item> GLASS_LIME = tag("glass/lime");
public static final Tag<Item> GLASS_MAGENTA = tag("glass/magenta");
public static final Tag<Item> GLASS_ORANGE = tag("glass/orange");
public static final Tag<Item> GLASS_PINK = tag("glass/pink");
public static final Tag<Item> GLASS_PURPLE = tag("glass/purple");
public static final Tag<Item> GLASS_RED = tag("glass/red");
public static final Tag<Item> GLASS_WHITE = tag("glass/white");
public static final Tag<Item> GLASS_YELLOW = tag("glass/yellow");
public static final Tag<Item> GLASS_PANES = tag("glass_panes");
public static final Tag<Item> GLASS_PANES_BLACK = tag("glass_panes/black");
public static final Tag<Item> GLASS_PANES_BLUE = tag("glass_panes/blue");
public static final Tag<Item> GLASS_PANES_BROWN = tag("glass_panes/brown");
public static final Tag<Item> GLASS_PANES_COLORLESS = tag("glass_panes/colorless");
public static final Tag<Item> GLASS_PANES_CYAN = tag("glass_panes/cyan");
public static final Tag<Item> GLASS_PANES_GRAY = tag("glass_panes/gray");
public static final Tag<Item> GLASS_PANES_GREEN = tag("glass_panes/green");
public static final Tag<Item> GLASS_PANES_LIGHT_BLUE = tag("glass_panes/light_blue");
public static final Tag<Item> GLASS_PANES_LIGHT_GRAY = tag("glass_panes/light_gray");
public static final Tag<Item> GLASS_PANES_LIME = tag("glass_panes/lime");
public static final Tag<Item> GLASS_PANES_MAGENTA = tag("glass_panes/magenta");
public static final Tag<Item> GLASS_PANES_ORANGE = tag("glass_panes/orange");
public static final Tag<Item> GLASS_PANES_PINK = tag("glass_panes/pink");
public static final Tag<Item> GLASS_PANES_PURPLE = tag("glass_panes/purple");
public static final Tag<Item> GLASS_PANES_RED = tag("glass_panes/red");
public static final Tag<Item> GLASS_PANES_WHITE = tag("glass_panes/white");
public static final Tag<Item> GLASS_PANES_YELLOW = tag("glass_panes/yellow");
public static final Tag<Item> GRAVEL = tag("gravel");
public static final Tag<Item> GUNPOWDER = tag("gunpowder");
public static final Tag<Item> HEADS = tag("heads");
public static final Tag<Item> INGOTS = tag("ingots");
public static final Tag<Item> INGOTS_BRICK = tag("ingots/brick");
public static final Tag<Item> INGOTS_GOLD = tag("ingots/gold");
public static final Tag<Item> INGOTS_IRON = tag("ingots/iron");
public static final Tag<Item> INGOTS_NETHER_BRICK = tag("ingots/nether_brick");
public static final Tag<Item> LEATHER = tag("leather");
public static final Tag<Item> MUSHROOMS = tag("mushrooms");
public static final Tag<Item> MUSIC_DISCS = tag("music_discs");
public static final Tag<Item> NETHER_STARS = tag("nether_stars");
public static final Tag<Item> NETHERRACK = tag("netherrack");
public static final Tag<Item> NUGGETS = tag("nuggets");
public static final Tag<Item> NUGGETS_GOLD = tag("nuggets/gold");
public static final Tag<Item> NUGGETS_IRON = tag("nuggets/iron");
public static final Tag<Item> OBSIDIAN = tag("obsidian");
public static final Tag<Item> ORES = tag("ores");
public static final Tag<Item> ORES_COAL = tag("ores/coal");
public static final Tag<Item> ORES_DIAMOND = tag("ores/diamond");
@@ -127,6 +240,20 @@ public class Tags
public static final Tag<Item> RODS = tag("rods");
public static final Tag<Item> RODS_BLAZE = tag("rods/blaze");
public static final Tag<Item> RODS_WOODEN = tag("rods/wooden");
public static final Tag<Item> SAND = tag("sand");
public static final Tag<Item> SAND_COLORLESS = tag("sand/colorless");
public static final Tag<Item> SAND_RED = tag("sand/red");
public static final Tag<Item> SANDSTONE = tag("sandstone");
public static final Tag<Item> SEEDS = tag("seeds");
public static final Tag<Item> SEEDS_BEETROOT = tag("seeds/beetroot");
public static final Tag<Item> SEEDS_MELON = tag("seeds/melon");
public static final Tag<Item> SEEDS_PUMPKIN = tag("seeds/pumpkin");
public static final Tag<Item> SEEDS_WHEAT = tag("seeds/wheat");
public static final Tag<Item> SLIMEBALLS = tag("slimeballs");
public static final Tag<Item> STAINED_GLASS = tag("stained_glass");
public static final Tag<Item> STAINED_GLASS_PANES = tag("stained_glass_panes");
public static final Tag<Item> STONE = tag("stone");
public static final Tag<Item> STORAGE_BLOCKS = tag("storage_blocks");
public static final Tag<Item> STORAGE_BLOCKS_COAL = tag("storage_blocks/coal");
@@ -137,6 +264,7 @@ public class Tags
public static final Tag<Item> STORAGE_BLOCKS_LAPIS = tag("storage_blocks/lapis");
public static final Tag<Item> STORAGE_BLOCKS_QUARTZ = tag("storage_blocks/quartz");
public static final Tag<Item> STORAGE_BLOCKS_REDSTONE = tag("storage_blocks/redstone");
public static final Tag<Item> STRING = tag("string");
private static Tag<Item> tag(String name)
{
@@ -20,14 +20,21 @@
package net.minecraftforge.common.data;
import net.minecraft.data.DataGenerator;
import net.minecraft.item.DyeColor;
import net.minecraft.tags.Tag;
import net.minecraft.util.ResourceLocation;
import net.minecraftforge.common.Tags;
import net.minecraftforge.registries.ForgeRegistries;
import net.minecraft.block.Block;
import net.minecraft.block.Blocks;
import net.minecraft.data.BlockTagsProvider;
import static net.minecraftforge.common.Tags.Blocks.*;
import java.nio.file.Path;
import java.util.Locale;
import java.util.Set;
import java.util.function.Consumer;
import java.util.stream.Collectors;
public class ForgeBlockTagsProvider extends BlockTagsProvider
@@ -51,11 +58,21 @@ public class ForgeBlockTagsProvider extends BlockTagsProvider
getBuilder(CHESTS_WOODEN).add(Blocks.CHEST, Blocks.TRAPPED_CHEST);
getBuilder(COBBLESTONE).add(Blocks.COBBLESTONE, Blocks.INFESTED_COBBLESTONE, Blocks.MOSSY_COBBLESTONE);
getBuilder(DIRT).add(Blocks.DIRT, Blocks.COARSE_DIRT, Blocks.PODZOL);
getBuilder(END_STONES).add(Blocks.END_STONE);
getBuilder(FENCE_GATES).add(FENCE_GATES_WOODEN);
getBuilder(FENCE_GATES_WOODEN).add(Blocks.OAK_FENCE_GATE, Blocks.SPRUCE_FENCE_GATE, Blocks.BIRCH_FENCE_GATE, Blocks.JUNGLE_FENCE_GATE, Blocks.ACACIA_FENCE_GATE, Blocks.DARK_OAK_FENCE_GATE);
getBuilder(FENCES).add(FENCES_NETHER_BRICK, FENCES_WOODEN);
getBuilder(FENCES_NETHER_BRICK).add(Blocks.NETHER_BRICK_FENCE);
getBuilder(FENCES_WOODEN).add(Blocks.OAK_FENCE, Blocks.SPRUCE_FENCE, Blocks.BIRCH_FENCE, Blocks.JUNGLE_FENCE, Blocks.ACACIA_FENCE, Blocks.DARK_OAK_FENCE);
getBuilder(GLASS).add(GLASS_COLORLESS, STAINED_GLASS);
getBuilder(GLASS_COLORLESS).add(Blocks.GLASS);
addColored(getBuilder(STAINED_GLASS)::add, GLASS, "{color}_stained_glass");
getBuilder(GLASS_PANES).add(GLASS_PANES_COLORLESS, STAINED_GLASS_PANES);
getBuilder(GLASS_PANES_COLORLESS).add(Blocks.GLASS_PANE);
addColored(getBuilder(STAINED_GLASS_PANES)::add, GLASS_PANES, "{color}_stained_glass_pane");
getBuilder(GRAVEL).add(Blocks.GRAVEL);
getBuilder(NETHERRACK).add(Blocks.NETHERRACK);
getBuilder(OBSIDIAN).add(Blocks.OBSIDIAN);
getBuilder(ORES).add(ORES_COAL, ORES_DIAMOND, ORES_EMERALD, ORES_GOLD, ORES_IRON, ORES_LAPIS, ORES_REDSTONE, ORES_QUARTZ);
getBuilder(ORES_COAL).add(Blocks.COAL_ORE);
getBuilder(ORES_DIAMOND).add(Blocks.DIAMOND_ORE);
@@ -65,6 +82,10 @@ public class ForgeBlockTagsProvider extends BlockTagsProvider
getBuilder(ORES_LAPIS).add(Blocks.LAPIS_ORE);
getBuilder(ORES_QUARTZ).add(Blocks.NETHER_QUARTZ_ORE);
getBuilder(ORES_REDSTONE).add(Blocks.REDSTONE_ORE);
getBuilder(SAND).add(SAND_COLORLESS, SAND_RED);
getBuilder(SAND_COLORLESS).add(Blocks.SAND);
getBuilder(SAND_RED).add(Blocks.RED_SAND);
getBuilder(SANDSTONE).add(Blocks.SANDSTONE, Blocks.CUT_SANDSTONE, Blocks.CHISELED_SANDSTONE, Blocks.SMOOTH_SANDSTONE, Blocks.RED_SANDSTONE, Blocks.CUT_RED_SANDSTONE, Blocks.CHISELED_RED_SANDSTONE, Blocks.SMOOTH_RED_SANDSTONE);
getBuilder(STONE).add(Blocks.ANDESITE, Blocks.DIORITE, Blocks.GRANITE, Blocks.INFESTED_STONE, Blocks.STONE, Blocks.POLISHED_ANDESITE, Blocks.POLISHED_DIORITE, Blocks.POLISHED_GRANITE);
getBuilder(STORAGE_BLOCKS).add(STORAGE_BLOCKS_COAL, STORAGE_BLOCKS_DIAMOND, STORAGE_BLOCKS_EMERALD, STORAGE_BLOCKS_GOLD, STORAGE_BLOCKS_IRON, STORAGE_BLOCKS_LAPIS, STORAGE_BLOCKS_QUARTZ, STORAGE_BLOCKS_REDSTONE);
getBuilder(STORAGE_BLOCKS_COAL).add(Blocks.COAL_BLOCK);
@@ -77,6 +98,35 @@ public class ForgeBlockTagsProvider extends BlockTagsProvider
getBuilder(STORAGE_BLOCKS_REDSTONE).add(Blocks.REDSTONE_BLOCK);
}
private void addColored(Consumer<Block> consumer, Tag<Block> group, String pattern)
{
String prefix = group.getId().getPath().toUpperCase(Locale.ENGLISH) + '_';
for (DyeColor color : DyeColor.values())
{
ResourceLocation key = new ResourceLocation("minecraft", pattern.replace("{color}", color.getTranslationKey()));
Tag<Block> tag = getForgeTag(prefix + color.getTranslationKey());
Block block = ForgeRegistries.BLOCKS.getValue(key);
if (block == null || block == Blocks.AIR)
throw new IllegalStateException("Unknown vanilla block: " + key.toString());
getBuilder(tag).add(block);
consumer.accept(block);
}
}
@SuppressWarnings("unchecked")
private Tag<Block> getForgeTag(String name)
{
try
{
name = name.toUpperCase(Locale.ENGLISH);
return (Tag<Block>)Tags.Blocks.class.getDeclaredField(name).get(null);
}
catch (IllegalArgumentException | IllegalAccessException | NoSuchFieldException | SecurityException e)
{
throw new IllegalStateException(Tags.Blocks.class.getName() + " is missing tag name: " + name);
}
}
@Override
protected Path makePath(ResourceLocation id)
{
@@ -20,14 +20,21 @@
package net.minecraftforge.common.data;
import java.nio.file.Path;
import java.util.Locale;
import java.util.Set;
import java.util.function.Consumer;
import java.util.stream.Collectors;
import net.minecraft.block.Block;
import net.minecraft.data.DataGenerator;
import net.minecraft.data.ItemTagsProvider;
import net.minecraft.item.DyeColor;
import net.minecraft.item.Item;
import net.minecraft.item.Items;
import net.minecraft.tags.Tag;
import net.minecraft.util.ResourceLocation;
import net.minecraftforge.common.Tags;
import net.minecraftforge.registries.ForgeRegistries;
public class ForgeItemTagsProvider extends ItemTagsProvider
{
@@ -44,32 +51,29 @@ public class ForgeItemTagsProvider extends ItemTagsProvider
super.registerTags();
filter = this.tagToBuilder.entrySet().stream().map(e -> e.getKey().getId()).collect(Collectors.toSet());
getBuilder(Tags.Items.ARROWS).add(Items.ARROW, Items.TIPPED_ARROW, Items.SPECTRAL_ARROW);
getBuilder(Tags.Items.BONES).add(Items.BONE);
getBuilder(Tags.Items.BOOKSHELVES).add(Items.BOOKSHELF);
copy(Tags.Blocks.CHESTS, Tags.Items.CHESTS);
copy(Tags.Blocks.CHESTS_ENDER, Tags.Items.CHESTS_ENDER);
copy(Tags.Blocks.CHESTS_TRAPPED, Tags.Items.CHESTS_TRAPPED);
copy(Tags.Blocks.CHESTS_WOODEN, Tags.Items.CHESTS_WOODEN);
copy(Tags.Blocks.COBBLESTONE, Tags.Items.COBBLESTONE);
getBuilder(Tags.Items.CROPS).add(Tags.Items.CROPS_BEETROOT, Tags.Items.CROPS_CARROT, Tags.Items.CROPS_NETHER_WART, Tags.Items.CROPS_POTATOE, Tags.Items.CROPS_WHEAT);
getBuilder(Tags.Items.CROPS_BEETROOT).add(Items.BEETROOT);
getBuilder(Tags.Items.CROPS_CARROT).add(Items.CARROT);
getBuilder(Tags.Items.CROPS_NETHER_WART).add(Items.NETHER_WART);
getBuilder(Tags.Items.CROPS_POTATOE).add(Items.POTATO);
getBuilder(Tags.Items.CROPS_WHEAT).add(Items.WHEAT);
getBuilder(Tags.Items.DUSTS).add(Tags.Items.DUSTS_GLOWSTONE, Tags.Items.DUSTS_PRISMARINE, Tags.Items.DUSTS_REDSTONE);
getBuilder(Tags.Items.DUSTS_GLOWSTONE).add(Items.GLOWSTONE_DUST);
getBuilder(Tags.Items.DUSTS_PRISMARINE).add(Items.PRISMARINE_SHARD);
getBuilder(Tags.Items.DUSTS_REDSTONE).add(Items.REDSTONE);
getBuilder(Tags.Items.DYES).add(Tags.Items.DYES_BLACK, Tags.Items.DYES_RED, Tags.Items.DYES_GREEN, Tags.Items.DYES_BROWN, Tags.Items.DYES_BLUE, Tags.Items.DYES_PURPLE, Tags.Items.DYES_CYAN, Tags.Items.DYES_LIGHT_GRAY, Tags.Items.DYES_GRAY, Tags.Items.DYES_PINK, Tags.Items.DYES_LIME, Tags.Items.DYES_YELLOW, Tags.Items.DYES_LIGHT_BLUE, Tags.Items.DYES_MAGENTA, Tags.Items.DYES_ORANGE, Tags.Items.DYES_WHITE);
getBuilder(Tags.Items.DYES_BLACK).add(Items.BLACK_DYE);
getBuilder(Tags.Items.DYES_BLUE).add(Items.BLUE_DYE);
getBuilder(Tags.Items.DYES_BROWN).add(Items.BROWN_DYE);
getBuilder(Tags.Items.DYES_CYAN).add(Items.CYAN_DYE);
getBuilder(Tags.Items.DYES_GRAY).add(Items.GRAY_DYE);
getBuilder(Tags.Items.DYES_GREEN).add(Items.GREEN_DYE);
getBuilder(Tags.Items.DYES_LIGHT_BLUE).add(Items.LIGHT_BLUE_DYE);
getBuilder(Tags.Items.DYES_LIGHT_GRAY).add(Items.LIGHT_GRAY_DYE);
getBuilder(Tags.Items.DYES_LIME).add(Items.LIME_DYE);
getBuilder(Tags.Items.DYES_MAGENTA).add(Items.MAGENTA_DYE);
getBuilder(Tags.Items.DYES_ORANGE).add(Items.ORANGE_DYE);
getBuilder(Tags.Items.DYES_PINK).add(Items.PINK_DYE);
getBuilder(Tags.Items.DYES_PURPLE).add(Items.PURPLE_DYE);
getBuilder(Tags.Items.DYES_RED).add(Items.RED_DYE);
getBuilder(Tags.Items.DYES_WHITE).add(Items.WHITE_DYE);
getBuilder(Tags.Items.DYES_YELLOW).add(Items.YELLOW_DYE);
addColored(getBuilder(Tags.Items.DYES)::add, Tags.Items.DYES, "{color}_dye");
getBuilder(Tags.Items.EGGS).add(Items.EGG);
copy(Tags.Blocks.END_STONES, Tags.Items.END_STONES);
getBuilder(Tags.Items.ENDER_PEARLS).add(Items.ENDER_PEARL);
getBuilder(Tags.Items.FEATHERS).add(Items.FEATHER);
copy(Tags.Blocks.FENCE_GATES, Tags.Items.FENCE_GATES);
copy(Tags.Blocks.FENCE_GATES_WOODEN, Tags.Items.FENCE_GATES_WOODEN);
copy(Tags.Blocks.FENCES, Tags.Items.FENCES);
@@ -81,15 +85,27 @@ public class ForgeItemTagsProvider extends ItemTagsProvider
getBuilder(Tags.Items.GEMS_LAPIS).add(Items.LAPIS_LAZULI);
getBuilder(Tags.Items.GEMS_PRISMARINE).add(Items.PRISMARINE_CRYSTALS);
getBuilder(Tags.Items.GEMS_QUARTZ).add(Items.QUARTZ);
copy(Tags.Blocks.GLASS, Tags.Items.GLASS);
copyColored(Tags.Blocks.GLASS, Tags.Items.GLASS);
copy(Tags.Blocks.GLASS_PANES, Tags.Items.GLASS_PANES);
copyColored(Tags.Blocks.GLASS_PANES, Tags.Items.GLASS_PANES);
copy(Tags.Blocks.GRAVEL, Tags.Items.GRAVEL);
getBuilder(Tags.Items.GUNPOWDER).add(Items.GUNPOWDER);
getBuilder(Tags.Items.HEADS).add(Items.CREEPER_HEAD, Items.DRAGON_HEAD, Items.PLAYER_HEAD, Items.SKELETON_SKULL, Items.WITHER_SKELETON_SKULL, Items.ZOMBIE_HEAD);
getBuilder(Tags.Items.INGOTS).add(Tags.Items.INGOTS_IRON, Tags.Items.INGOTS_GOLD, Tags.Items.INGOTS_BRICK, Tags.Items.INGOTS_NETHER_BRICK);
getBuilder(Tags.Items.INGOTS_BRICK).add(Items.BRICK);
getBuilder(Tags.Items.INGOTS_GOLD).add(Items.GOLD_INGOT);
getBuilder(Tags.Items.INGOTS_IRON).add(Items.IRON_INGOT);
getBuilder(Tags.Items.INGOTS_NETHER_BRICK).add(Items.NETHER_BRICK);
getBuilder(Tags.Items.LEATHER).add(Items.LEATHER);
getBuilder(Tags.Items.MUSHROOMS).add(Items.BROWN_MUSHROOM, Items.RED_MUSHROOM);
getBuilder(Tags.Items.MUSIC_DISCS).add(Items.MUSIC_DISC_13, Items.MUSIC_DISC_CAT, Items.MUSIC_DISC_BLOCKS, Items.MUSIC_DISC_CHIRP, Items.MUSIC_DISC_FAR, Items.MUSIC_DISC_MALL, Items.MUSIC_DISC_MELLOHI, Items.MUSIC_DISC_STAL, Items.MUSIC_DISC_STRAD, Items.MUSIC_DISC_WARD, Items.MUSIC_DISC_11, Items.MUSIC_DISC_WAIT);
getBuilder(Tags.Items.NETHER_STARS).add(Items.NETHER_STAR);
copy(Tags.Blocks.NETHERRACK, Tags.Items.NETHERRACK);
getBuilder(Tags.Items.NUGGETS).add(Tags.Items.NUGGETS_IRON, Tags.Items.NUGGETS_GOLD);
getBuilder(Tags.Items.NUGGETS_IRON).add(Items.IRON_NUGGET);
getBuilder(Tags.Items.NUGGETS_GOLD).add(Items.GOLD_NUGGET);
copy(Tags.Blocks.OBSIDIAN, Tags.Items.OBSIDIAN);
copy(Tags.Blocks.ORES, Tags.Items.ORES);
copy(Tags.Blocks.ORES_COAL, Tags.Items.ORES_COAL);
copy(Tags.Blocks.ORES_DIAMOND, Tags.Items.ORES_DIAMOND);
@@ -102,6 +118,18 @@ public class ForgeItemTagsProvider extends ItemTagsProvider
getBuilder(Tags.Items.RODS).add(Tags.Items.RODS_BLAZE, Tags.Items.RODS_WOODEN);
getBuilder(Tags.Items.RODS_BLAZE).add(Items.BLAZE_ROD);
getBuilder(Tags.Items.RODS_WOODEN).add(Items.STICK);
copy(Tags.Blocks.SAND, Tags.Items.SAND);
copy(Tags.Blocks.SAND_COLORLESS, Tags.Items.SAND_COLORLESS);
copy(Tags.Blocks.SAND_RED, Tags.Items.SAND_RED);
copy(Tags.Blocks.SANDSTONE, Tags.Items.SANDSTONE);
getBuilder(Tags.Items.SEEDS).add(Tags.Items.SEEDS_BEETROOT, Tags.Items.SEEDS_MELON, Tags.Items.SEEDS_PUMPKIN, Tags.Items.SEEDS_WHEAT);
getBuilder(Tags.Items.SEEDS_BEETROOT).add(Items.BEETROOT_SEEDS);
getBuilder(Tags.Items.SEEDS_MELON).add(Items.MELON_SEEDS);
getBuilder(Tags.Items.SEEDS_PUMPKIN).add(Items.PUMPKIN_SEEDS);
getBuilder(Tags.Items.SEEDS_WHEAT).add(Items.WHEAT_SEEDS);
getBuilder(Tags.Items.SLIMEBALLS).add(Items.SLIME_BALL);
copy(Tags.Blocks.STAINED_GLASS, Tags.Items.STAINED_GLASS);
copy(Tags.Blocks.STAINED_GLASS_PANES, Tags.Items.STAINED_GLASS_PANES);
copy(Tags.Blocks.STONE, Tags.Items.STONE);
copy(Tags.Blocks.STORAGE_BLOCKS, Tags.Items.STORAGE_BLOCKS);
copy(Tags.Blocks.STORAGE_BLOCKS_COAL, Tags.Items.STORAGE_BLOCKS_COAL);
@@ -112,6 +140,63 @@ public class ForgeItemTagsProvider extends ItemTagsProvider
copy(Tags.Blocks.STORAGE_BLOCKS_LAPIS, Tags.Items.STORAGE_BLOCKS_LAPIS);
copy(Tags.Blocks.STORAGE_BLOCKS_QUARTZ, Tags.Items.STORAGE_BLOCKS_QUARTZ);
copy(Tags.Blocks.STORAGE_BLOCKS_REDSTONE, Tags.Items.STORAGE_BLOCKS_REDSTONE);
getBuilder(Tags.Items.STRING).add(Items.STRING);
}
private void addColored(Consumer<Item> consumer, Tag<Item> group, String pattern)
{
String prefix = group.getId().getPath().toUpperCase(Locale.ENGLISH) + '_';
for (DyeColor color : DyeColor.values())
{
ResourceLocation key = new ResourceLocation("minecraft", pattern.replace("{color}", color.getTranslationKey()));
Tag<Item> tag = getForgeItemTag(prefix + color.getTranslationKey());
Item item = ForgeRegistries.ITEMS.getValue(key);
if (item == null || item == Items.AIR)
throw new IllegalStateException("Unknown vanilla item: " + key.toString());
getBuilder(tag).add(item);
consumer.accept(item);
}
}
private void copyColored(Tag<Block> blockGroup, Tag<Item> itemGroup)
{
String blockPre = blockGroup.getId().getPath().toUpperCase(Locale.ENGLISH) + '_';
String itemPre = itemGroup.getId().getPath().toUpperCase(Locale.ENGLISH) + '_';
for (DyeColor color : DyeColor.values())
{
Tag<Block> from = getForgeBlockTag(blockPre + color.getTranslationKey());
Tag<Item> to = getForgeItemTag(itemPre + color.getTranslationKey());
copy(from, to);
}
copy(getForgeBlockTag(blockPre + "colorless"), getForgeItemTag(itemPre + "colorless"));
}
@SuppressWarnings("unchecked")
private Tag<Block> getForgeBlockTag(String name)
{
try
{
name = name.toUpperCase(Locale.ENGLISH);
return (Tag<Block>)Tags.Blocks.class.getDeclaredField(name).get(null);
}
catch (IllegalArgumentException | IllegalAccessException | NoSuchFieldException | SecurityException e)
{
throw new IllegalStateException(Tags.Blocks.class.getName() + " is missing tag name: " + name);
}
}
@SuppressWarnings("unchecked")
private Tag<Item> getForgeItemTag(String name)
{
try
{
name = name.toUpperCase(Locale.ENGLISH);
return (Tag<Item>)Tags.Items.class.getDeclaredField(name).get(null);
}
catch (IllegalArgumentException | IllegalAccessException | NoSuchFieldException | SecurityException e)
{
throw new IllegalStateException(Tags.Items.class.getName() + " is missing tag name: " + name);
}
}
@Override