diff --git a/src/main/java/de/ellpeck/naturesaura/misc/ColoredBlockHelper.java b/src/main/java/de/ellpeck/naturesaura/misc/ColoredBlockHelper.java index d82c6d3e..5717634d 100644 --- a/src/main/java/de/ellpeck/naturesaura/misc/ColoredBlockHelper.java +++ b/src/main/java/de/ellpeck/naturesaura/misc/ColoredBlockHelper.java @@ -3,11 +3,11 @@ package de.ellpeck.naturesaura.misc; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.item.DyeColor; import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.Blocks; import net.minecraftforge.registries.ForgeRegistries; -import java.util.ArrayList; import java.util.Arrays; -import java.util.Collections; +import java.util.Comparator; import java.util.List; public final class ColoredBlockHelper { @@ -17,15 +17,18 @@ public final class ColoredBlockHelper { public static final List CONCRETE_POWDER = ColoredBlockHelper.collectBlocks("concrete_powder"); public static final List CONCRETE = ColoredBlockHelper.collectBlocks("concrete"); public static final List GLASS = ColoredBlockHelper.collectBlocks("stained_glass"); - public static final List GLASS_PANE = ColoredBlockHelper.collectBlocks("glass_pane"); + public static final List GLASS_PANE = ColoredBlockHelper.collectBlocks("stained_glass_pane"); public static final List CARPET = ColoredBlockHelper.collectBlocks("carpet"); public static final List> LISTS = Arrays.asList(ColoredBlockHelper.WOOL, ColoredBlockHelper.TERRACOTTA, ColoredBlockHelper.CONCRETE_POWDER, ColoredBlockHelper.CONCRETE, ColoredBlockHelper.GLASS, ColoredBlockHelper.GLASS_PANE, ColoredBlockHelper.CARPET); private static List collectBlocks(String name) { - List blocks = new ArrayList<>(); - for (var color : DyeColor.values()) - blocks.add(ForgeRegistries.BLOCKS.getValue(new ResourceLocation(color.getName() + '_' + name))); - return Collections.unmodifiableList(blocks); + return Arrays.stream(DyeColor.values()).sorted(Comparator.comparingInt(DyeColor::getId)).map(c -> { + var loc = new ResourceLocation(c.getName() + '_' + name); + var block = ForgeRegistries.BLOCKS.getValue(loc); + if (block == null || block == Blocks.AIR) + throw new IllegalStateException("Couldn't find block with name " + loc); + return block; + }).toList(); } public static List getBlocksContaining(Block block) {