diff --git a/projects/common/src/main/java/dan200/computercraft/shared/details/ItemDetails.java b/projects/common/src/main/java/dan200/computercraft/shared/details/ItemDetails.java index 795b5d6cd..4096e50d9 100644 --- a/projects/common/src/main/java/dan200/computercraft/shared/details/ItemDetails.java +++ b/projects/common/src/main/java/dan200/computercraft/shared/details/ItemDetails.java @@ -12,6 +12,7 @@ import net.minecraft.nbt.ListTag; import net.minecraft.nbt.Tag; import net.minecraft.network.chat.Component; +import net.minecraft.world.item.CreativeModeTab; import net.minecraft.world.item.CreativeModeTabs; import net.minecraft.world.item.EnchantedBookItem; import net.minecraft.world.item.ItemStack; @@ -96,19 +97,18 @@ private static Component parseTextComponent(Tag x) { * @return A filled list that contains pairs of item group IDs and their display names. */ private static List> getItemGroups(ItemStack stack) { - List> groups = new ArrayList<>(1); + return CreativeModeTabs.allTabs().stream() + .filter(x -> x.shouldDisplay() && x.getType() == CreativeModeTab.Type.CATEGORY && x.contains(stack)) + .map(group -> { + Map groupData = new HashMap<>(2); - CreativeModeTabs.tabs().stream().filter(x -> x.contains(stack)).forEach(group -> { - Map groupData = new HashMap<>(2); + var id = PlatformHelper.get().getCreativeTabId(group); + if (id != null) groupData.put("id", id.toString()); - var id = PlatformHelper.get().getCreativeTabId(group); - if (id != null) groupData.put("id", id.toString()); - - groupData.put("displayName", group.getDisplayName().getString()); - groups.add(groupData); - }); - - return groups; + groupData.put("displayName", group.getDisplayName().getString()); + return groupData; + }) + .toList(); } /**