New method for creating modded tag references, fix connecting to vanilla servers.

This commit is contained in:
LexManos 2020-08-14 12:04:55 -07:00
parent 680c4062f4
commit 132cc3659d
9 changed files with 337 additions and 228 deletions

View file

@ -4,7 +4,7 @@
private final int field_196066_w;
private final float[] field_193352_x;
private final int field_196067_y;
+ private final net.minecraft.tags.ITag.INamedTag<Item> tag;
+ private final net.minecraftforge.common.Tags.IOptionalNamedTag<Item> tag;
private final int field_218390_z;
private DyeColor(int p_i50049_3_, String p_i50049_4_, int p_i50049_5_, MaterialColor p_i50049_6_, int p_i50049_7_, int p_i50049_8_) {
@ -12,7 +12,7 @@
int j = (p_i50049_5_ & '\uff00') >> 8;
int k = (p_i50049_5_ & 255) >> 0;
this.field_196066_w = k << 16 | j << 8 | i << 0;
+ this.tag = net.minecraft.tags.ItemTags.func_199901_a("forge:dyes/" + p_i50049_4_);
+ this.tag = net.minecraft.tags.ItemTags.createOptional(new net.minecraft.util.ResourceLocation("forge", "dyes/" + p_i50049_4_));
this.field_193352_x = new float[]{(float)i / 255.0F, (float)j / 255.0F, (float)k / 255.0F};
this.field_196067_y = p_i50049_7_;
}
@ -25,7 +25,7 @@
+ return field_193351_w;
+ }
+
+ public net.minecraft.tags.ITag.INamedTag<Item> getTag() {
+ public net.minecraftforge.common.Tags.IOptionalNamedTag<Item> getTag() {
+ return tag;
+ }
+

View file

@ -0,0 +1,13 @@
--- a/net/minecraft/tags/BlockTags.java
+++ b/net/minecraft/tags/BlockTags.java
@@ -97,6 +97,10 @@
return field_199899_c.func_232937_a_(p_199894_0_);
}
+ public static net.minecraftforge.common.Tags.IOptionalNamedTag<Block> createOptional(ResourceLocation name) {
+ return field_199899_c.createOptional(name, () -> null);
+ }
+
public static ITagCollection<Block> func_199896_a() {
return field_199899_c.func_232939_b_();
}

View file

@ -0,0 +1,13 @@
--- a/net/minecraft/tags/EntityTypeTags.java
+++ b/net/minecraft/tags/EntityTypeTags.java
@@ -16,6 +16,10 @@
return field_219766_c.func_232937_a_(p_232896_0_);
}
+ public static net.minecraftforge.common.Tags.IOptionalNamedTag<EntityType<?>> createOptional(ResourceLocation name) {
+ return field_219766_c.createOptional(name, () -> null);
+ }
+
public static ITagCollection<EntityType<?>> func_219762_a() {
return field_219766_c.func_232939_b_();
}

View file

@ -1,6 +1,13 @@
--- a/net/minecraft/tags/FluidTags.java
+++ b/net/minecraft/tags/FluidTags.java
@@ -16,4 +16,9 @@
@@ -13,7 +13,16 @@
return field_206961_c.func_232937_a_(p_206956_0_);
}
+ public static net.minecraftforge.common.Tags.IOptionalNamedTag<Fluid> createOptional(ResourceLocation name) {
+ return field_206961_c.createOptional(name, () -> null);
+ }
+
public static List<? extends ITag.INamedTag<Fluid>> func_241280_c_() {
return field_206961_c.func_241288_c_();
}

View file

@ -0,0 +1,13 @@
--- a/net/minecraft/tags/ItemTags.java
+++ b/net/minecraft/tags/ItemTags.java
@@ -65,6 +65,10 @@
return field_199906_c.func_232937_a_(p_199901_0_);
}
+ public static net.minecraftforge.common.Tags.IOptionalNamedTag<Item> createOptional(ResourceLocation name) {
+ return field_199906_c.createOptional(name, () -> null);
+ }
+
public static ITagCollection<Item> func_199903_a() {
return field_199906_c.func_232939_b_();
}

View file

@ -1,14 +1,32 @@
--- a/net/minecraft/tags/TagRegistry.java
+++ b/net/minecraft/tags/TagRegistry.java
@@ -23,6 +23,7 @@
@@ -22,7 +22,15 @@
}
public ITag.INamedTag<T> func_232937_a_(String p_232937_1_) {
TagRegistry.NamedTag<T> namedtag = new TagRegistry.NamedTag<>(new ResourceLocation(p_232937_1_));
- TagRegistry.NamedTag<T> namedtag = new TagRegistry.NamedTag<>(new ResourceLocation(p_232937_1_));
+ return add(new TagRegistry.NamedTag<>(new ResourceLocation(p_232937_1_)));
+ }
+
+ public net.minecraftforge.common.Tags.IOptionalNamedTag<T> createOptional(ResourceLocation key, @Nullable java.util.function.Supplier<Set<T>> defaults) {
+ return add(new TagRegistry.OptionalNamedTag<>(key, defaults));
+ }
+
+ private <R extends TagRegistry.NamedTag<T>> R add(R namedtag) {
+ namedtag.func_232943_a_(field_232930_b_::func_199910_a);
this.field_232931_c_.add(namedtag);
return namedtag;
}
@@ -93,5 +94,10 @@
@@ -56,7 +64,7 @@
public Set<ResourceLocation> func_242189_b(ITagCollectionSupplier p_242189_1_) {
ITagCollection<T> itagcollection = this.field_242184_c.apply(p_242189_1_);
- Set<ResourceLocation> set = this.field_232931_c_.stream().map(TagRegistry.NamedTag::func_230234_a_).collect(Collectors.toSet());
+ Set<ResourceLocation> set = this.field_232931_c_.stream().filter(e -> !(e instanceof OptionalNamedTag)).map(TagRegistry.NamedTag::func_230234_a_).collect(Collectors.toSet());
ImmutableSet<ResourceLocation> immutableset = ImmutableSet.copyOf(itagcollection.func_199908_a());
return Sets.difference(set, immutableset);
}
@@ -93,5 +101,43 @@
public List<T> func_230236_b_() {
return this.func_232944_c_().func_230236_b_();
}
@ -18,4 +36,37 @@
+ return "NamedTag[" + func_230234_a_().toString() + ']';
+ }
}
+
+ private static class OptionalNamedTag<T> extends NamedTag<T> implements net.minecraftforge.common.Tags.IOptionalNamedTag<T> {
+ @Nullable
+ private final java.util.function.Supplier<Set<T>> defaults;
+ private boolean defaulted = true;
+
+ private OptionalNamedTag(ResourceLocation name, @Nullable java.util.function.Supplier<Set<T>> defaults) {
+ super(name);
+ this.defaults = defaults;
+ }
+
+ @Override
+ public boolean isDefaulted() {
+ return defaulted;
+ }
+
+ @Override
+ void func_232943_a_(Function<ResourceLocation, ITag<T>> p_232943_1_) {
+ super.func_232943_a_(p_232943_1_);
+ if (this.field_232942_b_ == null) {
+ this.defaulted = true;
+ Set<T> defs = defaults == null ? null : defaults.get();
+ this.field_232942_b_ = defs == null ? Tag.func_241284_a_() : Tag.func_241286_a_(defs);
+ } else {
+ this.defaulted = false;
+ }
+ }
+
+ @Override
+ public String toString() {
+ return "OptionalNamedTag[" + func_230234_a_().toString() + ']';
+ }
+ }
}

