From 8100e59baf4bdd1afc309c7e063ae70807556be2 Mon Sep 17 00:00:00 2001 From: Frank Date: Fri, 4 Mar 2022 19:38:56 +0100 Subject: [PATCH] Make sure TagProvider Interface is processed for items as well --- src/main/java/ru/bclib/api/PostInitAPI.java | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/main/java/ru/bclib/api/PostInitAPI.java b/src/main/java/ru/bclib/api/PostInitAPI.java index c2676f9b..c0066245 100644 --- a/src/main/java/ru/bclib/api/PostInitAPI.java +++ b/src/main/java/ru/bclib/api/PostInitAPI.java @@ -8,6 +8,7 @@ import net.minecraft.client.renderer.RenderType; import net.minecraft.core.Registry; import net.minecraft.world.item.Item; import net.minecraft.world.level.block.Block; +import ru.bclib.BCLib; import ru.bclib.api.biomes.BiomeAPI; import ru.bclib.api.tag.TagAPI; import ru.bclib.api.tag.TagAPI.TagLocation; @@ -55,6 +56,11 @@ public class PostInitAPI { processBlockClient(block); } }); + + + Registry.ITEM.forEach(item -> { + processItemCommon(item); + }); postInitFunctions = null; blockTags = null; itemTags = null; @@ -77,6 +83,18 @@ public class PostInitAPI { } } + private static void processItemCommon(Item item) { + if (item instanceof TagProvider provider){ + try { + provider.addTags(null, itemTags); + } catch (NullPointerException ex){ + BCLib.LOGGER.error(item + " probably tried to access blockTags.", ex); + } + itemTags.forEach(tag -> TagAPI.addItemTag(tag, item)); + itemTags.clear(); + } + } + private static void processBlockCommon(Block block) { if (block instanceof PostInitable) { ((PostInitable) block).postInit();