From b82e84d447e0c4cf01b2bc16ed04830f89e6c350 Mon Sep 17 00:00:00 2001 From: dfsek Date: Wed, 25 May 2022 12:02:15 -0700 Subject: [PATCH] better error message when injecting tags --- .../dfsek/terra/fabric/util/FabricUtil.java | 36 ++++++++++++------- 1 file changed, 23 insertions(+), 13 deletions(-) diff --git a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/util/FabricUtil.java b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/util/FabricUtil.java index 47cea5095..d71153878 100644 --- a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/util/FabricUtil.java +++ b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/util/FabricUtil.java @@ -98,7 +98,7 @@ public final class FabricUtil { } else { ((ProtoPlatformBiome) biome.getPlatformBiome()).setDelegate(BuiltinRegistries.add(registry, registerKey(identifier).getValue(), minecraftBiome)); } - + TERRA_BIOME_MAP.computeIfAbsent(vanilla.getKey().orElseThrow().getValue(), i -> new ArrayList<>()).add(identifier); } } @@ -116,17 +116,26 @@ public final class FabricUtil { map.put(pair.getFirst(), new ArrayList<>(pair.getSecond().stream().toList())), HashMap::putAll); - TERRA_BIOME_MAP.forEach((vb, terraBiomes) -> { - RegistryEntry vanilla = getEntry(registry, vb).orElseThrow(); - terraBiomes.forEach(tb -> { - RegistryEntry terra = getEntry(registry, tb).orElseThrow(); - logger.debug(vanilla.getKey().orElseThrow().getValue() + " (vanilla for " + terra.getKey().orElseThrow().getValue() + ": " + - vanilla.streamTags().toList()); - vanilla.streamTags() - .forEach(tag -> collect.computeIfAbsent(tag, t -> new ArrayList<>()) - .add(getEntry(registry, terra.getKey().orElseThrow().getValue()).orElseThrow())); - }); - }); + TERRA_BIOME_MAP.forEach((vb, terraBiomes) -> getEntry(registry, vb) + .ifPresentOrElse(vanilla -> terraBiomes.forEach(tb -> getEntry(registry, tb) + .ifPresentOrElse( + terra -> { + logger.debug(vanilla.getKey().orElseThrow().getValue() + " (vanilla for " + + terra.getKey().orElseThrow().getValue() + ": " + + vanilla.streamTags().toList()); + + vanilla.streamTags() + .forEach( + tag -> collect + .computeIfAbsent(tag, t -> new ArrayList<>()) + .add(getEntry(registry, + terra.getKey() + .orElseThrow() + .getValue()).orElseThrow())); + + }, + () -> logger.error("No such biome: {}", tb))), + () -> logger.error("No vanilla biome: {}", vb))); registry.clearTags(); registry.populateTags(ImmutableMap.copyOf(collect)); @@ -153,7 +162,8 @@ public final class FabricUtil { .waterFogColor(Objects.requireNonNullElse(vanillaBiomeProperties.getWaterFogColor(), vanilla.getWaterFogColor())) .fogColor(Objects.requireNonNullElse(vanillaBiomeProperties.getFogColor(), vanilla.getFogColor())) .skyColor(Objects.requireNonNullElse(vanillaBiomeProperties.getSkyColor(), vanilla.getSkyColor())) - .grassColorModifier(Objects.requireNonNullElse(vanillaBiomeProperties.getModifier(), vanilla.getEffects().getGrassColorModifier())); + .grassColorModifier( + Objects.requireNonNullElse(vanillaBiomeProperties.getModifier(), vanilla.getEffects().getGrassColorModifier())); if(vanillaBiomeProperties.getGrassColor() == null) {