View file

@ -156,6 +156,7 @@ import org.apache.logging.log4j.util.TriConsumer;
public class ForgeHooks
{
private static final Logger LOGGER = LogManager.getLogger();
@SuppressWarnings("unused")
private static final Marker FORGEHOOKS = MarkerManager.getMarker("FORGEHOOKS");
public static boolean canContinueUsing(@Nonnull ItemStack from, @Nonnull ItemStack to)
@ -235,6 +236,7 @@ public class ForgeHooks
/**
* Called when a player uses 'pick block', calls new Entity and Block hooks.
*/
@SuppressWarnings("resource")
public static boolean onPickBlock(RayTraceResult target, PlayerEntity player, World world)
{
ItemStack result = ItemStack.EMPTY;

View file

@ -23,8 +23,9 @@ import net.minecraft.block.Block;
import net.minecraft.item.DyeColor;
import net.minecraft.item.Item;
import net.minecraft.tags.BlockTags;
import net.minecraft.tags.ITag;
import net.minecraft.tags.ItemTags;
import net.minecraft.util.ResourceLocation;
import net.minecraft.tags.ITag.INamedTag;
public class Tags
{
@ -38,248 +39,256 @@ public class Tags
{
private static void init(){}
public static final ITag.INamedTag<Block> CHESTS = tag("chests");
public static final ITag.INamedTag<Block> CHESTS_ENDER = tag("chests/ender");
public static final ITag.INamedTag<Block> CHESTS_TRAPPED = tag("chests/trapped");
public static final ITag.INamedTag<Block> CHESTS_WOODEN = tag("chests/wooden");
public static final ITag.INamedTag<Block> COBBLESTONE = tag("cobblestone");
public static final ITag.INamedTag<Block> DIRT = tag("dirt");
public static final ITag.INamedTag<Block> END_STONES = tag("end_stones");
public static final ITag.INamedTag<Block> FENCE_GATES = tag("fence_gates");
public static final ITag.INamedTag<Block> FENCE_GATES_WOODEN = tag("fence_gates/wooden");
public static final ITag.INamedTag<Block> FENCES = tag("fences");
public static final ITag.INamedTag<Block> FENCES_NETHER_BRICK = tag("fences/nether_brick");
public static final ITag.INamedTag<Block> FENCES_WOODEN = tag("fences/wooden");
public static final IOptionalNamedTag<Block> CHESTS = tag("chests");
public static final IOptionalNamedTag<Block> CHESTS_ENDER = tag("chests/ender");
public static final IOptionalNamedTag<Block> CHESTS_TRAPPED = tag("chests/trapped");
public static final IOptionalNamedTag<Block> CHESTS_WOODEN = tag("chests/wooden");
public static final IOptionalNamedTag<Block> COBBLESTONE = tag("cobblestone");
public static final IOptionalNamedTag<Block> DIRT = tag("dirt");
public static final IOptionalNamedTag<Block> END_STONES = tag("end_stones");
public static final IOptionalNamedTag<Block> FENCE_GATES = tag("fence_gates");
public static final IOptionalNamedTag<Block> FENCE_GATES_WOODEN = tag("fence_gates/wooden");
public static final IOptionalNamedTag<Block> FENCES = tag("fences");
public static final IOptionalNamedTag<Block> FENCES_NETHER_BRICK = tag("fences/nether_brick");
public static final IOptionalNamedTag<Block> FENCES_WOODEN = tag("fences/wooden");
public static final ITag.INamedTag<Block> GLASS = tag("glass");
public static final ITag.INamedTag<Block> GLASS_BLACK = tag("glass/black");
public static final ITag.INamedTag<Block> GLASS_BLUE = tag("glass/blue");
public static final ITag.INamedTag<Block> GLASS_BROWN = tag("glass/brown");
public static final ITag.INamedTag<Block> GLASS_COLORLESS = tag("glass/colorless");
public static final ITag.INamedTag<Block> GLASS_CYAN = tag("glass/cyan");
public static final ITag.INamedTag<Block> GLASS_GRAY = tag("glass/gray");
public static final ITag.INamedTag<Block> GLASS_GREEN = tag("glass/green");
public static final ITag.INamedTag<Block> GLASS_LIGHT_BLUE = tag("glass/light_blue");
public static final ITag.INamedTag<Block> GLASS_LIGHT_GRAY = tag("glass/light_gray");
public static final ITag.INamedTag<Block> GLASS_LIME = tag("glass/lime");
public static final ITag.INamedTag<Block> GLASS_MAGENTA = tag("glass/magenta");
public static final ITag.INamedTag<Block> GLASS_ORANGE = tag("glass/orange");
public static final ITag.INamedTag<Block> GLASS_PINK = tag("glass/pink");
public static final ITag.INamedTag<Block> GLASS_PURPLE = tag("glass/purple");
public static final ITag.INamedTag<Block> GLASS_RED = tag("glass/red");
public static final ITag.INamedTag<Block> GLASS_WHITE = tag("glass/white");
public static final ITag.INamedTag<Block> GLASS_YELLOW = tag("glass/yellow");
public static final IOptionalNamedTag<Block> GLASS = tag("glass");
public static final IOptionalNamedTag<Block> GLASS_BLACK = tag("glass/black");
public static final IOptionalNamedTag<Block> GLASS_BLUE = tag("glass/blue");
public static final IOptionalNamedTag<Block> GLASS_BROWN = tag("glass/brown");
public static final IOptionalNamedTag<Block> GLASS_COLORLESS = tag("glass/colorless");
public static final IOptionalNamedTag<Block> GLASS_CYAN = tag("glass/cyan");
public static final IOptionalNamedTag<Block> GLASS_GRAY = tag("glass/gray");
public static final IOptionalNamedTag<Block> GLASS_GREEN = tag("glass/green");
public static final IOptionalNamedTag<Block> GLASS_LIGHT_BLUE = tag("glass/light_blue");
public static final IOptionalNamedTag<Block> GLASS_LIGHT_GRAY = tag("glass/light_gray");
public static final IOptionalNamedTag<Block> GLASS_LIME = tag("glass/lime");
public static final IOptionalNamedTag<Block> GLASS_MAGENTA = tag("glass/magenta");
public static final IOptionalNamedTag<Block> GLASS_ORANGE = tag("glass/orange");
public static final IOptionalNamedTag<Block> GLASS_PINK = tag("glass/pink");
public static final IOptionalNamedTag<Block> GLASS_PURPLE = tag("glass/purple");
public static final IOptionalNamedTag<Block> GLASS_RED = tag("glass/red");
public static final IOptionalNamedTag<Block> GLASS_WHITE = tag("glass/white");
public static final IOptionalNamedTag<Block> GLASS_YELLOW = tag("glass/yellow");
public static final ITag.INamedTag<Block> GLASS_PANES = tag("glass_panes");
public static final ITag.INamedTag<Block> GLASS_PANES_BLACK = tag("glass_panes/black");
public static final ITag.INamedTag<Block> GLASS_PANES_BLUE = tag("glass_panes/blue");
public static final ITag.INamedTag<Block> GLASS_PANES_BROWN = tag("glass_panes/brown");
public static final ITag.INamedTag<Block> GLASS_PANES_COLORLESS = tag("glass_panes/colorless");
public static final ITag.INamedTag<Block> GLASS_PANES_CYAN = tag("glass_panes/cyan");
public static final ITag.INamedTag<Block> GLASS_PANES_GRAY = tag("glass_panes/gray");
public static final ITag.INamedTag<Block> GLASS_PANES_GREEN = tag("glass_panes/green");
public static final ITag.INamedTag<Block> GLASS_PANES_LIGHT_BLUE = tag("glass_panes/light_blue");
public static final ITag.INamedTag<Block> GLASS_PANES_LIGHT_GRAY = tag("glass_panes/light_gray");
public static final ITag.INamedTag<Block> GLASS_PANES_LIME = tag("glass_panes/lime");
public static final ITag.INamedTag<Block> GLASS_PANES_MAGENTA = tag("glass_panes/magenta");
public static final ITag.INamedTag<Block> GLASS_PANES_ORANGE = tag("glass_panes/orange");
public static final ITag.INamedTag<Block> GLASS_PANES_PINK = tag("glass_panes/pink");
public static final ITag.INamedTag<Block> GLASS_PANES_PURPLE = tag("glass_panes/purple");
public static final ITag.INamedTag<Block> GLASS_PANES_RED = tag("glass_panes/red");
public static final ITag.INamedTag<Block> GLASS_PANES_WHITE = tag("glass_panes/white");
public static final ITag.INamedTag<Block> GLASS_PANES_YELLOW = tag("glass_panes/yellow");
public static final IOptionalNamedTag<Block> GLASS_PANES = tag("glass_panes");
public static final IOptionalNamedTag<Block> GLASS_PANES_BLACK = tag("glass_panes/black");
public static final IOptionalNamedTag<Block> GLASS_PANES_BLUE = tag("glass_panes/blue");
public static final IOptionalNamedTag<Block> GLASS_PANES_BROWN = tag("glass_panes/brown");
public static final IOptionalNamedTag<Block> GLASS_PANES_COLORLESS = tag("glass_panes/colorless");
public static final IOptionalNamedTag<Block> GLASS_PANES_CYAN = tag("glass_panes/cyan");
public static final IOptionalNamedTag<Block> GLASS_PANES_GRAY = tag("glass_panes/gray");
public static final IOptionalNamedTag<Block> GLASS_PANES_GREEN = tag("glass_panes/green");
public static final IOptionalNamedTag<Block> GLASS_PANES_LIGHT_BLUE = tag("glass_panes/light_blue");
public static final IOptionalNamedTag<Block> GLASS_PANES_LIGHT_GRAY = tag("glass_panes/light_gray");
public static final IOptionalNamedTag<Block> GLASS_PANES_LIME = tag("glass_panes/lime");
public static final IOptionalNamedTag<Block> GLASS_PANES_MAGENTA = tag("glass_panes/magenta");
public static final IOptionalNamedTag<Block> GLASS_PANES_ORANGE = tag("glass_panes/orange");
public static final IOptionalNamedTag<Block> GLASS_PANES_PINK = tag("glass_panes/pink");
public static final IOptionalNamedTag<Block> GLASS_PANES_PURPLE = tag("glass_panes/purple");
public static final IOptionalNamedTag<Block> GLASS_PANES_RED = tag("glass_panes/red");
public static final IOptionalNamedTag<Block> GLASS_PANES_WHITE = tag("glass_panes/white");
public static final IOptionalNamedTag<Block> GLASS_PANES_YELLOW = tag("glass_panes/yellow");
public static final ITag.INamedTag<Block> GRAVEL = tag("gravel");
public static final ITag.INamedTag<Block> NETHERRACK = tag("netherrack");
public static final ITag.INamedTag<Block> OBSIDIAN = tag("obsidian");
public static final ITag.INamedTag<Block> ORES = tag("ores");
public static final ITag.INamedTag<Block> ORES_COAL = tag("ores/coal");
public static final ITag.INamedTag<Block> ORES_DIAMOND = tag("ores/diamond");
public static final ITag.INamedTag<Block> ORES_EMERALD = tag("ores/emerald");
public static final ITag.INamedTag<Block> ORES_GOLD = tag("ores/gold");
public static final ITag.INamedTag<Block> ORES_IRON = tag("ores/iron");
public static final ITag.INamedTag<Block> ORES_LAPIS = tag("ores/lapis");
public static final ITag.INamedTag<Block> ORES_QUARTZ = tag("ores/quartz");
public static final ITag.INamedTag<Block> ORES_REDSTONE = tag("ores/redstone");
public static final IOptionalNamedTag<Block> GRAVEL = tag("gravel");
public static final IOptionalNamedTag<Block> NETHERRACK = tag("netherrack");
public static final IOptionalNamedTag<Block> OBSIDIAN = tag("obsidian");
public static final IOptionalNamedTag<Block> ORES = tag("ores");
public static final IOptionalNamedTag<Block> ORES_COAL = tag("ores/coal");
public static final IOptionalNamedTag<Block> ORES_DIAMOND = tag("ores/diamond");
public static final IOptionalNamedTag<Block> ORES_EMERALD = tag("ores/emerald");
public static final IOptionalNamedTag<Block> ORES_GOLD = tag("ores/gold");
public static final IOptionalNamedTag<Block> ORES_IRON = tag("ores/iron");
public static final IOptionalNamedTag<Block> ORES_LAPIS = tag("ores/lapis");
public static final IOptionalNamedTag<Block> ORES_QUARTZ = tag("ores/quartz");
public static final IOptionalNamedTag<Block> ORES_REDSTONE = tag("ores/redstone");
public static final ITag.INamedTag<Block> SAND = tag("sand");
public static final ITag.INamedTag<Block> SAND_COLORLESS = tag("sand/colorless");
public static final ITag.INamedTag<Block> SAND_RED = tag("sand/red");
public static final IOptionalNamedTag<Block> SAND = tag("sand");
public static final IOptionalNamedTag<Block> SAND_COLORLESS = tag("sand/colorless");
public static final IOptionalNamedTag<Block> SAND_RED = tag("sand/red");
public static final ITag.INamedTag<Block> SANDSTONE = tag("sandstone");
public static final ITag.INamedTag<Block> STAINED_GLASS = tag("stained_glass");
public static final ITag.INamedTag<Block> STAINED_GLASS_PANES = tag("stained_glass_panes");
public static final ITag.INamedTag<Block> STONE = tag("stone");
public static final ITag.INamedTag<Block> STORAGE_BLOCKS = tag("storage_blocks");
public static final ITag.INamedTag<Block> STORAGE_BLOCKS_COAL = tag("storage_blocks/coal");
public static final ITag.INamedTag<Block> STORAGE_BLOCKS_DIAMOND = tag("storage_blocks/diamond");
public static final ITag.INamedTag<Block> STORAGE_BLOCKS_EMERALD = tag("storage_blocks/emerald");
public static final ITag.INamedTag<Block> STORAGE_BLOCKS_GOLD = tag("storage_blocks/gold");
public static final ITag.INamedTag<Block> STORAGE_BLOCKS_IRON = tag("storage_blocks/iron");
public static final ITag.INamedTag<Block> STORAGE_BLOCKS_LAPIS = tag("storage_blocks/lapis");
public static final ITag.INamedTag<Block> STORAGE_BLOCKS_QUARTZ = tag("storage_blocks/quartz");
public static final ITag.INamedTag<Block> STORAGE_BLOCKS_REDSTONE = tag("storage_blocks/redstone");
public static final IOptionalNamedTag<Block> SANDSTONE = tag("sandstone");
public static final IOptionalNamedTag<Block> STAINED_GLASS = tag("stained_glass");
public static final IOptionalNamedTag<Block> STAINED_GLASS_PANES = tag("stained_glass_panes");
public static final IOptionalNamedTag<Block> STONE = tag("stone");
public static final IOptionalNamedTag<Block> STORAGE_BLOCKS = tag("storage_blocks");
public static final IOptionalNamedTag<Block> STORAGE_BLOCKS_COAL = tag("storage_blocks/coal");
public static final IOptionalNamedTag<Block> STORAGE_BLOCKS_DIAMOND = tag("storage_blocks/diamond");
public static final IOptionalNamedTag<Block> STORAGE_BLOCKS_EMERALD = tag("storage_blocks/emerald");
public static final IOptionalNamedTag<Block> STORAGE_BLOCKS_GOLD = tag("storage_blocks/gold");
public static final IOptionalNamedTag<Block> STORAGE_BLOCKS_IRON = tag("storage_blocks/iron");
public static final IOptionalNamedTag<Block> STORAGE_BLOCKS_LAPIS = tag("storage_blocks/lapis");
public static final IOptionalNamedTag<Block> STORAGE_BLOCKS_QUARTZ = tag("storage_blocks/quartz");
public static final IOptionalNamedTag<Block> STORAGE_BLOCKS_REDSTONE = tag("storage_blocks/redstone");
private static ITag.INamedTag<Block> tag(String name)
private static IOptionalNamedTag<Block> tag(String name)
{
return BlockTags.makeWrapperTag("forge:" + name);
return BlockTags.createOptional(new ResourceLocation("forge", name));
}
}
public static class Items
{
private static void init(){}
public static final IOptionalNamedTag<Item> ARROWS = tag("arrows");
public static final IOptionalNamedTag<Item> BONES = tag("bones");
public static final IOptionalNamedTag<Item> BOOKSHELVES = tag("bookshelves");
public static final IOptionalNamedTag<Item> CHESTS = tag("chests");
public static final IOptionalNamedTag<Item> CHESTS_ENDER = tag("chests/ender");
public static final IOptionalNamedTag<Item> CHESTS_TRAPPED = tag("chests/trapped");
public static final IOptionalNamedTag<Item> CHESTS_WOODEN = tag("chests/wooden");
public static final IOptionalNamedTag<Item> COBBLESTONE = tag("cobblestone");
public static final IOptionalNamedTag<Item> CROPS = tag("crops");
public static final IOptionalNamedTag<Item> CROPS_BEETROOT = tag("crops/beetroot");
public static final IOptionalNamedTag<Item> CROPS_CARROT = tag("crops/carrot");
public static final IOptionalNamedTag<Item> CROPS_NETHER_WART = tag("crops/nether_wart");
public static final IOptionalNamedTag<Item> CROPS_POTATO = tag("crops/potato");
public static final IOptionalNamedTag<Item> CROPS_WHEAT = tag("crops/wheat");
public static final IOptionalNamedTag<Item> DUSTS = tag("dusts");
public static final IOptionalNamedTag<Item> DUSTS_PRISMARINE = tag("dusts/prismarine");
public static final IOptionalNamedTag<Item> DUSTS_REDSTONE = tag("dusts/redstone");
public static final IOptionalNamedTag<Item> DUSTS_GLOWSTONE = tag("dusts/glowstone");
public static final ITag.INamedTag<Item> ARROWS = tag("arrows");
public static final ITag.INamedTag<Item> BONES = tag("bones");
public static final ITag.INamedTag<Item> BOOKSHELVES = tag("bookshelves");
public static final ITag.INamedTag<Item> CHESTS = tag("chests");
public static final ITag.INamedTag<Item> CHESTS_ENDER = tag("chests/ender");
public static final ITag.INamedTag<Item> CHESTS_TRAPPED = tag("chests/trapped");
public static final ITag.INamedTag<Item> CHESTS_WOODEN = tag("chests/wooden");
public static final ITag.INamedTag<Item> COBBLESTONE = tag("cobblestone");
public static final ITag.INamedTag<Item> CROPS = tag("crops");
public static final ITag.INamedTag<Item> CROPS_BEETROOT = tag("crops/beetroot");
public static final ITag.INamedTag<Item> CROPS_CARROT = tag("crops/carrot");
public static final ITag.INamedTag<Item> CROPS_NETHER_WART = tag("crops/nether_wart");
public static final ITag.INamedTag<Item> CROPS_POTATO = tag("crops/potato");
public static final ITag.INamedTag<Item> CROPS_WHEAT = tag("crops/wheat");
public static final ITag.INamedTag<Item> DUSTS = tag("dusts");
public static final ITag.INamedTag<Item> DUSTS_PRISMARINE = tag("dusts/prismarine");
public static final ITag.INamedTag<Item> DUSTS_REDSTONE = tag("dusts/redstone");
public static final ITag.INamedTag<Item> DUSTS_GLOWSTONE = tag("dusts/glowstone");
public static final IOptionalNamedTag<Item> DYES = tag("dyes");
public static final IOptionalNamedTag<Item> DYES_BLACK = DyeColor.BLACK.getTag();
public static final IOptionalNamedTag<Item> DYES_RED = DyeColor.RED.getTag();
public static final IOptionalNamedTag<Item> DYES_GREEN = DyeColor.GREEN.getTag();
public static final IOptionalNamedTag<Item> DYES_BROWN = DyeColor.BROWN.getTag();
public static final IOptionalNamedTag<Item> DYES_BLUE = DyeColor.BLUE.getTag();
public static final IOptionalNamedTag<Item> DYES_PURPLE = DyeColor.PURPLE.getTag();
public static final IOptionalNamedTag<Item> DYES_CYAN = DyeColor.CYAN.getTag();
public static final IOptionalNamedTag<Item> DYES_LIGHT_GRAY = DyeColor.LIGHT_GRAY.getTag();
public static final IOptionalNamedTag<Item> DYES_GRAY = DyeColor.GRAY.getTag();
public static final IOptionalNamedTag<Item> DYES_PINK = DyeColor.PINK.getTag();
public static final IOptionalNamedTag<Item> DYES_LIME = DyeColor.LIME.getTag();
public static final IOptionalNamedTag<Item> DYES_YELLOW = DyeColor.YELLOW.getTag();
public static final IOptionalNamedTag<Item> DYES_LIGHT_BLUE = DyeColor.LIGHT_BLUE.getTag();
public static final IOptionalNamedTag<Item> DYES_MAGENTA = DyeColor.MAGENTA.getTag();
public static final IOptionalNamedTag<Item> DYES_ORANGE = DyeColor.ORANGE.getTag();
public static final IOptionalNamedTag<Item> DYES_WHITE = DyeColor.WHITE.getTag();
public static final ITag.INamedTag<Item> DYES = tag("dyes");
public static final ITag.INamedTag<Item> DYES_BLACK = DyeColor.BLACK.getTag();
public static final ITag.INamedTag<Item> DYES_RED = DyeColor.RED.getTag();
public static final ITag.INamedTag<Item> DYES_GREEN = DyeColor.GREEN.getTag();
public static final ITag.INamedTag<Item> DYES_BROWN = DyeColor.BROWN.getTag();
public static final ITag.INamedTag<Item> DYES_BLUE = DyeColor.BLUE.getTag();
public static final ITag.INamedTag<Item> DYES_PURPLE = DyeColor.PURPLE.getTag();
public static final ITag.INamedTag<Item> DYES_CYAN = DyeColor.CYAN.getTag();
public static final ITag.INamedTag<Item> DYES_LIGHT_GRAY = DyeColor.LIGHT_GRAY.getTag();
public static final ITag.INamedTag<Item> DYES_GRAY = DyeColor.GRAY.getTag();
public static final ITag.INamedTag<Item> DYES_PINK = DyeColor.PINK.getTag();
public static final ITag.INamedTag<Item> DYES_LIME = DyeColor.LIME.getTag();
public static final ITag.INamedTag<Item> DYES_YELLOW = DyeColor.YELLOW.getTag();
public static final ITag.INamedTag<Item> DYES_LIGHT_BLUE = DyeColor.LIGHT_BLUE.getTag();
public static final ITag.INamedTag<Item> DYES_MAGENTA = DyeColor.MAGENTA.getTag();
public static final ITag.INamedTag<Item> DYES_ORANGE = DyeColor.ORANGE.getTag();
public static final ITag.INamedTag<Item> DYES_WHITE = DyeColor.WHITE.getTag();
public static final IOptionalNamedTag<Item> EGGS = tag("eggs");
public static final IOptionalNamedTag<Item> END_STONES = tag("end_stones");
public static final IOptionalNamedTag<Item> ENDER_PEARLS = tag("ender_pearls");
public static final IOptionalNamedTag<Item> FEATHERS = tag("feathers");
public static final IOptionalNamedTag<Item> FENCE_GATES = tag("fence_gates");
public static final IOptionalNamedTag<Item> FENCE_GATES_WOODEN = tag("fence_gates/wooden");
public static final IOptionalNamedTag<Item> FENCES = tag("fences");
public static final IOptionalNamedTag<Item> FENCES_NETHER_BRICK = tag("fences/nether_brick");
public static final IOptionalNamedTag<Item> FENCES_WOODEN = tag("fences/wooden");
public static final IOptionalNamedTag<Item> GEMS = tag("gems");
public static final IOptionalNamedTag<Item> GEMS_DIAMOND = tag("gems/diamond");
public static final IOptionalNamedTag<Item> GEMS_EMERALD = tag("gems/emerald");
public static final IOptionalNamedTag<Item> GEMS_LAPIS = tag("gems/lapis");
public static final IOptionalNamedTag<Item> GEMS_PRISMARINE = tag("gems/prismarine");
public static final IOptionalNamedTag<Item> GEMS_QUARTZ = tag("gems/quartz");
public static final ITag.INamedTag<Item> EGGS = tag("eggs");
public static final ITag.INamedTag<Item> END_STONES = tag("end_stones");
public static final ITag.INamedTag<Item> ENDER_PEARLS = tag("ender_pearls");
public static final ITag.INamedTag<Item> FEATHERS = tag("feathers");
public static final ITag.INamedTag<Item> FENCE_GATES = tag("fence_gates");
public static final ITag.INamedTag<Item> FENCE_GATES_WOODEN = tag("fence_gates/wooden");
public static final ITag.INamedTag<Item> FENCES = tag("fences");
public static final ITag.INamedTag<Item> FENCES_NETHER_BRICK = tag("fences/nether_brick");
public static final ITag.INamedTag<Item> FENCES_WOODEN = tag("fences/wooden");
public static final ITag.INamedTag<Item> GEMS = tag("gems");
public static final ITag.INamedTag<Item> GEMS_DIAMOND = tag("gems/diamond");
public static final ITag.INamedTag<Item> GEMS_EMERALD = tag("gems/emerald");
public static final ITag.INamedTag<Item> GEMS_LAPIS = tag("gems/lapis");
public static final ITag.INamedTag<Item> GEMS_PRISMARINE = tag("gems/prismarine");
public static final ITag.INamedTag<Item> GEMS_QUARTZ = tag("gems/quartz");
public static final IOptionalNamedTag<Item> GLASS = tag("glass");
public static final IOptionalNamedTag<Item> GLASS_BLACK = tag("glass/black");
public static final IOptionalNamedTag<Item> GLASS_BLUE = tag("glass/blue");
public static final IOptionalNamedTag<Item> GLASS_BROWN = tag("glass/brown");
public static final IOptionalNamedTag<Item> GLASS_COLORLESS = tag("glass/colorless");
public static final IOptionalNamedTag<Item> GLASS_CYAN = tag("glass/cyan");
public static final IOptionalNamedTag<Item> GLASS_GRAY = tag("glass/gray");
public static final IOptionalNamedTag<Item> GLASS_GREEN = tag("glass/green");
public static final IOptionalNamedTag<Item> GLASS_LIGHT_BLUE = tag("glass/light_blue");
public static final IOptionalNamedTag<Item> GLASS_LIGHT_GRAY = tag("glass/light_gray");
public static final IOptionalNamedTag<Item> GLASS_LIME = tag("glass/lime");
public static final IOptionalNamedTag<Item> GLASS_MAGENTA = tag("glass/magenta");
public static final IOptionalNamedTag<Item> GLASS_ORANGE = tag("glass/orange");
public static final IOptionalNamedTag<Item> GLASS_PINK = tag("glass/pink");
public static final IOptionalNamedTag<Item> GLASS_PURPLE = tag("glass/purple");
public static final IOptionalNamedTag<Item> GLASS_RED = tag("glass/red");
public static final IOptionalNamedTag<Item> GLASS_WHITE = tag("glass/white");
public static final IOptionalNamedTag<Item> GLASS_YELLOW = tag("glass/yellow");
public static final ITag.INamedTag<Item> GLASS = tag("glass");
public static final ITag.INamedTag<Item> GLASS_BLACK = tag("glass/black");
public static final ITag.INamedTag<Item> GLASS_BLUE = tag("glass/blue");
public static final ITag.INamedTag<Item> GLASS_BROWN = tag("glass/brown");
public static final ITag.INamedTag<Item> GLASS_COLORLESS = tag("glass/colorless");
public static final ITag.INamedTag<Item> GLASS_CYAN = tag("glass/cyan");
public static final ITag.INamedTag<Item> GLASS_GRAY = tag("glass/gray");
public static final ITag.INamedTag<Item> GLASS_GREEN = tag("glass/green");
public static final ITag.INamedTag<Item> GLASS_LIGHT_BLUE = tag("glass/light_blue");
public static final ITag.INamedTag<Item> GLASS_LIGHT_GRAY = tag("glass/light_gray");
public static final ITag.INamedTag<Item> GLASS_LIME = tag("glass/lime");
public static final ITag.INamedTag<Item> GLASS_MAGENTA = tag("glass/magenta");
public static final ITag.INamedTag<Item> GLASS_ORANGE = tag("glass/orange");
public static final ITag.INamedTag<Item> GLASS_PINK = tag("glass/pink");
public static final ITag.INamedTag<Item> GLASS_PURPLE = tag("glass/purple");
public static final ITag.INamedTag<Item> GLASS_RED = tag("glass/red");
public static final ITag.INamedTag<Item> GLASS_WHITE = tag("glass/white");
public static final ITag.INamedTag<Item> GLASS_YELLOW = tag("glass/yellow");
public static final IOptionalNamedTag<Item> GLASS_PANES = tag("glass_panes");
public static final IOptionalNamedTag<Item> GLASS_PANES_BLACK = tag("glass_panes/black");
public static final IOptionalNamedTag<Item> GLASS_PANES_BLUE = tag("glass_panes/blue");
public static final IOptionalNamedTag<Item> GLASS_PANES_BROWN = tag("glass_panes/brown");
public static final IOptionalNamedTag<Item> GLASS_PANES_COLORLESS = tag("glass_panes/colorless");
public static final IOptionalNamedTag<Item> GLASS_PANES_CYAN = tag("glass_panes/cyan");
public static final IOptionalNamedTag<Item> GLASS_PANES_GRAY = tag("glass_panes/gray");
public static final IOptionalNamedTag<Item> GLASS_PANES_GREEN = tag("glass_panes/green");
public static final IOptionalNamedTag<Item> GLASS_PANES_LIGHT_BLUE = tag("glass_panes/light_blue");
public static final IOptionalNamedTag<Item> GLASS_PANES_LIGHT_GRAY = tag("glass_panes/light_gray");
public static final IOptionalNamedTag<Item> GLASS_PANES_LIME = tag("glass_panes/lime");
public static final IOptionalNamedTag<Item> GLASS_PANES_MAGENTA = tag("glass_panes/magenta");
public static final IOptionalNamedTag<Item> GLASS_PANES_ORANGE = tag("glass_panes/orange");
public static final IOptionalNamedTag<Item> GLASS_PANES_PINK = tag("glass_panes/pink");
public static final IOptionalNamedTag<Item> GLASS_PANES_PURPLE = tag("glass_panes/purple");
public static final IOptionalNamedTag<Item> GLASS_PANES_RED = tag("glass_panes/red");
public static final IOptionalNamedTag<Item> GLASS_PANES_WHITE = tag("glass_panes/white");
public static final IOptionalNamedTag<Item> GLASS_PANES_YELLOW = tag("glass_panes/yellow");
public static final ITag.INamedTag<Item> GLASS_PANES = tag("glass_panes");
public static final ITag.INamedTag<Item> GLASS_PANES_BLACK = tag("glass_panes/black");
public static final ITag.INamedTag<Item> GLASS_PANES_BLUE = tag("glass_panes/blue");
public static final ITag.INamedTag<Item> GLASS_PANES_BROWN = tag("glass_panes/brown");
public static final ITag.INamedTag<Item> GLASS_PANES_COLORLESS = tag("glass_panes/colorless");
public static final ITag.INamedTag<Item> GLASS_PANES_CYAN = tag("glass_panes/cyan");
public static final ITag.INamedTag<Item> GLASS_PANES_GRAY = tag("glass_panes/gray");
public static final ITag.INamedTag<Item> GLASS_PANES_GREEN = tag("glass_panes/green");
public static final ITag.INamedTag<Item> GLASS_PANES_LIGHT_BLUE = tag("glass_panes/light_blue");
public static final ITag.INamedTag<Item> GLASS_PANES_LIGHT_GRAY = tag("glass_panes/light_gray");
public static final ITag.INamedTag<Item> GLASS_PANES_LIME = tag("glass_panes/lime");
public static final ITag.INamedTag<Item> GLASS_PANES_MAGENTA = tag("glass_panes/magenta");
public static final ITag.INamedTag<Item> GLASS_PANES_ORANGE = tag("glass_panes/orange");
public static final ITag.INamedTag<Item> GLASS_PANES_PINK = tag("glass_panes/pink");
public static final ITag.INamedTag<Item> GLASS_PANES_PURPLE = tag("glass_panes/purple");
public static final ITag.INamedTag<Item> GLASS_PANES_RED = tag("glass_panes/red");
public static final ITag.INamedTag<Item> GLASS_PANES_WHITE = tag("glass_panes/white");
public static final ITag.INamedTag<Item> GLASS_PANES_YELLOW = tag("glass_panes/yellow");
public static final IOptionalNamedTag<Item> GRAVEL = tag("gravel");
public static final IOptionalNamedTag<Item> GUNPOWDER = tag("gunpowder");
public static final IOptionalNamedTag<Item> HEADS = tag("heads");
public static final IOptionalNamedTag<Item> INGOTS = tag("ingots");
public static final IOptionalNamedTag<Item> INGOTS_BRICK = tag("ingots/brick");
public static final IOptionalNamedTag<Item> INGOTS_GOLD = tag("ingots/gold");
public static final IOptionalNamedTag<Item> INGOTS_IRON = tag("ingots/iron");
public static final IOptionalNamedTag<Item> INGOTS_NETHER_BRICK = tag("ingots/nether_brick");
public static final IOptionalNamedTag<Item> LEATHER = tag("leather");
public static final IOptionalNamedTag<Item> MUSHROOMS = tag("mushrooms");
public static final IOptionalNamedTag<Item> MUSIC_DISCS = tag("music_discs");
public static final IOptionalNamedTag<Item> NETHER_STARS = tag("nether_stars");
public static final IOptionalNamedTag<Item> NETHERRACK = tag("netherrack");
public static final IOptionalNamedTag<Item> NUGGETS = tag("nuggets");
public static final IOptionalNamedTag<Item> NUGGETS_GOLD = tag("nuggets/gold");
public static final IOptionalNamedTag<Item> NUGGETS_IRON = tag("nuggets/iron");
public static final IOptionalNamedTag<Item> OBSIDIAN = tag("obsidian");
public static final IOptionalNamedTag<Item> ORES = tag("ores");
public static final IOptionalNamedTag<Item> ORES_COAL = tag("ores/coal");
public static final IOptionalNamedTag<Item> ORES_DIAMOND = tag("ores/diamond");
public static final IOptionalNamedTag<Item> ORES_EMERALD = tag("ores/emerald");
public static final IOptionalNamedTag<Item> ORES_GOLD = tag("ores/gold");
public static final IOptionalNamedTag<Item> ORES_IRON = tag("ores/iron");
public static final IOptionalNamedTag<Item> ORES_LAPIS = tag("ores/lapis");
public static final IOptionalNamedTag<Item> ORES_QUARTZ = tag("ores/quartz");
public static final IOptionalNamedTag<Item> ORES_REDSTONE = tag("ores/redstone");
public static final IOptionalNamedTag<Item> RODS = tag("rods");
public static final IOptionalNamedTag<Item> RODS_BLAZE = tag("rods/blaze");
public static final IOptionalNamedTag<Item> RODS_WOODEN = tag("rods/wooden");
public static final ITag.INamedTag<Item> GRAVEL = tag("gravel");
public static final ITag.INamedTag<Item> GUNPOWDER = tag("gunpowder");
public static final ITag.INamedTag<Item> HEADS = tag("heads");
public static final ITag.INamedTag<Item> INGOTS = tag("ingots");
public static final ITag.INamedTag<Item> INGOTS_BRICK = tag("ingots/brick");
public static final ITag.INamedTag<Item> INGOTS_GOLD = tag("ingots/gold");
public static final ITag.INamedTag<Item> INGOTS_IRON = tag("ingots/iron");
public static final ITag.INamedTag<Item> INGOTS_NETHER_BRICK = tag("ingots/nether_brick");
public static final ITag.INamedTag<Item> LEATHER = tag("leather");
public static final ITag.INamedTag<Item> MUSHROOMS = tag("mushrooms");
public static final ITag.INamedTag<Item> MUSIC_DISCS = tag("music_discs");
public static final ITag.INamedTag<Item> NETHER_STARS = tag("nether_stars");
public static final ITag.INamedTag<Item> NETHERRACK = tag("netherrack");
public static final ITag.INamedTag<Item> NUGGETS = tag("nuggets");
public static final ITag.INamedTag<Item> NUGGETS_GOLD = tag("nuggets/gold");
public static final ITag.INamedTag<Item> NUGGETS_IRON = tag("nuggets/iron");
public static final ITag.INamedTag<Item> OBSIDIAN = tag("obsidian");
public static final ITag.INamedTag<Item> ORES = tag("ores");
public static final ITag.INamedTag<Item> ORES_COAL = tag("ores/coal");
public static final ITag.INamedTag<Item> ORES_DIAMOND = tag("ores/diamond");
public static final ITag.INamedTag<Item> ORES_EMERALD = tag("ores/emerald");
public static final ITag.INamedTag<Item> ORES_GOLD = tag("ores/gold");
public static final ITag.INamedTag<Item> ORES_IRON = tag("ores/iron");
public static final ITag.INamedTag<Item> ORES_LAPIS = tag("ores/lapis");
public static final ITag.INamedTag<Item> ORES_QUARTZ = tag("ores/quartz");
public static final ITag.INamedTag<Item> ORES_REDSTONE = tag("ores/redstone");
public static final ITag.INamedTag<Item> RODS = tag("rods");
public static final ITag.INamedTag<Item> RODS_BLAZE = tag("rods/blaze");
public static final ITag.INamedTag<Item> RODS_WOODEN = tag("rods/wooden");
public static final IOptionalNamedTag<Item> SAND = tag("sand");
public static final IOptionalNamedTag<Item> SAND_COLORLESS = tag("sand/colorless");
public static final IOptionalNamedTag<Item> SAND_RED = tag("sand/red");
public static final ITag.INamedTag<Item> SAND = tag("sand");
public static final ITag.INamedTag<Item> SAND_COLORLESS = tag("sand/colorless");
public static final ITag.INamedTag<Item> SAND_RED = tag("sand/red");
public static final IOptionalNamedTag<Item> SANDSTONE = tag("sandstone");
public static final IOptionalNamedTag<Item> SEEDS = tag("seeds");
public static final IOptionalNamedTag<Item> SEEDS_BEETROOT = tag("seeds/beetroot");
public static final IOptionalNamedTag<Item> SEEDS_MELON = tag("seeds/melon");
public static final IOptionalNamedTag<Item> SEEDS_PUMPKIN = tag("seeds/pumpkin");
public static final IOptionalNamedTag<Item> SEEDS_WHEAT = tag("seeds/wheat");
public static final IOptionalNamedTag<Item> SHEARS = tag("shears");
public static final IOptionalNamedTag<Item> SLIMEBALLS = tag("slimeballs");
public static final IOptionalNamedTag<Item> STAINED_GLASS = tag("stained_glass");
public static final IOptionalNamedTag<Item> STAINED_GLASS_PANES = tag("stained_glass_panes");
public static final IOptionalNamedTag<Item> STONE = tag("stone");
public static final IOptionalNamedTag<Item> STORAGE_BLOCKS = tag("storage_blocks");
public static final IOptionalNamedTag<Item> STORAGE_BLOCKS_COAL = tag("storage_blocks/coal");
public static final IOptionalNamedTag<Item> STORAGE_BLOCKS_DIAMOND = tag("storage_blocks/diamond");
public static final IOptionalNamedTag<Item> STORAGE_BLOCKS_EMERALD = tag("storage_blocks/emerald");
public static final IOptionalNamedTag<Item> STORAGE_BLOCKS_GOLD = tag("storage_blocks/gold");
public static final IOptionalNamedTag<Item> STORAGE_BLOCKS_IRON = tag("storage_blocks/iron");
public static final IOptionalNamedTag<Item> STORAGE_BLOCKS_LAPIS = tag("storage_blocks/lapis");
public static final IOptionalNamedTag<Item> STORAGE_BLOCKS_QUARTZ = tag("storage_blocks/quartz");
public static final IOptionalNamedTag<Item> STORAGE_BLOCKS_REDSTONE = tag("storage_blocks/redstone");
public static final IOptionalNamedTag<Item> STRING = tag("string");
public static final ITag.INamedTag<Item> SANDSTONE = tag("sandstone");
public static final ITag.INamedTag<Item> SEEDS = tag("seeds");
public static final ITag.INamedTag<Item> SEEDS_BEETROOT = tag("seeds/beetroot");
public static final ITag.INamedTag<Item> SEEDS_MELON = tag("seeds/melon");
public static final ITag.INamedTag<Item> SEEDS_PUMPKIN = tag("seeds/pumpkin");
public static final ITag.INamedTag<Item> SEEDS_WHEAT = tag("seeds/wheat");
public static final ITag.INamedTag<Item> SHEARS = tag("shears");
public static final ITag.INamedTag<Item> SLIMEBALLS = tag("slimeballs");
public static final ITag.INamedTag<Item> STAINED_GLASS = tag("stained_glass");
public static final ITag.INamedTag<Item> STAINED_GLASS_PANES = tag("stained_glass_panes");
public static final ITag.INamedTag<Item> STONE = tag("stone");
public static final ITag.INamedTag<Item> STORAGE_BLOCKS = tag("storage_blocks");
public static final ITag.INamedTag<Item> STORAGE_BLOCKS_COAL = tag("storage_blocks/coal");
public static final ITag.INamedTag<Item> STORAGE_BLOCKS_DIAMOND = tag("storage_blocks/diamond");
public static final ITag.INamedTag<Item> STORAGE_BLOCKS_EMERALD = tag("storage_blocks/emerald");
public static final ITag.INamedTag<Item> STORAGE_BLOCKS_GOLD = tag("storage_blocks/gold");
public static final ITag.INamedTag<Item> STORAGE_BLOCKS_IRON = tag("storage_blocks/iron");
public static final ITag.INamedTag<Item> STORAGE_BLOCKS_LAPIS = tag("storage_blocks/lapis");
public static final ITag.INamedTag<Item> STORAGE_BLOCKS_QUARTZ = tag("storage_blocks/quartz");
public static final ITag.INamedTag<Item> STORAGE_BLOCKS_REDSTONE = tag("storage_blocks/redstone");
public static final ITag.INamedTag<Item> STRING = tag("string");
private static ITag.INamedTag<Item> tag(String name)
private static IOptionalNamedTag<Item> tag(String name)
{
return ItemTags.makeWrapperTag("forge:" + name);
return ItemTags.createOptional(new ResourceLocation("forge", name));
}
}
public interface IOptionalNamedTag<T> extends INamedTag<T>
{
/**
* Returns true if the current state is defaulted. This means we have connected to a server that does not contain this tag.
* The values referenced in this tag may be empty, or some values specified by the original tag creator.
*/
boolean isDefaulted();
}
}

View file

@ -274,6 +274,7 @@ protected-f net.minecraft.tags.NetworkTagManager field_199719_a # blocks
protected-f net.minecraft.tags.NetworkTagManager field_199720_b # items
protected-f net.minecraft.tags.NetworkTagManager field_205705_c # fluids
protected-f net.minecraft.tags.NetworkTagManager field_215299_d # entityTypes
protected net.minecraft.tags.TagRegistry$NamedTag field_232942_b_ # tagReference
public net.minecraft.tileentity.HopperTileEntity func_145896_c(I)V # setTransferCooldown
public net.minecraft.tileentity.HopperTileEntity func_174914_o()Z # mayTransfer
#group public net.minecraft.util.DamageSource *() #All methods public, most are already