From 8c7a11ee04fff0f555daf7c06deaf9198af2d7dd Mon Sep 17 00:00:00 2001 From: paulevsGitch Date: Wed, 8 Dec 2021 17:56:43 +0300 Subject: [PATCH] Prevent duplicate features --- src/main/java/ru/bclib/api/biomes/BiomeAPI.java | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/main/java/ru/bclib/api/biomes/BiomeAPI.java b/src/main/java/ru/bclib/api/biomes/BiomeAPI.java index fc128dc9..25447b71 100644 --- a/src/main/java/ru/bclib/api/biomes/BiomeAPI.java +++ b/src/main/java/ru/bclib/api/biomes/BiomeAPI.java @@ -732,10 +732,20 @@ public class BiomeAPI { private static void sortFeatures(List> features) { initFeatureOrder(); + + Set featuresWithoutDuplicates = Sets.newHashSet(); + features.forEach(provider -> featuresWithoutDuplicates.add(provider.get())); + + if (featuresWithoutDuplicates.size() != features.size()) { + features.clear(); + featuresWithoutDuplicates.forEach(feature -> features.add(() -> feature)); + } + features.forEach(provider -> { PlacedFeature feature = provider.get(); FEATURE_ORDER.computeIfAbsent(feature, f -> FEATURE_ORDER_ID.getAndIncrement()); }); + features.sort((f1, f2) -> { int v1 = FEATURE_ORDER.getOrDefault(f1.get(), 70000); int v2 = FEATURE_ORDER.getOrDefault(f2.get(), 70000);